Einen ESP8266/ESP32 mit Hilfe von Alexa steuern

In den letzten Tage und Wochen habe ich mich etwas mit dem Thema beschäftigt, wie man mit Hilfe von Alexa (*) einen ESP8266 oder ESP32 ansteuern kann.

Da das Thema etwas unübersichtlich ist, hier mein Versuch das Thema zu strukturieren.

Grob  kann man zwei Fälle unterscheiden:

  • Der ESP8266/ESP32 simuliert ein anderes Gerät, welches von Alexa unterstützt wird
  • Es wird ein externer Dienst genutzt, der von Alexa unterstützt wird
Simulation eines Gerätes Externer Dienst
Vor- und Nachteile:
👍 Läuft ohne zusätzliche Dienste 👎 externe Dienste und/oder Skills sind notwendig
👎 Beschränkter Funktionsumfang (An, Aus, Prozent) 👍 Größerer Funktionsumfang (siehe Funktionsumfang von Alex-Nachrichten)
👍 Einfache Sprachebefehle 👎 Vor dem Befehl, muss man Alexa mitteilen, welcher Skill genutzt wird “Alexa verwende XXX und …”
 

Beispiele:

esp8266-alexa-wemo-emulator oder Fauxmoesp

 

Diese Lösung simuliert ein Belkin WeMo(*) Gerät. Der ESP kann 16 virtuelle Geräte/Funktionen bereitstellen. Leider nur mit An und Aus Funktionalität.

Sinric

 

Diese Lösung erfordert eine Anmeldung und die Installation eines Skills.

Danach werden diverse Geräte/Funktionen bereitgestellt. Z.B. können Ein- und Ausschalter, Lampen, Thermostate oder Fernseher bereitgestellt werden und dann über die  passenden Sprachbefehle gesteuert werden.

 

Espalexa

Espalexa simuliert eine Philips Hue Bridge (*). Der ESP kann 20 virtuelle Geräte/Funktionen bereitstellen. Neben An und Aus, unterstützt dieser Anzahl auch Helligkeitsstufen von 0% bis 100%.

 

Für mich hat der Funktionsumfang von “Simulation eines Gerätes” nicht gereicht. Ich wollte aber auch nicht neben Amazon noch einen zusätzlichen Dienstleister nutzen.

Ich habe mir also meinen Skill selber zusammengestellt. Da mir die AWS Lambda Function irgendwie nicht gefallen habe, habe ich mich für die Web-Service Variante entschiedenen. Hierbei werden die Informationen vom Skill an den eigenen Server weitergeleitet. Hierfür nutze ich im Moment eine ziemlich gepatchte Version von Alexa-PHP-Endpoint. Ich habe einige der Pull-Requests eingespielt und noch die eine oder andere Änderung vorgenommen.

Da ich Alexa für die Heim-Automatisierung nutze, werden die Daten direkt in MQTT gespeichert.