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:
- Android Smartphone oder Tablet (Android 4.4+ empfohlen)
- Google Now (kostenlos)
- Tasker (2,99€)
- RESTask Tasker Plugin (kostenlos)
- AutoVoice Tasker Plugin (1,20€ die Pro Version)
- Optional: eine passende Tablet-Wandhalterung mit Stromversorgung
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:
1 |
http://<IP>/api/callAction?deviceID=<ID>&name=turnOn |
Eingesetzt werden müssen die IP eurer Fibaro Zentrale und auch die ID des Steckers. Beides könnt ihr über das Webinterface erfahren:
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:
1 |
http://<IP>/api/callAction?deviceID=<ID>&name=pressButton&arg1=<BUTTON ID> |
- Einen VirtualDevice und dabei den Slider auf X setzen:
1 |
http://<IP>/api/callAction?deviceID=<ID>&name=setSlider&arg1=<SLIDER ID>&arg2=<VALUE> |
- Ein LUA-Script starten
1 |
http://<IP>/api/sceneControl?id=<SCENE ID>&action=start |
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.
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"]
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?
Hat sich erledigt, Tasker war lediglich deaktiv... -.-
Ist eine ähnliche Steuerung auch mit iOS-Endgeräten und Siri möglich?
Gleiche Frage hätte ich auch. iOS Lösung?DankeGruß Daniel
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.
Hey,
wie heißt denn die App? Würde mich auch mal interessieren!
Viele Grüße
Utter. Sorry,hatte ich vergessen zu schreiben
Und? Ist gut, oder?
Sieht spannend aus. vorallem wenn es offline funktioniert! Googe Now benötigt natürlich immer eine internetverbindung
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.
hm, ich konnte dazu nur das finden:
http://forum.joaoapps.com/index.php?resources/toggle-ok-google-detection.8/
An sich klar, dass es so einfach nicht geht. Selbst mit root sind systemfunktionen nicht ohne weiteres einstellbar, schon aus sicherheitsgründen...
Grüße
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
Hey,
was hast du in das Feld eingetragen? Ist RegEx aktiviert?
Grüße
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ß
arghz! dazu werde ich meine Frau nicht mehr überreden können.
Haben leider kein ios Gerät daheim, nur so ein uraltes iphone4 (nichtmal 4s).
Jo die neue Bridge haben wir. Nur Android Handys und Tablets.
Danke dir für die schnelle Antwort!
Hallo
Geht das auch mit der qivicon von Telekom?
Nein, ist mir nicht bekannt.
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,
Vielleicht kann mir jemand helfen?
Ich versuche ein Danalock über Tasker zu öffnen. Leider klappt es nicht so richtig, Licht und solche Sachen klappen einwandfrei.
Folgende Anweisung nutze ich in tasker über httpget
http://meine-ip/api/callAction?deviceID=371&name=unsecure
Hat jemand da Erfahrungen oder eine Idee warum das nicht klappt?
Vielen Dank für die Hilfe.
Danalock klappt auf jeden fall über die HC2, mache ich selbst. Ich nutze den Aufruf:
fibaro:call(danalock, "unsecure"); in einer szene. Die kannst du dann per API starten.
Hier sind auch diverse Dokumentationen zu fibaro, vielleicht findet man dort die option, um es direkt anzusprechen...
http://tutoriels.domotique-store.fr/content/49/45/fr/api-commander-le-home-center-par-des-requ%C3%AAtes-http.html
Grüße
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!!!
In der App zurück drücken, bis du wieder auf der Tasker startseite bist und dann vielleicht noch mal in die aktion gehen. möglicherweise hilft das.
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
Also die Fritzbox lässt sich auf jeden fall fernsteuern. Du musst nur noch die passende Schnittelle für Tasker finden.
Vielleicht ist das ein ansatz: http://www.boxtogo.de/widgets.php
Grüße
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
http:///api/callAction?deviceID=&name=close/api/callAction?deviceID=&name=open
http://
Gruß
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
Hi,
das scheint entweder ein Problem mit den User-Rechten zu sein, oder dein Alarm läuft im Hintergrund. Musst du dir mal näher anschauen.
Gruß
Vielen dank genau das wars. Da hätte ich auch mal drauf kommen können.
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