GeekzeugSmart Home

TutoTools: Philips-Hue-Leuchten samt IDs auflisten

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?

Update 11/23: Wir haben jetzt auch eine etwas aufwändigerer Version auf Python-Basis, mit Fenstern und (vermutlich) mehr Kompatibilität für neuere Hue-Versionen.

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

Natürlich müsst Ihr die IP der Hue-Bridge anpassen! Auch könntet Ihr den Nutzernamen direkt eintragen (statt $1), was die Sache später deutlich einfacher macht. Oder andersrum lights durch eine Variable ersetzen und andere Dinge abfragen. Seht es als Baukasten. 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.

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

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

Schaltfläche "Zurück zum Anfang"
Schließen

Ooopsi!

Bitte deaktiviere Deinen Adblocker.