Smart Home: Sprachsteuerung über Alexa mit einem RM Broadlink, Raspberry PI (3B+) über Node Red

SMART HOME: ECHO DOT/ALEXA, RASPBERRY PI UND RM BROADLINK MIT NODE RED STEUERN

Sprachsteuerung mit der Alexa von Infarot- und 433 MHz-Geräten (z.B. Funksteckdosne) mit einem BroadLink RM Pro und einem Raspberry Pi.

Hintergrund:
BroadLink bietet zwar eine App (IHC) an, die man als Skill in Alexa einrichten kann, aber eine Funktionalität der Infarot und 433 MHz Geräte ist nicht gegeben. Bei der Gerätesuche werden die Geräte gefunden, aber wenn man es dann über die Sprachsteuerung oder per App nutzen möchte, dann heißt es „Gerät reagiert nicht“. Das WLAN-Relais (SC1) von BroadLink dagegen funktioniert sehr gut und solide. Vor einigen Monaten habe ich diesen Bug beim Support von BroadLink gemeldet und man hatte mir versprochen, sich um das Problem zu kümmern. Nach einigen Monaten der Stille, habe ich proaktiv bei BroadLink mich nochmal mit meiner Tickenbearbeitungsnummer gemeldet und nach dem Status gefragt: Leider hieß es dann, dass alles gehen müsste. Ich habe es anschließend getestet und es ging nicht. Ich wollte nicht länger warten und habe daher nach einer anderen Möglichkeit gesucht. Dabei bin ich auf das Entwicklerwerzeug Node-RED gestoßen. Die Idee dahinter hat mich überzeugt und deswegen habe ich das als Grundlage für meine Smart Home Zentrale genommen.
Es gibt im PlayStore auch eine App Boadlink RM Plugin. Diese App funktioniert nach einem Update von der Alexa App nicht mehr. Ich habe auch hier den Support vor Monaten kontaktiert. Es gab bisher keine Rückmeldung. Diese App war zwar einfach in der Einrichtung, aber in der Praxis hat die Umschaltung sehr verzögert und träge funktioniert.

Das wird benötigt:
⦁ BroadLink RM PRO
⦁ Raspberry Pi Model 3B+/ Model B V1.2 mit Node-RED Installation
⦁ Alexa Echo Dot 2. Generation (zum Einstellen, 3. Generation ist nur nutzbar, wenn gleichzeitig 2. Generation aktiv ist)

In Node Red folgende Erweiterungen installieren:
⦁ node-red-contrib-amazon-echo
⦁ node-red-contrib-braodlink-control

1.] RASPIAN-INSTALLATION AUF EINEM RASPERRY PI
2.] INSTALLATION VON NODE-RED
3.] OPTIONALE NODES LADEN/INSTALLIEREN
4.] AUFBAU EINES FLOWS MIT DER ALEXA UND BROADLINK (INFAROT, 433 MHz,…)
5.] BROADLINK RM PRO EINBINDEN
6.] GERÄTE AUS DER APP ÜBERTRAGEN
7.] EINEN EIN- UND AUSSCHALTER (SWITCH) INTEGRIEREN
8.] MIT NODE-RED EINEN IR/433 MHZ-SIGNAL KOPIEREN/LERNEN UND SENDEN
FEHLER FAQ

1.] RASPIAN-INSTALLATION AUF EINEM RASPERRY PI

Vorbereitung:
Download und Installation auf einer SD des Betriebssystems Raspian.

Mit balenaEtcher Image auf die SDHC-Karte übertragen. Dieser Schritt ist sehr inutitiv. Einfach das entpackte Image auswählen und Vorgang anstoßen. Das Überspielen bzw. Flashen kann einen Augenblick beanspruchen, abhänging von der SD oder Rechnerleistung.

SHDC-Karte bespielen mit Raspian

Es ist sinnvoll, nachdem man den Raspberry in das Netzwerk eingebunden hat, den VNC für die Remoteverbindung freizugeben. So kann man komfortabel von anderen Geräten sich verbinden. SSH wäre auch sinnvoll, so könnte man sich mit der Konsole per Remote verbinden.

VNC- und SSH-Aktivierung

2.] INSTALLATION VON NODE-RED

Mit dem folgende Terminalbefehl wird Node-RED auf dem Raspberry Pi installiert:

bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
Installationsfortschritt wird visualisiert.

Zum Starten von Node-RED:

sudo node-red -start

Für einen Neustart -restart, zum Anhalten -stop und mit STRG + C kann man wieder das Terminal freigeben.

Um Node-RED direkt beim Systemstart auszuführen, muss man den folgenden Befehl eingeben:

sudo systemctl enable nodered.service

Die Deaktivierung erfolgt mit dem folgenden Kommando:

sudo systemctl disable nodered.service

Jetzt sollte über http://IP-ADRESSE:1880 der Node-RED im Netzwerk erreichbar sein.

Das Interface von Node-RED.

Ich werde an dieser Stelle nicht weiter auf den Aufrau und die Funktionsweise von Node-RED eingehen. Dazu wird es später ein separtes Tutorial geben.

3.] OPTIONALE NODES LADEN/INSTALLIEREN

Die Nodes von für Echo bzw. Alexa gehören nicht zu den Standards. Diese muss man sich, wie um folgenden Fenster dargestellt, installieren.

Über „Palette“ verwalten kann man optionale Nodes aktivieren.
BroadLink-Node installieren.
Alexa-Node installieren.

Nach erfolgreicher Installation sind die folgenden Nodes verfügbar:

Diese Nodes sollten jetzt zusätzlich erscheinen.

4.] AUFBAU EINES FLOWS MIT DER ALEXA UND BROADLINK (INFAROT, 433 MHz,…)

