IKEA TRÅDFRI Leuchten mit Homematic steuern

Willkommen zu einer praktischen Anleitung, die zeigt, wie du IKEAs Smart Home Komponenten (Tradfri und Dirigera) mit einer Homematic CCU und damit auch mit Homematic Tastern steuern kannst. Dieser Artikel richtet sich an Homematic-Nutzer, die ihr System kostengünstig mit IKEA Tradfri Komponenten erweitern wollen, ohne eine weitere Smart-Home Insel aufzubauen. Lerne, wie du diese beiden Systeme effektiv kombinierst, um dein Zuhause smarter und effizienter zu gestalten. Wir führen dich durch die Schlüsselelemente der Integration und bieten dir nützliche Tipps für eine reibungslose Umsetzung. Entdecke die Integration zwischen Homematic und IKEA Tradfri.

Eine IKEA Lampe sowie ein HomeMatic IP 6-Fach Taster.

Voraussetzungen

Bevor wir in die Technischen Details der Integration von Homematic mit IKEA Smart Home eintauchen, ist es wichtig, die grundlegenden Voraussetzungen zu verstehen. Eine direkte, out-of-the-box Integration zwischen Homematic und IKEA Smart Home-Produkten ist derzeit nicht verfügbar. Aber keine Sorge – mit etwas Kreativität und den richtigen Werkzeugen können wir eine effektive Verbindung herstellen. Für diese spezielle Integration nutzen wir die IKEA Dirigera REST API und binden sie über die Homematic-Erweiterung CuXD in die CCU3 ein. Im Ergebnis kannst du IKEA TRÅDFRI Leuchten mit Homematic steuern Tastern oder Programmen steuern.

Hier sind die notwendigen Komponenten, die du benötigst:

  1. Homematic CCU3: Dies ist das zentrale Steuerungselement des Homematic-Systems. Es dient als Herzstück deiner Heimautomation und wird die Verbindung zu IKEA Dirigera steuern.
  2. IKEA Dirigera: Der Dirigera Hub ist ein wesentlicher Bestandteil dieser Integration. Er stellt die neueste Generation der IKEA Smart Home-Hubs dar und bietet im Vergleich zum älteren Tradfri Gateway erweiterte Funktionen, einschließlich der notwendigen REST API.
  3. Das CCU3 Plugin “CUxD” (CUx Daemon): CUxD ist eine Erweiterung für die Homematic CCU3, die es ermöglicht, Geräte und Funktionen zu integrieren, die nicht nativ von der CCU3 unterstützt werden. In unserem Fall verwenden wir CUxD, um die Verbindung zur IKEA Dirigera REST API herzustellen.
  4. Grundlegende Kenntnisse im Umgang mit Kommandozeilen und der Ausführung von Python-Skripten

Wichtig zu beachten ist, dass es unerlässlich ist, den Dirigera Hub zu verwenden. Die älteren Tradfri Gateways bieten nicht die benötigte REST API, die für diese Integration erforderlich ist. Daher funktioniert diese Anleitung ausschließlich mit dem IKEA Dirigera Hub. Mit diesen drei Komponenten ausgestattet, bist du bereit, die beiden Systeme miteinander zu verknüpfen.

Bei dieser Anleitung gehen wir davon aus, dass alle Tradfri Geräte bereits im Dirigera hub bzw. in der IKEA Home Smart App angelernt und das CUxD Plugin auf der CCU installiert ist.

Los geht’s!

Schritt 1: Erstellen eines Dirigera Access Tokens

Der erste Schritt ist das Erstellen eines Access Tokens für die Dirigera API. Dieses Token ist der Schlüssel zur Kommunikation mit dem Dirigera Hub und ermöglicht es uns, Befehle über die REST API zu senden. Um den Token zu generieren, verwenden wir ein Python-Skript von mattias73andersson, welches im Rahmen ein Proof of Concepts (POCs) für diese Aufgabe entwickelt wurde. Dieses Skript ist auf GitHub verfügbar und kann unter folgendem Link gefunden werden: Dirigera Client POC – GetAccessToken.py.

Das Skript führt dich durch den Prozess der Authentifizierung bei deinem IKEA Dirigera Hub und gibt dir den benötigten Access Token zurück. Es ist wichtig, dass du in diesem Skript in den Zeilen 12 und 13 den Platzhalter “<dirigera ip>” durch die IP-Adresse deines Dirigera Hubs ersetzt.

Die IP Adresse deines Dirigera Hubs kannst du unter anderem über folgende Wege ermitteln:

  • Du schaust in der DHCP-Tabelle auf deinem Router nach. Der Dirigera Hub erscheint mit dem Namen “gw2-<12 Stellen der Hub-Seriennummer>“, bspw. gw2-4a1d90249a58
  • Du pingst die den Hostnamen deines Gateways (“gw2-<12 Stellen der Hub-Seriennummer>“, bspw. gw2-4a1d90249a58)

