FHEM Sprachsteuerung mit AMAD 2.6 und AutoVoice/Automagic

Begonnen von CoolTux, 11 August 2016, 14:15:31

Vorheriges Thema - Nächstes Thema

CoolTux

Guten Morgen die Herren,

Danke das Ihr den Gisbert so zahlreich helfen wollt, zusammen schaffen wir das sicherlich.

Zitat von: Gisbert am 23 Mai 2017, 07:52:45
Hallo Leon,

bei der Verzweigung Expression: fhemdevice != "null" verzweigt der Flow auf nein, kommt bei der Sprachausgabe mit dem Angebot nach Tee an und schaltet dann den Homescreen wieder an.
Aber warum?

Noch eine Frage:
Bei deinem Flow taucht folgendes auf:
Expression: global_fhemdevice == "DesireHD_Flur" or global_fhemdevice == "ZTEBadezimmer"
Wie müsste das denn in meinem Fall aussehen, nur für den Fall, dass ich mich bis dahin vorgearbeitet habe?

Viele Grüße Gisbert

Diese ganze Sache von wegen ob HdDesire oder Bad kannst Du entfernen. Bei älteren Geräten hatte ich das Problem das sie Google Now nicht mehr geschlossen haben und ich dieses Suchfenster stehen hatte. Damit konnte dann aber kein neuer Sprachbefehl aktiviert werden.

Das mit den Readings in der AMADCommBridge ist so korrekt. Man hat ja die Möglichkeit den erkannten Sprachbefehl einfach durch zu leiten. Oder aber eben gleich den Sprachbefehl in Automagic zu verarbeiten und daraus am Ende ein FHEM set Befehl zu machen.


Ich Versuche heute Abend mal einen einfachen Flow für Deine Rolladen fertig zu machen.
Gib mal bitte Devicenamen und Raumnamen.


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

tiroso

Und das Log File wäre mal interessant. Vielleicht passiert ja was und du bekommst es nicht mit. Oder es passiert was falsches

Gisbert

Hallo Leon,

habe gerade erst deinen Beitrag gelesen.
Super, dass du mir hilfst.

Devicename(n):
myRollladenSchlafzimmerGisbert
myRollladenSchlafzimmerFelix
myRollladenWohnzimmerSuedseite
myRollladenWohnzimmerWestseite
myRollladenWohnzimmerTerrassentuer

Die Befehle zur Bedienung eines Rollladen:
Hochfahren
Runterfahren
Anhalten

Raum:
Rollladen

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

CoolTux

Hallo Gisbert,

Dann Versuche ich das ganze mal heute Abend umzusetzen.
Bei der Terrassentür würde ich eine Abfrage des Türkontaktes (sofern vorhanden) einbauen und erst bei geschlossener den Befehl senden lassen.


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Konnte da doch noch was zaubern so auf die schnelle. Erstmal zum testen und das Du siehst wie es geht. Ich habe erstmal nur eine Bildschirmausgabe des set Befehl es gemacht der gesendet wird. Wenn der bei Dir passt dann einfach den Pfeil zur Aktion Bildschirmausgabe lösche , nur den Pfeil, und einen neuen runter ziehen zur Aktion Flow ausführen.

Der Wortlaut lautet

Fahre den Rolladen der Terrassentür im Wohnzimmer hoch
Halte den Rolladen der Westseite im Wohnzimmer an
Fahre den Rolladen von Felix im Schlafzimmer runter

Triggern tut er auf:
Fahre den Rolladen
Halte den Rolladen

Ansonsten kannst du alles frei gestallten. Vorhanden sein muss aber alles was du per if anfragst.
Und am Ende des Satzes muss gesagt werden was gemacht werden soll. Also
Hoch
Runter
An

Hoffe das war so verständlich genug.


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Gisbert

Hallo Leon,

danke für deine super Hilfe.
Es hat ein bißchen gedauert, bis ich verstanden hab, dass ich im Flow noch Verknüpfungen verändern muss. Ich hab die Bildschirmausgabe vor dem set-Befehl drin gelassen, das funktioniert auch.
Die Reihenfolge im Mittelteil, die if-Bedingungen​, ist anscheinend egal. Man kann ganze Sätze sprechen oder auch nur die einzelnen Worte in den if-Bedingungen​.

Nochmals vielen Dank.
Vielleicht noch zwei Fragen. Warum benötigt man genau AutoVoice, die Texterkennung erfolgt schon in Google Now?
Wie kann man AutoVoice und AutoMagic beenden; oder ist das garnicht vorgesehen?

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

CoolTux

Hallo Gisbert,

Hört sich ja so an als würde es nun weitestgehend klappen.
AutoVoice brauchst Du damit Automagic triggern kann. Normalerweise startet ja GoogleNow eine Websuche. AutoVoice schaltet sich dazwischen und reicht den erkannten Satz an das Plugin weiter.


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Hallo Leute,

Auch wenn das jetzt nichts direkt mit Sprachsteuerung zu tun hat.
Ich habe nach 6 Monaten Entwicklungszeit vom neuen AMAD 80 Prozent abgeschlossen.
Es wird komplett neue Module geben. Die CommBridge wird ein eigenständiger TYPE werden und es wird AMADDevice geben. Also ein 2Stufiges Modul. Intern wird über validen JSON kommuniziert und es wird einen Android Installationsassistanten auf Automagic Basis geben. Den mache ich nun als nächstes.

