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 einschaltendiese 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
- Sende-Modul für ein Hausautomatisierungs-System FS20 oder HomeMatic
- oder Relais 5V Spulenspannung
- OLED Display 0.92" mit I2C Anschluss (!)
- 2 LEDs für Sende-Signal und Fehler
(!) 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.