Temperatur des Raspberry auf der Kommandozeile auslesen

cputempAls Besitzer eines oder mehrerer Raspberry Pis ensteht sicherlich irgendwann das Interesse an der Überwachung der CPU-Temperatur. Insbesondere, wenn die CPU (vielleicht sogar außerhalb des „erlaubten“ Bereiches) übertaktet wird. Die notwendigen Werkzeuge dazu sind bereits in der Standarddistribution Raspian enthalten. Dennoch führen wie immer mehrere Wege zum Ziel.

 

Möglichkeit 1

Der Befehl

vcgencmd measure_temp

liefert eine die Temperatur in folgendem Syntax:

root@himbeere:~# vcgencmd measure_temp
temp=34.2'C

 

Der Befehl „vcgencmd“ bietet aber noch mehr Möglichkeiten:

root@himbeere:~# vcgencmd measure_volts
volt=1.20V
root@himbeere:~# vcgencmd measure_clock arm
frequency(45)=700072000

 

Möglichkeit 2

Es gibt noch eine einfachere Möglichkeit, die Temperatur auszulesen. Zudem ist das Ausgabeformat deutlich besser geeignet, um in Scripts weiterverarbeitet zu werden:

root@himbeere:~# cat /sys/class/thermal/thermal_zone0/temp
33628

Dividiert man diesen Wert durch Tausend, erhält man die aktuelle Kerntemperatur der Himbeere. Dies in einem kleinen Script zusammengefasst:

#!/bin/bash
INPUT=$(awk "BEGIN {print $(/bin/cat /sys/class/thermal/thermal_zone0/temp)/1000}")
echo $INPUT

Diese könnte nun beispielsweise in openHAB eingebunden werden, was in diesem Beitrag beschrieben wird.

 

Einbindung in openHAB (Kurzfassung)

In der Konfigurationsdatei der Items definieren wie ein neues Objekt:

Number TEMP_HIMBEERE "Temperatur Himbeere [%.1f °C]" <temperature> { exec="<[/scripts/rbptemp.sh 60000:REGEX((.*?))]" }

und stellen dies in der Sitemap dar:

Text item=TEMP_HIMBEERE

Sollte, wie in diesem Artikel beschrieben, RRDJ4 eingesetzt werden, kann der Eintrag in der Sitemap auch die Diagramme enthalten:

 Text item=TEMP_HIMBEERE {
   Switch item=CHART_PERIOD label="Zeitspanne" mappings=[0="Stunde", 1="Tag", 2="Woche"]
   Chart item=TEMP_HIMBEERE period=h refresh=300 visibility=[CHART_PERIOD==0, CHART_PERIOD=="Uninitialized"]
   Chart item=TEMP_HIMBEERE period=D refresh=1800 visibility=[CHART_PERIOD==1]
   Chart item=TEMP_HIMBEERE period=W refresh=3600 visibility=[CHART_PERIOD==2]
 }