Ich möchte einen simplen Stringvergleich in einem DOIF realisieren und scheitere:
Wenn das Reading "RfRaw_Data" im Device "EG_KUEC_Funkbridge02" den Wert "AAA425C6015403CA45441555" annimmt soll etwas passieren. (Der Wert kommt von einem 433 MHz Sender)
Dazu habe ich ein simples
defmod EG_KUEC_Funkbridge02_DOIF_3 DOIF ([EG_KUEC_Funkbridge02:"RfRaw_Data"] eq "AAA425C6015403CA45441555") ()
definiert. Leider kommt im DOIF immer nur cmd_2 (in der Klammer wird dann wenn es funktioniert natürlich ein sinnvolles set ... stehen)
Wo ist mein Brett vor dem Kopf.
Ich habe folgende Device definiert:
Ein Tasmota-Funkbridge
Internals:
FUUID 65902552-f33f-0692-05dd-a563083297a7b852
IODev p_mqtt
LASTInputDev p_mqtt
MSGCNT 74440
NAME EG_KUEC_Funkbridge02
NR 201
STATE ???
TYPE MQTT2_DEVICE
eventCount 74440
p_mqtt_MSGCNT 74440
p_mqtt_TIME 2024-01-31 21:40:02
READINGS:
2024-01-31 21:40:02 Heap 25
2024-01-25 09:25:09 IODev p_mqtt
2024-01-31 18:30:47 LWT Online
2024-01-31 21:40:02 LoadAvg 19
2024-01-31 21:40:02 MqttCount 44
2024-01-31 20:39:28 RfCode 6361828
2024-01-31 20:39:28 RfHigh 800
2024-01-31 20:39:28 RfLow 260
2024-01-29 08:12:48 RfRaw ON
2024-01-31 21:39:55 RfRaw_Data AAA425BC012203AC45411555
2024-01-29 07:40:04 RfReceived_Data 11872136
2024-01-29 07:40:04 RfReceived_High 710
2024-01-29 07:40:04 RfReceived_Low 200
2024-01-29 07:40:04 RfReceived_RfKey None
2024-01-29 07:40:04 RfReceived_Sync 7490
2024-01-31 20:39:28 RfSync 8300
2024-01-31 21:40:02 Sleep 50
2024-01-31 21:40:02 SleepMode Dynamic
2024-01-31 21:40:02 Time 2024-01-31T21:40:02
2024-01-31 21:40:02 Uptime 43T01:35:30
2024-01-31 21:40:02 UptimeSec 3720930
2024-01-31 21:40:02 Wifi_AP 1
2024-01-31 21:40:02 Wifi_BSSId 7E:45:58:37:14:86
2024-01-31 21:40:02 Wifi_Channel 1
2024-01-31 21:40:02 Wifi_Downtime 0T00:01:26
2024-01-31 21:40:02 Wifi_LinkCount 10
2024-01-31 21:40:02 Wifi_Mode 11n
2024-01-31 21:40:02 Wifi_RSSI 100
2024-01-31 21:40:02 Wifi_SSId CSSIoT
2024-01-31 21:40:02 Wifi_Signal -27
Attributes:
IODev p_mqtt
icon mqtt_device
readingList CSS/EG/KUEC/Funkbridge02/INFO1:.* { json2nameValue($EVENT) }
CSS/EG/KUEC/Funkbridge02/INFO2:.* { json2nameValue($EVENT) }
CSS/EG/KUEC/Funkbridge02/INFO3:.* { json2nameValue($EVENT) }
CSS/EG/KUEC/Funkbridge02/STATE:.* { json2nameValue($EVENT) }
CSS/EG/KUEC/Funkbridge02/LWT:.* LWT
CSS/EG/KUEC/Funkbridge02/RESULT:.* { json2nameValue($EVENT) }
CSS/EG/KUEC/Funkbridge02/stat/RESULT:.* { json2nameValue($EVENT) }
room -Küche,_MQTT
setList RfSync CSS/EG/KUEC/Funkbridge02/cmnd/RfSync
RfCode CSS/EG/KUEC/Funkbridge02/cmnd/RfCode
RfHigh CSS/EG/KUEC/Funkbridge02/cmnd/RfHigh
RfLow CSS/EG/KUEC/Funkbridge02/cmnd/RfLow
und ein DOIF
Internals:
CFGFN
DEF ([EG_KUEC_Funkbridge02:"RfRaw_Data"] eq "AAA425C6015403CA45441555") ()
FUUID 65baab46-f33f-0692-31c2-424ea9d417d64dba
MODEL FHEM
NAME EG_KUEC_Funkbridge02_DOIF_3
NOTIFYDEV global,EG_KUEC_Funkbridge02
NR 214
NTFY_ORDER 50-EG_KUEC_Funkbridge02_DOIF_3
STATE cmd_2
TYPE DOIF
VERSION 27740 2023-07-10 09:31:11
eventCount 46
READINGS:
2024-01-31 21:41:32 Device EG_KUEC_Funkbridge02
2024-01-31 21:39:55 cmd 2
2024-01-31 21:39:55 cmd_event EG_KUEC_Funkbridge02
2024-01-31 21:39:55 cmd_nr 2
2024-01-31 21:41:32 e_EG_KUEC_Funkbridge02_events Wifi_BSSId: 7E:45:58:37:14:86,Wifi_RSSI: 100,Wifi_SSId: CSSIoT,Time: 2024-01-31T21:41:32,Wifi_AP: 1,MqttCount: 44,Wifi_LinkCount: 10,SleepMode: Dynamic,UptimeSec: 3721020,LoadAvg: 19,Wifi_Downtime: 0T00:01:26,Heap: 25,Wifi_Mode: 11n,Wifi_Channel: 1,Uptime: 43T01:37:00,Wifi_Signal: -28,Sleep: 50
2024-01-31 21:39:54 mode enabled
2024-01-31 21:39:55 state cmd_2
Regex:
accu:
bar:
barAvg:
collect:
cond:
EG_KUEC_Funkbridge02:
0:
&STATE ^EG_KUEC_Funkbridge02$
attr:
cmdState:
wait:
waitdel:
condition:
0 ::EventDoIf('EG_KUEC_Funkbridge02',$hash,'RfRaw_Data',1) eq "AAA425C6015403CA45441555"
do:
0:
0
1:
helper:
NOTIFYDEV global,EG_KUEC_Funkbridge02
event Wifi_BSSId: 7E:45:58:37:14:86,Wifi_RSSI: 100,Wifi_SSId: CSSIoT,Time: 2024-01-31T21:41:32,Wifi_AP: 1,MqttCount: 44,Wifi_LinkCount: 10,SleepMode: Dynamic,UptimeSec: 3721020,LoadAvg: 19,Wifi_Downtime: 0T00:01:26,Heap: 25,Wifi_Mode: 11n,Wifi_Channel: 1,Uptime: 43T01:37:00,Wifi_Signal: -28,Sleep: 50
globalinit 1
last_timer 0
sleeptimer -1
timerdev EG_KUEC_Funkbridge02
timerevent Wifi_BSSId: 7E:45:58:37:14:86,Wifi_RSSI: 100,Wifi_SSId: CSSIoT,Time: 2024-01-31T21:41:32,Wifi_AP: 1,MqttCount: 44,Wifi_LinkCount: 10,SleepMode: Dynamic,UptimeSec: 3721020,LoadAvg: 19,Wifi_Downtime: 0T00:01:26,Heap: 25,Wifi_Mode: 11n,Wifi_Channel: 1,Uptime: 43T01:37:00,Wifi_Signal: -28,Sleep: 50
triggerDev EG_KUEC_Funkbridge02
timerevents:
Wifi_BSSId: 7E:45:58:37:14:86
Wifi_RSSI: 100
Wifi_SSId: CSSIoT
Time: 2024-01-31T21:41:32
Wifi_AP: 1
MqttCount: 44
Wifi_LinkCount: 10
SleepMode: Dynamic
UptimeSec: 3721020
LoadAvg: 19
Wifi_Downtime: 0T00:01:26
Heap: 25
Wifi_Mode: 11n
Wifi_Channel: 1
Uptime: 43T01:37:00
Wifi_Signal: -28
Sleep: 50
timereventsState:
Wifi_BSSId: 7E:45:58:37:14:86
Wifi_RSSI: 100
Wifi_SSId: CSSIoT
Time: 2024-01-31T21:41:32
Wifi_AP: 1
MqttCount: 44
Wifi_LinkCount: 10
SleepMode: Dynamic
UptimeSec: 3721020
LoadAvg: 19
Wifi_Downtime: 0T00:01:26
Heap: 25
Wifi_Mode: 11n
Wifi_Channel: 1
Uptime: 43T01:37:00
Wifi_Signal: -28
Sleep: 50
triggerEvents:
Wifi_BSSId: 7E:45:58:37:14:86
Wifi_RSSI: 100
Wifi_SSId: CSSIoT
Time: 2024-01-31T21:41:32
Wifi_AP: 1
MqttCount: 44
Wifi_LinkCount: 10
SleepMode: Dynamic
UptimeSec: 3721020
LoadAvg: 19
Wifi_Downtime: 0T00:01:26
Heap: 25
Wifi_Mode: 11n
Wifi_Channel: 1
Uptime: 43T01:37:00
Wifi_Signal: -28
Sleep: 50
triggerEventsState:
Wifi_BSSId: 7E:45:58:37:14:86
Wifi_RSSI: 100
Wifi_SSId: CSSIoT
Time: 2024-01-31T21:41:32
Wifi_AP: 1
MqttCount: 44
Wifi_LinkCount: 10
SleepMode: Dynamic
UptimeSec: 3721020
LoadAvg: 19
Wifi_Downtime: 0T00:01:26
Heap: 25
Wifi_Mode: 11n
Wifi_Channel: 1
Uptime: 43T01:37:00
Wifi_Signal: -28
Sleep: 50
internals:
readings:
trigger:
all EG_KUEC_Funkbridge02
uiState:
uiTable:
Attributes:
Hast Du das aus dem Eventmonitor heraus erstellt?
defmod EG_KUEC_Funkbridge02_DOIF_3 DOIF ([EG_KUEC_Funkbridge02:RfRaw_Data] eq "AAA425C6015403CA45441555") ()
Zitat von: rabehd am 31 Januar 2024, 21:54:28Hast Du das aus dem Eventmonitor heraus erstellt?
Wenn ich das mache
([EG_KUEC_Funkbridge02:"^RfRaw_Data:.AAA425B2012C03AC45411555$"]) ()
passiert das gleiche (nur cmd_2)
Zitat von: Damian am 31 Januar 2024, 22:02:16defmod EG_KUEC_Funkbridge02_DOIF_3 DOIF ([EG_KUEC_Funkbridge02:RfRaw_Data] eq "AAA425C6015403CA45441555") ()
Und auch bei dieser Definition passiert das gleich (nur cmd_2)
Schreib doch mal einen Befehl in die Klammer.
Wenn du ein "leeres" DOIF ausführst, dann springt er kurz auf cmd_1 und dann sofort auf cmd_2.
Dass er bei ausführen des Events überhaupt von initialized auf cmd_2 springt (wenn ich das richtig verstanden habe?) zeigt doch, dass das Event gematched wird.
Zitat von: passibe am 31 Januar 2024, 22:28:13Schreib doch mal einen Befehl in die Klammer.
Wenn du ein "leeres" DOIF ausführst, dann springt er kurz auf cmd_1 und dann sofort auf cmd_2.
Dass er bei ausführen des Events überhaupt von initialized auf cmd_2 springt (wenn ich das richtig verstanden habe?) zeigt doch, dass das Event gematched wird.
Leider passiert dann gar nichts mehr
Ich habe jetzt auch ohne Erfolg mit einem notify getestet. Irgendwie habe ich den Verdacht, das der Event nicht so ganz funktioniert.
daher hier der Event aus dem Eventlog:
2024-01-31 22:37:50.231 MQTT2_DEVICE EG_KUEC_Funkbridge02 RfRaw_Data: AAA425A80122039845411555
Vielleich sieht ja da jemand etwas.
Danke
AAA425A80122039845411555 ist nicht AAA425C6015403CA45441555
Zitat von: Damian am 31 Januar 2024, 22:50:09AAA425A80122039845411555 ist nicht AAA425C6015403CA45441555
([EG_KUEC_Funkbridge02:"^RfRaw_Data:.AAA425B2012C03AC45411555$"]) ()
wurde uns auch noch angeboten.
Ein Event ist kein String, daher triggert es, ist aber immer falsch. Du kannst einen Vorgabewert angeben, dann geht der Stringvergleich.
Offenbar ändern sich hier die Inhalte ständig, sodass die Abfragen nicht wahr sind. Die Syntax ist aber in beiden Fällen korrekt.
Zitat von: Damian am 01 Februar 2024, 10:37:06Offenbar ändern sich hier die Inhalte ständig, sodass die Abfragen nicht wahr sind. Die Syntax ist aber in beiden Fällen korrekt.
Anfang und Ende stimmen scheinbar, ggf. hilft das, aber man müßte die eigentliche Aufgabe und das Umfeld kennen.
AAA425...1555