Ist die IP-Adresse im Skript hinterlegt, führst du es aus. Das Skript bleibt mit der Meldung “Wait for button pressed (actionbutton on Dirigera)…” stehen. Drücke an dieser Stelle den Actionbutton auf der Unterseite deines Dirigera Hubs und bestätige anschließend das Skript mit “Enter”.

Das Ergebnis ist eine recht lange Zeichenfolge, welche den Access Token für den Dirigera Hub darstellt. Die Ausgabe sollte in etwa wie folgt aussehen:

python3 GetAccessToken.py
Wait for button pressed (actionbutton on Dirigera)...
eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjYxZmY4Y2ZiMjE1M...

Schritt 2: Auflisten aller Geräte-IDs im IKEA Dirigera Hub

Nachdem du erfolgreich einen Access Token für deinen IKEA Dirigera Hub erstellt hast, ist der nächste Schritt, die spezifischen Geräte-IDs der Smart Home-Geräte zu identifizieren, die du über Homematic steuern möchtest. Jedes Gerät in deinem IKEA Smart Home-System hat eine einzigartige ID, die für die Steuerung und Integration in das Homematic-System notwendig ist. Um diese IDs zu ermitteln, nutzen wir ein weiteres nützliches Python-Skript, das unter folgendem Link verfügbar ist: Dirigera Client POC – ListDevices.py.

Bevor du das Skript ausführst, ist es wichtig, einige Anpassungen vorzunehmen. Ersetze im Skript die Platzhalter <dirigera ip> mit der IP-Adresse deines IKEA Dirigera Hubs und <replace this text with access_token from GetAccessToken.py> mit dem Access Token, den du im ersten Schritt erhalten hast. Diese Änderungen sind essentiell, damit das Skript korrekt mit deinem Dirigera Hub kommunizieren kann.

Dieses Skript greift auf den Dirigera Hub zu und listet alle verbundenen Geräte zusammen mit ihren jeweiligen IDs auf. Die Ausgabe sollte wie folgt aussehen:

{
    "id": "105cc74e-fbc2-47d4-95c0-221d51bbcd57_1",
    "type": "light",
    "deviceType": "light",
    "createdAt": "2023-04-21T16:31:21.000Z",
    "isReachable": true,
    "lastSeen": "2023-12-20T13:56:15.000Z",
    "customIcon": "lighting_floor_lamp",
    "attributes": {
      "customName": "Stehlampe",
      "model": "TRADFRI bulb E27 CWS 806lm",
      "manufacturer": "IKEA of Sweden",
      "firmwareVersion": "1.0.021",
      "hardwareVersion": "1",
      "serialNumber": "9035EAFFFE2459F4",
      "productCode": "LED1924G9",
...

Diese Information ist entscheidend, um eine präzise und zielgerichtete Steuerung der Geräte über Homematic zu ermöglichen. Notiere dir die Tradfri Geräte IDs, die du über Homematic steuern möchtest.

Schritt 3: Anlegen eines virtuellen Geräts im CUxD

Der dritte Schritt in unserem Integrationsprozess zwischen Homematic CCU3 und IKEA Dirigera ist das Anlegen eines virtuellen Geräts in CUxD (CUx Daemon). CUxD ist eine vielseitige Erweiterung für die Homematic CCU3, die es ermöglicht, nicht standardmäßige Geräte und Funktionen zu integrieren. In diesem Fall werden wir ein virtuelles Gerät vom Typ 28 (System) mit der Funktion Exec anlegen. Dieses virtuelle Gerät dient als Schnittstelle, um REST-API Befehle über CURL an den IKEA Dirigera Hub zu senden.

Hier sind die Schritte, um ein virtuelles Gerät in CUxD anzulegen:

  1. Zugriff auf CUxD: Zunächst musst du auf die CUxD-Konfigurationsoberfläche zugreifen. Dies erfolgt normalerweise über das Homematic WebUI unter Einstellungen > Systemsteuerung > Zusatzsoftware. Navigiere in der CUxD-Oberfläche zum Reiter “Geräte”, um ein neues Gerät anzulegen.
  2. Gerätetyp auswählen: Wähle in CUxD die Option, um ein neues Gerät hinzuzufügen. Hier musst du den Gerätetyp 28 (System) auswählen. Dieser Typ ist speziell für systembezogene Funktionen und Integrationen vorgesehen.
  3. Exec Funktion einrichten: Konfiguriere das virtuelle Gerät mit der Funktion Exec. Diese Funktion ermöglicht es dem virtuellen Gerät, externe Befehle oder Skripte auszuführen – in unserem Fall die REST-API Aufrufe für den IKEA Dirigera Hub mit Hilfe von CURL.
  4. Control: Definiert den typen des virtuellen Gerät. Wähle hier “Schalter”.
  5. Gerät speichern und benennen: Gib dem virtuellen Gerät einen aussagekräftigen Namen. In unserem Beispiel legen wir ein Gerät namens “TradfriTest” an. Die jeweiligen Tradfri Geräte werden als Kanäle unter diesem Gerät abgebildet.

Nachdem du dieses virtuelle Gerät eingerichtet hast, hast du eine wichtige Komponente erstellt, die es ermöglicht, Befehle von der Homematic CCU an den IKEA Dirigera Hub zu senden. Im nächsten Kapitel werden wir darauf eingehen, wie du die REST API Calls im virtuellen Schalter konfigurierst, um die Steuerung der IKEA Smart Home-Geräte zu ermöglichen.

Schritt 4: Konfigurieren des virtuellen Geräts in der CCU

Nachdem wir ein virtuelles Gerät in CUxD mit dem Namen “TradfriTest” erstellt haben, ist es nun an der Zeit, dieses Gerät für die Steuerung von IKEA Tradfri Lampen zu konfigurieren. Diese Konfiguration erfolgt direkt in der WebUI der Homematic CCU3, wobei wir spezielle Parameter verwenden, um den Prozess effizient und wiederverwendbar zu gestalten. Die Kanäle des virtuellen Geräts dienen dann als Verknüpfungspartner, um IKEA TRÅDFRI Leuchten mit Homematic zu steuern.

Um das virtuelle Gerät zu konfigurieren, navigiere in der Homematic WebUI zu “Einstellungen > Geräte”. Dort findest du eine Liste aller verbundenen Geräte. Wähle “TradfriTest” aus der Liste aus und klicke auf “Geräte-/Kanalparameter einstellen”, um die spezifischen Einstellungen des virtuellen Geräts anzupassen.

Geräteparameter

Als erstes definieren wir die Geräteparameter. Diese beinhalten Daten, die für alle Kanäle gleich sind. Jeder Kanal wiederum bildet ein Gerät (oder eine Gruppe von Geräten) im Dirigera Hub ab.

  • PARAM1: IP Adresse und Port des Dirigera Hubs, bspw: 192.168.0.89:8443
  • PARAM2: Der Access Token aus Schritt 1
  • PARAM3: JSON zum ausschalten einer Tradfri Lampe*
    • [{~22attributes~22:{~22isOn~22:false} } ]
  • PARAM4: JSON zum einschalten einer Tradfri Lampe*
    • [{~22attributes~22:{~22isOn~22:true} } ]

Die Base64-Kodierung wird verwendet, um einen Bug in der WebUI zu umgehen, bei dem notwendige Anführungszeichen im JSON nicht korrekt verarbeitet werden.
* Update 7. Jan 2024: Einige Sonderzeichen müssen in CUxD durch HEX-Codes ersetzte werden. Daher wurde im JSON das ” durch ~22 ersetzt. Mehr dazu hier: Sonderzeichen CUxD richtig nutzen – keine Probleme mehr mit &, ” und =

Kanalparameter

Als nächstes definieren wir die Kanalparameter. Diese beinhalten – bis auf CMD_SHORT und CMD_LONG – Daten, die spezifisch für den Kanal sind. Jeder Kanal an diesem virtuellen Gerät repräsentiert ein Geräte oder eine Gerätegruppe im IKEA Home Smart.

  • SWITCH|CMD_SHORT: Der Befehl zum Ausschalten einer Tradfri Lampe
    curl -k --location --request PATCH 'https://$_P1$/v1/devices/$C1$' --header 'Authorization: Bearer $_P2$' --header 'Content-Type: application/json' --data ‘$_P3$’
  • SWITCH|CMD_LONG: Der Befehl zum Einschalten einer Tradfri Lampe
    curl -k --location --request PATCH 'https://$_P1$/v1/devices/$C1$' --header 'Authorization: Bearer $_P2$' --header 'Content-Type: application/json' --data '$_P4$'
  • SWITCH|CH_PARAM1: Die IKEA Home Smart Geräte ID aus Schritt 2
    933ebf74-8b1d-4bf7-bfb0-58288bb2421c

ℹ Die URI für Gruppen von Geräten lautet https://$_P1$/v1/devices/deviceSets/$C1$. Damit können mehrere IKEA Geräte gleichzeitig und über nur einen Aufruf gesteuert werden.

Zusammenfassend haben wir in diesem Artikel gesehen, wie die innovative Integration von Homematic CCU3 und IKEA Smart Home-Lösungen realisiert werden kann. Mit den beschriebenen Schritten kannst du nun effektiv IKEA TRÅDFRI Leuchten mit Homematic steuern und so die Beleuchtung in deinem Zuhause auf ein neues Level der Smart Home-Technologie heben. Diese Integration bietet dir nicht nur erweiterte Steuerungsmöglichkeiten, sondern auch die Flexibilität, deine Homematic-Systeme nahtlos mit der Vielfalt der IKEA TRÅDFRI Produkte zu kombinieren. So wird dein Smart Home noch intelligenter, komfortabler und individueller gestaltet.

Updates vom 7. Januar

  • Fehler in der curl URI behoben
  • Hinweis zur Steuerung von Gruppen von IKEA Geräten ergänzt
  • Hinweise zum Ersetzen von Sonderzeichen in CUxD ergänzt

Fragen, Feedback? Diskutiere mit auf Bluesky oder auf X (aka Twitter).

Total
1
Shares