FHEM Sprachsteuerung mit AMAD 2.6 und AutoVoice/Automagic

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

Vorheriges Thema - Nächstes Thema

grappa24

Hallo Leon,
ich hab das jetzt auch mal nachvollzogen und verstanden, dass in automagic die den flow auslösenden Worte verarbeitet werden, im flow selbst dann noch genauer differenziert wird.
Was ist denn der Grund für die Trennung?
Gruß, Dieter
Gebäudesicherheit/-komfort, PV-Prognose/Verbrauchssteuerung, Heizungssteuerung, Multimedia, ...
KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200, Netatmo, Nuki, SolarForecast, HEOS, Alexa-FHEM, ...
FHEM 6.4, 2 x RasPi 3B+, Debian Bullseye

Gisbert

#211
Hallo Leon,

ich bin etwas weitergekommen, aber noch nicht am Ziel.
Immerhin bekomme ich schon mal Tee angeboten  :)

Meine Bridge:
Internals:
   BRIDGE     1
   CONNECTS   8528
   FD         10
   NAME       AMADCommBridge
   NR         409
   PORT       8090
   STATE      opened
   TYPE       AMAD
   VERSIONFLOWSET 2.6.12
   VERSIONMODUL 2.6.13
   Readings:
     2017-05-20 22:52:28   expertMode      1
     2017-05-20 20:40:36   fhemServerIP    192.168.178.26
     2017-05-21 12:45:13   state           opened
Attributes:
   room       AMAD


Mein Flow ist angehängt.

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

CoolTux

Kannst Du mir noch sagen wie genau Dein Satz lautet um zu steuern. Also ein Beispielsatz
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

Der Beispielsatz lautet "Rollladen Schlafzimmer Gisbert runterfahren".
Es ist zwar kein Satz, das spielt aber hoffentlich keine Rolle.
Ist die Reihenfolge der Befehlsworte festgelegt?
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

CoolTux


if(matches(avcomm, '(?i:^(rolladen).+)') or matches(avcomm, '(?i:^(rollladen).+)'))


Und sollte dieser Flow nur Rolladen aufnehmen, dann kurze Dein Trigger mal nur auf (rolladen|rolladen)
Und Gisbert mag er wohl nur schwer. Felix klappt dafür sauber.
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

#215
Hallo Leon,

ich hab das Gefühl, dass ich kurz vor dem Durchbruch stehe, aber es fehlt noch irgendwas, oder etwas ist falsch aufgesetzt. Der Befehl wird in Fhem nicht ausgeführt.

Autovoice versteht mich, denn es poppt nach "Ok Google" das, was ich gesprochen habe, für 1-2 Sekunden auf, in meinem Beispiel "Possible Commands: rolladen schlafzimmer gisbert runterfahren".

Es wird mir kein Tee angeboten.
Im Logfile des Flows steht absolut nichts drin, komplett leer.

Gibt es irgendeine Testmöglichkeit, z.B. mit einem Dummy, der immer und überall funktioniert?

Viele Grüße Gisbert

PS:
Die Verkürzung auf nur (rolladen|rollladen) hat nichts gebracht und die Veränderung in dem Einzeiler von .+ auf ^ hat auch nicht zum Erfolg​ geführt.
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

CoolTux

Hallo Gisbert,

Du kannst in der AMADCommBridge beim Reading receiveFhemCommand sehen welchen Befehl er genau ausführen will. Sollte ein falscher Befehl dabei sein sollte im fhem Log was zu finden sein. Das alles setzt natürlich voraus das die Übertragung geklappt hast.
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,

anscheinend kommt kein Befehl an:
Internals:
   BRIDGE     1
   CONNECTS   37156
   FD         10
   NAME       AMADCommBridge
   NR         409
   PORT       8090
   STATE      opened
   TYPE       AMAD
   VERSIONFLOWSET 2.6.12
   VERSIONMODUL 2.6.13
   Readings:
     2017-05-20 22:52:28   expertMode      1
     2017-05-20 20:40:36   fhemServerIP    192.168.178.26
     2017-05-21 12:45:13   state           opened
     2017-05-22 07:49:24   transmitterERROR AMADCommBridge_192.168.178.24_40351 has no device name sends
Attributes:
   room       AMAD


Wo kann ich jetzt nach Fehlern suchen?

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

tiroso

Wenn ich dein Flow auf die schnelle richtig verstehe übermittelt du gar nicht den SprachBefehl.
Dafür fehlt in dem Script voiceinputdata.

Du übermittelt ja nur den Schaltebefehl. Wenn du deine set Befehe ohne die ganzen if verschachtelungen übermitteln kannst liegt es an deiner Auswertung in dem Script.

Gruß

tiroso

Was du auch mal machen kannst ...
Setze am Anfang des Flows den SprachBefehl per Hand. Sprich eine Aktion wo du avcomms oder so setzt. Anschließend den Flow Manuell ausführen und verfolgen wie weit es geht und welcher Weg gewählt wird


CoolTux

Zitat von: tiroso am 22 Mai 2017, 22:16:25
Wenn ich dein Flow auf die schnelle richtig verstehe übermittelt du gar nicht den SprachBefehl.
Dafür fehlt in dem Script voiceinputdata.

Du übermittelt ja nur den Schaltebefehl. Wenn du deine set Befehe ohne die ganzen if verschachtelungen übermitteln kannst liegt es an deiner Auswertung in dem Script.

Gruß

Er soll ja auch den Schaltbefehl senden und nicht den Sprachbefehl. Am ende des Flows soll ein set DEVICENAME off übertragen werden.

@Gisbert
Du kannst eine Debug Condition irgendwo einbauen um zu schauen wo Dein Flow endet, oder Du kannst eine Sprachausgabe einfach mal so irgendwo einfügen um zu schauen wo er lang läuft.
Ist denn Dein Scriptteil so geblieben?
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

#221
Hallo Leon,

wenn ich deinen Flow "Licht und Steckdosen schalten per Sprache" verwende, dann wird ein Befehl zur AMADCommBridge übertragen. D.h. es funktioniert prinzipiell.
Im Reading taucht receiveFhemCommand auf, aber nicht receiveVoiceCommand und receiveVoiceDevice.

Voraussetzung ist aber, dass in AutoVoice die Funktion "AutoVoice Continuous" "Control Continuous" eingeschaltet ist. Ohne das geht auch dein Flow nicht. Ist es so gewollt, dass diese Option eingeschaltet sein muss?

Mein Rollladen Flow funktioniert leider immer noch nicht :(, obwohl er bei dir ja zu funktionieren scheint. Ich werde weiter auf Fehlersuche gehen.

Viele Grüße Gisbert

Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

Gisbert

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
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

tiroso

Da hatte ich dann ja doch recht.
Gisbert. .. Der SprachBefehl wird nie in Fhem ankommen da muss ich recht geben.


Die einzigen Möglichkeiten die du hast sinf eine Kombi aus FHEM LOG. Steht da vielleicht drin was dann schief geht?
Kleine Popups im Flow einsetzen im zu gucken welche Variablen gesetzt werden und wie diese aussehen.

Was steht denn in der Bridge als Fhem command?

Esjay

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

Guten Morgen,
ich würde mal sagen, dass Cooltux den Sprachbefehl über sein tablet im Flur und im Badezimmer steuern kann. Wenn du nur ein Tablet hast, kannst du alles ab "or" streichen, und für DesireHD_Flur dein AMAD Device eintragen.

Grüße