Mit dem TutoHueList-Skript könnt Ihr die IDs Eurer Leuchten herausfinden, um sie über die API anzusprechen.

Wenn Ihr mit Euren Philips-Hue-Leuchten auf der Kommandozeile herumspielt oder mit der API eigene Anwendungen baut, braucht Ihr immer wieder die IDs der Leuchten. Mit unserem kleinen Helferlein TutoHueList könnt Ihr Euch diese sauber im Terminal auflisten lassen. Wer weiß schon auswändig, welche ID „Lampe Wohnzimmer 2“ hat?

Voraussetzung ist, dass Ihr einen Nutzer für die API angelegt habt, wie wir es hier zeigen.

TutoHueList

Das Abrufen aller Informationen über alle Leuchten ist simpel:

curl -s 192.168.178.119/api/ABCDEabcde1234567890/lights

Sofern Euer Nutzername ABCDEabcde1234567890 ist. Allerdings ist das soweit nur ein großer Zeichenklumpen – die Ausgabe muss aufgehübscht werden. Also werden zunächst die Namen und dann die IDs aufgespürt, dann in zwei Spalten nebeneinander dargestellt und letztlich von überflüssigen Zeichen befreit:

#!/bin/sh

a=$(curl -s 192.168.178.119/api/$1/lights)
echo $a | grep -o -P  "\"name.*?[,]" > 0
echo $a | egrep -o  "\"[0-9]{1,2}\":{1}" >1
paste 1 0 | sed 's/\([":,]\|name\)//g'
rm 1 0

Damit müsst Ihr Euch aber nicht zwangsläufig befassen. Ihr könnt das Tool einfach hier herunterladen und wie folgt aufrufen:

./TutoHueList ABCDEabcde1234567890

Die Ausgabe sieht dann etwa so aus:

hue-leuchten im terminal

IDs und Namen der Hue-Leuchten.

Unter Linux funktioniert das Skript auf Anhieb, da die benötigten Tools in der Regel bereits vorinstalliert sind. Unter Windows könnt Ihr zum Beispiel als Terminal die Git Bash aus dem Git-for-Windows-Paket nutzen. Tools wie curl, grep und paste findet Ihr einzeln oder auch im Paket UnxUtils, das wir Euch hier näher vorstellen.

Skript-Hintergrund

Falls es Euch interessiert, hier ein paar Worte zum Skript – ohne daraus eine allgemeine Einführung in reguläre Ausdrücke zu machen. Ein regulärer Ausdruck (Regular Expression), kurz RegEx, ist im Grunde nichts weiter als ein Suchmuster: Wenn Ihr zum Beispiel alle Mail-Adressen aus einem Texthaufen ziehen wollt, könnt Ihr das so definieren, dass eine Mail-Adresse alles ist, was zwischen zwei Leerzeichen steht, mittendrin ein @ hat und auf . gefolgt von zwei oder drei Buchstaben endet.

Das Skript zieht zunächst mit curl alle Infos. Als Nutzername wird über die Variable $1 das übergeben, was Ihr beim Skript-Aufruf als Argument übergebt.

Dann werden die Namen in die Hilfsdatei 0 geschrieben (jaja, unschön): Grep sucht hier den Teil des Texts, der mit „name anfängt bis hin zum ersten Komma – und das entspricht eben dem Namen der Leuchte.

Dann werden die IDs in die Hilfsdatei 1 geschrieben: Grep sucht hier nach einer ein- bis zweistellingen Zahl in Anführungszeichen gefolgt von einem Doppelpunkt.

paste stellt beide Hilfsdateien in Spalten gegenüber und sed entfernt letztlich alle Doppelpunkte, Anführungszeichen, Kommata und die Zeichenkette name aus den Spalten.

Wenn Ihr nun Spaß an RegExes gefunden habt, haben wir noch was über faule und gierige RegExes. Und natürlich noch ganz viel zum Smart Home. Und ein paar weitere TutoTools warten auch noch auf Euch.

Über den Autor

Mirco Lang

Mirco Lang

Freier Journalist, Exil-Sauerländer, (ziemlich alter) Skateboarder, Dipl.-Inf.-Wirt, Einzelhandelskaufmann, Open-Source-Nerd, Stichwortschreiber. 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.