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

Ok Google Sprachsteuerung
Bild:daniel
Geschrieben von danielboe

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 Web-Oberfläche mit Device IDs

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:

    • Einen VirtualDevice und dabei den Button X drücken:
    • Einen VirtualDevice und dabei den Slider auf X setzen:
    • Ein LUA-Script starten
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:

  • Plugins ->AutoVoice -> “Recognized” auswählen
  • Stift oben Rechts -> Command Filter -> “Licht ein” hinterlegen
  • Via Haken oben rechts speichern-> in Tasker oben links zurück
  • “Neuer Task” poppt auf, wir klicken darauf und geben einen Namen ein (z.B.”licht_ein”)
  • Mit dem Plus in der Mitte einen Schritt hinzufügen
  • Plugins->RESTask->Stift oben rechts
  • Bei HOST wird die entsprechende API URL für “Lame Einschalten” hinterlegt
  • Etwas nach unten scrollen und bei BasicAuth die Zugangsdaten der Fibaro HC2 hinterlegen (normal “admin” und “admin”)
  • Via Diskette oben Speichern->in Tasker oben links zurück
  • Mit Play unten links kann “Licht ein” getestet werden
  • oben links zurück -> Tasker schließen 

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.

Sprachsteuerung in AutoVoice

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"]

Diesen Blogpost hat geschrieben ...

danielboe

Hi, ich bin Daniel, Geschäftsführer bei der "Smarthome Agentur UG" und mein Leben dreht sich rund um Technik seit ich denken kann. Mein Interesse gilt neuen Trends, welche den Alltag erleichtern. Dinge zu verstehen und sie noch besser zu machen ist mein Motto.
Wenn ich gerade nicht der Informatik Nerd bin, höre ich Musik, fahre Fahrrad oder treffe mich mit Freunden.

49 Kommentare

  • Hatte AutoVoice und Tasker unter Android 5.0.1 laufen und bin nun auf CyanogemMod12 Nightly vom 31.01.2015 umgestiegen. Dort reagiert es überhaupt nicht mehr. Kennt jemand das Problem?

    • Also ohne Jailbreak stelle ich es mir sehr schwer vor. iOS wird alles dafür tun, dass nicht irgendwelche Aktionen automatisch ablaufen. Ob es ein API für Siri Output gibt, bezweifle ich auch. Von der Theorie ist es ja keine Zauberei. Es muss nur die Textausgabe von Siri erfasst und gefiltert werden. Genau so passiert es bei Google auch. Wenn sich gerade jmd mit iOS in der Richtung auskennt, immer her mit den Infos ;-)

      Gruß Daniel

  • Ich habe mich mal etwas belesen zum Thema iPhone. Siri sendet seine Anfragen an den Apple Server und der antwortet. Nun gibt es die Möglichkeit sich auf einem RaspberryPI siriproxy einzurichten. Die Anfragen laufen dann über den eigenen Server. Damit kann man dann Dinge programmieren...Das ist mir aber ehrlich gesagt zu kompliziert, da siriproxy keinen Bedienoberfläche biete. Meine Idee war jetzt, sich eine RaspberryPi zu nehmen, Android darauf zu installieren, obiges Tutorial zu verwenden und einfach 1-2 Räume mit diesen RaspberryPis auszustatten. Damit hätte man in den betreffenden Räumen immer die Möglichkeit ohne Handy/Tablet oder ähnliches einfach über ein "Ok Google" seinen Befehle loszuwerden. Was meint ihr?

    • Ich glaube auf dem pi läuft kein android. einfacher ist es ein günstiges tablet mit android 5+ zu kaufen, dann hast du gleich noch ein schönes interface. ansonsten kann man tasker auch als chrome plugin nutzen, wenn es schon auf einem android gerät läuft (zusatzmikrofon). Chrome plugins unter linux auszuführen dürfte aber auch tricky werden.

      Grüße daniel

  • Okay, ich habe die Lösung!!!! utter! Eine Andoird-App die man jeder Zeit (auch im Screen Off) mit z.B. Wake Up initialisieren kann. In der App selbst kann man Verknüpfungen zu tasker herstellen und eigene Voice-Commands zu Aktivierung aufnehmen und festlegen. Funktioniert hervorragend, jedoch im Moment nur auf Englisch.

  • Hallo zusammen habe die Anleitung befolgt...... hat auch alles für den erste Task geklappt.

    Leider habe ich Probleme mit dem Anlegen vom zweiten Task.

    1. Task war Licht an geht super !!!

    2. Task soll Licht aus werden geht nicht ……

    Ich scheiter daran das ich bei dem Punkt Plugins ->AutoVoice -> “Recognized” auswählen leider nur Recognize auswählen kann liegt das an einer lizenz habe sogar die Auto Voice Pro Unlock für 1,20 € gekauft

    Woran liegt das was mache ich falsch ???

  • Hallo, hätte da mal n Problem: Das ausprobieren mit der playtaste bei Tasker funktioniert. Wenn ich es mit Sprachbefehl versuche zeigt er auch an der er den Befehl registriert hat führt ihn aber nicht aus. Wenn jemand ne Idee was der Fehler sein könnte bitte bitte melden :). Habe ein Samsung galaxy s5 und ein HCL. :/

    • mit großer wahrscheinlichkeit dann syntaxfehler im sprachbefehl. Du kannst dir in deine Aktion auch eine "Benachrichtigung" legen. Dann siehst du, ob es ausgeführt wird.

      Grüße

      Daniel

  • Hey, hast du es vielleicht geschafft mit Tasker Google now automatisch zu deaktivieren? Zb in einem bestimmten Zeitraum oder bei trennen des Netzteils usw.

    Ich will nicht das Google ständig lauscht und Akku frisst.

  • Hallo,

    super Anleitung. Vielen Dank dafür. Leider habe ich ein "kleines" Problem. Wenn ich "Ok- Google" sage geht bereits das Licht an. :) Ich habe alles so gemacht wie beschrieben. Hat jemand eine Idee was das Problem sein könnte?

    Danke
    VG
    Martin

  • Danke für die tolle Anleitung, wahrscheinlich stehe ich auf dem Schlauch.
    Anfangs schreibst du dass man einen RasP oder ein anderes teures Gerät benätigt.

    "Zitat" 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.

    Also eins von denen braucht man definitiv wenn man sein Philips Hue Set per Sprache steuern möchte?

    Sorry, vielleicht steht ich auch voll auf dem Schlauch ^^

    • Hi,

      solltest du ein iPhone besitzen, dann kannst du auch einfach HomeKit nutzen. Dafür benötigst du aber die neue HUE-Bridge.
      Ansonsten brauchst du natürlich eine SmartHome-Zentrale, welche die HUEs steuert.

      Gruß

    • Wenn due HUE eine API haben, dann geht es auch mit dieser. Dann ist ja der HUE-Hub deine "Zentral". Das oben sind nur beispiele, die verdeutlichen sollen, dass die Sprachsteuerung als "Upgrade" zur manuellen, zb per smartphone, zu sehen ist.

    • Die Verbindung zur (alten oder neuen) Hue-Bridge kannst Du auch über die kostenlose Android-App lampshade.io herstellen. Dort kannst Du Gruppen und Szenen definieren und lampshade dann als Plugin in Tasker auswählen. Funktioniert super!

      (Falls Sprachbefehle mal nicht erkannt werden, kann das auch mal an einem Leerzeichen am Ende des "Command Filters" liegen. Das war zumindest bei mir der Grund...)

  • Hallo, erstmal vielen danke für die nette Einleitung. Bei mir funktioniert den Aufruf von VirtualDevice nicht. Hat bei euch geklappt?

    • Sollte eigentlich gehen. Schau noch einmal, ob du die richtigen Buttons über die API Drückst. Bei Szenen müssen diese glaube ich auch Aktiv sein. Auch, wenn es keinen trigger gibt

      Grüße

  • Hey, das hört sich ja wirklich Super an. Hat jemand ein Erfahrungsbericht, ob es auch mit der Zipabox von Zipato geht? :) Danke.

  • Hallo zusammen !

    Ich bin der Anleitung gefolgt und habe aber das Problem, daß ich die Aktion nicht über den gezeigten "Play-Pfeil" starten kann.

    Wenn ich in der RESTask konfiguration bin unter "Settings" kann ich aber über den "Play-Pfeil" oben rechts die Aktion starten und es funktioniert!

    Hat jemand eine Idee ?

    Vielen Dank!!!

  • Hallo,

    zuerst mal, super Beitrag.
    Hat mir sehr weiter geholfen, was die Sprachsteuerung über Tasker angeht.
    Tasker und Autovoice funktionieren super.
    Meine Frage wäre jedoch würde sich das Ganze auch mit einer Fritz!Box und einem "AVM Comet Dect Heizungregler" über die Sprachsteuerung regeln?
    Über die MyFritz!App lässt sich ja das ganze prima steuern auch von unterwegs. Aber leider nicht mit Spracherkennung.

    MfG Michi

  • Hallo,

    ich hoffe ihr könnt mir helfen. Ich will den Roller Shutter von Fibaro per Sprachsteuerung ansteuern aber irgendwie funktioniert es nicht. Weiß jemand welchen Befehl ich für öffnen und schließen der Rollläden eingeben muss?

    Grüße

      • Danke für die schnelle Antwort. Die Befehle hab ich auch schon ausprobiert aber der Fehler liegt irgendwo beim Tasker bzw. bei AutoVoice. Ich habe einen Task erstellt und der funktioniert aber wenn ich das AutoVoice Profil erstelle reagiert der Task nicht, obwohl mir ein kleines Pop Up meldet, dass ein hinterlegter command erkannt wurde.

        Wenn ich bei Autovoice anstatt Recognize, Ok Google Now nehme dann funktionierts aber da kann man keinen Command Filter hinterlegen, was wiederum bedeutet dass der Task immer aktiviert wird, egal was man sagt.

        Grüße

        • ich habe es lange nicht mehr getestet aber entweder ist dann der regex falsch oder die aktuelle version von autovoice hat einen bug. geht es denn, wenn du die aktion statt mit autovoice einfach mit dem play pfeil in tasker startest?

  • Hallo, ich versuche verzweifeld das lich zu steuern ich habe mir das video genau angeschaut aber in der autovoice app steht wenn ich google now assistent integration aktiviere "you can use autovoice google now integration. warning: google disabled the ability for autovoice to intercept google searches made from the lock screen" ... was mache ich falsch ? hoffe mir kann einer helfen bitte.

    • Das mit dem Lockscreen hat nichts damit zutun. Das steht bei mir auch und es geht weiterhin. Kann gut sein, es geht nicht mehr bei ausgeschaltetem Telefon aber an sich bleibt alles beim alten

  • Tolle Anleitung und solange Amazon Echo bzw. Google Home noch nicht in Deutschland zu haben sind sicher die beste aktuelle Lösung. Ich nutze allerdings nicht RESTask, sondern AutoHue (https://play.google.com/store/apps/details?id=com.cuberob.autohue). Damit ist man zwar etwas eingeschränkter was die Kommandos angeht (wobei schon relativ viel möglich ist), spart sich aber nochmal einiges an Zusatzaufwand.

    Wenn ich jetzt noch herausbekomme, wie ich Variablen an AutoHue weiterreichen kann, z.B. um das Licht zu dimmen (z.B. "Wohnzimmer Licht dunkler" -> Brightness -25%). Hat das schon wer hinbekommen?

  • Da ich recht neu in dem Gebiet bin wäre es möglich, den WOL Befehl anstelle meines Handys über meine Android Watch zu geben?
    Hab bisher leider nur Anleitungen mit Tasker und Autovoice sowie WOL gefunden die über das Handy gesteuert werden.

    Danke schon mal für eure Antworten :)

  • Hallo,

    vielleicht könnt ihr mir helfen. Ich habe die Anleitung soweit befolgt. Ich kann das Licht per Pfeiltasten an und ausmachen. Wenn ich nun Ok Google aufrufe und Wohnzimmer Licht an sage, geht google damit ins Internet und gibt das bei google.de ein.
    Was mache ich falsch?

    Vielen Dank schon mal.

    • Hallo,

      irgendeiner eine Idee? Wieso er bei mir den Befehl nicht ausführt. Es steht auch das er das Kommando erfolgreich erhalten hat.

      Bitte um euren Support.

      Danke.

  • Hi,

    Vielen Dank für den anreiz und das tutorial. Leider funktioniert es nicht eine LUA-Scene zu starten. Er gibt mir den fehler 404 aus.

    Hat jemand eine idee?

    Danke im vorraus

  • HalliHallo, ich habe eben rausgefunden das man sich den ganzen direkten API Kram sparen kann. Tasker kann mit Imperihome zusammenarbeiten und dort Szenen steuern. Konkret kann ich jetzt ganz leicht An/Abwesenheit steuern. Für die vielen anderen Lösungen zu dem Thema war ich immer zu faul. Jetzt prüft Tasker den Standort und startet eine Szene wo für jedes Handy eine Variable gesetzt wird. Sind alle aus dem Haus wird das Danalock zugeschlossen.
    Wichtig ist Tasker den Standort GSM triangulieren zu lassen anstatt GPS zu nutzen weil das fast keinen Akku braucht. (Anleitung->Google)
    LG Carsten

Gib deinen Senf dazu!

Cookie Consent mit Real Cookie Banner