Lüfter- und Temperaturkontrolle v0.9.2 (PFControl)

Profiler

TP-Softwareentwickler
Themenstarter
Registriert
31 Mai 2006
Beiträge
253
Hallo,

ich habe mir Mithilfe von ein paar Anregungen eine eigene Lüfter- und Temperaturkontroll - Software mit Delphi geschrieben und würde mein Programm hier mal zum Download und Feedback anbieten.

Auf dieser Website findet ihr alle Versionen inklusive Delphi-Quellcode: http://fancontrol.de/

Ich habe das Programm für meinen T23 geschrieben, aber es funktioniert auch bei älteren bzw. neueren Thinkpads. Je nach Modell sind verschiedene Temperatursensoren vorhanden.

Bis jetzt zeigt das Programm die Temperaturen von CPU, Board, PCMCIA-Slot, Hauptbatterie und wenn eingesteckt auch von einer Ultrabay 2000 Batterie an. Bei neueren Thinkpads sind sogar mehr Sensoren möglich.

Es gibt 3 Funktionsmodi. Der erste ist Bios-Controller. Hierbei wird wie gewohnt der Lüfter vom BIOS gesteuert und man benutzt das Programm nur als Temperaturkontrolle. Dann gibt es den Modus INI-Einstellungen. Hier werden bestimmte Geschwindigkeiten bei benutzerdefinierten Temperaturschwellen automatisch eingestellt. Schließlich gibt es noch die manuelle Kontrolle, wobei der Benutzer mit einem Schieberegler die 4 Geschwindigkeiten manuell einstellen kann.

Von allen Temperaturen wird die höchste oder nach Wunsch auch eine bestimmte Temperatur im SystemTray mit einer farbigen Untermalung angezeigt. Um alle Features hier aufzuzeigen, müsste man noch eine Menge Text schreiben. Wenn man den kompletten Beitrag liest, kann man die Entwicklung aber auch nach und nach vervolgen. Wer sie alle genau wissen möchte, sollte das Programm einfach mal herunterladen und ausprobieren ;).

Für Kritiken, Bugs und Verbesserungsvorschläge bin ich sehr offen :-)

Gruß
Profiler
 
Zuletzt bearbeitet von einem Moderator:
@profiler

Danke für die neue Build! Bekommst auch wieder ein längeres Statement, aber erst heute Abend.


Mfg sightus
 
@profiler

So, nachdem ich nun etwas Zeit gefunden habe die neue Build von FanControl zu testen, kommt mein Feedback. Dazu muss ich sagen, dass ich jetzt nicht mehr schreibe, welche Dinge ich toll finde, sondern nur noch über das schreibe, was man noch verbessern könnte/sollte. Ich hoffe, dass sieht man mir nach...;)

Reiter "Development"

Da ich "leider" (eher zum Glück) keine Notebook besitze, bei dem der Lüfter Probleme macht (Pulsieren etc.) kann ich diese Funktion nicht testen. Allerdings gerade für diese Leute wäre es schön, wenn die Funktion erläutert werden würde. Nicht jeder kann sich unter "Anti-Pulse" etwas vorstellen. Kann es sogar sein, dass es bei TP's Schäden anrichten kann? Diese Frage wäre unnötig, wenn man erklärt bekäme, was ich unter dieser Funktion zu verstehen habe.


Reiter "Credits"

Danke für die Nennung, ich fühle mich geehrt! Die Überschrift "Sicherheitshinweise" sollte nicht in gelb sein, da man diese doch recht schlecht lesen kann. Da wäre rot wie der Text besser; kannst die Überschrift ja "fett" machen.
Du gibst zwei Quellen an, an die ich mich wenden kann, falls ich Probleme etc. habe.

"Mail: profiler@fancontrol.de
Website: http://fancontrol.de"

Es wäre schön, wenn das Links wären! Wenn Du keine Links möchtest, wäre es aber gut, wenn es möglich wäre, dass man den Text mit der Maus markieren kann, um sie in die Adresszeile des IE7 oder Firefox zu kopieren.

Hast Du mal darüber nachgedacht, wie es mit Veränderungen "Dritter" aussieht? Was ist, wenn ich Funktionen des Programmes ändere, aber dein Name darüber steht? Denke da so an Copyright.


