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
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
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
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.
Zitatim Reading des DOIF ist das zu finden:
Device ECHO_G090XG0894251MS7
Wo genau siehst Du in deinem List das Reading Device?
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
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