Systeminfo anzeigen

Mein openHAB läuft auf einem Raspberry PI. Dies ist eine einfache und güntige Art openHAB zu betreiben, einerseits in der Anschaffung und auch im Betrieb. Ein Raspberry PI 4 mit 4 GB RAM reicht dazu völlig aus, Kostenpunkt ca. 60 CHF. Dazu verbraucht dieser sehr wenig Strom – ca. 5 Watt im Schnitt. Daher dieses System 24/7 Uptime hat, ist dieser Faktor schon auch massgebend bei den Betreibskosten.

Mich interessiert auch, wie das System läuft und wo ev. Engpässe entstehen. Darum hab ich die wichtigsten Werte in die Übersicht von openHAB eingabaut.

Die ersten 3 Angaben sind sehr einfach zu erstellen. Dazu installiert man das Systeminfo Binding und hat gleich eine ganze Palette von Informationen zum System, auf welchem openHAB läuft.

CPU Temperatur

Um die Temperatur der CPU anzuzeigen, braucht es ein bisschen mehr. Zuerst muss das im Linux OS das nötige Paket installieren.

sudo apt install lm-sensors hddtemp

Dies prüft man, indem man auf der Kommandozeile ‘sensors’ ausführt.

openhabian@openhab:~ $ sensors
cpu_thermal-virtual-0
Adapter: Virtual device
temp1:        +60.4°C

rpi_volt-isa-0000
Adapter: ISA adapter
in0:              N/A

Damit der Wert in openHAB einfacher importierbar wird, konfiguriert man den Output ins JSON Format indem man die Parameter ‘-Aj’ hinzufügt.

openhabian@openhab:~ $ sensors -Aj
{
   "cpu_thermal-virtual-0":{
      "temp1":{
         "temp1_input": 61.348
      }
   },
   "rpi_volt-isa-0000":{
      "in0":{
         "in0_lcrit_alarm": 0.000
      }
   }
}

Nun muss dieser Befehl in die Whitelist aufgenommen werden, damit openHAB ihn ausführen kann.

openhabian@openhab:~ $ sudo nano /etc/openhab/misc/exec.whitelist
# For security reasons all commands that are used by the exec binding or transformation need to be whitelisted.
# Every command needs to be listed on a separate line below.
sensors -Aj

So, der erste Teil ist damit erledigt. Nun wechselt man zu openHAB selbst und installiert das Exec Binding. Anschliessend fügt man ein Thing manuell hinzu mit dem + unten rechts in der Things Übersicht. Anschliessend öffnet man das neu erstellte Thing.

Der Befehl, der ausgeführt werden soll, kennen wir schon: “sensors -Aj”

Damit nun der Messwert für die Temperatur aus dem Rückgabewert extrahiert wird, braucht es eine Transformation. Falls nicht schon installiert dann diese ergänzen: JSONPATH transformation

JSONPATH:$.cpu_thermal-virtual-0.temp1.temp1_input

Fast fertig, wer will ändert die Werte für Intervall und Timeout nach seinen Wünschen. Zum Schluss erstellt man für den Channel Rückgabewert noch ein Point und fügt diesen in der gewünschten Seite ein.