Ich habe mir vor kurzem einen Amazon Dot für 35 EUR zum Spielen gekauft. Mittlerweile verbindet sich Alexa mit meiner Stereoanlage per Bluetooth und spielt ihre Musik dort ab. Ein weiteres Goodie. Amazons Alexa zum Steuern benutzen: Alexa Skill home automation
Nun hat mich interessiert, wie ich meine hauseigenen Geräte ansteuern kann, die ich über SONOFF Relais, NODEMCUs und Arduinos implementiert habe. All diese Geräte kann ich über HTTP Requests ansprechen. Der Woman Acceptance Factor ist beschränkt, weil für die HTTP Requests immer noch über das Handy eine Website aufgerufen werden muss. Nervig mit zwei Einkaufstüten in der Hand. Also liegt es nahe, Alexa zu bitten, doch mal das Licht einzuschalten.
Zwei Varianten sind dazu denkbar:
Variante 1: Man schreibt einen eigenen Skill, was an sich kein Problem ist, aber Amazon muss dazu auf das eigene Heimnetz zugreifen. Entweder via DynDNS oder via ngrok. Ausserdem erwartet Amazon ein „echtes“ Zertifikat. ngrok kostet ein bisschen Geld, sobald man eine solche Lösung für sein Heim ernsthaft betreiben möchte. Der Vorteil ist, dass man auch ein Feedback an Alexa weiterleiten kann. Sowas wie „Alexa, wie ist die Temperatur im Wohnzimmer“.
Variante 2: Amazon kooperiert mit SmartHome-Herstellern und bietet Schnittstellen zu einigen. Dieser Weg funktioniert lokal, ohne eigenes Skill. Einige findige Entwickler haben sich entschieden, das WeMo home automation protocol zu simulieren, dass in Alexa bereits integriert ist. Nach meinem jetzigen Kenntnisstand kann man damit nur ein- und ausschalten und nicht dimmen, aber das reicht zum Spielen vorerst. Jedoch kriegt man kein Feedback, lediglich ein „OK“ von Alexa. Temperaturen kann man also z.B. nicht abfragen.
Ich hab mich für Variante 2 entschieden.
sudo apt-get update sudo apt-get install python-pip sudo pip install requests
Wenn letzteres nicht klappt, dann
sudo pip install requests -i https://pypi.python.org/simple
Damit sind die Voraussetzungen geschaffen. Nun das kleine Paket runterladen und entpacken.
wget "https://github.com/toddmedema/echo/archive/master.zip" unzip master.zip -d echo cd echo/echo-master
Jetzt das Beispiel starten mit
python example-minimal.py
und dann Alexa bitten, „Alexa, suche Geräte“
Im Terminal ist nun erkennbar, was Alexa abfragt.
Man kann dann mit „Alexa, schalte Device ein/aus“ auf dem Terminal kontrollieren, dass das „Gerät“ angesprochen wird.
Genaueres ist hier zu finden.
Ich steuer damit nun meinen Verstärker (ein/aus) und eine Stehlampe (ein/aus). Aber das Ende der Möglichkeiten ist nicht erreicht 😉