Edit sagt noch:
Die Zigbee Wassermelder (ZWS16) senden einen Event, wenn sie Wasser erkennen. Und wieder ein Event, wenn sie keines mehr erkennen.
Sonst sind die ziemlich still.
Liebes Forum,
ich fürchte ich habe Tomaten auf den Augen.
Nachdem mir jetzt 2 mal die Küche und der Keller abgesoffen sind, will mit Wassermeldern gewarnt werden.
Bei einem Melder wird über DOIF eine Warnung ausgegeben und alle 10 Sekunden wiederholt, schick.
Bei dem anderen Melder wird zwar initial die Warnung ausgegeben, aber nicht wiederholt.
Ich finde den Fehler nicht.
Hier das List des DOIFs welches funktioniert:
Internals:
CFGFN
DEF ([zigbee_Ku_Wasser:"true"]) (set ECHO_G090P3087456067K volume 100) (set ECHO_G090P3087456067K speak "Alarm, in die Küche dringt Wasser ein")
FUUID 68c175a2-f33f-f8e1-6beb-6df75be97b8b18c5
MODEL FHEM
NAME di_Wasser_Kueche
NOTIFYDEV zigbee_Ku_Wasser,global
NR 154
NTFY_ORDER 50-di_Wasser_Kueche
STATE cmd_2
TYPE DOIF
VERSION 29460 2024-12-29 20:25:48
eventCount 89
READINGS:
2025-09-10 15:44:35 Device zigbee_Ku_Wasser
2025-09-10 15:33:49 cmd 2
2025-09-10 15:33:49 cmd_event zigbee_Ku_Wasser
2025-09-10 15:33:49 cmd_nr 2
2025-09-10 15:44:35 e_zigbee_Ku_Wasser_events battery: 100,false,tamper: false,linkquality: 112,battery_low: false
2025-09-10 15:21:24 mode enabled
2025-09-10 15:33:49 state cmd_2
2025-09-10 15:33:49 wait_timer no timer
Regex:
accu:
bar:
barAvg:
collect:
cond:
zigbee_Ku_Wasser:
0:
&STATE ^zigbee_Ku_Wasser$
attr:
cmdState:
repeatcmd:
10
wait:
waitdel:
condition:
0 ::EventDoIf('zigbee_Ku_Wasser',$hash,'true',1)
do:
0:
0 set ECHO_G090P3087456067K volume 100
1 set ECHO_G090P3087456067K speak "Alarm, in die Küche dringt Wasser ein"
1:
helper:
NOTIFYDEV zigbee_Ku_Wasser,global
event battery: 100,false,tamper: false,linkquality: 112,battery_low: false
globalinit 1
last_timer 0
sleepdevice zigbee_Ku_Wasser
sleepsubtimer 0
sleeptimer -1
timerdev zigbee_Ku_Wasser
timerevent battery: 100,false,tamper: false,linkquality: 112,battery_low: false
triggerDev zigbee_Ku_Wasser
timerevents:
battery: 100
false
tamper: false
linkquality: 112
battery_low: false
timereventsState:
battery: 100
state: false
tamper: false
linkquality: 112
battery_low: false
triggerEvents:
battery: 100
false
tamper: false
linkquality: 112
battery_low: false
triggerEventsState:
battery: 100
state: false
tamper: false
linkquality: 112
battery_low: false
internals:
readings:
trigger:
all zigbee_Ku_Wasser
uiState:
uiTable:
Attributes:
checkReadingEvent 1
repeatcmd 10
room Küche
Anbei noch das list vom Wassersensor:
Internals:
CFGFN
CID zigbee_Ku_Wasser
DEF zigbee_Ku_Wasser
FUUID 68c172d1-f33f-f8e1-22ac-9b3794ebd37a528e
IODev myBroker
LASTInputDev myBroker
MSGCNT 72
NAME zigbee_Ku_Wasser
NR 151
STATE Leak: false
TYPE MQTT2_DEVICE
eventCount 74
myBroker_CONN myBroker_192.168.12.6_56860
myBroker_MSGCNT 72
myBroker_TIME 2025-09-10 15:44:35
JSONMAP:
water_leak state
OLDREADINGS:
READINGS:
2025-09-10 14:45:05 IODev myBroker
2025-09-10 14:45:05 associatedWith Zigbee2MQTT_Bridge
2025-09-10 14:46:15 attrTemplateVersion 20200904
2025-09-10 15:44:35 battery 100
2025-09-10 15:44:35 battery_low false
2025-09-10 15:44:35 linkquality 112
2025-09-10 15:44:35 state false
2025-09-10 15:44:35 tamper false
Attributes:
devicetopic zigbee2mqtt/Ku_Wasser
jsonMap water_leak:state
model zigbee2mqtt_Water_Leak_Sensor
readingList $DEVICETOPIC:.* { json2nameValue($EVENT,'',$JSONMAP) }
room Küche,MQTT2_DEVICE
stateFormat Leak: state
Und folgendes DOIF tut nur ein mal melden, die wird aber nicht wiederholt...
Internals:
CFGFN
DEF ([zigbee_WK_Wasser:"true"]) (set ECHO_G090P3087456067K volume 100) (set ECHO_G090P3087456067K speak "Alarm, der Waschkeller der Herbstburg versinkt")
FUUID 68c18102-f33f-f8e1-be78-51528d54d0b76724
MODEL FHEM
NAME di_Wasser_Waschkeller
NOTIFYDEV zigbee_WK_Wasser,global
NR 159
NTFY_ORDER 50-di_Wasser_Waschkeller
STATE cmd_2
TYPE DOIF
VERSION 29460 2024-12-29 20:25:48
eventCount 55
READINGS:
2025-09-10 16:21:24 Device zigbee_WK_Wasser
2025-09-10 16:21:24 cmd 2
2025-09-10 16:21:24 cmd_event zigbee_WK_Wasser
2025-09-10 16:21:24 cmd_nr 2
2025-09-10 16:21:24 e_zigbee_WK_Wasser_events battery_low: false,linkquality: 144,battery: 100,tamper: false,false
2025-09-10 15:51:59 mode enabled
2025-09-10 16:21:24 state cmd_2
2025-09-10 16:20:45 wait_timer no timer
Regex:
accu:
bar:
barAvg:
collect:
cond:
zigbee_WK_Wasser:
0:
&STATE ^zigbee_WK_Wasser$
attr:
cmdState:
repeatcmd:
10
repeatsame:
wait:
waitdel:
condition:
0 ::EventDoIf('zigbee_WK_Wasser',$hash,'true',1)
do:
0:
0 set ECHO_G090P3087456067K volume 100
1 set ECHO_G090P3087456067K speak "Alarm, der Waschkeller der Herbstburg versinkt"
1:
helper:
NOTIFYDEV zigbee_WK_Wasser,global
event battery_low: false,linkquality: 144,battery: 100,tamper: false,false
globalinit 1
last_timer 0
sleepdevice zigbee_WK_Wasser
sleepsubtimer -1
sleeptimer -1
timerdev zigbee_WK_Wasser
timerevent battery_low: false,linkquality: 144,battery: 100,tamper: false,false
triggerDev zigbee_WK_Wasser
DOIF_eventa:
cmd_nr: 2
cmd: 2
cmd_event: zigbee_WK_Wasser
cmd_2
DOIF_eventas:
cmd_nr: 2
cmd: 2
cmd_event: zigbee_WK_Wasser
state: cmd_2
timerevents:
battery_low: false
linkquality: 144
battery: 100
tamper: false
false
timereventsState:
battery_low: false
linkquality: 144
battery: 100
tamper: false
state: false
triggerEvents:
battery_low: false
linkquality: 144
battery: 100
tamper: false
false
triggerEventsState:
battery_low: false
linkquality: 144
battery: 100
tamper: false
state: false
internals:
readings:
trigger:
all zigbee_WK_Wasser
uiState:
uiTable:
Attributes:
checkReadingEvent 1
repeatcmd 10
room Waschküche
Falls es hilft, hier noch das list des zweiten Sensors...
Internals:
CFGFN
CID zigbee_WK_Wasser
DEF zigbee_WK_Wasser
FUUID 68c17fe1-f33f-f8e1-a3da-cf242c81bb5a7090
IODev myBroker
LASTInputDev myBroker
MSGCNT 23
NAME zigbee_WK_Wasser
NR 157
STATE Leak: false
TYPE MQTT2_DEVICE
eventCount 25
myBroker_CONN myBroker_192.168.12.6_56860
myBroker_MSGCNT 23
myBroker_TIME 2025-09-10 16:21:24
JSONMAP:
water_leak state
OLDREADINGS:
READINGS:
2025-09-10 15:40:49 IODev myBroker
2025-09-10 15:40:49 associatedWith Zigbee2MQTT_Bridge
2025-09-10 15:41:22 attrTemplateVersion 20200904
2025-09-10 16:21:24 battery 100
2025-09-10 16:21:24 battery_low false
2025-09-10 16:21:24 linkquality 144
2025-09-10 16:21:24 state false
2025-09-10 16:21:24 tamper false
Attributes:
devicetopic zigbee2mqtt/WK_Wasser
jsonMap water_leak:state
model zigbee2mqtt_Water_Leak_Sensor
readingList $DEVICETOPIC:.* { json2nameValue($EVENT,'',$JSONMAP) }
room Waschküche,MQTT2_DEVICE
stateFormat Leak: state
Hat jemand zufällig eine gute Idee?
Herzlichen Dank
Rince
Zwei Sachen fallen mir auf: die Lists sind nicht vom Fall Cmd1 und "true" ist kein Vergleich, sondern nur ein Event. Und wenn die Batterie leer ist, gibt er auch Vollalarm.
Den Unterschied zwischen beiden habe ich aber auch nicht entdeckt...
Wenn die beiden DOIF-Definitionen vom Aufbau her identisch sind, dann muss es zwangsweise am unterschiedlichen Verhalten der Wasserdetektoren liegen. Dazu musst du dir die Events der beiden im Alarmfall anschauen.