RaspberryMatic – Überwachung und Auswertung der Raspberry Pi3 Temperatur

Im Internet liest man immer wieder das der Raspberry Pi3 sehr heiß werden soll. Meiner Ansicht nach sollte dies jedoch bei der Anwendung von RaspberryMatic zu keinem Problem führen. Dann schon eher wenn der Raspberry Pi3 übertaktet wird und Anwendungen wie Spiele, Videoserver oder sonstige sehr fordernde Applikationen darauf laufen.

Ich denke da ist RaspberryMatic eher als harmlos anzusehen. Um diese Meinung zu bestätigen, möchte ich euch in diesem Artikel beschreiben wie ihr die aktuelle Temperatur der Pi3 ermitteln und auf der Startseite der WebUI anzeigen könnt. Zusätzlich könnt ihr die Temperatur mit einem Konsolenprogramm überwachen und euch informieren lassen, wenn sie einen kritischen Wert erreicht.

Allgemeine Informationen zur CPU-Temperatur

Wenn die Prozessor-Temperatur zu hoch ist, kann das schlimme Folgen haben. Im Internet liest man immer wieder das der Raspberry Pi3 sehr heiß werden soll. Ist die Temperatur der Raspberry Pi3 zu hoch, sind die Konsequenzen mindestens ein höherer Stromverbrauch. Deutlich schwerwiegender sind Folgen wie der Absturz des Systemes, oder eine so starke Beschädigung, dass ihr eure Raspberry Pi3 austauschen müsst. Ich versuche euch in diesem Artikel zu erklären, in welchem Temperaturbereich sich ein Raspberry Pi3 befinden sollte und gebe ein paar Tipps was bei zu hohen Temperaturen gemacht werden kann.

Vorab möchte ich aber sagen, das ihr euch um eure Raspberry PI3 mit RaspberryMatic keine Sorgen machen müsst. Trotzdem ist es kein Fehler zu wissen wie heiß der Prozessor wird.

Pi3-Temperatur: Wie hoch darf sie sein?

  • Da vom Hersteller selbst keine genaue Angabe gemacht wird, was die maximale Temperatur angeht, musste ich entsprechende Informationen recherchieren. Im Internet wird für die Raspberry Pi3 als unschädliche Temperatur eine Range zwischen -20 bis +80 Grad Celsius angegeben.
  • Im Leerlauf bzw. geringer Last liegt die normale Temperatur der Pi3 ungefähr zwischen 30 bis 50 Grad Celsius.
  • Sollte also die Temperatur eurer Raspberry Pi3 die oben angegebene Temperatur von 80 Grad Celsius überschreiten, dann ist sie zu hoch und ihr müsst euch Gedanken über ein Kühler Konzept machen.
  • Auch das verwendete Gehäuse hat mit Sicherheit einen Einfluß auf die Temperatur des Raspberry Pi3.
  • Wenn die Raspberry Pi3 nicht übertaktet oder anderweitig modifiziert wird, müsst ihr euch über die Temperatur keine großen Sorgen machen.




Motivation und Use Case

Als mir der Gedanke kam die Temperatur des Raspberry Pi3 zu überwachen hatte ich zuerst die Idee, den vorhandenen HomeMatic Funk-Temperatursensor einzusetzen. Dieser hat einen kleinen Sensor, der leicht auch in einem Gehäuse unterzubringen wäre. Ich hatte eine entsprechende Testinstallation dafür auch bereits aufgebaut, ein Diagramm erstellt und ein paar Tage laufen lassen. Da mir die Temperatur ein wenig zu niedrig erschien, habe ich überlegt ob es nicht noch andere Möglichkeiten gibt. Ich wusste das es einen Befehl gegeben hat, mit dem es möglich war, bestimmte Systeminformationen anzuzeigen.  Aber es hat dann eine Weile gedauert bis ich ihn wieder gefunden habe.

Raspberry Pi: Systeminformationen ermitteln

