FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Deanw1975 am 07 April 2021, 21:44:01

Titel: DEVICE Übernehmen
Beitrag von: Deanw1975 am 07 April 2021, 21:44:01
Servus,

ich sehe irgendwie den Wald nicht mehr durch

Ich wollte aus einem EVENT das angesprochene DEVICE übernehmen um damit einen SET Befehl zu starten

CODE:
(["ECHO:voice"] =~ "nacht")
(set $DEVICE speak huhu)


im Reading des DOIF ist das zu finden:
Device ECHO_G090XG0894251MS7

Also würde ich das gerne übernhemen in das SET

Was übersehen ich


LIST:

Internals:
   CFGFN     
   DEF        (["ECHO:voice"] =~ "nacht")

(set $DEVICE speak huhu)
   DOIFDEV    ^global$|ECHO
   FUUID      606db98b-f33f-61e0-393c-eb61bef88f983a52
   MODEL      FHEM
   NAME       99_test_doif_alexa
   NR         5054
   NTFY_ORDER 50-99_test_doif_alexa
   STATE      initialized
   TYPE       DOIF
   VERSION    24100 2021-03-27 20:15:23
   .attraggr:
   .attrminint:
   READINGS:
     2021-04-07 21:37:51   cmd             0
     2021-04-07 21:37:51   mode            enabled
     2021-04-07 21:37:51   state           initialized
   Regex:
     accu:
     cond:
       :
         0:
           "ECHO:voice" ECHO:voice
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::EventDoIf('ECHO',$hash,'voice',0) =~ "nacht"
   do:
     0:
       0          set $DEVICE speak huhu
     1:
   helper:
     DEVFILTER  ^global$|ECHO
     NOTIFYDEV  global|.*ECHO.*
     globalinit 1
     last_timer 0
     sleeptimer -1
   uiState:
   uiTable:
Attributes:
   room       Amazon


Danke
Dean
Titel: Antw:DEVICE Übernehmen
Beitrag von: Otto123 am 07 April 2021, 22:23:18
Hallo Dean,
das hier
Zitat von: Deanw1975 am 07 April 2021, 21:44:01
(["ECHO:voice"] =~ "nacht")

ist mMn falsch und kann nicht funktionieren. Siehe hier https://fhem.de/commandref_DE.html#DOIF_Ereignissteuerung_ueber_Auswertung_von_Events

Für Deinen Post empfehle ich noch für die Zukunft diesen Link https://forum.fhem.de/index.php/topic,71806.0.html

Gruß Otto
Titel: Antw:DEVICE Übernehmen
Beitrag von: Deanw1975 am 07 April 2021, 22:56:10
Hi Otto

Zitat von: Otto123 am 07 April 2021, 22:23:18
Hallo Dean,
das hier ist mMn falsch und kann nicht funktionieren. Siehe hier https://fhem.de/commandref_DE.html#DOIF_Ereignissteuerung_ueber_Auswertung_von_Events

Dann frage ich mich wieso im DOIF das Reading passend gesetzt wird  :)
Ziel ist es: irgendein Echo Device löst aus. Soweit passt es auch. Das Reading wird dynamisch im DOIF gesetzt.

Im log steht

2021.04.07 22:48:16 2: 99_test_doif_alexa: set  speak huhu: Please define speak first

Also wird das Device nicht im Set übernommen

Danke
Dean
Titel: Antw:DEVICE Übernehmen
Beitrag von: Damian am 07 April 2021, 23:02:16
Zitat von: Deanw1975 am 07 April 2021, 22:56:10
Hi Otto

Dann frage ich mich wieso im DOIF das Reading passend gesetzt wird  :)
Ziel ist es: irgendein Echo Device löst aus und schreibt ins VIce. Soweit passt es auch.

Im log steht

2021.04.07 22:48:16 2: 99_test_doif_alexa: set  speak huhu: Please define speak first

Also wird das Device nicht im Set übernommen

Danke
Dean

Weil die Bedingung getriggert wurde. ["ECHO:voice"] liefert aber immer nur true (1) beim Trigger und sonst false (0). Also ist die Abfrage so nicht sinnvoll.

Du kannst es aber mit Komma versuchen:

(["ECHO:voice",""] =~ "nacht")

Die Erklärung steht im geposteten Link von Otto.


Titel: Antw:DEVICE Übernehmen
Beitrag von: Otto123 am 07 April 2021, 23:09:02
Zitatim Reading des DOIF ist das zu finden:
Device ECHO_G090XG0894251MS7
Wo genau siehst Du in deinem List das Reading Device?
Titel: Antw:DEVICE Übernehmen
Beitrag von: Deanw1975 am 07 April 2021, 23:16:42
Zitat von: Damian am 07 April 2021, 23:02:16
Weil die Bedingung getriggert wurde. ["ECHO:voice"] liefert aber immer nur true (1) beim Trigger und sonst false (0). Also ist die Abfrage so nicht sinnvoll.

