Website-Icon Dein Smart Home Blog

Science Fiction? Sprachsteuerung mit Google now im Smart Home - so gehts!

Ok Google Sprachsteuerung

Bild:daniel

In allen tollen Sciense Fictions Filmen, schaltet das Haus das Licht oder den Fernseher per Sprachkommando ein. Inzwischen ist Sprachsteuerung schon lange keine Zukunftsmusik mehr. So kannst auch du deinen vier Wänden Kommandos erteilen!

Wie funktioniert es? Geht das auch bei mir?

Für die Spracherkennung nutzen wir Google Now - ein äußerst zuverlässiger und ausgereifter Dienst. Voraussetzung ist eine ständige Internetverbindung und bestenfalls ein modernes Android Tablet oder Smartphone. Google Now an sich kann zwar Text erkennen und auch ein paar Dinge auf dem Telefon erledigen (Bsp. SMS oder Termine erstellen) aber wir wollen mehr. Was nun, wenn wir diesen Service für uns arbeiten lassen können und eigene Sprachkommandos programmieren? Genau das geht. Und es wird noch besser. Mit den neuen Google Updates kann die Sprachsuche via “OK Google” gestartet werden. Das Telefon muss also nur am Netz Stecken, bedienen oder anfassen müssen wir es später nicht mehr. Ziemlich cool, oder?

Ihr braucht natürlich irgendeine Art von Smart Home Zentrale. Meine Tutorial Reihe zum Raspberry Pi wäre ein günstiger Anfang und funktioniert. Ich habe mich hier mit der Fibaro Home Center 2 beschäftigt. Diese ist schon recht alltagstauglich und bietet Unmengen von Möglichkeiten. Leider auch zum entsprechenden Kostenpunkt.

Die passende Software - Das Herz eurer Spracherkennung

Um die entsprechenden API Befehle an der Zentrale auszuführen nutzen wir Tasker mit RESTask. Bei Fibaro kann man fast alle Funktionen via Browserzeile ausführen. Das heißt: Was ihr an der Zentrale via Web-GUI klicken könnt, kann auch via Sprachbefehl aktiviert werden. Es kommt noch besser: Eigene Scripts können via Kommando gestartet werden. Wie wäre es z.B. mit einer Nachtszene oder einem Kino-Modus? Das ist alles kein Thema. Ich zeige euch, wie es geht:

Um die Kommandos und Abfolgen via Sprache zu aktivieren wird das Plugin AutoVoice verwendet. Auch hier haben wir ein sehr mächtiges Tool. Im 2. Teil dieses Tutorials werde ich etwas mehr ins Detail gehen, was hier alles noch möglich ist. 

Materialaufwand noch einmal zusammengefasst:

Installation und Einrichtung in wenigen Schritten

Am Computer

Fangen wir einmal mit der Fibaro API an. Diese ist eigentlich recht einfach aufgebaut. An einem Beispiel möchte ich die Struktur erklären. Der folgende Aufruf schaltet einen Schalter, einen Stecker usw. ein:

Eingesetzt werden müssen die IP eurer Fibaro Zentrale und auch die ID des Steckers. Beides könnt ihr über das Webinterface erfahren:

Fibaro DeviceIDs anzeigen

 

Das “turnOn” am Ende steht hier logischerweise für Einschalten. “turnOff” an gleicher Stelle deaktiviert die Komponente. Ich denke, damit sollte jedem das Grundprinzip klar sein. Weiter geht es mit ein paar anderen Aufrufen:

Viel weiter würde ich erst einmal nicht gehen. Es gibt auch die Möglichkeit ganze Werte zu manipulieren. Die Farbe bei LED Stripes oder globale Variablen. Es ist aber übersichtlicher, dies in Scripts zu schreiben und sie dann auszuführen. Änderungen können dann auf der Zentrale vorgenommen werden und man muss nicht am Tablet/Smartphone herumexperimentieren. Sicherer ist es zudem auch noch.

Einrichtung auf dem Smartphone bzw. Tablet

Erst einmal wird alles installiert. Google Now, Tasker, RESTask und AutoVoice. Fangen wir mit einem einfachen Beispiel an: Die Raumbeleuchtung per Sprachbefehl ein und ausschalten. Dabei erst einmal zur Funktionsweise. AutoVoice erwartet keinen exakten Satz, sondern jeder Aktion werden Schlüsselwörter oder Phrasen zugeordnet. Wenn also der Befehl als “Licht ein” hinterlegt wird, funktioniert “Ich möchte das LICHT EINschalten” oder “Bitte das LICHT EIN” auch. Nicht funktionieren wird: “Schalte die Lampe an” oder “Bitte das Zimmer beleuchten”. Wie wir das umgehen, zeige ich euch weiter unten.

Im ersten Schritt konfigurieren wir AutoVoice auf Google Now. Dazu einfach AutoVoice starten, “Google Now Integration” auswählen und dann noch “NOT ENABLED” klicken. In der Bedienungshilfe nun AutoVoice auf “An” stellen. Die angezeigte Warnmeldung ist in Ordnung. Als nächstes aktivieren wir das “OK Google” Feature. Im Android Startmenü “Google Einstellungen” auswählen. Dort “Suche & Google Now”, dann “Sprache” anklicken. Ins Menü “OK Google Erkennung” und dort alles aktivieren und gegebenenfalls den Anweisungen folgen.

In der Praxis: Ein Beispiel zum nachbauen

Dazu starten wir Tasker. Bei "Profile" erstellen wir ein Neues mit “+” und wählen “Ereignis” aus dem Popup-Menü. Weiter gehts:

Jetzt kommt die Stunde der Wahrheit. Testen wir unsere Kommandos doch einfach. Licht (manuell) ausschalten um in Ausgangssituation zu gelangen und mit “Okay Google, schalte das Licht ein” sollte nun Tasker den Befehl übertragen. Das Licht geht an. Herzlichen Glückwunsch, der erste Schritt ist geschafft.

Diese Vorlage sollte es euch nun ermöglichen diverse Sprachkommandos für Komponenten und Scripts zu programmieren. Eurer Kreativität sind keine Grenzen gesetzt. Wie wäre es z.B. mit Wake On LAN für den PC und dem Sprachkommando “Okay Google, schalte meinen Computer ein”?

[youtube url="http://youtu.be/TDKy9pyCuHw" autohide="1" controls="0" hd="1"]

Für Experten: Was geht noch? - RegEx - Scripts

AutoVoice arbeitet auch mit sogenannten reguläreren Ausdrücken (RegEx). Ist diese Option aktiv, können wir per Sonderzeichen unsere Spracherkennung bzw. unseren Auslöser weiter verfeinern. Ich habe am Anfang neben 2 funktionierenden auch 2 nicht erkannte Beispiele genannt. Folgender Ausdruck erkennt alle 4 Spracheingaben: (licht|lampe|zimmer) (ein|an|beleuchten). Der “|” ist kein kleines L oder großes i sondern ein Trennstrich. Er steht hier für “oder”. Es werden also alle Befehle, welche irgendeinen Begriff aus der 1. und einen Begriff aus der 2. Klammer enthalten erkannt. Hier sollte man schon einmal weiter denken. Man könnte auch auf nur ein einziges Wort wie “beleuchten” matchen. Wer noch “Bad beleuchten” oder “Schreibtisch beleuchten” voneinander abtrennen möchte wird Probleme bekommen. Besser ist es also, wenigstens 2 Schlüsselwörter einzubauen. Was ihr alles für Satzkombinationen nutzt, werdet ihr spätestens im täglichen Gebrauch merken.

Sprachbefehle als RegEx Syntax

Eine weitere interessante Möglichkeit ist es, komplette LUA Scripts zu starten. Es können komplexe Abfolgen oder Aktionen geplant und per Sprachkommando gestartet werden. In meinem Beispiel führe ich einen “Nachtmodus” aus. Er schaltet alle Geräte ab und setzt meine Variable “Nacht”. Die Variable dient bei mir dazu, die Beleuchtung nachts gedimmt zu nutzen.

Eine kleine Zaubervorstellung

An einem wirklich sehr einfachen Beispiel möchte ich euch das Resultat in der Praxis zeigen. Hier sind eurer Kreativität aber keine Grenzen gesetzt.

[youtube url="http://youtu.be/Dc5tMvHxmMc" autohide="1" controls="0" hd="1"]
Die mobile Version verlassen