Wenn wir uns mittels SSH auf der Raspberry Pi3 als root anmelden, können wir auf der Kommmandozeile verschiedene Systemwerte und Hardware-Informationen auslesen. Diese Informationen stehen an verschiedenen Stellen. Daher gibt es leider auch kein Tool, das alle Informationen über das System auswerten kann. Teilweise braucht man verschiedene Tools, um diese Informationen auszulesen.

Im konkreten Fall ist dies das folgende Programm: vcgencmd

Und das Beste ist, das es in den neueren Versionen von RaspberryMatic bereits vorhanden ist. Wir müssen uns also keine Gedanken um eine nachträgliche Installation machen.

Zu finden ist es in dem folgenden Verzeichnis im RaspberryMatic: /usr/bin/

Neben der Möglichkeit die CPU-Temperatur auszulesen ist es auch möglich die CPU-Spannung oder den CPU-Takt auszulesen.

Aber in diesem Artikel geht es ja um die CPU-Temperatur und diese kann man sich mit dem folgenden Befehl über SSH anzeigen lassen.   vcgencmd measure_temp

Wie bereits in anderen Artikeln erwähnt, habe ich gute Erfahrungen mit der Windows Software WINSCP gemacht. Ich komme damit sehr gut zurecht, weil es mir auch den VI Editor ersetzt, der immer noch ein wenig gewöhnungsbedürftig ist. Aber hier benötigen wir keinen Editor, und SSH auch nur um zu Testen was der Befehl uns anzeigt. Natürlich könnt ihr auch über Putty eine SSH Verbindung herstellen.

Ein- bzw. Ausgabe des Befehls zur Abfrage der CPU-Temperatur

Wie ihr in dem obigen Screenshot sehen könnt beträgt die aktuelle Temperatur meiner CPU im Raspberry Pi3 44,0 Grad Celsius. Also ein durchaus moderater Wert und kein Grund zur Besorgnis.

Damit wäre der erste Schritt getan. Es existiert eine Möglichkeit mit Bordmitteln von RaspberryMatic die CPU-Temperatur auszulesen. Wir benötigen also keine zusätzliche Hardware oder sonstige Hilfsmittel.

Systemvariablen anlegen

Um die Ausgabe der Systemabfrage in HomeMatic auszuwerten bzw. anzuzeigen, müssen zwei Systemvariablen erstellt werden. Es würde auch mit einer gehen, ich möchte aber auf der Startseite der WebUI keine Temperatur Angabe mit x-Kommastellen haben. Daher muss der Zahlenwert aus der ersten Variablen in einen Zeichenwert umgeschrieben werden. Wie und warum genau ich das mache wird dann später im Skript klar.

Als erste Systemvariable ist eine vom Typ Zahl mit dem Namen „Temperatur Raspberry Zahl“ anzulegen:

Dann benötigen wir noch eine zweite Systemvariable mit dem Namen „Temperatur Raspberry“ vom Typ Zeichenkette:

Im folgenden Screenshot seht ihr die beiden Systemvariablen noch einmal gemeinsam:

Die Variable vom Typ Zahl dient uns später zur Überwachung der Temperatur und einer Alarmierung wenn der Wert zu hoch ist. Die Variable vom Typ Zeichenkette verwende ich dazu, den aktuellen Wert auf der Startseite der WebUI anzuzeigen.

Skript Erstellung

Nun bestand die nächste Aufgabe darin ein Skript zu erstellen mit dem wir diesen Systembefehl absetzen können, die Ausgabe in ein verwertbares Format bringen und letztlich den Wert in HomeMatic Systemvariablen zu schreiben. Diese Variablen müssen einen auswertbaren Inhalt haben, damit wir in einem nächsten Schritt auch über HomeMatic auf eine erhöhte Temperatur reagieren können.


Wie bereits in dem Artikel über das AddOn CUxD beschrieben, sollte man solche Aufgaben aus Gründen der Stabilität mit CUxD erledigen. In diesem Artikel habe ich beschrieben wie ihr CUxD installieren, ein virtuelles Gerät definieren und nutzen könnt.

Nachfolgend findet ihr das mit Hingabe erstellte kleine Skript:

Konsolen Programm Erstellung

Um das oben aufgeführte Skript regelmäßig auszuführen erstellen wir ein kleines Konsolenprogramm in der WebUI. Als Zyklus habe ich mal 10 Minuten ausgewählt. Dies sollte für eine Überwachung ausreichen. Wenn sich die Temperatur unerwartet schnell verändert, kann man ja einfach den Ausführungszyklus anpassen.

Wenn euch der Ausdruck des Programmes und die Übersichtlichkeit gefällt, dann lest den folgenden Artikel: „Dokumentation und Archivierung von Programmen“.

Mit diesem Programm werden die beiden oben definierten Systemvariablen mit den gewünschten Werten gefüllt. Diese sehen dann wiefolgt aus:

Systemvariablen anzeigen und auswerten

Nachdem wir nun die Werte der Temperatur regelmäßig ermitteln, müssen wir eine Möglichkeit schaffen, diese zum einen anzuzeigen, zum anderen zu sammeln, um später einen Trend zu erkennen. Des Weiteren sollte eine Überwachung der Werte mittels Programm erfolgen, um Warnmeldungen aufs Handy zu senden, wenn ein Schwellwert überschritten wird.

Über die WebUI Funktion Startseite>Einstellungen>Benutzerverwaltung kann man Einrichten welche Systemvariablen auf dem WebUI Startseite angezeigt werden:

Das Ergebnis sieht dann wiefolgt aus:

Automatische Alarmierung bei Schwellwerten

Um mich rechtzeitig informieren zu lassen wenn die Temperatur ungewöhnlich stark ansteigt, habe ich für mich einen Schwellwert von 70 Grad Celsius festgelegt. Wird dieser erreicht oder überschritten, sende ich mir eine PUSH Nachricht über Telegram  auf mein Handy. Wie das über den CUx-Daemon geht, findet ihr hier.

Hier findet ihr das entsprechende Programm:

Seit ein paar Wochen verwende ich teilweise auch PUSHOVER zum Versenden von PUSH-Nachrichten auf mein Handy und halte dies für die bessere Variante. Dies bietet viel mehr Möglichkeiten wie beispielsweise verschiedene Töne oder Prioritäten. Detaillierte Informationen dazu findet ihr hier in Philipps Artikel.

Weitergehende Analyse der Temperatur

Mit den bisher vorgestellten Möglichkeiten können wir die CPU-Temperatur unserer Raspberry Pi3 im Auge behalten bzw. werden informiert wenn sie ungewöhnlich stark ansteigt.

Hier möchte ich euch noch eine Möglichkeit vorstellen, die Temperatur im Bedarfsfalle genauer zu analysieren, um einen Grund zu finden, warum sie ansteigt.

Dazu müsst ihr als erstes die folgende Systemvariable „protokoliert“ setzen. Dadurch werden die Temperatur im Zyklus der Programm Durchführung in das Systemprotokoll geschrieben.

ACHTUNG:  Bei einem Zyklus von 5 bis 15 Minuten werden sehr viele Sätze in das Systemprotokoll geschrieben. Daher solltet ihr das Systemprotokoll regelmäßig löschen, nachdem ihr die Daten zur Auswertung exportiert habt.

Auszug aus Systemprotokoll mit gesetztem Filter „Temperatur“

Wenn ihr die Daten aus HomeMatic exportiert, könnt ihr im Excel entsprechende Grafiken erstellen, welche den Verlauf der Temperatur beispielsweise im Laufe eines Tages darstellt.


Man kann dann sehr einfach feststellen wo Spitzen der Temperatur existieren und dann nach der Ursache forschen, um entsprechende Maßnahmen zu ergreifen. Was das konkret bedeutet, versuche ich im nachfolgenden Absatz zu beschrieben.

Temperatur zu hoch – Maßnahmen

Sollte die Temperatur stark ansteigen und in einen kritischen Bereich gelangen, muss man aber zum einen die Ursache dafür finden und im zweiten Schritt wenn nötig ein Kühler Konzept erstellen.

