Lampe an? Lampe aus? Lampe erreichbar? Für Hue-Geräte lässt sich ganz fix ein simpler Local Check für Check_MK basteln – und zwar so:

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 Check_MK erstellen kann, haben wir auch schon mal gezeigt. Nun kommt das alles zusammen: Ein Local Check zum prüfen des Status von Hue-Leuchten.

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 Check_MK als OK und CRIT auftauchen.

Zur Erinnerung: Die Ausgabe eines lokalen Checks für Check_MK 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 Check_MK als OK interpretiert und hue1 setzt dann den Namen für den Service in Check_MK. 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 Check_MK 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 Check_MK 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 Check_MK-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 Check_MK.

Über den Autor

Mirco Lang

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 ich Dir helfen konnte und/oder Du hier mehr über Open Source, Linux, Bastelkram oder auch Windows-Basics lesen möchtest:
Spendier mir einen Kaffee via Paypal.

Kommentieren:

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.