Netzwerk & IPSmart Home

Anleitung: Philips-Hue-Geräte mit Checkmk überwachen

Dies ist quasi der dritte Teil unserer kleinen Hue-API-Serie: Zuerst habt Ihr Zugriff erlangt, dann gelernt, wie man Hue-Leuchten von der Kommandozeile aus anspricht. Und wie einfach man eigene Checks für Checkmk erstellen kann, haben wir auch schon mal gezeigt. Nun kommt das alles zusammen: Ein Local Check zum prüfen des Status von Hue-Leuchten.

UPDATE 12/2012: Diesen Artikel haben wir jetzt in einer etwas erweiterten neuen Version - das Skript nimmt dann autmatisch alle Hue-Geräte auf und ein Dashboard gibt es auch noch.

Voraussetzung: Ihr benötigt wieder Eure User-ID und den curl-Befehl für die Abfrage der Leuchten (kommt gleich aber auch noch mal).

1. Check-Skript schreiben

Einfacher geht es nicht: Ihr fragt schlicht den Status der Leuchte ab, schaut, ob die Zeichenkette "on":true vorkommt und lasst die Anzahl der ausgegebenen Zeilen zählen. Denn wenn der Status true (also eingeschaltet) ist, gibt es eine Zeile, ist er es nicht (also false/ausgeschaltet), wird keine Zeile ausgegeben. Ihr bekommt als Ausgabe also entweder 1 oder 0 - und das kann dann in Checkmk als OK und CRIT auftauchen.

Zur Erinnerung: Die Ausgabe eines lokalen Checks für Checkmk muss einem bestimmten Format folgen, wie Ihr im Local-Check-Artikel nachlesen könnt. Hier nun das Skript namens hue.sh:

#!/bin/sh
a=$(curl 192.168.178.119/api/123456789ABCDEFG/lights/1 | grep '\"on\":true' | wc -l)
if [ $a = 1 ]
 then
  echo 0 hue1 - Hue 1 ist aktiv.
elif [ $a = 0 ]
 then
  echo 1 hue1 - Hue 1 ist aus.
else
  then
    echo 3 hue1 - Irgendwas ist kaputt.
fi   

Zunächst führt Ihr die besagte curl-Abfrage für die Leuchte mit der ID 1 aus, durchsucht dann die Ausgabe mit grep nach der Statusmeldung und zählt die Anzahl der ausgegebenen Zeilen mit wc -l. Die Ausgabe (0 oder 1) wird dann in der Variablen $a gespeichert.

Es folgt eine simple if-Abfrage: Wenn $a den Wert 1 hat, wird 0 hue1 - Hue 1 ist aktiv. ausgegeben - diese 0 wird dann von Checkmk als OK interpretiert und hue1 setzt dann den Namen für den Service in Checkmk. Dann folgt das Spielchen nochmal für $a ist 0, was den Service auf WARN setzt, sowie für $a ist was anderes, was den Service auf CRIT setzt.

Ihr könnt das Skript direkt im Terminal testen - vorher aber mit chmod +x hue.sh ausführbar machen!

2. Skript in Checkmk integrieren

Lokale Checks müssen in fixe Verzeichnisse kopiert werden, unter Linux ist das /usr/lib/check_mk_agent/local. Anschließend ruft Ihr Euer Checkmk auf und fügt das als neuen Service erkannte Skript wie üblich über WATO/Hosts/Host-Name/Services zum Monitoring hinzu.

check_mk hue
Status einer Hue-Leuchte als Checkmk-Check.

Das Ganze ist jetzt die wohl einfachste Herangehensweise gewesen. Und wenn Ihr wirklich nur ein paar Lampen im Auge behalten wollt - warum nicht. Ansonsten müsst Ihr naütrlich etwas ausführlicher skripten. Vielleicht interessiert Euch auch das Nagios-Plugin Check Philips Hue devices: Das könnt Ihr einfach in der Art

check_hue_connected.sh 192.168.178.119 123456789ABCDEFG lights 1 | grep "Power On" | wc -l

oder genereller

check_hue_connected.sh 192.168.178.119 User-ID Geräteklasse Geräte-ID 

aufrufen könnt. Das Skript bietet auch Zugriff auf Temperatur, Batteriestatus und Verfügbarkeit.

Wir haben noch allerlei weitere Artikel rund um Philips Hue und das Monitoring-System Checkmk.

Mirco Lang

Freier Journalist, Exil-Sauerländer, (ziemlich alter) Skateboarder, Dipl.-Inf.-Wirt, Einzelhandelskaufmann, Open-Source-Nerd, Checkmk-Handbuchschreiber. Ex-Saturn'ler, Ex-Data-Becker'ler, Ex-BSI'ler. Computer-Erstkontakt: ca. 1982 - der C64 des großen Bruders eines Freunds. Wenn Ihr hier mehr über Open Source, Linux und Bastelkram lesen und Tutonaut unterstützen möchtet: Über Kaffeesponsoring via Paypal.freue ich mich immer. Schon mal im Voraus: Danke! Nicht verpassen: cli.help und VoltAmpereWatt.de. Neu: Mastodon

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Schaltfläche "Zurück zum Anfang"