Tutonaut
check_mk hue
Status einer Hue-Leuchte als Check_MK-Check.

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

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.

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 Du hier mehr über Open Source, Linux, Bastelkram oder auch Windows-Basics lesen und Tutonaut unterstützen möchtest:
Spendier mir einen Kaffee via Paypal. Schon mal im Voraus: Danke!

Nicht verpassen: cli.help

Kommentar schreiben

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

Do NOT follow this link or you will be banned from the site!