
Nanoleaf ist eine Familie von Wi-Fi-LED-Leuchten — modulare Wandpaneele, LED-Streifen, Leuchtmittel, Stehlampen und Weihnachtslichterketten —, die alle dieselbe lokale REST-API auf TCP-Port 16021 sprechen. Eine einzige TapHome-Vorlage deckt jedes WiFi-erreichbare Nanoleaf-Produkt ab: TapHome fragt den Controller per HTTP im LAN ab und stellt das gesamte Setup als eine HSB-Leuchte mit Farbtemperatur bereit.
Unterstützte Modelle
| Produkt | Modellcode | Hinweise |
|---|---|---|
| Light Panels (früher Aurora) | NL22 | Ohne Touch |
| Shapes Hexagons | NL42 | Mit Touch |
| Shapes Triangles | NL47 | Mit Touch |
| Shapes Mini Triangles | NL48 | Mit Touch |
| Canvas (Quadrate) | NL29 | Mit Touch |
| Elements Hexagons (Holzoptik) | NL52 | Engerer CCT-Bereich (1500–4000 K) |
| Lines | NL59 | Mit Touch |
| Matter WiFi Essentials (Leuchtmittel, Lightstrips, Weihnachtslichterketten, Stehlampe, A19) | — | Nur Firmware 3.0.10+; strengere Helligkeitsuntergrenze und engerer CCT-Bereich (2127–6535 K) |
Reine Thread-Varianten von Nanoleaf Essentials und das Nanoleaf Skylight werden nicht unterstützt — die Vorlage erfordert einen WiFi-erreichbaren Controller, der die Open API auf Port 16021 spricht.
Gerätefunktionen
Leuchte (HSB + Farbtemperatur)
Die Vorlage stellt eine HSB-Leuchte mit Ein/Aus, Helligkeit, Farbton, Sättigung und Farbtemperatur bereit. In jedem Abfragezyklus (500 ms) sendet das Modul
| |
und speichert das vollständige Geräte-JSON in der benutzerdefinierten Variable StatusJson. Die Lese-Skripte für die einzelnen Eigenschaften parsen dann Felder aus diesem zwischengespeicherten Objekt:
- Ein/Aus —
state.on.value - Helligkeit —
state.brightness.value(0–100), normalisiert auf den TapHome-Bereich 0,0–1,0 - Farbton —
state.hue.value(0–360°) — nur gelesen, wennstate.colorMode == "hs" - Sättigung —
state.sat.value(0–100) — nur gelesen, wennstate.colorMode == "hs" - Farbtemperatur —
state.ct.value(in Kelvin) — nur gelesen, wennstate.colorMode == "ct"
Alle Schreibvorgänge gehen an PUT /api/v1/{authToken}/state mit einem JSON-Body pro Eigenschaft:
| |
Die Vorlage deklariert 1800–6500 K als Farbtemperaturbereich — eine praktische Teilmenge dessen, was die Hardware tatsächlich unterstützt. Werte außerhalb des physischen Bereichs des Geräts werden von der Nanoleaf-Firmware stillschweigend begrenzt (siehe Hinweise und Einschränkungen).
Farbmodus-Gating
Nanoleaf-Controller befinden sich immer in genau einem von drei Farbmodi:
colorMode | Bedeutung |
|---|---|
hs | Farbton/Sättigungs-Modus — Farbton- und Sättigungswerte sind aktiv |
ct | Farbtemperaturmodus — CCT-Wert ist aktiv |
effect | Eine dynamische Szene läuft |
Die TapHome-Leseskripte beachten dies: Farbton- und Sättigungsabfragen geben NULL zurück, wenn sich der Controller im Modus ct oder effect befindet, und die Farbtemperatur-Abfrage gibt NaN zurück, wenn er im Modus hs oder effect ist. Dies verhindert, dass veraltete Werte aus einem anderen Modus in das Dashboard gelangen. Das Schreiben eines beliebigen Farbton- oder Sättigungswerts versetzt den Controller in den hs-Modus, das Schreiben eines CCT-Werts in den ct-Modus — beide stoppen einen laufenden Effekt.
Konfiguration
1. Controller in der Nanoleaf-App koppeln
Montieren Sie die Paneele / Leuchtmittel / den Streifen, installieren Sie die mobile Nanoleaf-App und verbinden Sie den Controller über den App-Kopplungsvorgang mit dem lokalen Wi-Fi-Netzwerk. Notieren Sie sich die IPv4-Adresse des Controllers — die App zeigt sie unter Geräteeinstellungen → Info an, oder sie kann aus der DHCP-Lease-Tabelle des Routers gelesen werden.
Weisen Sie dem Nanoleaf-Controller eine DHCP-Reservierung (oder eine statische IP) zu, damit sich die Adresse nach einer Lease-Erneuerung nicht ändert. Die TapHome-Vorlage speichert die IP in ihren Importparametern und führt keine automatische Erkennung durch.
2. Open API-Token generieren
Die Nanoleaf Open API erfordert eine einmalige Kopplung zwischen TapHome und dem Controller. Die Kopplung erzeugt einen permanenten 32-stelligen auth_token, der Neustarts und Firmware-Updates übersteht.
Halten Sie auf dem Nanoleaf-Controller (kleine Inline-Einheit bei Paneelen, oder das Gerät selbst bei Leuchtmitteln / Streifen) die Ein-/Aus-Taste 5–7 Sekunden gedrückt, bis die weiße LED in einem Muster zu blinken beginnt. Das Gerät befindet sich nun 30 Sekunden im Kopplungsmodus.
Senden Sie innerhalb des 30-Sekunden-Fensters einen leeren
POSTan den Kopplungs-Endpoint — zum Beispiel mitcurl, PowerShell oder Postman:1curl -X POST http://{controller-ip}:16021/api/v1/newDer Controller antwortet mit:
1{ "auth_token": "xxxKJISJCjY2hfAyilpyIOfGixxxx" }Kopieren Sie die 32-stellige Zeichenkette
auth_token.
Wenn das Fenster abläuft, bevor der POST eintrifft, gibt der Endpoint 403 Forbidden zurück — halten Sie die Ein-/Aus-Taste erneut und versuchen Sie es erneut.
Einige Essentials-Bauformen (Leuchtmittel, Streifen) haben keine physische Taste. Starten Sie in diesem Fall die Kopplung aus den Geräteeinstellungen in der Nanoleaf-App — die App aktiviert das 30-Sekunden-Fenster für Sie.
3. Vorlage in TapHome importieren
- Erstellen Sie in TapHome ein neues PacketParser-Gerät aus der Vorlage Nanoleaf RGB light.
- Geben Sie die IPv4-Adresse des Controllers als Importparameter
ipAddressein. Der Port ist fest auf 16021 gesetzt und muss nicht geändert werden. - Öffnen Sie die Geräteeigenschaften, suchen Sie die benutzerdefinierte Variable
authTokenund fügen Sie den in Schritt 2 generierten 32-stelligen Token ein. - Speichern. Das Modul fragt
/api/v1/{authToken}/alle 500 ms ab und füllt die HSB-Leuchte mit dem aktuellen Status.
Wenn der Token falsch ist oder abgelaufen ist, schlägt jede Leseoperation mit 401 Unauthorized im TapHome-Log fehl.
Netzwerkanforderungen
- Nur ausgehendes TCP 16021 vom TapHome CCU zum Nanoleaf-Controller. Keine Cloud-Aufrufe, kein MQTT-Broker, keine HTTPS-Zertifikate.
- Das CCU und der Controller müssen sich im selben LAN / VLAN befinden. Wenn Wi-Fi- und kabelgebundene Netze segmentiert sind, fügen Sie eine Firewall-Regel hinzu, die TCP 16021 zwischen ihnen erlaubt.
- Nanoleaf-Controller werben den Dienst
_nanoleafapi._tcpüber mDNS. Die Vorlage benötigt eine direkte IP, aber mDNS kann zur Erkennung mitavahi-browse -r _nanoleafapi._tcp(Linux) oderdns-sd -B _nanoleafapi._tcp(macOS) verwendet werden.
Die Nanoleaf Open API ist nur HTTP — es gibt kein HTTPS und keine Transportverschlüsselung. Sie ist innerhalb des LAN sicher, darf aber niemals im öffentlichen Internet freigegeben werden. Leiten Sie Port 16021 nicht über den Router weiter.
Hinweise und Einschränkungen
Farbtemperaturbereich hängt von der Modellfamilie ab
Die TapHome-Vorlage deklariert 1800–6500 K als schreibbaren CCT-Bereich. Der zugrunde liegende Hardware-Bereich unterscheidet sich je nach Familie:
| Familie | Hardware-CCT-Bereich | Verhalten außerhalb des Bereichs |
|---|---|---|
| Light Panels, Shapes, Canvas, Lines | 1200–6500 K | Von Firmware begrenzt |
| Elements Hexagons | 1500–4000 K | Von Firmware begrenzt |
| Matter WiFi Essentials | 2127–6535 K | Von Firmware begrenzt; 1800 K liegt unter der 2127-K-Untergrenze, daher begrenzen Essentials auf 2127 K |
Das Schreiben eines Wertes außerhalb des physischen Bereichs des Geräts löst keinen Fehler aus — der Controller verwendet stillschweigend seinen eigenen Grenzwert. Bevorzugen Sie beim Entwurf von Dashboards für Essentials CCT-Werte im gemeinsamen Fenster 2127–6500 K.
Essentials lehnen Helligkeit = 0 ab
Klassische Controller (Light Panels, Shapes, Canvas, Elements, Lines) akzeptieren brightness: 0. Matter WiFi Essentials erzwingen ein Minimum von 1 und lehnen 0 mit HTTP 400 ab. Um eine Essentials-Leuchte oder einen Essentials-Streifen auszuschalten, verwenden Sie den Ein/Aus-Kanal, anstatt die Helligkeit auf Null zu setzen.
Farbton-/Sättigungs-/CCT-Lesevorgänge können NULL oder NaN zurückgeben
Da hs und ct sich gegenseitig ausschließen und beide während eines laufenden Effekts inaktiv sind, geben Lesevorgänge im falschen Modus absichtlich NULL (Farbton / Sättigung) oder NaN (ct) zurück. Dies ist erwartetes Verhalten, kein Fehler. Ein Schreibvorgang für Farbton / Sättigung / ct bringt den Controller in den Modus hs oder ct zurück, und die Lesevorgänge werden fortgesetzt.
Ein Token pro Controller, nicht pro Panel
Ein Shapes- oder Canvas-Layout mit mehreren Panels ist ein einzelnes TapHome-Gerät. Der Auth-Token wird auf Controller-Ebene ausgegeben und deckt jedes an ihn angeschlossene Panel ab.
IPv6-mDNS-Instabilität bei Firmware 8.5.2+
Die openHAB-Community hat berichtet, dass IPv6-mDNS-Einträge bei einigen Controllern mit Firmware 8.5.2+ zwischen ONLINE und OFFLINE wechseln. Wenn die mDNS-Erkennung instabil ist, legen Sie eine feste IPv4-DHCP-Reservierung fest und verwenden Sie die IP direkt — die TapHome-Vorlage verlässt sich ohnehin nicht auf mDNS.
Fehlerbehebung
401 Unauthorized bei jedem Lesevorgang
Der authToken ist falsch, abgelaufen oder wurde widerrufen. Generieren Sie einen neuen Token (halten Sie die Ein-/Aus-Taste 5–7 s und senden Sie POST an /api/v1/new) und fügen Sie ihn in die benutzerdefinierte Variable authToken ein.
403 Forbidden beim Generieren eines Tokens
Das 30-Sekunden-Kopplungsfenster ist geschlossen. Halten Sie die Ein-/Aus-Taste erneut, bis die LED in einem Muster blinkt, und senden Sie dann sofort POST /api/v1/new.
Farbton / Sättigung zeigen NULL im Dashboard
Der Controller ist im Modus ct oder ein Effekt läuft. Schreiben Sie einen beliebigen Farbton- oder Sättigungswert, um den Controller zurück in den Modus hs zu bringen, oder stellen Sie eine Farbe mit der HSB-Auswahl ein. Die Vorlage kann keinen Farbton-/Sättigungswert ableiten, wenn das Gerät keinen erzeugt.
Farbtemperatur liest sich als NaN
Der Controller ist im Modus hs oder ein Effekt läuft. Schreiben Sie einen CCT-Wert, um in den Modus ct zu wechseln, oder stellen Sie eine Farbtemperatur über das Dashboard ein. Wenn ein Effekt läuft, stoppen Sie ihn aus der Nanoleaf-App (oder schreiben Sie einen beliebigen HSB- / CCT-Wert — dies stoppt ebenfalls den Effekt).
Helligkeits-Schreibvorgang schlägt bei Essentials fehl
Matter WiFi Essentials lehnen brightness: 0 ab. Steuern Sie den Ein/Aus-Kanal, um auszuschalten, anstatt 0 in die Helligkeit zu schreiben. Werte von 1–100 werden auf allen Modellen akzeptiert.
Controller fällt bei Firmware 8.5.2+ offline
Wenn das TapHome CCU den Controller wiederholt verliert, weisen Sie eine statische IPv4-DHCP-Reservierung zu und verwenden Sie die IP im Importparameter ipAddress — die IPv6-mDNS-Schicht kann auf diesem Firmware-Zweig instabil sein.
