Homematic
Raspberrymatic – Temperatur des Raspberry abfragen

Raspberrymatic – Temperatur des Raspberry abfragen

Und wieder gibt es Neuigkeiten von Jerome. Mit folgendem Code ist es möglich, die Prozessortemperatur des Raspberry abzufragen und als Systemvariable in die WebUI zu übernehmen.

WICHTIG: Das funktioniert nur bei einem Raspberry, nicht bei der CCU1 oder CCU2. 

Zuerst muss eine Systemvariable vom Typ “Zahl” mit der Einheit “° C” angelegt werden.

Variable

Anschließend erstellen wir ein Programm, indem das Script läuft, bzw. ergänzen ein bestehendes Programm, welches zyklisch abläuft. Mir genügen alle 10 Minuten, da das Thema bereits in mehreren Beiträgen besprochen wurde und auch unter Höchstlast im Sommer selten mehr als 65° C erreicht wurden.

Das Script hier muss dann im “DANN” Bereich eingetragen werden.

string cmdline = "/usr/bin/vcgencmd measure_temp";
string stdout;
string stderr;
system.Exec(cmdline, &stdout, &stderr);
stdout = stdout.Replace("temp=","");
stdout = stdout.Replace("'C","");
dom.GetObject("CPU Temperatur").State(stdout.ToInteger());

Wie immer kann als Ergänzung ganz unten getestet werden, welcher Wert zurückgeliefert wird. Hierzu muss am Ende des Scripts folgende Zeile eingefügt und anschließend auf “Ausführen” geklickt werden.

WriteLine(stdout.ToInteger())

Wenn alles OK ist, dann speichern und je nach Wunsch weiterverarbeiten oder auf der Startseite unter “Benutzerverwaltung” hinzufügen.

Hier noch ein hilfreicher Beitrag, der das ganze etwas tiefer aufgreift. (https://technikkram.net/2017/10/raspberrymatic-ueberwachung-und-auswertung-der-raspberry-pi3-temperatur)

Print Friendly, PDF & Email

2 thoughts on “Raspberrymatic – Temperatur des Raspberry abfragen

    • interne system.exec würde ich nicht nutzen sondern auf CUxD umstellen wegen der Stabilität. 😉

      • Hallo Thorsten,

        wie würde es dann aussehen? Mit der Version von Technikkram funktioniert es bei mir mit Raspberrymatic auf dem Pi3 nicht.

        ! CPU-Temperatur Raspberry Pi3 auslesen mit vcgencmd measure_temp
        ! (c) Werner Weber 10.2017
        string command = “/usr/bin/vcgencmd measure_temp | awk ‘// { printf substr($1, length($1) -5, 4)}'”;
        dom.GetObject (“CUxD.CUX2801001:6.CMD_SETS”).State (command);
        dom.GetObject (“CUxD.CUX2801001:6.CMD_QUERY_RET”).State (1);
        dom.GetObject (“Temperatur Raspberry Zahl”).State (dom.GetObject (“CUxD.CUX2801001:6.CMD_RETS”).State());
        dom.GetObject (“Temperatur Raspberry”).State (dom.GetObject (“Temperatur Raspberry Zahl”).Value().ToString().Substr(0,5));

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.