Die Idee ist auf FHEM Seite nur noch die Bridge zu definieren. Und dann auf dem Androidgerät den Assistenten Flow zu aktivieren. Dort werden dann 3 Werte abgefragt die man eingeben muss und danach hat man sofort ein neues AMADDevice in FHEM.

Im großen und ganzen also alles etwas einfacher.



Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

tiroso

Super.
Kannst du es so einrichten das Voice Commands als ganzes übertragen werden?
Derzeit wird der String bei "und " geteilt und übertragen.

Bin dabei ein Texterkennung modul zu schreiben welches die SprachBefehle in deinem Modul erkennt und auf dem Amad Device auch antwortet.

CoolTux

Zitat von: tiroso am 25 Mai 2017, 10:19:37
Super.
Kannst du es so einrichten das Voice Commands als ganzes übertragen werden?
Derzeit wird der String bei "und " geteilt und übertragen.

Bin dabei ein Texterkennung modul zu schreiben welches die SprachBefehle in deinem Modul erkennt und auf dem Amad Device auch antwortet.

Das lässt sich sicherlich über ein Attribut irgendwie hin bekommen. Möchte das "und" ungern entfernen, da andere User es bereits seit Monaten verwenden. Man kann ja hier mit dem expertMode was machen. So Stufe 1 und Stufe 2 mäßig.
Schön das Du da was baust, das wäre dann mein nächster Schritt geworden. Bin gespannt.



Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Gisbert

Hallo tiroso und Leon,

bei mir wird der String nicht bei einem "und" getrennt (hab's gerade ausprobiert).
Es werden tatsächlich bei dem Flow, den mir Leon geschrieben hat, nur der Trigger, die im Flow einprogrammierten Worte und die Handluungsanweisung berücksichtigt. Alle anderen Worte im Mittelteil, um einen einigermaßen korrekten Satz zu bilden, können gesagt werden (oder weggelassen werden), dazu zählt auch "und".

Was hat es denn mit dem "und" auf sich; in der AMADCommBridge ist der expertMode aktiviert?

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

CoolTux

Zitat von: Gisbert am 25 Mai 2017, 10:31:08
Hallo tiroso und Leon,

bei mir wird der String nicht bei einem "und" getrennt (hab's gerade ausprobiert).
Es werden tatsächlich bei dem Flow, den mir Leon geschrieben hat, nur der Trigger, die im Flow einprogrammierten Worte und die Handluungsanweisung berücksichtigt. Alle anderen Worte im Mittelteil, um einen einigermaßen korrekten Satz zu bilden, können gesagt werden (oder weggelassen werden), dazu zählt auch "und".

Was hat es denn mit dem "und" auf sich; in der AMADCommBridge ist der expertMode aktiviert?

Viele Grüße Gisbert

Hallo Gisbert,

Wenn Du keinen expertMode setzt werden set Befehle nicht ausgeführt. Dann kannst Du nur den Sprachmodus über set voiceirgendwas aktivieren. Also als set im AMAD Device und dann sprechen. Danach wird das gesprochene 1 zu 1 an die Bridge gesendet und als Reading hinterlegt.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

tiroso

Ich habe das gerade in dem anderen Post über Spracherkennung von pah.
Im besten Fall soll man nichts einstellen sollen.  Und das Modul erkennt aufgrund der WortWahl und Konstellation was es machen soll.
Devices werden automatisch erkannt.
Mal schauen wie es wird. Bin fleißig dran am basteln und es wird besser.

Gisbert

Hallo Leon,

ich finde deine Sprachsteuerung echt toll; bin gespannt, wie die Entwicklung weitergeht.

Als Antwort benutze ich die Ausgabe:
Der {fhemalias} ist {response} .
Da ich in Fhem für das Schalten der Rollläden mit up|down|stop mache, bekomme ich als Antwort:
Der Rollladen an der Terrassentür ist up, down oder stop (je nach Befehl).
Ich verstehe, was gemeint ist und kenne die Ursache, aber schöner, wäre ein echter Satz, d.h. ... ist hochgefahren, ist runtergefahren oder ist gestoppt.
Kann man den {response} anders defeinieren, dass aus "up" "hochgefahren" wird?

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

CoolTux

Zitat von: Gisbert am 25 Mai 2017, 20:14:15
Hallo Leon,

ich finde deine Sprachsteuerung echt toll; bin gespannt, wie die Entwicklung weitergeht.

Als Antwort benutze ich die Ausgabe:
Der {fhemalias} ist {response} .
Da ich in Fhem für das Schalten der Rollläden mit up|down|stop mache, bekomme ich als Antwort:
Der Rollladen an der Terrassentür ist up, down oder stop (je nach Befehl).
Ich verstehe, was gemeint ist und kenne die Ursache, aber schöner, wäre ein echter Satz, d.h. ... ist hochgefahren, ist runtergefahren oder ist gestoppt.
Kann man den {response} anders defeinieren, dass aus "up" "hochgefahren" wird?

Viele Grüße Gisbert

Mache doch einfach vor der Ausgabe ein Script wo Du die korrekten werde zu weißt.
Sprachlich:
if response == Up
Response = hochgefahren

Und so weiter.


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net