Home > Technologie > Home Automation mit Amazon Echo Sprachsteuerung

Home Automation mit Amazon Echo Sprachsteuerung

Advertisement

Home Automation mit Amazon Echo Sprachsteuerung

Im vergangenen Monat veröffentlichte Amazon das Echo - einen kleinen Zylinder, der eine leistungsstarke Spracherkennung ermöglicht.

Das Echo selbst ist Quelle geschlossen. Aber sobald Sie herausfinden, die Echos Geheimnisse, wird es ein unglaublich mächtiges Werkzeug für die Sprachsteuerung, so dass Sie alles in Ihrem Haus oder Wohnung über die Stimme zu steuern, ohne sich um die Komplexität der menschlichen Stimme zu kümmern. (Siehe: Sprachsteuerung vor-Echo - Hinweis: es ist viel schwieriger)

In diesem Instructable, werde ich decken, wie das Amazon Echo verwenden, um jedes Gerät über wifi oder MQTT steuern.

Alles , was Sie brauchen , ist:

  1. Ein Amazon Echo , die mit bis Set Amazon Anweisungen
  2. Ein Raspberry Pi oder andere Computer mit Linux
  3. Der Startercode

Schwierigkeit: Sie werden ein wenig von Python - Programmierung wissen müssen , um die Beispiele zu verstehen.

Benötigte Zeit: 10 - 30 Minuten von Unboxing Alexa.

Hinweis: Diese Instructable ist derzeit Linux-only. Informieren Sie uns, wenn Sie es auf anderen Plattformen mögen - wenn es genug Interesse gibt, betrachten wir es!

Schritt 1: Richten Sie Ihren Server ein

Mit Ihrem Echo und läuft, sprechen wir Hacking und Hausautomation.

Wir sind im Begriff, einen Server zu schaffen, der vorgibt, ein WeMo-Gerät zu sein.

Das Echo integriert sich mit dem WeMo-Hausautomationsprotokoll - sagen Sie einfach "Alexa, entdecken Sie meine Geräte" und es durchsucht das lokale Netzwerk nach WeMo-Geräten. Also geben wir ihm ein Gerät zu entdecken!

1. Installieren Sie die Anforderungen: Python 2.7 , Pip und benötigt Python - Modulen

Sudo apt-get installieren python-pip; Sudo pip installieren Anfragen

2. Laden Sie eine zip des Codes aus dem GitHub Repo

Wget "https://github.com/toddmedema/echo/archive/master.zip"

3. Extrahieren Sie die Zip-Datei

Unzip master.zip -d echo

4. Gehen Sie zum neu erstellten Echoordner

Cd echo / echo-master

5. Starten Sie den Server - Sie sollten einen Debugging-Text anzeigen, der angibt, dass der Server das Polling gestartet hat.

Python beispiel-minimal.py

6. Sprich zu deinem Echo "Alexa: entdecke meine Geräte". Sie wird ein paar Sekunden brauchen, um das neue Gerät zu finden. Wenn sie es nicht das erste Mal findet, versuchen Sie, den Prozess zu töten und neu zu starten und Geräte erneut zu entdecken.

7. Jetzt probieren Sie es aus! Sagen Sie, "Alexa: Gerät ausschalten", oder "Alexa, Gerät auf". Sie sehen True oder False für On / Off, zusammen mit der IP-Adresse des Echos.


Fußnote:

Das Echo kann auch Befehle über die Amazon Cloud mit ihrem neuen Dienst namens Lambda senden. Dies ist ein bequemer Weg, um mit dem Echo zu beginnen, aber nicht groß für Hausautomation. Es erfordert, dass jeder Befehl den Namen des Programms enthält, dh "Alexa, HOME bitten, die Lichter einzuschalten", und es geht auch um eine Netzwerkrundreise zu entfernten Servern, die die Antwortzeit verlangsamt.

Was wir wirklich wollen, ist, lokale Geräte lokal zu steuern, ohne das Präfix - also "Alexa, schalten Sie die Lichter" - weshalb ich das WeMo-Protokoll verwende.

Schritt 2: Kontrolle ALLES!

Home Automation mit Amazon Echo Sprachsteuerung

Das ist alles. Sie haben jetzt einen Server mit Ihrem Amazon Echo verbunden. Sie können nun Ihre Stimme verwenden:

  • Steuern Sie die Lichter, Klimaanlage, sogar Ihren Fernseher!
  • Führen Sie Skripts auf Ihrem Computer aus
  • Umschalten des gesamten Heimautomationsmodus ("Filmmodus", "Partymodus" usw.)
  • Stoßen Sie Ihre Mitbewohner
  • Sparen Sie Strom, indem Sie es einfacher zu deaktivieren Geräte, die Sie nicht verwenden