Du kannst es aber mit Komma versuchen:

(["ECHO:voice",""] =~ "nacht")

Die Erklärung steht im geposteten Link von Otto.

Hat nicht gefruchtet

Zitat von: Otto123 am 07 April 2021, 23:09:02
Wo genau siehst Du in deinem List das Reading Device?

Komisch im alten list war es nicht

Gerade mal nen neuen list ausgeführt da ist es zu sehen

Internals:
   CFGFN     
   DEF        (["ECHO:voice",""] =~ "test")

(set $DEVICE speak huhu)
   DOIFDEV    ^global$|ECHO
   FUUID      606db98b-f33f-61e0-393c-eb61bef88f983a52
   MODEL      FHEM
   NAME       99_test_doif_alexa
   NR         5054
   NTFY_ORDER 50-99_test_doif_alexa
   STATE      cmd_2
   TYPE       DOIF
   VERSION    24100 2021-03-27 20:15:23
   .attraggr:
   .attrminint:
   READINGS:
     2021-04-07 23:10:53   Device          ECHO_G090LF0971130PJV
     2021-04-07 23:10:37   cmd             2
     2021-04-07 23:10:37   cmd_event       99_test_doif_alexa
     2021-04-07 23:10:37   cmd_nr          2
     2021-04-07 23:09:42   mode            enabled
     2021-04-07 23:10:37   state           cmd_2
   Regex:
     accu:
     cond:
       :
         0:
           "ECHO:voice" ECHO:voice
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::EventDoIf('ECHO',$hash,'voice',0,'[^\:]*: (.*)','','') =~ "test"
   do:
     0:
       0          set $DEVICE speak huhu
     1:
   helper:
     DEVFILTER  ^global$|ECHO
     NOTIFYDEV  global|.*ECHO.*
     event      voice_timestamp: 1617829799775
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   ECHO_G090LF0971130PJV
     timerevent voice_timestamp: 1617829799775
     triggerDev ECHO_G090LF0971130PJV
     timerevents:
       voice_timestamp: 1617829799775
     timereventsState:
       voice_timestamp: 1617829799775
     triggerEvents:
       voice_timestamp: 1617829799775
     triggerEventsState:
       voice_timestamp: 1617829799775
   internals:
   readings:
   trigger:
   uiState:
   uiTable:
Attributes:
   loglevel   5
   room       Amazon
   verbose    5
Titel: Antw:DEVICE Übernehmen
Beitrag von: Deanw1975 am 08 April 2021, 00:13:52
Habe es gelöst

Hier die Lösung

Internals:
   CFGFN     
   DEF        (["ECHO:voice",""] =~ "test")

(set alexa1 [99_test_doif_alexa:Device])
(set [99_test_doif_alexa:Device] speak huhu Dean)

   DOIFDEV    ^global$|ECHO
   FUUID      606db98b-f33f-61e0-393c-eb61bef88f983a52
   MODEL      FHEM
   NAME       99_test_doif_alexa
   NR         5054
   NTFY_ORDER 50-99_test_doif_alexa
   STATE      cmd_1
   TYPE       DOIF
   VERSION    24100 2021-03-27 20:15:23
   .attraggr:
   .attrminint:
   READINGS:
     2021-04-08 00:08:59   Device          ECHO_G090LF0971130PJV
     2021-04-08 00:08:59   cmd             1.2
     2021-04-08 00:08:59   cmd_event       ECHO_G090LF0971130PJV
     2021-04-08 00:08:59   cmd_nr          1
     2021-04-08 00:08:59   cmd_seqnr       2
     2021-04-08 00:08:01   mode            enabled
     2021-04-08 00:08:59   state           cmd_1
   Regex:
     accu:
     cond:
       :
         0:
           "ECHO:voice" ECHO:voice
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::EventDoIf('ECHO',$hash,'voice',0,'[^\:]*: (.*)','','') =~ "test"
   do:
     0:
       0          set alexa1 [99_test_doif_alexa:Device]
       1          set [99_test_doif_alexa:Device] speak huhu Dean
     1:
   helper:
     DEVFILTER  ^global$|ECHO
     NOTIFYDEV  global|.*ECHO.*
     event      voice: test
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   ECHO_G090LF0971130PJV
     timerevent voice: test
     triggerDev ECHO_G090LF0971130PJV
     timerevents:
       voice: test
       voice_timestamp: 1617833288402
     timereventsState:
       voice: test
       voice_timestamp: 1617833288402
     triggerEvents:
       voice: test
       voice_timestamp: 1617833288402
     triggerEventsState:
       voice: test
       voice_timestamp: 1617833288402
   internals:
   readings:
   trigger:
   uiState:
   uiTable:
Attributes:
   do         always