Reiter "Farben"

Die Funkiton "Temperatur_zu_Farbe_Umwandlung" finde ich toll und gut gelöst! Die Funktion "Tray-Icon Farben" ist auch gut, wobei man sich streiten kann, ob sinnvoll ist, dass man den Rahmen frei gestalten kann. Hätte den z.B. entfernt, weil ich finde, dass die Zahl und der Hintergrund reichen. Die Vorschau ist sehr gut. Nur die Schaltfläche "rötlichen" verstehe ich nicht. Ich konnte bei dieser Einstellung (an/aus) keinen Unterschied feststellen.


Reiter "Alarm"

Die Alarmfunktion ist jetzt so, wie ich sie mir vorgestellt hatte, einfach TOP!


Reiter "Sensoren"

Das die Temperatur jetzt angezeigt wird finde ich gut, jedoch aktualisiert sie sich nicht. Es wird immer der Wert angezeigt, der beim Öffnen des Programmes bestand. Du hattest einem User hier ja bereist mal gesagt, er solle den Sensor umbenennen, da dieser zu lang war und die Gradanzeige überschrieb. Ist es nicht möglich, dass eine Sensor max. 15 Zeichen lang sein kann, damit die Temperaturen immer lesbar bleiben?

Reiter "Lüfter"

Keine Beanstandungen ;)


Reiter "Allgemein"

Bugs wurden beseitigt. Autostartfunktion ist ebenfalls gut.


Taskleiste

Also ich finde die neue Lösung nicht schlecht, nur recht groß. Eine oder zwei Nummern kleiner hätte mir auch gereicht. Nebenbei scheint es so, als hättest du die Ecken mit einem Runden Balken abgerundet. Dieser ist zu erahnen aber nicht deutlich genug, so dass es irgendwie blöd aussieht. Ich würde sie entfernen.



Allgmeine Fehler

Ich habe bislang vierFehlermeldungen bebachten können.

Fehler 1: Es wird mir angezeigt, das Schwellenwerte überschritten worden sind, wobei bei diesen noch der Schwellenwert 255°C eingestellt und der Sensor ebenfalls deaktiviert war.

Fehler 2: Dieser tritt sporadisch auf, habe allerdings das Gefühl, dass er kommt, wenn sich Werte durchs erneute Auslesen ändern. Leider ist die Fehlermeldung totaler Mist, da sie aus einem neuen und komplett leeren Fenster besteht und irgendeinen Inhalt. Ich kann nur auf "OK" klicken und warten bis die neue kommt. Teilweise ist es mir nicht mehr möglich, die Meldung zu umgehen, da sie sofort neu erscheint. Da hilft nur das Programm neu starten.

Fehler 3: "Listenindex überschreitet das Maximum (5 (oder 4))"

Fehler 4: "Zugriffsverletzung bei Adresse 00006E69. Lesen von Adresse 00006E69"


Fehler 3 und 4 traten sporadisch auf und ließen sich nicht gezielt reproduzieren!



Fazit:
Also ich werde erst mal wieder die alte Version benutzen, da Fehler 2 ein normalen Betrieb nicht zulässt. Aber die Änderungen machen schon verdammt mehr Lust nach "mehr"...8)


Mfg sightus
 
Reiter "Sensoren"

Das die Temperatur jetzt angezeigt wird finde ich gut, jedoch aktualisiert sie sich nicht. Es wird immer der Wert angezeigt, der beim Öffnen des Programmes bestand. Du hattest einem User hier ja bereist mal gesagt, er solle den Sensor umbenennen, da dieser zu lang war und die Gradanzeige überschrieb. Ist es nicht möglich, dass eine Sensor max. 15 Zeichen lang sein kann, damit die Temperaturen immer lesbar bleiben?

habe das neue leider noch nicht testen können, weil es erst wieder am montag am netz hängt, aber werde das nachholen.

