Rainer-Rebhan

Schalter für Amazon Echo "Alexa" mit dem WeMos D1R2 Board

WeMo Schalter Emulation mit dem ESP8266 Controller

Funktion und Hardware

Der "intellegente" Lautsprecher Amazon Echo (+ Echo Dot) kann verschiedene sog. Smart-Home Schaltersysteme ansteuern. Mit Hilfe des WeMos D1 Board, eines aufgestecken Proto-Board mit Zusatzhardware und einer Software lässt sich ein Smart-Home-Schalter emulieren. "Alexa" findet diesen Schalter auf Befehl automatisch und kann dann über die Ansage:
Alexa .... die Wohnzimmer Lampen einschalten

diese Funktion ausführen. Falls sie das WeMos D1 R2 Board noch nicht kennen empfehle ich diese Seite. Die Hardware für die Schalter-Emulation kann entweder in einem Hausautomatisierungs-System eingebunden werden (FS20 oder HomeMatic) oder direkt ein Relais schalten. Ich zeige hier die Integration in ein Automatisierungs-System (FS20) mit Hilfe eines Sendemoduls. Damit können bis zu 12 Schalter simuliert werden. Diese Schalter sind in der Hausautom.-Zentrale sichtbar. Weitere Infos zur Hardware für das Homematic-System oder die direkte Relaisansteuerung erhalten sie gerne über eine EMail. Die Hardware besteht aus dem WeMos D1R2 Board und einem aufgesteckten Proto-Board mit folgender Hardware

(!) das OLED Display ist nicht unbedings notwendig und kann entfallen falls alle GPIOs verwendet werden

Der Hardwareaufwand ist also sehr gering. Zum Betrieb wird noch eine Netzteil (z.B. Steckernetzteil) mit 5V (bis 12V) bei ca. 1 A benötigt. Weitere Hardware-Infos gibt es hier in der PDF

Die Programmierung und Emulator Library

Zur Programmierung des WEMos D1 Boards wird die Arduino IDE verwendet. Die Beschreibung können sie auf der Seite zu diesem Board nachlesen. Es wird eine spezielle Bibliothek für die Emulation benötigt. Diese können sie hier (Link: https://github.com/kakopappa/arduino-esp8266-alexa-multiple-wemo-switch) downloaden. Vielen Dank an dieser Stelle an Aruna Tennakoon für die Arbeit und Zurverfügungstellung. Sie sollten diese Bibliothek in ihren Sketchbook Ordner direkt bei den Sketchen kopieren. Mein Programm emuliert 6 Schalter mit unterschiedlichen sog. "Alexa Invocation Name" das sind Namen mit der "Alexa" die Unterscheidung des Befehls vornimmt. Die Namen können kollidieren mit Namen die bereits in Alexa-Befehlen definiert sind - dann kann es zu Verständigungsschwierigkeiten kommen. Sie können mit dem Namen und den "Steuer" -Worten "Einschalten" oder "Ausschalten" den jeweiligen Schalter bedienen. Alexa antwortet dann mit einem OKAY. Mein Programm steuert ein kleines OLED Display an um einige Infos über z.B. die IP Adresse und den Schalter-Status zu bekommen. Dieses Display ist nicht unbedingt notwendig. Zur Ansteuerung des verwendeten (FS20) Sender wird eine zusätzlichen serielle Schnittstelle benötigt. Diese wurde mit einer Software - SoftwareSerial - (Lib ist speziell für den ESP8266) simuliert und belegt 2 GPIO Ports. Verwendet man den 8 Kanal-Sender für die HomeMatic, können 6-8 freie GPIOs zur Ansteuerung verwendet werden. Man muss dann bei 8 Kanälen jedoch auf Display und die Sende-Signal-LED verzichten. Bei der Anpassung des Programms ist zuerst die eigene SSID und Wlan-Passwort einzugeben, dann ist darauf zu achten, dass in der LOOP Schleife keine langen Delays [z.B.: delay(100);] eingebaut werden. Um die Invocation-Namen der Schalter nachträglich bearbeiten zu können, ist ein Webserver integriert der die geänderte Namen im EEprom ablegt. Um diesen Webserver (auf der IP-Adresse) zu starten muss beim Programmstart der Taster (an Input A0) kurz gedrückt werden. Normal - ohne Taste - startet der WeMos Switch. Hier das Programm mit Lib zum Download als Zip

Test und Inbetriebnahme

Haben sie das Programm angepasst, kompiliert und auf dem Board geflasht und gestartet sollte die Zyklus-LED blinken. Falls sie das Display eingebaut haben, sehen sie die SSID und die aktuelle IP des Boards. In der Alexa-App oder auf dem Alexa-Desktop-Programm können sie über Smart-Home die Geräte-Suche aktivieren. Sie sehen dann alle Schalter mit ihren Namen aufgelistet. Nun müssten sich die Schalter über Sprach-Befehle aktivieren oder deaktivieren lassen.
nach oben zurueck weiter