Für unser Smart-Admin Projekt verwenden wir Nanoleaf Light Panels, um unser Firmenlogo sowie Icinga2 Alarme visuell darzustellen. Dabei steuern wir die Nanoleafs über Curl direkt aus der Shell. Wie das funktioniert, beschreiben wir in diesem Artikel.
Hier im Beispiel wird ein Ubuntu 18.04 Client mit Terminal und curl
verwendet.
Voraussetzungen / Vorbereitung
Die IP Adresse des Nanoleafs muss bekannt sein. Diese kann mit einem Netzwerkscan oder mit der Nanoleaf App ermittelt werden. Als Port für die API wird standardmäßig 16021
verwendet.
1. Nanoleaf API-Key generieren
Als Erstes muss ein API-Key generiert werden, um sich zu authentifizieren. Hierfür öffnen wir ein Terminal für unseren curl POST
Request.
- Auf dem Nanoleaf für etwa 5-7 Sekunden den On/Off Button drücken bis das Netzteil blinkt. Daraufhin innerhalb von 30 Sekunden über das Terminal den
curl
Request abschicken. Richtige IP Adresse eintragen!
curl --location --request POST "http://192.168.x.x:16021/api/v1/new" --data ""
Es wird ein auth_token
zurückgeliefert. Dieser dient als API-Key. Kopieren!
2. Erste Nanoleaf Abfrage über Curl
Nun testen wir mit einer curl GET
Abfrage, ob unser Nanoleaf eingeschaltet oder ausgeschaltet ist. IP Adresse und API-KEY eintragen!
curl --location --request GET "http://192.168.x.x:16021/api/v1/API-KEY/state/on"
Wenn alles richtig eingetragen wurde, sollte nun einer der folgenden Werte ausgeliefert werden.
- Nanoleaf ist eingeschaltet:
{"value":true}
- Nanoleaf ist ausgeschaltet:
{"value":false}
3. Nanoleaf über Curl an/aus schalten
Um das Nanoleaf nun an oder aus zu schalten, muss ein curl PUT
verwendet werden. Bei value
den gewünschten Wert eintragen (true
/false
).
curl --location --request PUT "http://192.168.x.x:16021/api/v1/API-KEY/state" --header "Content-Type: application/json" --data "{\"on\": {\"value\": true}}"
4. Farbe des Nanoleaf über Curl steuern
Anschließend versuchen wir unser Nanoleaf auf Grün zu schalten. Hier zum Beispiel mit dem Farbwert 120.
curl --location --request PUT "http://192.168.x.x:16021/api/v1/API-KEY/state" --data "{\"hue\" : {\"value\":120}}"
Wenn alles funktioniert, sollte das Nanoleaf nun Grün leuchten.
5. Effekte ins Nanoleaf laden
Auch können wir problemlos Effekte bzw. Muster auslesen und verwenden, die wir in der Nanoleaf App erstellt haben.
Liste mit Effekten anzeigen.
curl --location --request GET "http://192.168.x.x:16021/api/v1/API-KEY/effects/effectsList"
Nehmen wir mal an, wir haben einen Effekt „Admin Cube“ erstellt und wollen ihn laden. Dazu benutzen wir einen curl PUT
mit dem Parameter select
.
curl --location --request PUT "http://192.168.x.x:16021/api/v1/API-KEY/effects" --data "{\"select\" : \"Admin Cube\"}"
Um den aktuell eingestellten aktiven Effekt auszulesen, verwenden wir wieder einen curl GET
Request.
curl --location --request GET "http://192.168.x.x:16021/api/v1/API-KEY/effects/select"
6. Fazit
Wie man an den obigen Beispielen sehen kann, lassen sich Nanoleafes mit relativ wenig Aufwand über Curl steuern. Der Kreativität sind dabei keine Grenzen gesetzt.
Unser Tipp: Erstellen Sie Muster und Effekte in der Nanoleaf App und laden Sie diese dann mit einem Shell-Script. Dadurch können Sie auch mehrere Nanoleafs in verschiedenen Räumen ansteuern und z.B. die Farben synchronisieren. Wir lassen zum Beispiel unsere Logos in jedem Raum rot leuchten, sobald ein Alarmzustand in der ADMIN-BOX registriert wird. Dadurch entgeht uns keine kritische Meldung.
Viel Spaß beim Experimentieren!
Gerne unterstützen wir Sie auch bei der Einbindung Ihrer Nanoleafs als Benachrichtigungsquell in Icinga 2. Weitere Informationen finden Sie auf unserer Icinga 2 Monitoring Seite.
Weiterführende Links:
Wer sich tiefer in das Thema „Nanoleaf über Curl steuern“ einarbeiten möchte, findet in der Nanoleaf Dokumentation weitere Befehle und Beispiele.
https://documenter.getpostman.com/view/1559645/RW1gEcCH#4b0facc8-c865-4006-98cb-4c2195a028ad
Nanoleaf in Aktion
Ähnliche Themen
Icinga2 Alarme mit Amazon Echo / Alexa
- Nanoleaf über Curl steuern - 23. August 2019