zum zitat oben: ich denke der temperaturwert soll ja nur anzeigen, dass ein sensor vorhanden ist. es würde wohl auch eine rote/grüne led (sorry, bin etechniker, also so'n symbol halt) reichen, die bei werte über 0 (also vorhanden) anzeigt: grün=vorhanden, und bei 0: rot=nicht vorhanden.
 
@Konfi

Da hast Du Recht! Warum muss ich auch immer so kleinlich sein.... :D


Mfg sightus
 
Hallo,

@sightus
Ich werde demnächst ind alle kritischen Abschnitte, wo solche EAccessViolation Fehler auftreten mal eine Fehlerbehandlung einbauen. Am besten wird das ganze dann in eine *.log Datei geschrieben. Das macht es für mich besser nachzuvollziehen, an welcher Stelle genau der Fehler auftrat.

Die Funktion rötlichen (zugegeben mir ist kein passendes Wort eingefallen :P) bedeutet, wenn aktiv, wird die Farbabstufung von Grün zu Rot in Schwarz zu Rot umgewandelt. Das ist z.b. sinnvoll, wenn man die Zahl mit einer SensorTemperatur "färbt" und den Hintergrund z.b. als Lüfterdrehzahl. Dann würden sich die Farben sehr ähneln und man würde keine Zahl mehr erkennen. Gibts vielleicht ne bessere Lösung, mir ist aber grad keine bessere eingefallen :).
Ich will am besten soviel wie möglich einstellbar machen, damit der User sich das Programm individuell anpassen kann. Wenn man den Rahmen net will, kann man ihn ja einfach deaktivieren.

Von "Flexibel" kam die Anregung den Hintergrund auch deaktivierbar zu machen, sodass man nur eine Zahl auf der Taskleistenhintergrundfarbe hat.

Die Temperaturen in der Sensorliste werden bei jedem neuen Aufruf des Tabs "Sensoren" aktualisiert. Das Sie bei dir nicht aktualisiert wurden, kann nur daran liegen, dass vorher einer der von dir beschriebenen Fehler aufgetreten war.

Findest du die Abrundung wirklich so schrecklich? Ich finde das sieht ganz gut aus. Sicherlich kann man die Größe noch etwas runternehmen.

Gruß
Profiler
 
@profiler

Schrecklich finde ich sie nicht, aber sie sollte meiner Meinung nach stärker sein, so dass ich sie an allen Ecken erkennen kann. Mach die Rundung einfach einen Tick dicker und dunkler, dann ist alles in Ordnung. Ich kann z.B. oben links eine Rundung erkennen, an allen andern "Ecken" aber irgendwie nicht, nur vereinzelnt schwarze Pixel.

Jetzt verstehe ich auch, was sich hinter "rötlichen" verbirgt. 8)


Mfg sightus
 

Anhänge

  • Fancontrol_bild.jpg
    Fancontrol_bild.jpg
    36,8 KB · Aufrufe: 359
@Profiler

Ich habe mich mal getraut das Programm zu benutzen und bin wirklich sehr erstaunt, was sich die letzten Monate so getan hat!

Wenn noch die restlichen Bugs beseitigt sind, könnte ich von tpfancontrol abkommen :-)

Läuft das gute Stück auch stabil und kann man ab einer bestimmten Temperatur auch auf bios umstellen? Doofe Fragen vielleicht, wollte jetzt nicht komplett den Thread lesen *faulbin*

Danke für die Antworten!

SSK
 
@SSK

Unter dem Reiter "Lüfter" gibts die Funktion!

"Dem Bios die Lüfterkontrolle übergeben ab : [Auswahlfeld]"

Standard sind 85°C.


Mfg sightus
 
@stefankadatz

Eigentlich gilt ja der Grundsatz je kühler, desto besser. Aber 60°C unter Last sind mir für meinen Banias die Schmerzgrenze. Ich habe den Vcore runtergedrosselt, das spart ein paar Grade ein. Also probierer mal aus, bei welcher Lüfterstufe die Temperatur noch annehmbar bleibt. Ich würde mal sagen so um 55-60°C unter Vollast sind bei deinem Prozessor noch zu verkraften.


Mfg sightus
 
Eigentlich müsste man eine englische Version rausbringen für das US-Forum, die würden sich danach reißen!
 
Habe ich auch schon mal gedacht. Wenn eine Final-Version ohne Bugs da ist, wäre das echt mal ne Idee wert! Habe auch schon etliche Anfragen bekommen, teils von TP-Nutzern, teilweise auch von anderen Usern, die z.B. Dell-Notebooks besitzen. Das Interesse ist auf jeden Fall da!


Mfg sightus
 