Wir haben unsere Wohnung eingerichtet, um in jedem Raum ein Echo zu betreiben, das alle unsere Hausautomationsgeräte über das herstellerfreundliche MQTT-Protokoll steuert.

Lesen Sie weiter, um mehr über MQTT zu erfahren und wie Sie mehrere Echos verwenden.

Schritt 3: (Bonus) Verwenden von MQTT, um Geräte zu steuern

MQTT macht die Steuerung von Hausautomationsgeräten mit einem "publisher-subscriber" oder "pub-sub" Framework zu einem Kinderspiel. Mit pub-sub veröffentlichen Sie Nachrichten zu Themen, und alle Geräte, die diese Themen abhören, erhalten diese Nachrichten. So könnten Sie zum Beispiel ein Thema Schlafzimmer-Lichter und veröffentlichen "1" oder "0", um die Beleuchtung ein-oder ausschalten.

Ist hier, wie man den Code benutzt, den ich schrieb, um das Amazonas-Echo mit MQTT zu verbinden:

  1. Verwenden Sie pip MQTT zu installieren , indem Sie ein Befehlsfenster und Typisierung eröffnet: pip install paho-mqtt
  2. Sie können den Test jetzt MQTT Datei mit laufen python fauxmo_mqtt_example.py
  3. Öffnen Sie einen Webbrowser und navigieren Sie zu dem HiveMQ MQTT Websocket - Client
  4. Klicken Sie auf "Verbinden".
  5. Klicken Sie auf "Neues Thema hinzufügen". Geben Sie "livingroom" an Stelle von "testtopic / #" ein und klicken Sie auf Abonnieren.
  6. Sagen Sie "Alexa, schalten Sie die Lichter"
  7. Sie sollten sehen, eine "True" -Nachricht auf dem Thema gepostet!

Ich lasse es als eine Übung, um die anderen Themen zu entdecken, die der Beispielcode verwendet.

Haftungsausschluss: Der Beispielcode verwendet einen öffentlichen MQTT Server , den Sie und läuft so schnell wie möglich zu erhalten, so gehen Sie nicht Ihre Sozialversicherungsnummer zu einem Test Thema veröffentlichen!

Schritt 4: (Bonus) Verwenden mehrerer Echos & Umgang mit Echos

Wenn Sie sich in Ihre neu entdeckten Echo-Mächte verliebt haben, könnten Sie daran interessiert sein, mehr als ein Echo zu verwenden. Sie werden in zwei Fragen, so zu tun - und hier sind die Lösungen für beide:

Zu wissen , wo das Echo ist. Sie das Schlafzimmer Echo nicht wollen , auf die Küche Lichter zu drehen, aber diese Dinge nicht genau eingebauten GPS haben. Stattdessen können Sie die IP - Adresse jedes Echo verwenden sie einen anderen Satz zu bieten Von Befehlen und Steuerelementen.

Check out fauxmo_mqtt_example.py für eine Lösung für diese. Ich registrierte die IP-Adresse gesehen, wenn ich fauxmo_minimal.py lief und hielt es als eine Konstante. Dann wann immer ich möchte, dass verschiedene Echos unterschiedliche Antworten auf denselben Befehl haben, vergleiche ich die IP-Adresse mit client_address in der act () -Funktion des Handlers.

. Echos von anderen Echos Die Mikrofone auf der Echo sind so empfindlich , dass sie oft werden Sie von einem Zimmer abholen weg - auch mit Musik zu spielen! Während unglaublich bequem, wird es auch ein Problem, wenn Sie mehrere Echos rund um das Haus haben.

Um dies zu lösen, fügte ich eine "debounce" -Funktion an den Code (siehe debounce_handler.py), die verhindert, dass der gleiche Befehl mehrmals in schneller Folge aufgerufen werden. Also, wenn das Schlafzimmer AND Küche Echos hören Sie, nur die erste, um den Befehl abzuschicken wird ausgeführt. Welches Echo Sie am lautesten hört und am nächsten ist, verarbeitet die Nachricht schneller, sendet die Netzwerkanforderung schneller und wird bearbeitet - während alle Echos, die leiser Echos hören, länger dauern, um zu verarbeiten und entprellt zu werden. Voila Die Debounce-Funktion ist eingebaut, so dass es eigentlich nichts extra, was Sie hier tun müssen - es funktioniert aus der Box.

Schritt 5: Das ist alles, Leute!

Home Automation mit Amazon Echo Sprachsteuerung

Sie haben nun die Fähigkeiten jedes Gerät in Ihrem Haus zu steuern , mit Ihrer Stimme die Verwendung von Amazon Echo . Go machen unglaubliche Dinge!

Wenn Sie diese Instructable mögen, vergessen Sie nicht, Favorit und folgen Sie uns auf Facebook

Inspiriert von @MakerMusings ' fauxmo Kontrollrahmen.

Related Reading