Kamille senkt gezielt die Prozessorleistung, um Temperatur, Lüfterlärm und Energieverbrauch zu reduzieren – und zeigt dabei die CPU- und GPU-Temperatur direkt in der Taskleiste an. Seit Version 1.18 ermittelt Kamille die Grenztemperatur des Prozessors selbst und regelt danach, statt allein nach der Auslastung. Ein eigener, schlanker Ersatz für die App „Camomile“.
Kamille braucht keine Installation im eigentlichen Sinne. Es genügt ein Ordner mit den Programmdateien – dieser lässt sich jederzeit verschieben oder auf einen anderen Rechner mitnehmen.
| Voraussetzung | Wozu | Woher |
|---|---|---|
| Windows 10 oder 11 | Kamille ist Windows-spezifisch | – |
| Python 3.10 oder neuer, 64 Bit | zum Starten und zum Bauen der exe | python.org – beim Setup unbedingt „Add python.exe to PATH“ ankreuzen |
| Administratorrechte | nur zum Auslesen der Temperatursensoren | – |
kamille_v1.19.zip in einen Ordner Ihrer Wahl entpacken,
zum Beispiel C:\Programme_Eigene\Kamille\ oder auf einen USB-Stick.
Der Ort spielt keine Rolle – nur sollte er beschreibbar sein, damit Kamille
seine Einstellungen dort ablegen kann.
kamille_v1.19.zip → Eigenschaften
→ unten das Kästchen „Zulassen“ bzw. „Blockierung aufheben“
ankreuzen → OK → danach neu entpacken. War schon entpackt: alle Dateien im Ordner
markieren (Strg+A) → Rechtsklick → Eigenschaften → dasselbe Kästchen setzen.
hole_librehardwaremonitor.bat.lib\ und hebt die Windows-Herunterladesperre auf. Am Ende
meldet es, ob die Fassung passt. Es sind rund drei Dutzend Dateien – deshalb der
eigene Ordner.
python hole_lhm.py "C:\Pfad\zu\LibreHardwareMonitor"
hole_librehardwaremonitor.bat holt zwar
automatisch immer die neueste LibreHardwareMonitor-Fassung, PawnIO selbst muss aber
einmalig von Hand installiert werden: pawnio.eu →
Download → Installer ausführen → Kamille neu starten. Ohne PawnIO bleibt vor
allem die CPU-Temperatur leer, auch wenn alles andere passt.
diagnose.bat zeigt unter Punkt 4c, ob PawnIO installiert ist.
Diesen Schritt kann man auch überspringen: Kamille prüft bei
jedem Programmstart automatisch selbst, ob PawnIO schon installiert ist, und zeigt
das Ergebnis im Bereich „Messwerte“ an (neu in 1.15):
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PawnIO
(Funktion sensors.pawnio_installiert()) – existiert er, gilt
PawnIO als installiert. Das erkennt nur, ob der Treiber registriert ist,
nicht ob er von Windows tatsächlich geladen werden darf; ist zusätzlich
die Speicherintegrität (Kernisolierung) eingeschaltet, kann die CPU-Temperatur
trotz erkanntem PawnIO weiterhin fehlen (siehe Fehlersuche, Kapitel 7).
build_kamille.bat.dist\kamille_v1.19.exe.
Das dauert beim ersten Mal einige Minuten.
start_kamille.bat doppelklicken.
Kamille läuft dann direkt aus dem Quelltext – ohne exe, dafür mit Python im
Hintergrund.
dist\kamille_v1.19.exe →
„Als Administrator ausführen“.Im Fenster sollten unter „Messwerte“ Zahlen stehen – mindestens für CPU und GPU.
Steht dort „nicht gefunden“, hilft diagnose.bat (per Rechtsklick als
Administrator starten). Es prüft alle Voraussetzungen der Reihe nach und nennt zu jedem
Befund die konkrete Abhilfe.
Kamille erstellt einen eigenen Windows-Energiesparplan namens „Kamille Kuehlmodus“ und begrenzt darin die maximale Prozessorleistung auf einen einstellbaren Wert (Standard: 80 %). Das senkt Taktfrequenz und Spannung der CPU: es entsteht weniger Abwärme, die Lüfter drehen seltener hoch, und bei Notebooks steigt die Akkulaufzeit.
| Bedienelement | Wirkung |
|---|---|
| Kühlmodus aktivieren | Schaltet den Energiesparplan ein. Erneutes Klicken wechselt zurück zum vorher
aktiven Plan. Seit 1.19: Ist die Automatik angehakt, verschwindet diese Schaltfläche, und die Statuszeile darüber sagt „Kühlmodus: AUS (wird automatisch geregelt)“. Bis 1.18 blieb sie ausgegraut stehen – das sah nach einem Defekt aus. Zum Schalten von Hand einfach das Häkchen bei „Automatik“ entfernen; die Schaltfläche ist dann sofort wieder da. Der Menüpunkt „Kühlmodus An/Aus“ im Taskleisten-Symbol ist im selben Fall gesperrt. |
| Schieberegler | Legt fest, auf wie viel Prozent die Prozessorleistung begrenzt wird (20–100 %). Änderungen wirken sofort, wenn der Kühlmodus läuft. |
| Automatik | Schaltet den Kühlmodus selbsttätig ein – seit Version 1.18 bei hoher Temperatur oder hoher Auslastung, davor nur bei hoher Auslastung. Einzelheiten im nächsten Abschnitt. Solange sie angehakt ist, bleibt die Schaltfläche „Kühlmodus aktivieren“ gesperrt (siehe oben). |
| Regelziel (neu in 1.18) | Legt fest, wie früh die Automatik eingreift: „Erst am Limit“, „Ausgewogen“ (Standard), „Leise“ oder „Nur Auslastung“ (Verhalten wie bis Version 1.17). |
| Grenze ändern … (neu in 1.18) | Überschreibt die automatisch erkannte Temperaturgrenze des Prozessors.
Nur nötig, wenn der erkannte Wert erkennbar falsch ist. Eingabe von
0 stellt den erkannten Wert wieder her. |
| Angezeigte GPU | Legt fest, ob die dedizierte Grafikkarte oder die integrierte Grafik dargestellt wird. Liefert die gewählte keinen Wert, weicht Kamille automatisch auf die andere aus. |
| Fenster schließen (X) | Minimiert nur in die Taskleiste – Kamille läuft weiter. Zum wirklichen Beenden die Schaltfläche „Beenden“ oder das Symbolmenü benutzen. Dabei wird ein aktiver Kühlmodus automatisch zurückgesetzt. |
| Handbuch (neu in 1.14) | Öffnet dieses Handbuch direkt aus dem Programm heraus im
Standardbrowser – die Datei Handbuch.html muss dazu wie gewohnt
neben dem Programm liegen. |
kamille_config.json neben
dem Programm. Ist sie beschädigt, verwendet Kamille wieder die Standardwerte, statt den
Start zu verweigern.
Bis Version 1.17 richtete sich die Automatik allein nach der Auslastung: ab 85 % wurde gekühlt, unter 60 % wieder abgeschaltet. Die angezeigte Temperatur war reine Information und hatte auf die Regelung keinen Einfluss. Lief die CPU also bei 36 % Auslastung auf 80 °C, geschah nichts. Seit 1.18 zählt auch die Temperatur.
Jeder Prozessor hat eine Grenztemperatur („TjMax“), ab der er sich selbst drosselt – je nach Modell etwa 100 oder 105 °C. Diese Zahl kennt kaum jemand auswendig, und sie lässt sich nicht sinnvoll raten. Kamille liest sie deshalb selbst aus der Hardware aus, über LibreHardwareMonitor. Der erkannte Wert steht im Fenster unter dem Regelziel, zusammen mit den daraus abgeleiteten Schaltschwellen – zum Beispiel:
Temperaturgrenze: 105 °C (aus der CPU gelesen) - kuehlen ab 90 °C, wieder aus unter 75 °C.
Steht dort angenommen statt gelesen, war die Grenze nicht auslesbar (kommt bei AMD-Prozessoren und ohne Administratorrechte vor). Kamille rechnet dann vorsichtshalber mit 100 °C. Über „Grenze ändern …“ lässt sich der Wert von Hand setzen.
Die Schwellen ergeben sich aus der Grenze minus einem Abstand. Beispiel bei 105 °C:
| Regelziel | kühlen ab | wieder aus unter | gedacht für |
|---|---|---|---|
| Erst am Limit | 100 °C | 85 °C | volle Leistung, Lüfter darf laut werden |
| Ausgewogen (Standard) | 90 °C | 75 °C | Abstand zum Dauer-Throttling, ohne ständig zu bremsen |
| Leise | 80 °C | 65 °C | ruhiger Lüfter, dafür spürbar weniger Leistung |
| Nur Auslastung | Temperatur wird nicht ausgewertet | Verhalten wie bis Version 1.17 | |
Eine reine Temperaturregelung würde schwingen: Die Drosselung senkt die Temperatur, die gesunkene Temperatur schaltet die Drosselung ab, die Temperatur steigt wieder, und so fort. Sobald gekühlt wird, ist die Temperatur nämlich eine Folge der Drosselung und kein unabhängiger Messwert mehr. Kamille verhindert das dreifach:
Liegt vorübergehend keine CPU-Temperatur vor (siehe Kapitel 7), fällt die Automatik still auf die Auslastungsregel zurück und weist im Fenster darauf hin.
Windows erlaubt es nicht, neben einem Taskleisten-Symbol einfach Text anzuzeigen. Kamille zeichnet die Zahlen deshalb direkt in die Symbole hinein. Drei Darstellungsarten stehen zur Wahl:
Ein Symbol für die CPU, eines für die GPU. Da jedes nur eine einzige Zahl tragen muss, kann diese die gesamte Fläche ausnutzen – die Ziffern werden dadurch rund doppelt so hoch wie beim kombinierten Symbol und bleiben selbst bei 16 Pixel gut lesbar. Ein farbiger Balken am unteren Rand ordnet sie zu:
| Kennbalken | Bedeutung |
|---|---|
| Blau | CPU |
| Violett | dedizierte Grafikkarte |
| Türkis | integrierte Grafik |
CPU oben, GPU unten – spart Platz, die Zahlen sind dafür nur halb so hoch.
Ein Symbol ohne Zahlen. Die Werte erscheinen, wenn der Mauszeiger kurz darauf stehen bleibt. Im Kühlmodus zeigt die Blüte zusätzlich einen blauen Punkt.
Bei den beiden erstgenannten Darstellungsarten – den zwei getrennten Symbolen und dem kombinierten Symbol – erscheint jetzt oben rechts ein kleiner farbiger Punkt, der unabhängig von den Zahlen zeigt, ob der Kühlmodus gerade läuft:
| Punktfarbe | Bedeutung |
|---|---|
| Gelb-Orange | Kühlmodus aus |
| Blaugrün/Türkis | Kühlmodus an |
Der farbige Kennbalken am unteren Rand der getrennten Symbole bleibt davon unberührt und zeigt weiterhin nur, welches Symbol CPU bzw. GPU ist.
| Farbe | Bereich | Bedeutung |
|---|---|---|
| Grün | unter 70 °C | unauffällig |
| Orange | 70 bis 84 °C | warm, unter Last normal |
| Rot | ab 85 °C | heiß – Kühlmodus sinnvoll |
Grau (--) | – | kein Messwert verfügbar |
Der einzige von Windows vorgesehene Weg ist eine Aufgabe in der Aufgabenplanung mit der Einstellung „Mit höchsten Privilegien ausführen“. Solche Aufgaben starten beim Anmelden mit Administratorrechten – ohne Sicherheitsabfrage. Kamille legt sie auf Klick selbst an.
| Einstellung | Temperaturen | Einrichtung | Verfahren |
|---|---|---|---|
| Nicht automatisch starten | – | – | – |
| Ohne Administratorrechte | nur NVIDIA-Karte | ohne Adminrechte möglich | Registry-Eintrag |
| Mit Administratorrechten (empfohlen) | alle | einmalig Adminrechte nötig | Aufgabenplanung |
Wird die empfohlene Einstellung gewählt, ohne dass Kamille gerade Administratorrechte hat, bietet das Programm den Neustart mit erhöhten Rechten an. Beide Verfahren schließen sich aus – Kamille räumt das jeweils andere ab, damit nie doppelt gestartet wird.
Sie heißt Kamille Autostart und ist in der Aufgabenplanung
(taskschd.msc) einsehbar. Bewusst gesetzt:
| Einstellung | Wert | Warum |
|---|---|---|
| Mit höchsten Privilegien | ja | ohne sie keine Sensorwerte |
| Auslöser | bei Anmeldung, 20 s Verzögerung | gibt Windows Zeit, den Infobereich aufzubauen – sonst erscheinen die Symbole mitunter nicht |
| Start nur im Netzbetrieb | nein | Windows-Vorgabe wäre „ja“. Bei einem Notebook-Werkzeug wäre das unsinnig |
| Beenden bei Wechsel auf Akku | nein | Kamille soll weiterlaufen, wenn das Netzteil abgezogen wird |
| Laufzeitbegrenzung | keine | Windows würde die Aufgabe sonst nach drei Tagen beenden |
Das zusätzliche Häkchen „Beim Start minimiert (in der Taskleiste) starten“ sorgt dafür, dass Kamille direkt als Taskleistensymbol erscheint, ohne das Fenster kurz aufblitzen zu lassen. Praktisch in Kombination mit dem Autostart, wenn das Fenster beim Anmelden nicht stören soll. Über das Taskleistensymbol (Doppelklick oder „Fenster anzeigen“ im Rechtsklickmenü) lässt es sich jederzeit wieder öffnen.
Kamille probiert mehrere Quellen der Reihe nach und nimmt jeweils den ersten brauchbaren Wert:
| # | Quelle | Liefert | Voraussetzung |
|---|---|---|---|
| 1 | LibreHardwareMonitor | CPU, integrierte Grafik, NVIDIA-Karte | Bibliotheken im Programmordner und Administratorrechte |
| 2 | nvidia-smi | nur NVIDIA-Karte | NVIDIA-Treiber (normalerweise vorhanden), keine Adminrechte |
| 3 | psutil | CPU (praktisch nur unter Linux) | keine |
Die Temperatursensoren sitzen in Chips auf der Hauptplatine, die nur über direkte Hardwarezugriffe erreichbar sind. Windows erlaubt das ausschließlich Programmen mit erhöhten Rechten. Ohne Administratorrechte läuft Kamille zwar vollständig – Kühlmodus und Automatik funktionieren – aber CPU- und iGPU-Temperatur bleiben leer.
| Archiv | Gebaut für | Passt zu Kamille? |
|---|---|---|
LibreHardwareMonitor.zip | .NET Framework | ja – dieses nehmen |
LibreHardwareMonitor.NET.10.zip | .NET 10 | nein |
Bei Handarbeit gilt außerdem: alle .dll-Dateien aus dem
Archiv kopieren, nicht nur LibreHardwareMonitorLib.dll. Die Hilfsbibliotheken
wie System.Memory.dll werden ebenfalls gebraucht – sonst lassen sich die
Sensoren nicht öffnen. Anschließend bei allen Dateien: Rechtsklick → Eigenschaften
→ unten „Zulassen“ ankreuzen.
Kamille ist bewusst portabel gebaut. Der Ordner lässt sich verschieben, auf einen USB-Stick kopieren oder auf einen anderen Rechner mitnehmen.
| Was | Wie es gelöst ist |
|---|---|
| Einstellungen | liegen als kamille_config.json neben dem Programm und wandern mit.
Ist der Ordner schreibgeschützt (etwa unter C:\Programme), weicht
Kamille auf den Benutzerordner aus. |
| Bibliotheken | werden beim Bauen in die exe eingebaut. Eine daneben abgelegte Datei hat Vorrang – so lässt sich eine neuere Fassung nachlegen, ohne neu zu bauen. |
| Autostart nach Verschieben | Ein alter Eintrag zeigt ins Leere. Kamille erkennt das beim Start und stellt ihn auf die jetzige Programmkopie um. Bei der Aufgabenplanung sind dafür Administratorrechte nötig. |
build_kamille.bat ausführen.diagnose.bat per Rechtsklick als Administrator
ausführen. Es prüft alle Voraussetzungen der Reihe nach, entfernt Windows-Sperren gleich
selbst und nennt zu jedem Befund die Abhilfe.
| Problem | Ursache und Lösung |
|---|---|
| CPU-Temperatur zeigt „nicht gefunden“ | Bibliotheken fehlen oder Kamille läuft ohne Administratorrechte. Der Hinweistext im Fenster nennt den konkreten Grund. |
| CPU (und oft auch iGPU) zeigen „nicht verfügbar“, obwohl LibreHardwareMonitor als aktiv gemeldet wird und Kamille als Administrator läuft – die dedizierte GPU funktioniert dabei | Drei mögliche Ursachen, diagnose.bat prüft sie der Reihe nach
(Punkte 3, 4c und die Meldung bei Punkt 7):1. PawnIO fehlt. Seit September 2025 braucht LibreHardwareMonitor diesen Treiber statt des veralteten WinRing0 für den CPU-Zugriff, er wird aber nicht automatisch mitinstalliert. Das ist mit Abstand die häufigste Ursache bei einer neu heruntergeladenen LibreHardwareMonitor-Fassung. Abhilfe seit Version 1.15: im Fenster unter „Messwerte“ auf „PawnIO installieren ...“ klicken – Kamille lädt den offiziellen Installer von pawnio.eu herunter und startet ihn (mit der üblichen Windows-Sicherheitsabfrage). Alternativ von Hand: pawnio.eu → Installer ausführen → Kamille neu starten. 2. Speicherintegrität (Kernisolierung) ist eingeschaltet. Windows blockiert dann den Treiber, mit dem CPU-Temperatur und interne Grafik ausgelesen werden. Abhilfe: Windows-Sicherheit → Gerätesicherheit → Kernisolierungsdetails → Speicherintegrität ausschalten → Neustart. 3. PawnIO ist installiert und Speicherintegrität ist bereits aus, der Wert fehlt trotzdem. Dann meist Windows' seit Version 22H2 fest eingebaute Sperrliste für riskante Treiber, oder Windows Defender hat eine Treiberdatei in Quarantäne verschoben. Prüfen: Windows-Sicherheit → Viren- & Bedrohungsschutz → Schutzverlauf/Quarantäne, sowie Ereignisanzeige → Windows-Protokolle → System → Suche nach „CodeIntegrity“. Diese Sperre lässt sich nur mit spürbaren Sicherheitseinbußen umgehen, Kamille rät davon ab. In allen drei Fällen bleibt die GPU-Temperatur zuverlässig, da sie ohne riskanten Treiber über NVAPI ausgelesen wird. diagnose.bat zeigt den jeweils passenden Befund direkt an. |
| Viele fremde Dateien im Programmordner | Aus einer Fassung vor 1.7. hole_librehardwaremonitor.bat einmal ausführen – es verschiebt sie nach lib\. |
| „Die Dateien können nicht geöffnet werden“ beim Doppelklick auf eine Datei aus dem ZIP | Windows hat den Download als „Eingeschränkte Zone“ markiert und blockiert die
Ausführung komplett (härter als die übliche SmartScreen-Warnung, kommt vom
Attachment-Manager, nicht von Kamille). Abhilfe: Rechtsklick auf die
.zip-Datei → Eigenschaften → unten das Kästchen
„Zulassen“ bzw. „Blockierung aufheben“ ankreuzen → OK → danach
neu entpacken. Ist der Ordner schon entpackt: alle Dateien markieren (Strg+A) →
Rechtsklick → Eigenschaften → dasselbe Kästchen setzt die Sperre für die
gesamte Auswahl zurück. |
| „Die Datei oder Assembly System.Memory ... wurde nicht gefunden“ | Es fehlen Hilfsbibliotheken. hole_librehardwaremonitor.bat erneut
ausführen, oder alle .dll-Dateien aus dem entpackten
LibreHardwareMonitor-Ordner hierher kopieren. |
| „No module named LibreHardwareMonitor“ | Die DLL lässt sich nicht laden. Meist die falsche Archivfassung
(.NET 10 statt .NET Framework) oder die Windows-Herunterladesperre.
hole_librehardwaremonitor.bat erneut ausführen. |
| GPU-Temperatur fehlt trotz NVIDIA-Karte | Bei Notebooks mit Umschaltgrafik schaltet sich die Karte im Leerlauf ab und meldet dann keinen Wert. Unter Last erscheint sie wieder. |
| iGPU-Temperatur fehlt dauerhaft | Häufigste Ursache: Bei aktiver dedizierter Grafikkarte wird die interne Grafik auf vielen Rechnern im BIOS abgeschaltet, dann gibt es keinen aktiven Sensor – kein Fehler. Sonst: nicht jede Intel-Generation besitzt einen eigenen Grafik-Temperatursensor. Fehlt er in LibreHardwareMonitor selbst, kann Kamille ihn auch nicht anzeigen. |
| Nach dem Anmelden fehlen die Temperaturen | Der Autostart läuft über die Registry und damit ohne Adminrechte. Auf „mit Administratorrechten“ umstellen. |
| Zahlen im Symbol zu klein | Auf „Zwei Symbole“ umschalten – dort sind die Ziffern etwa doppelt so groß. Alternativ „Nur Kamillenblüte“ wählen und die Werte per Mauszeiger ablesen. |
| Nur ein Symbol sichtbar statt zwei | Windows blendet neue Symbole oft im Auffangbereich hinter dem Pfeil aus. In den Taskleisten-Einstellungen dauerhaft einblenden. |
| Windows-Warnung beim Start der exe | Die exe ist nicht signiert. Über „Weitere Informationen“ → „Trotzdem ausführen“ starten. |
Absturz direkt beim Start der exe: „FileNotFoundError: Tcl data
directory ... not found“ (in pyi_rth__tkinter) |
Kein Fehler in Kamille selbst, sondern ein bekannter PyInstaller-Bug rund
um die Tcl/Tk-Daten von tkinter, der bei älteren PyInstaller-Fassungen
unter neueren Python-Versionen (z. B. 3.14) auftreten kann. Ursache
meist: eine bereits installierte, aber veraltete PyInstaller-Fassung wurde
beim Bauen nicht aktualisiert – pip install -r requirements.txt
lässt eine schon passende Version unangetastet. Abhilfe (seit 1.16
bereits in build_kamille.bat eingebaut, bei älteren
selbst geholten Programmordnern von Hand):
python -m pip install --upgrade pyinstalleranschließend die Ordner build\ und dist\
löschen und neu bauen (build_kamille.bat nutzt dafür
jetzt automatisch --clean). |
diagnose.bat oder build_kamille.bat bricht ab mit
„'koennen' kann syntaktisch an dieser Stelle nicht verarbeitet
werden.“ (oder einer ähnlichen Meldung mit einem anderen Wort) |
War ein Bug in Kamille 1.15/1.16 selbst, behoben in 1.17: cmd.exe zählt
runde Klammern innerhalb eines if(...)-Blocks rein textuell,
sogar in Anführungszeichen. Eine Klammer in einem Hinweistext innerhalb
eines solchen Blocks wurde faelschlich als Blockende erkannt. Abhilfe: die
aktuelle ZIP verwenden (Version 1.17 oder neuer) – dort sind die
betroffenen Texte umformuliert, und ein automatisierter Test
(test_batch_dateien_haben_keine_klammern_in_if_bloecken)
verhindert eine Rückkehr dieses Fehlers. |
Kamille\ kamille.py, sensors.py, ... Programmdateien kamille_config.json Ihre Einstellungen lib\ LibreHardwareMonitor (rund 30 Dateien) dist\kamille_v1.19.exe die gebaute Programmdatei
Der Unterordner lib\ hält die Fremdbibliotheken vom Programm getrennt.
Kamille selbst besitzt keine einzige .dll.
| Datei | Zweck |
|---|---|
| kamille.py | Hauptprogramm mit Oberfläche und Kühllogik |
| sensors.py | Auslesen der CPU- und GPU-Temperaturen |
| icons.py | Erzeugung der Symbole |
| autostart.py | Autostart über Registry bzw. Aufgabenplanung |
| kamille.ico | Programmsymbol (16 bis 256 Pixel) |
| Datei | Zweck |
|---|---|
| hole_librehardwaremonitor.bat | holt die Bibliotheken (ruft hole_lhm.py auf) |
| hole_lhm.py | der eigentliche Download |
| build_kamille.bat | testet, prüft und baut die exe |
| start_kamille.bat | startet Kamille direkt aus dem Quelltext |
| kamille.spec | Bauanleitung für PyInstaller |
| requirements.txt | Liste der benötigten Python-Pakete |
| pruefe_dll.py | prüft vor dem Bauen die Fassung der DLL |
| Datei | Zweck |
|---|---|
| diagnose.bat / diagnose.py | findet heraus, warum Temperaturen fehlen |
| run_tests_manual.py | 270 automatisierte Tests, laufen ohne Zusatzpakete |
| test_kamille.py | macht dieselben Tests für pytest verfügbar |
| Handbuch.html | dieses Dokument |
Die Tests decken die gesamte plattformunabhängige Logik ab: Konfiguration, powercfg-Befehle, Automatik samt Temperaturregelung und Zeitbremsen, Ermittlung der Grenztemperatur, Selbstheilung der Sensorverbindung, Auswertung der nvidia-smi-Ausgabe, Verarbeitung des LibreHardwareMonitor-Sensorbaums (mit Attrappen, ohne echte Hardware), Archiv-Auswahl, Symbolerzeugung, Fenstergröße und Autostart-XML.
python run_tests_manual.py <- funktioniert immer python -m pytest -v <- falls pytest installiert ist
Oberfläche (tkinter), Taskleisten-Symbol (pystray) und Registry-Zugriffe sind nicht automatisiert getestet, da sie ein laufendes Windows-Desktop-System voraussetzen.
diagnose.bat auf
demselben Rechner 80 °C las. Ursache: LibreHardwareMonitor legt die
CPU-Sensoren beim Öffnen an – klappt der Treiberzugriff in diesem
Moment nicht, gibt es für den Rest der Sitzung keine Werte, und die
Temperaturregelung aus 1.18 war damit still wirkungslos. Kamille öffnet die
Sensoren jetzt selbst neu: nach 1, 2, 4 und dann alle 5 Minuten. Der
Sensorstatus im Fenster nennt die Zahl der Neuversuche.TjMax, ersatzweise über die
Sensoren Distance to TjMax. Der Wert und die daraus abgeleiteten
Schaltschwellen stehen sichtbar im Fenster; „Grenze ändern
…“ erlaubt eine Korrektur von Hand.diagnose.bat und
build_kamille.bat konnten mit „'koennen' kann syntaktisch
an dieser Stelle nicht verarbeitet werden.“ abstürzen. Ursache:
cmd.exe zählt runde Klammern innerhalb eines if(...)-Blocks
rein textuell, auch in Anführungszeichen und mitten in Fliesstext –
eine Klammer in einer echo-Zeile innerhalb eines if-Blocks wurde
dadurch fälschlich als Blockende erkannt. Betroffene Texte umformuliert;
ein neuer automatisierter Test
(test_batch_dateien_haben_keine_klammern_in_if_bloecken)
verhindert eine Rückkehr dieses Fehlers in beiden Dateien. Kein
Python-Code betroffen.sensors.pawnio_installiert()), siehe
Installationsschritt 2.kamille_v1.15.exe konnte
direkt beim Start mit „FileNotFoundError: Tcl data directory ... not
found“ abstürzen – ein PyInstaller-Bug rund um die Tcl/Tk-Daten
von tkinter, der bei älteren PyInstaller-Fassungen unter Python 3.14
auftreten kann. Ursache: requirements.txt forderte nur
pyinstaller>=6.0, und pip install -r requirements.txt
aktualisiert eine bereits installierte, aber veraltete 6.x-Fassung nicht von
selbst. build_kamille.bat aktualisiert PyInstaller jetzt aktiv
(mindestens 6.22) und baut mit --clean. Betrifft nur, wer die exe
selbst baut – nicht den Programmcode von Kamille selbst.diagnose.bat
selbst herausfinden und von Hand herunterladen.diagnose.bat installierte anders als
start_kamille.bat nie die benötigten Pakete (u.a. pythonnet).
In einer frischen Python-Umgebung konnte die Diagnose dadurch schon bei Punkt 5
abbrechen ("pythonnet ist nicht installiert"), obwohl Kamille selbst
einwandfrei lief. diagnose.bat installiert die Pakete jetzt vorher
genauso wie start_kamille.bat.Handbuch.html direkt aus dem laufenden Programm im
Standardbrowser, ohne dass die Datei im Programmordner gesucht werden muss.build_kamille.bat und
start_kamille.bat prüften die DLL bislang nur direkt im
Programmordner („LibreHardwareMonitorLib.dll fehlt“), obwohl sie seit
Version 1.7 im Unterordner lib\ liegt. Dadurch erschien die
Fehlt-Meldung immer, selbst wenn Bibliotheken und PawnIO korrekt installiert waren.
Beide Skripte prüfen jetzt zuerst lib\, dann zur Sicherheit noch den
Programmordner.diagnose.bat prueft jetzt zusaetzlich, ob PawnIO
installiert ist - der Treiber, den LibreHardwareMonitor seit Version 0.9.5 (September
2025) statt des veralteten WinRing0 fuer den CPU-Zugriff braucht. Das ist inzwischen
die haeufigste Ursache, wenn die CPU-Temperatur trotz frisch heruntergeladenem
LibreHardwareMonitor fehlt: hole_librehardwaremonitor.bat holt zwar immer
die neueste Fassung automatisch, PawnIO selbst muss aber einmalig von Hand installiert
werden (pawnio.eu).diagnose.bat nennt jetzt beide Pruefwege (Quarantäne,
Ereignisanzeige).diagnose.bat prueft jetzt gezielt, ob Windows'
Speicherintegrität (Kernisolierung) eingeschaltet ist. Das ist eine häufige
Ursache, wenn CPU (und oft auch iGPU) trotz aktivem LibreHardwareMonitor und
Administratorrechten „nicht verfügbar“ bleiben, während eine
dedizierte NVIDIA-Karte ganz normal funktioniert – die Kernisolierung blockiert den
Treiber für die direkte Hardwareabfrage, NVAPI ist davon nicht betroffen.lib\. Ein vorhandenes Durcheinander aus früheren Fassungen wird beim
nächsten Lauf von hole_librehardwaremonitor.bat automatisch dorthin
verschoben.python hole_lhm.py "Pfad" holt die Dateien aus
einem bereits entpackten LibreHardwareMonitor-Ordner.hole_lhm.py.build_kamille.bat prüft vor dem Bauen die DLL-Fassung – sonst
würde eine unpassende fest in die exe eingebacken.diagnose.bat.