@SSK

Das musst Du profiler fragen, aber ich bin mir sicher er tut sein Bestes!

<<<"Gut Ding will Weile haben">>
 
Allgemein
  • Die Einstellung zur manuellen Steuerung wird beim Speichern und erneuten aufrufen der Programmkonfiguration immer eine Stufe kleiner.
  • Die EC Schreib-Signalisierung sollte auch bei Mute gehen, genauso wie Alarmsystem.
Sensoren
  • Die Position, an der die Balken der einzelnen Sensoren angezeigt wird, könnte einstellbar sein.
Alarm
  • Die Schwellwerte des Alarmsystems zeigen bei mir keine Wirkung
Farben
  • Unter Temperatur-zu-Farb-Umwandlung sollte man noch die Spannweite (Range) der Farben einstellen können. Beispiel: 20°C = grün und 80°C = rot (Range=60°C) oder 35°C = grün oder 55°C = rot (Range=20°C). Offset ist ja jetzt schon einstellbar, fehlt nur noch Range.
  • Die Transparenz des Tooltips sollte einstellbar sein.
Tooltip
  • Die abgerundeten Ecken des Tooltips sind noch nicht ganz perfekt. Wieso überhaupt abgerundet - eckig ist doch auch ok?
  • Der Tooltip wird nicht aktualisiert, wenn man ihn längere Zeit stehen läßt.
Sonstiges
  • Bei klicken auf "Programmkonfiguration" werden manuelle Einstellungen der Lüftersteuerung zurückgesetzt.
  • Die Farben im Systemtay springen teilweise ohne das sich die Temperaturen ändern.
  • Listenindex überschreitet das Maximum (6). Tritt auf beim Versuch fcontrol zu beenden.
  • Listenindex überschreitet das Maximum (4). Tritt auf beim Versuch fcontrol zu beenden.
  • Zugriffsverletzung bei Adresse 0040446B in Modul 'fcontrol.exe'. Lesen von Adresse 00000014. Sporadisches Auftreten.
 
@jaydee

Die Einstellung zur manuellen Steuerung wird beim Speichern und erneuten aufrufen der Programmkonfiguration immer eine Stufe kleiner.

==> Kann ich bestätigen!

Die EC Schreib-Signalisierung sollte auch bei Mute gehen, genauso wie Alarmsystem.

==> Gute Idee

Die Schwellwerte des Alarmsystems zeigen bei mir keine Wirkung

==> Bei mir schon, k.A. woran es liegt.

* Unter Temperatur-zu-Farb-Umwandlung sollte man noch die Spannweite (Range) der Farben einstellen können. Beispiel: 20°C = grün und 80°C = rot (Range=60°C) oder 35°C = grün oder 55°C = rot (Range=20°C). Offset ist ja jetzt schon einstellbar, fehlt nur noch Range.

==> Gute Idee, ist auf jeden Fall sehr benutzerfreundlich!


Der Tooltip wird nicht aktualisiert, wenn man ihn längere Zeit stehen läßt.

==> Ist mir auch schon aufgefallen, weiß aber nicht, ob das nicht zu vernachlässigen ist.


Mfg sightus
 
Wie ist das "Anti-Pulsing" denn implementiert, denn ich bemerke bei meinem X31 keine Veränderungen wenn ich es aktiviere.
 
Hallo,

das Anti-Pulsing habe ich von diesem Linux-Script versucht in Delphi umzusetzen, anscheinend ohne Erfolg, da ich es auch nicht selbst testen kann.

Code:
INTERVAL=3        # sample+refresh interval
SETTLE_TIME=6     # wait this many seconds long before applying anti-pulsing
RESETTLE_TIME=600 # briefly disable anti-pulsing at every N seconds
...
        setlevel $NEWLEVEL

        sleep $INTERVAL

        # If needed, apply anti-pulsing hack after a settle-down period (and occasionally re-settle):
        if [ ${ANTIPULSE[${NEW_IDX}]} == 1 ]; then 
            if [ $NEWLEVEL != $OLDLEVEL -o $RESETTLE_LEFT -le 0 ]; then # start settling?
                SETTLE_LEFT=$SETTLE_TIME
                RESETTLE_LEFT=$RESETTLE_TIME
            fi
            if [ $SETTLE_LEFT -ge 0 ]; then
                SETTLE_LEFT=$((SETTLE_LEFT-INTERVAL))
            else
                setlevel disengaged # disengage briefly to fool embedded controller
                sleep 0.5
                RESETTLE_LEFT=$((RESETTLE_LEFT-INTERVAL))
            fi
        fi

