Trådfri: ESP8266-Lampen-Gateway

Im April kommen die intelligenten Lampen von Ikea auch in Deutschland auf den Markt. Wir zeigen, wie sie sich mit einem Raspberry Pi und ESP8266-Internet-Gateway ins eigene Smart Home integrieren lassen.

In Pocket speichern vorlesen Druckansicht 14 Kommentare lesen
Eine Ikea-Tradfri-Lampe neben einem Breadboard mit ESP8266 und der Fernbedienungsplatine
Lesezeit: 5 Min.
Von
  • Markus Ulsaß
Inhaltsverzeichnis
Mehr Infos

In einigen europäischen Ländern gibt es die smarten Tradfri-Lampen (schwedisch für drahtlos) von Ikea bereits zu kaufen. Dazu gibt es von Ikea eine Fernbedienung, die mit dem Funkprotokoll ZigBee arbeitet. Sie kann zwar Philips-Hue-Lampen und Osram-Lightify-Produkte ansteuern – ohne Bridge und Gateway bleibt die Einbindung in das eigene Heimautomationssystem schwierig.

Mit dem WLAN-Modul ESP8266 und der Platine der Fernbedienung lässt sich allerdings ein eigenes Gateway bauen. Neben einem Raspberry Pi nutzen wir das beliebte IoT-Protokoll MQTT, einen MQTT-Broker (Mosquitto) und die grafische Programmieroberfläche Node-RED, um das Gateway umzusetzen.

  • Trådfri-Lampe/n
  • 1x Trådfri-Fernbedienung
  • 1x ESP8266 auf Breakout-Board
  • 1x Raspberry Pi
  • 1x Breadboard
  • 1x LDO-Regler MCP1700
  • 2x Keramikkondensator (1µF)
  • Kabel

Für das Gateway muss man die Fernbedienung öffnen, da nur die runde, grüne Platine gebraucht wird. Für die Ansteuerung nutzen wir verschiedene Testpunkte auf der Platine und dem weißen Transceiver-Modul. Prinzipiell ist auch möglich, das Transceiver-Modul auszulöten und direkt damit zu arbeiten. Die Farben der angelöteten Kabel haben wir frei gewählt und der Übersichtlichkeit halber durchgängig verwendet.

Pinout des Transceiver-Moduls mit sieben farbig markierten Pins

Die Anschlüsse an VCC (rot) und der Masse (GND, schwarz) ersetzen die Spannungsversorgung durch die CR2032 3-V-Knopfzelle, die unbedingt entfernt werden muss. Für das Dimmen sind Pin 3 (braun, Dimmen -) und Pin 15 (weiß, Dimmen +) zuständig. Pin 2 (gelb) verändert die Farbtemperatur und über Pin 4 (orange) wird der Schalter (An/ Aus) angeschlossen. Der Touchlink Reset läuft über Pin 16 (grün). Pin 13 (blau) führt zum TX-Testpunkt, dessen bisher nicht bekannte Funktion ungenutzt bleibt.

Pinout des ESP-12: Die sieben farbig markierten Pins müssen angeschlossen werden.

Um die Pins ansteuern zu können, verbinden wir sie mit den GPIOs (General Purpose Input/ Output Pins) des ESP8266. Wir haben dazu das Modul ESP-12 benutzt. Es sind aber alle ESP-Module oder Breakout-Boards verwendbar, bei denen die Pins herausgeführt werden. Gegebenenfalls müssen die Pins im Programmcode angepasst werden.

Linearregler für die Spannungsversorgung

In unseren Tests funktionierte die Ansteuerung der Fernbedienungsplatine über den 3,3-Volt Anschluss am ESP-12 gut. Das ESP-Modul sitzt dabei auf einem selbstentwickelten Breadboard-Modul mit separater Spannungsversorgung. Bei Problemen kann auch eine separate Spannungsversorgung der Fernbedienung sinnvollsein. Für eine USB-Versorgung mit 5 Volt haben wir mit dem Transistor und den Kondensatoren einen Linearregler gebaut (siehe Schaltplan). Die Masse (GND) muss dann mit der Masse des ESP-Moduls verbunden werden, damit die Signale richtig erkannt werden.

Für den Code haben wir das mqtt_esp8266-Beispiel aus der pubsubclient-Bibliothek von Nick O’Leary übernommen und um Elemente zur Ansteuerung der verschiedenen Funktionen der Lampen ergänzt. So wird immer, wenn eine Nachricht auf dem Topic ikeaLampe empfangen wird, der entsprechende Wert gelesen und einem Ereignis zugeordnet. Mit:

  if ((char)payload[0] == '2') {
digitalWrite(toggle, LOW);
delay(50);
digitalWrite(toggle, HIGH);
delay(50);
}

wird beispielsweise der Zustand der Lampe von An auf Aus bzw. umgekehrt verändert, wenn auf dem Topic ikeaLampe eine 2 empfangen wird. Folgende Funktionen können auf dem Topic: ikeaLampe angesteuert werden:

  • MQTT 1: Verändern der Farbtemperatur
  • MQTT 2: An/ Aus
  • MQTT 3: Touchlink Reset (Pairing und Unpairing der Lampe)
  • MQTT 4: Erhöhen der Helligkeit
  • MQTT 5: Vermindern der Helligkeit

Beim Touchlink Reset findet, soweit die Lampe bisher noch nicht verbunden war, ein Pairing der beiden ZigBee-Geräte statt. Führt man den Vorgang erneut aus, werden die Geräte wieder voneinander getrennt. Das funktioniert auch bei Geräten wie Philips Hue und Osram Lightify. Man kann diese also in das System integrieren und steuern.

Den gesamten Code können Sie hier herunterladen.

Voraussetzung für das Steuern per MQTT ist ein MQTT-Broker z.B. auf einem Raspberry Pi. Wir haben den Open-Source-Broker Mosquitto benutzt, den wir per Node-RED ansprechen.

Die Trådfri-Ansteuerung über Node-RED


Eine ausführliche Einführung zu Node-RED gibt es Make Special zum Internet der Dinge. In diesem Fall nutzen wird einen Inject-Node, um die entsprechende Zahl für das Kommando zu übertragen und senden dies über den MQTT Output-Node an den MQTT-Broker unter dem Topic ikeaLampe.

Eine Alternative ist die Bedienung der Ikea-Lampen über eine WebApp oder per Buttons. Leider geht dies nur in eine Richtung, die Kommandos funktionierten in unseren Tests aber sehr zuverlässig. Mit der Ikea-Fernbedienung kann man außerdem Lampen wie Philips Hue und Osram Lightify direkt anbinden und über ZigBee ansteuern. Damit benötigt man keine Gateways mehr und kann smarte Heimgeräte ohne Cloud preiswert steuern. (hch)