Sprachsteuerung mit Alexa und Node-Red für Homematic CCU

Für die Nutzung von Homematic und Homematic IP Geräten benötigt man als Zentrale entweder einen Homematic Access Point (HAP) oder eine CCU. Der Vorteil der CCU ist, dass man unglaublich viele Details einstellen und Code für alle möglichen Anwendungsfälle schreiben kann. Der Nachteil ist, dass man alles was mit User-Interfac zu tun hat selber bauen muss. Der HAP liefert bereits ein ansehnliches User Interface für Handy oder Tablets und kann auch sofort die Sprachsteurung über Alexa nutzen.

Allerdings ist das ein geschlossenes System und  Geräte z.B. über MQTT oder WLAN anbindet, wird mit dem HAP nicht glücklich. Um diese unterschiedlichen Geräte miteinander zu verbinden habe ich mich mal für Node-Red entschieden. Hier kann ich die meisten Geräte mit unterschiedlichen Standards zusammenführen und zentral steuern. Natürlich kann man diese  auch über IOBroker oder openhab integrieren.

Da ein Amazon Echo Gerät mittlerweile zur Standard-Ausstattung in einem Haushalt gehört, habe ich mich gefragt, wie man die fehlende Sprachsteuerung der CCU mittels Node-Red möglichst einfach und ohne Zusatzkosten realisieren kann.

Lösungen

Die Recherche hat mich zu mehreren Lösungen geführt, die sich für dieses Thema anbieten und die Alexa Sprachfunktionalität in Node-Red verfügbar machen. Hierzu gehören:

Ich habe mich nach kurzem Einlesen für Node-Red Smart Home Control entschieden, zumal die meisten Funktionen für Alexa und Google Home verfügbar sind. Wer das Funktionsprinzip der Lösung kennenlernen möchte, dem kann ich Ben's Place Blog empfehlen.

Node-Red Smart Home Control einrichten

Die Schritte für die Einrichtung auf den Systemen ist in folgendem Dokument schön beschrieben, zu dem ich aber in den folgenden Kapiteln noch Hinweise gebe. Da ich davon ausgehe, dass Node-Red bereits vorhanden ist kann man auf diesen Anleitungsschritt verzichten, ebenso auf die Einrichtung eines MQTT-Servers, wenn man noch keine MQTT-Geräte hat. Das Ganze läuft natürlich auch unter einer RedMatic Installation auf einer CCU.

Zuerst kostenlosen Account erstellen

Unter diesem Link kann der Account erstellt werden.

Zum Testen empfehle ich, nach dem Aktivieren des Accounts direkt ein Gerät in "Smart Home Control" anzulegen. Hierzu tippt man nur auf "Add Device" gibt anschließend Name und Description ein, wählt den Typ und das Interface aus. In meinem Fall möchte ich eine HMIP-Schaltsteckdose per Alexa einschalten an der ein Weihnachtsbaum angeschlossen ist. Ich lege ein Device mit dem Namen "Steckdose Weihnachtsbaum" als Schalter an. Dies bedeutet, dass Alexa auf die Wörter "Steckdose", "Weihnachtsbaum" sowie "An" und "Aus" reagiert.

Zweitems den Smart Home Control in der Alexa App aktivieren

Dazu ist Voraussetzung, dass es bereits einen Alexa Account und eine eingerichtetes Echo-Gerät gibt. Die Anleitung gibt hierzu folgende Vorgehensweise an:

  1. Open Alexa App on your mobile device
  2. Browse to “Skills and Games”
  3. Search for “Node-RED Smart Home Control”
  4. Link your account!

Es werden zum Abschluss automatisch vorhandene Devices gesucht und das voher angelegte Device sollte nun in der Alexa-App angeboten und aktiviert werden. Wenn man mag, kann man dies nun einem Raum zuordnen.

Drittens das Modul in Node-Red einbinden

Hierzu über Einstellungen / Palette verwalten unter dem Reiter nach "Alexa" suchen. Aus der Auswahl das Modul "node-red-contrib-alexa-smart-home" markieren und auf Installation klicken. Es werden anschließend drei neue Nodes installiert.

Nun kann ein neuer Node "Alexa Smart Home v3" auf die Flow-Seite gezogen werden. Nach dem Klicken auf den Node muss als erstes eine Account angelegt werden. Hierzu klickt man einfach auf das Stiftsymbol hinter dem Account Feld und ergänzt in der folgenden Maske den Accountnamen und das Passwort, die man auf der Smart Home Control Seite angelegt hat (Siehe erster Schritt). Sobald man diese Daten angelegt hat kann man durch Klicken auf "Hinzufügen" die Einrichtung abschließen.

Hat man die Daten richtig angegeben und konnte eine Verbindung erfolhgreich aufgebaut werden dann sollte beim Klicken auf das Feld "Device" nun das Gerät auftauchen, was man im ersten Schritt angelegt hat. Ist das nicht der Fall, dann hat die Verbindung nicht funktioniert (i.d.R. Rechtschreibfehler bei Accountnamen oder Passwort) und man sollte die Accountdaten nochmal korrigieren.

Nun ist die Verbindung zwischen Alexa und Node-Red hergestellt.

Steckdose schalten

Wenn man jetzt  protokolliert, welche Daten von Alexa empfangen werden, nachdem man z.B.  "Schalte den Weihnachtsbaum ein" sagt, dann erhält man  per Payload einen String mit dem Wert "ON" zurück, analog für das Ausschalten den Wert "OFF". Nun müssen diese Werte in Befehle für meine HMIP-Steckdose umgewandelt werden. Dazu nutze ich einen Switch, der erst einmal zwischen "ON" und "OFF" diffferenziert und dahinter jeweils einen Change Node, der aus "ON" den Booleschen Wert "True" und aus "OFF" den Boolschen Wert "OFF" macht. Diese Payload schicke ich nun an einen CCU Value-Node. In diesem gebe ich für die Steckdose den Kanal 3 sowie den Datapoint "Status" an. Dies bewirkt, dass der Boolesche Wert der Payload (von vorher) an die Steckdose im Kanal 3 und dem Datenpunkt Status übergeben wird und diese ein- oder ausgeschaltet wird.

Für andere Geräte werden natürlcih andere Parameter verwendet, aber hier geht es um die Darstellung des grundsätzlichen Vorgehensweise.

Weitere Geräte anlegen

Das Anlegen weiterer Geräte funktioniert nun fast genauso. Im ersten Schritt wird unter dem Account in"Smart Home Control" ein neues Device angelegt. Nun muss dieses Alexa bekannt werden. Nach meinen Erfahrungen scannt Amazon zyklisch, ob neue Devices entdeckt werden und fügt diese automatisch zu (bei mir dauert das manchmal bis zum nächsten Tag). Wer darauf nicht warten möchte, muss den Scan von Alexa manuell anstoßen. Hierzu gibt es leider keinen Menüpunkt in der Alexa App. Daher hilft hier folgender Workaround, um den automatischen Scan auszulösen:

In der Alexa App geht man auf "Gerät hinzufügen" und wählt als Gerät "Sonstiges" aus. In den anschließenden Optionen wird nach "Das Gerät hat kein passendes Logo" die Option "Das Gerät muss in einer App des Geräteherstellers eingerichtet werden" ausgewählt und schon erscheint am unteren Bildschirmrannd die Option "Gerätesuche", die man jetzt manuell aktivieren kann.