Mein Code:

Code:
  AP_INTERVAL = 3; // setzt einen Timer auf 3000ms
  AP_SATTLE_TIME = 6; // diese Zeit warten, bis der Anti-Pulse aktiviert
  AP_RESATTLE_TIME = 600; // anti-pulse alle SATTLE_TIME Sekunden kurz deaktivieren
...
procedure OnAntiPulseTimer(newlevel, oldlevel: Byte); // wird nach Controller beschreiben und AP_INTERVAL Sekunden ausgeführt
var
  TimeStamp: Cardinal;
begin
  if (newlevel = 8)or(newlevel = 32) then // Antipulse nach neuem Level 3 oder 5
  begin
    if (newlevel <> oldlevel)or(resattleLeft <= 0) then
    begin
      sattleLeft := AP_SATTLE_TIME;
      resattleLeft := AP_RESATTLE_TIME;
    end;
    if sattleLeft >= 0 then
      sattleLeft := sattleLeft - AP_INTERVAL
    else begin
      WriteControllerByte(OFFSET_FAN, 64); // Spannungskontrolle kurz abschalten
      TimeStamp := getTickCount;
      while (getTickCount - TimeStamp < 500) do begin end; // warte 500ms
      resattleLeft := resattleLeft - AP_INTERVAL;
    end;
  end;
end;

Vielleicht habe ich das auch falsch interpretiert, kann mir da ein Delphi+Perl Freak helfen? ^^

Gruß
Profiler
 
Original von Sightus
@jaydee

Die EC Schreib-Signalisierung sollte auch bei Mute gehen, genauso wie Alarmsystem.

==> Gute Idee

MUTE - sollte jeder selber einstellen können. (Meeting)

- Ich würde sehr deutliche optische Warnmeldungen vorziehen.
- Dann den Alarm-Grund (CPU 99 Grad) in eine Protokolldatei schreiben.
- Wenn innerhalb von x Sekunden der Zustand nicht behoben ist (oder ein zweiter Alarm-Wert erreicht wurde) ThinkPad selbstständig runter fahren.
- Beim nächsten ThinkPad Start die Protokolldatei anzeigen.

Es könnte ja auch sein, dass gerade der Virenscanner die Festplatte untersucht oder die Festplatte defragmentiert wird ohne das man anwesend ist.
Und wenn dann der Lüfter den Geist aufgibt oder ein fetzen Papier auf dem Schreibtisch die Luftzirkulation blockiert wäre die automatische Abschaltung wohl das Beste.

fancontrol müsste also auch noch einschreiten wenn das BIOS die Kontrolle hat und sich trotzdem eine Katastrophe ereignen will.

Gruß
Flexibel
 
@flexibel

Mit "Mute" war ja auch nur gemeint, dass es die Möglichkeit geben sollte, es einstellen zu können. Es sollte nicht standardmäßig aktivert sein!

Eine funktion, das Thinkpad herunterfahren zu können, wenn ein Schwellenwert erreicht wird, erscheint mir sinnvoll. Aber eigentlich kann man, wenn einem 85°C zu viel sind, den Schwellenwert für die BIOS-Übernahme ja heruntersetzen. Wenn mit 65°C für mein TP zu viel sind, dann stelle ich das Programm so ein, dass ab 65°C das Bios übernimmt. Das sollte eigentlich auch reichen.


Mfg sightus


EDIT:

Hab mich nochmal an die Fehlersuche begeben. Ich hatte ja von einem Fehler berichtet, der sich durch ein leeres Fenster auszeichnet. Ich habe das Gefühl, dass er häufuger auftritt, wenn ich die Funktion "Anti-Pulse" und/oder die HDD-Temperatur auslesen lasse. Anbei ein Screenshot, damit man sich darunter was vorstellen kann...
 

Anhänge

  • Fancontrol_bild2.jpg
    Fancontrol_bild2.jpg
    7,2 KB · Aufrufe: 208
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben