Android FHEM per Sprache über Tasker steuern

Begonnen von gelberlemmy, 23 Juni 2013, 10:20:10

Vorheriges Thema - Nächstes Thema

gelberlemmy

Guten morgen,

ich möchte euch mal mein Task zeigen, wie ich mit Sprachbefehlen übers Handy FHEm steuern könnt. Das läuft richtig gut.
Als erstes die APPS die man benötigt:

Tasker
Autovoice
and FHEM


In Tasker auf TASKS gehen. Mit + einen neuen Task erstellen. Als Name habe ich als aller erstes diesen "Speak" genannt" Dieser wird dann dazu gebraucht um
Google Voice auszuführen. So wenn man dieses bestätigt hat, auf "Plugin" gehen und den Befehl "Autovoice Reconize" auswählen.
Ich würde dann noch einen Icon auswählen, da wir diesen Task nachher als Widget auf den Bildschirm legen. Unten rechts sieht man ein Ziffernblock, dort rauf
gehen und Icon auswählen.
Der erste Schritt ist getan.

So jetzt legen wir erst einmal die Befehle an, die man mit Sprache steuern möchte. Dazu erstellen wir wieder einen neuen Task. Ich habe Ihn dann "Stehlampe an"
genannt. Auf Plugin gehen und dann "AndFHEM Kommando" auswählen. Dort auf Bearbeiten drücken und seinen Befehl eingeben.
Bei mir "set Wz_Stehlampe on". Diesen speichern.
Ich habe für jeden Befehel einen Task angelegt.
Jetzt gehen wir auf Profile:
Neues Profil anlegen mit dem Wert "Status".. Wieder Plugin auswählen "AutoVoice Reconize", bearbeiten. Dort auf "Speak Filter" gehen und seinen Sprachbefehl eingeben, womit der FHEM Befehl ausgeführt werden soll. Wie in etwa "Stehlampe an". Jetzt noch einen Hacken setzen bei "Event Behaviour" damit auf eventuell fast gleich klingende Laute ausgeführt werden.
Für den Fall der Nebengeräusche. So und beim zurückgehen noch einen Task auswählen wie bei mir " Stehlampe an" und FERTIG.

Ich habe mir dann noch ein Widget auf meinen Homescreen gelegt mit dem Task "Speak" den wir als erstes konfiguriert haben. ( Auf leere stelle im Homescreen gehen, Task auswählen. Danach den Task "Speak" auswählen.) Jetzt seht Ihr dieses Wieget. Wenn Ihr darauf geht, wird Google Voice aufgehen und Ihr könnt den Sprachbefehl ausführen...

FERTICH....


Invers

Das ist cool. Habe ich auch schon gemacht und es läuft bei mir super. Ein Fehler ist allerdings in deiner Erklärung drinnen:
Event Behaviour sorgt nur dafür, dass man ein Kommando mehrfach hintereinander geben kann.
Das was du meintest, macht die Einstellung Use Regex. Dann werden ähnlich klingende Wörter verarbeitet.

Ich arbeite übrigens nicht mit andFHEM, sondern nur in Tasker mit HTTP Get.  Dort einfach den Befehl rein kopieren, z.B.
http://fritz.box:8083/fhem?cmd.Stehlampe=set%20Stehlampe%20on&room=WZ
also Stehlampe im WZ an. Für den Off--Befehl dann später einfach den Task kopieren und on durch off tauschen und fertig.
Man kann so mit einem Sprachbefehl auch beliebige Kombis schalten. Wenn ich ins Bett gehe, sage ich gute Nacht und alles geht aus und das Licht im Schlafzimmer geht an. Wenn ich dann dort das Handy in die Ladeschale stecke, geht im Schlafzimmer das Licht aus und das Handy lädt eine Nachtuhr (Batterieuhr beta).
Ich löse noch weitere Aktionen aus, ist aber nicht so wichtig. Geht ja hier um FHEM.

Ich habe für die An- Aus- Befehle jeweils noch Tasker-Shortcuts auf einen dafür leer gemachten Handyscreen gelegt und kann also nun alternativ auch ver Klick auf die zugeordneten Icons schalten.

Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

kud

Sehr nett...
Muss man eigentlich für jeden Befehl ein eigenes Profil anlegen?
Und ohne Knöpfchendrücken geht das auch? Wenn das ginge wären wir bei Raumschiff Enterprise angekommen ;-)))

Gruss Kai-Uwe

Invers

Ja und ja.

Man muss leider für jedes Gerät ein Profil anlegen, wenn man über Sprache steuern will.
Will man nur über Klick auf ein Icon steuern, muss nur jeweils eine Task angelegt werden.
Falls es ein Trost ist: Man tut es ja nur einmal und die Profile lassen sich auch klonen.
Aber am coolsten ist natürlich die Sprachsteuerung. Ich lebe schon im Raumschiff Enterprise und bin begeistert.
Ich sage z.B. in mein Handy "gute Nacht" und schon geht in der Wohnung alles aus, was nachts aus sein soll und im Schlafzimmer geht das Licht an.
Stecke ich nun das Handy in die Ladeschale, geht das Licht im Schlafzimmer aus, Handy schaltet auf stumm und die Nachfuhr im Handy geht an.
Stehe ich morgens auf, schaltet das Handy wieder alles auf normal und erinnert mich 15 Minuten nach dem Aufstehen freundlich an die Einnahme meiner Tabletten.
Verlasse ich die Wohnung, wird das ebenfalls registriert und darauf durch entsprechende Schaltungen reagiert. Ebenso bei meiner Ankunft.
Ich hoffe, mir wird noch mehr einfallen. Schade, dass ich die Steuerung des Samsung-TV UE55ES8090 einfach nicht packe, sonst hätte ich noch mehr Möglichkeiten.


Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

kud

Zitat von: Invers schrieb am Mi, 10 Juli 2013 15:33Ja und ja.

Man muss leider für jedes Gerät ein Profil anlegen, wenn man über Sprache steuern will.

Für jedes Gerät oder für jeden Befehl?  zb. set Gartenwasser on / set Gartenwasser off sind das 2 Profile ?
Und die 2. Frage zielte auf das Ansprechen des Handys, welches dann in den "Lauschmodus" geht.

zB. "Hallo FHEM" und das Handy erwartet ein zB."Gartenwasser an".

Sozusagen ein Aufwachkommando.
 

Invers

Wir sind schon sehr off Topic, aber ich riskier mal noch eine Antwort. :-)
Also ja, es muss für Lampe an und Lampe aus jeweils eine Task und ein Profil erstellt werden.
Das Profil enthält ja den Auslöser, also in dem Fall Autovoice. Die Task enthält dann den eigentlichen Schaltbefehl. Also redet man mit Autovoice,  Autovoice erkennt das Gesagte und lost die Task aus.

Das Ansprechen funktioniert mit dem Galaxy S3 auch ohne irgendwo zu klicken, aber nur über einen Umweg.
Doppelklick auf den Homebutton des Galaxy S3 aktiviert die Spracheingabe. Damit kann man dann Programme starten . Lässt man das Display nun an, kann man das Zuhören erreichen, indem man "Hallo Galaxy" sagt. Dann startet man das Programm mit dem Namen "Schalte" Dann kann man den Schaltbefehl geben. Der heißt z.B. Lampe an. Der ganze Spruch lautet dann: "Hallo Galaxy schalte Lampe an". Die Sprachbefehle kann man beliebig festlegen, beispielsweise "Sei so freundlich und mach mir das Licht an".

Ich finde den Aufwand zu hoch und das Gesabbel zu lang. LOL
Aber der Besuch ist verdattert, wenn man so freundlich redet und es passiert auch noch etwas. Anschließend kann man das Handy natürlich auf locker antworten lassen, z.B. ,,Gerne, mein Herr und Gebieter."
Ich klicke halt auf die Schaltfläche und sage "Lampe an".

Damit sind dann natürlich auch Wetter- und Temperaturansagen möglich oder Sprachwarnungen. Einfach aus FHEM auslesen und mit Tasker vorlesen lassen.
Ich finde die Kombinationsmöglichkeiten zwischen Tasker und FHEM so vielfältig und interessant, dass ich extra dafür FHEM angeschafft habe.

Ich hoffe, ihr verzeiht mir den Exkurs ausnahmsweise. Falls nicht, dann einfach löschen.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

kud

Danke für die Antwort.
Warum OT?
Genau darum gehts doch hier. Mobile Devices. Und die Sprachsteuerung ist eigentlich das "Endziel".
Das sehen die Telefonhersteller doch genauso.


lendrod

Hallo, ich möchte das Thema noch einmal aufgreifen da ich sehr an an dem interessiert bin.

Wie sieht es mit der autovoice funktion aus.?
Ich möchte mir ein Tablett an die Wand hängen und wenn ich sage z.B. "Hallo Computer", dann soll mir das System anworten oder piep oder wav datei abspiele nund auf meinen Befehl warten.

Hat das schon jemand umgesetzt?
VM FHEM Server
CUL868 V3, CUL433 V3, HM CCU2
5 x FHT 80 BTFN-2, 3 x ITR-1500, FS20 TC8, FS20 FMS
Onky TX-NR616

Invers

man kann Tasker dazu bewegen, ständig zu lauschen.
Wenn man dann eine Befehlskombination sagt, wird geschaltet.
Damit sich wirklich das Tab angesprochen fühlt, sollte man also dem Befehl "Stehlampe aus" noch ein eindeutiges Wort voranstellen, z.B. "Tablet Stehlampe aus", "Tablet Stehlampe an", "Tablet Schloss auf" u.s.w.
Dauerzuhören saugt am Akku, sollte aber bei Netzbetrieb kein Problem sein. Reichweite hängt von der Qualität des Micros ab.
Bei mir klappt es mit dem Handy im gesamten Wohnzimmer, auch dann, wenn der TV läuft.

ANDFhem muss man nicht benutzen. Man kann die Befehle auch so von Tasker ausführen lassen. ANDFhem ist wahrscheinlich ein überflüssiger Schritt. Ich nutze es nicht.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

lendrod

Ich hatte mir gedacht das ich halt ein kleines Android tablet im Wohnzimemr an die Wand hänge und dort das laufen lasse, dann habe ich dort auch Dauerstrom
VM FHEM Server
CUL868 V3, CUL433 V3, HM CCU2
5 x FHT 80 BTFN-2, 3 x ITR-1500, FS20 TC8, FS20 FMS
Onky TX-NR616

Invers

Ist, glaube ich, der richtige Weg. Ich lasse mein Handy zu Hause auch in der Ladestation.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

joginet

Hallo Forum ! Eine  Zwischenfrage:
ich habe das schon länger so realisiert und alles war bisher im täglichen Einsatz.
Seit ca. 1 Woche verstehen mich meine Tablets nicht mehr  :o

Wenn ich sage "Computer (=Triggerword) schalte das Licht im Wohnzimmer an", dann versteht Autovoice immer "schaltet".
Wenn ich das Tasker Profil für den Sprachbefehl entsprechend ändere, dann geht alles.

Und nein, an meiner Aussprache hat sich nichts geändert  ;D
Witzigerweise: wenn ich über die reine "Google Voice"-Funktion das Gleiche diktiere, dann wird "schalte"  korrekt verstanden.

Das Problem tritt auf allen unserer Tablets & Handys auf. App-Updates habe ich ausgeschaltet.
Habe alle möglichen Einstellungen in Autovoice und Google Spracherkennung probiert, "precision" auf 40 gesetzt (Regex ist an)
und auch mal ein händisches Update von Autovoice & Tasker gemacht -> leider keine Änderung.

Kann das Problem jemand nachvollziehen? Wie gesagt - das kam von jetzt auf gleich...

Gruß, Jochen
Meine Konfig: FHEM auf NUC i5 mit Mint, HM-LAN, div. HM Schalter und Heizungsthermostate, FB 6840LTE mit Dect200, HUE bridge, HUE bulbs + Lightstrips, VU+Duo2 und Philips-TV Steuerung, Pushmail, Floorplan, Sprachsteuerung + Feedback per Arduino mit MOVI-Shield, LMS Multiroom mit 7x Pi

siggi85

#13
Probiere im RegEx "schalte?", dann kannst du beide Fälle abdecken, da "?" für MatchZeroOrOne steht.
Warum Autovoice plötzlich was anderes versteht kann ich dir nicht sagen.

EDIT:
Mein Beispiel wäre Wildcard, bei RegEx müsste es so funktionieren: schaltet?

Steffen

#14
ZitatMan kann die Befehle auch so von Tasker ausführen lassen. ANDFhem ist wahrscheinlich ein überflüssiger Schritt. Ich nutze es nicht.

Wo kann ich das im Tasker einstellen?

Habe zwar Http get/post gefunden aber bekomme immer Fehlermeldung zurück!
Muss man beim Server/Port die Adresse mit Passwort und User eingeben??

Mfg Steffen