Autor Thema: DEVICE Übernehmen  (Gelesen 154 mal)

Offline Deanw1975

  • New Member
  • *
  • Beiträge: 19
DEVICE Übernehmen
« 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

Online Otto123

  • Tester
  • Hero Member
  • ****
  • Beiträge: 18438
  • schon mal restore trainiert?
    • Otto's Technik Blog
Antw:DEVICE Übernehmen
« Antwort #1 am: 07 April 2021, 22:23:18 »
Hallo Dean,
das hier
(["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
Viele Grüße aus Leipzig
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7490+7412,WRT1900ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266

Offline Deanw1975

  • New Member
  • *
  • Beiträge: 19
Antw:DEVICE Übernehmen
« Antwort #2 am: 07 April 2021, 22:56:10 »
Hi Otto

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
« Letzte Änderung: 07 April 2021, 22:57:46 von Deanw1975 »

Offline Damian

  • Moderator
  • Hero Member
  • ***
  • Beiträge: 8236
Antw:DEVICE Übernehmen
« Antwort #3 am: 07 April 2021, 23:02:16 »
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.


Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Online Otto123

  • Tester
  • Hero Member
  • ****
  • Beiträge: 18438
  • schon mal restore trainiert?
    • Otto's Technik Blog
Antw:DEVICE Übernehmen
« Antwort #4 am: 07 April 2021, 23:09:02 »
Zitat
im Reading des DOIF ist das zu finden:
Device ECHO_G090XG0894251MS7
Wo genau siehst Du in deinem List das Reading Device?
Viele Grüße aus Leipzig
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7490+7412,WRT1900ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266

Offline Deanw1975

  • New Member
  • *
  • Beiträge: 19
Antw:DEVICE Übernehmen
« Antwort #5 am: 07 April 2021, 23:16:42 »
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

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

Offline Deanw1975

  • New Member
  • *
  • Beiträge: 19
Antw:DEVICE Übernehmen
« Antwort #6 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

 

decade-submarginal