Zur Ursachenforschung:

Jeder von uns hat bestimmte Zeiten wo viele Aktivitäten im HomeMatic stattfinden, sei  es durch das Öffnen/Schließen der Rollläden, Ein-/Ausschalten von Beleuchtung oder die Auswertung von Steckdosen mit Leistungsmessung (Kontrolle Waschmaschine/Trockner).

Eine weiterer Punkt könnte sein, das bestimmt Skripte zu bestimmten Tageszeiten laufen. Hier wäre ein Beispiel die Berechnung von Feiertagen.

Kühlungsmöglichkeiten:

Tauchen die Temperaturspitzen genau in diesen Zeiten auf, so sollte man sich Gedanken machen, ob eine zeitliche Entzerrung der Aktionen möglich ist.

Wenn nicht, wäre mein erster Tipp, einen passiven Kühler auf die Bausteine der Raspberry Pi3 setzt. Ein Test hat ergeben, das es dabei keine Rolle spielt ob diese aus Aluminium oder Kupfer sind. Der Unterschied in der Kühlung ist zu vernachlässigen.

Es existiert auch noch die Möglichkeit einen Lüfter auf die CPU zu setzen. Das wäre für mich allerdings die letzte Möglichkeit. Denn das bedeutet zusätzlichen Stromverbrauch, die Raspberry wird im Betrieb lauter und der Lüfter passt auch nicht in jedes Gehäuse. Was aber glaube ich den größten Hinderungsgrund darstellt, ist die Position des Lüfters. Dadurch wird die Kombination CPU und Lüfter so hoch, das das HomeMatic Funk Modul nicht mehr passt.

Aber natürlich kann dies jeder von euch selbst entscheiden. Erlaubt ist was gefällt.

Fazit

Meine bisherigen Auswertungen der Raspberry Pi3 Temperatur haben deutlich gezeigt, das meine Aussage vom Beginn dieses Artikels korrekt ist.

Mit RaspberryMatic als Applikation auf einer Raspberry Pi3 kommt das System bei weitem nicht an seine Leistungsgrenze und somit ist auch das Thema der zu hohen Temperatur zu vernachlässigen. bei mir steigt die Temparatur auch in den sehr aktiven Zeiten meiner Smart Home Aktivitäten nicht über 45 Grad Celsius. Ausnahme ist hier ein Neustart des Systemes. Da erreicht die Temperatur auch kurz mal die 48 Grad Celsius. Damit befinde ich mich aber absolut im unkritischen Temperaturbereich der Raspberry.

Trotzdem finde ich es cool die Temperatur zu überwachen und über kritische Werte  informiert zu werden.

Ich hatte bei mir schon vor dem Test Kühlkörper aus Aluminium aufgeklebt. Daher kann ich keine Werte liefern, wie die Temperatur ohne passive Kühlung aussieht.

Aber mit diesem Artikel habe ich euch die Möglichkeit gegeben dies bei eurer jeweiligen Installation selbst zu testen. Viel Spass dabei.

Passende Beiträge


3 Comments

  • Mathias

    5. November 2017

    Ich habe mal die Temperatur ohne Kühlkörper gemessen.
    Bei meiner Raspberrymatic liegt die Temperatur 2,4 Grad höher als bei Dir.
    Also auch zu vernachlässigen.
    Gruß,
    Mathias

    Reply
    • Werner

      5. November 2017

      Hallo Mathias
      Danke für die Info.
      Gruß Werner

      Reply
  • Mathias

    31. Oktober 2017

    Hallo Werner,
    Das ist wirklich eine coole Sache.
    Nun möchte ich, dass die Raspberrymatic nur einen aktuellen Wert schreibt. Ein Trend ist hier für mich zu vernachlässigen.
    Ich benutze auch noch den Logserver „CCU-Historian“. Da wäre ein protokollieren der Kerntemperatu doppelt gemoppelt, weil das ja schon im CCU Historian passiert.
    Gruß,
    Mathias

    Reply

Schreibe einen Kommentar