Jetzt kann man einfach die Nodes rüberschieben und miteinander verbinden. Das Node „Amazon Echo Hub“ dient dabei immer als Ausgangspunkt und wird nur einmal benötigt. Das Node „Amazon Echo Device“ ist dann das entprechende Gerät, welches angesprochen werden soll.  Es kann z.B. eine Funksteckdose sein oder ein Fernseher.

Einfacher Aufbau eines Flows mit einer Alexa und einem BroadLink RM Pro.

5.] BROADLINK RM PRO EINBINDEN

Das Node „RM“ ist hier unser BroadLink RM, den wir mit der IP und MAC-Adresse verbinden müssen. Diese Daten kann man sich über das Webinterface des Routers holen:

Die IP-Adresse vom  BroadLink RM sollte statisch sein, da man diese im Node eintragen muss. Eine Änderung der IP würde dazu führen, dass man die IP wieder anpassen müsste.

6.] GERÄTE AUS DER APP ÜBERTRAGEN

Aus der Broadlink-App kann man die entsprechenden Files in Node-RED vom Smartphine importieren. Diese Dateien befinden sich i.d.R. unter „xyx\Phone\broadlink\newremote\SharedData“. Ist der Ordner leer, müsste man ggf. über die App „Teilen“ > „Mit anderen Smartphone im WLAN teilen“ auswählen.

Den Ordner „SharedFolder“ auf den Raspberry Pi übertragen (z.B. per USB-Stick).

Diesen Ordner müssen wir jetzt auf den Raspberry Pi übertragen.  Diese Geräte stehen dann im Node „RM“ direkt zur Verfügung.

Ich habe den Ordner „SharedData“ unter „/etc“ Kopiert.

Um das RM-Node zu konfigurieren, muss man einen Doppelklick darauf machen. Dann bei „Device“ auf den Stift klicken.

Konfiguration des BroadLink RM.

Wenn man das gemacht hat, dann bestätigt man das  und klickt auf „Deploy“. Bei dem nächsten öffnen vom RM sollten die Geräte verfügbar sein.

Node mit entsprechendem Gerät steuern.

7.] EINEN EIN- UND AUSSCHALTER (SWITCH) INTEGRIEREN

Es wäre ja sinnig, wenn man für das Gerät nicht nur eine Stellung hätte. Für diesen Fall kann man einen Switch-Node verwenden.

Mit einem Switch-Node kann man für das entsprechende Gerät aus- oder einschalten.
Jetzt muss man nur noch dem RM Pro mitteilen, was er bei dem jeweiligen Befehl machen soll.

Wenn man vorher das Gerät „Lampe“ in Alexa gesucht und gefunden hatte (oben beschrieben), dann kann man das Gerät jetzt ein- oder ausschalten.

8.] MIT NODE-RED EINEN IR/433 MHZ-SIGNAL KOPIEREN/LERNEN UND SENDEN

Vorher haben wir aus der BroadLink-App die Einstellungen der Geräte übernommen und konnten diese einfach in Node-RED weiterverwerten. Es gibt aber auch die Möglichkeit, dass man ein Signal abfängt. Dafür kann man ganz einfach die Beispiel-Nodes von den BroadLink-Nodes importieren und entsprechend anpassen (IP- und MAC-Adresse des eigenen RM Pro).

Beispiel importieren: „Hamburger“ oben rechts öffnen und anschließen „Import“ klicken.
Unter Beispiele findet man „Learn and send data“.
Das Beispiel wurde importiert.
Aufzeichnung eines Signals im Lernmodus der BroadLink RM Pro.
Die IR-Daten (auch 433 MHz möglich) übernehmen.

FEHLER FAQ

Node-RED zeigt „Verbindung zum Server verloren, Verbindung wird erneut hergestelllt“.

Node-RED ist „abgestürzt“.

Ich habe festgestellt, dass Nodes mit Fehlern das System zum Absturz bringen können. Normalerweise reicht es dann aus, wenn man mit dem Befehl „sudo node-red -start“ Node-RED wieder startet. Es gab aber auch Fälle, wo nur ein Neustart geholfen hat. Mit PuTTY kann man mit dem Befehl “ node-red-stop && node-red-start“ einen Neustart machen.

DER ANGELERNTE CODE WIRD NICHT KOMPLETT ANGEZEIGT IM DEBUG-FENSTER

Wird der Code abgeschnitten und endet mit „…“ dann kann man das über den folgenden Weg eruieren:

In den Eigenschaften des Debugfensters diese Einstellungen vornehmen

Im Terminal den Befehl node-red-log eingeben, damit der Vorgang mitgeloggt wird.

Der Code wird komplett dargestellt und kann herauskopiert werden

3 Replies to “Smart Home: Sprachsteuerung über Alexa mit einem RM Broadlink, Raspberry PI (3B+) über Node Red”

  1. Der Flow zum Anlernen von RF-Devices scheint nicht zu funktionieren (RedMatic 5.5.2, node-red-contrib-broadlink-control 1.0.8)
    Folgende Debug-Messages werden ausgegeben:
    #1 Please keep long press on the remote button until scan finishes.
    #2 Please tap the remote button.
    #3 Broadlink Timeout Received – Closing Device Connection

    Häufig stürzt auch der Server ab…

    1. Danke für den Hinweis, dass es ein Update gab…

      Tatsächlich hatte ich vorher ein Problem, im Learnmodus die 433MHz-Signale abzufangen. Jetzt geht das, nachdem ich das Update installiert habe.

      Bei mir läuft das System perfekt. Kein Absturz in den letzten Monaten und Reaktionszeit (da lokal) sehr schnell.

einen Kommentar senden...

Die E-Mail-Adresse wird nicht veröffentlicht.