Hallo,
ich bekomme ein einfaches DOIF nicht hin und stehe völlig auf dem Schlauch....es geht um einen HMIP Wassersensor (HmIP-SWD).
Das Device:
Internals:
DEF HmIP-SWD-Wassersensor defaults
FUUID 5e161d47-f33f-d150-de87-46b1d6f1f15820f3
IODev CCU2
NAME KG_HWR_Wassersensor
NR 1192
STATE Initialized
TYPE HMCCUDEV
ccuaddr 00189A4995CDBC
ccudevstate active
ccuif HmIP-RF
ccuname HmIP-SWD-Wassersensor
ccutype HmIP-SWD
channels 3
statevals devstate
READINGS:
2020-01-08 23:52:53 0.ERROR_CODE 0
2020-01-08 23:52:53 0.ERROR_NON_FLAT_POSITIONING 0
2020-01-08 23:52:53 0.LOW_BAT ok
2020-01-08 23:52:53 0.UNREACH alive
2020-01-08 23:52:53 1.ALARMSTATE ok
2020-01-08 23:52:53 1.MOISTURE_DETECTED ok
2020-01-08 23:52:53 1.WATERLEVEL_DETECTED ok
2020-01-08 23:52:53 battery ok
2020-01-08 23:52:53 hmstate Initialized
2020-01-09 00:04:24 state Initialized
hmccu:
devspec HmIP-SWD-Wassersensor
Attributes:
IODev CCU2
ccureadingfilter (^ALARMSTATE|^LOW_BAT|^UNREACH|^MOISTURE_DETECTED|^WATERLEVEL_DETECTED|^ERROR_NON_FLAT_POSITIONING|^ERROR_CODE)
ccureadingformat datapoint
ccureadingname 0.(LOWBAT|LOW_BAT):+battery
event-on-change-reading . *
genericDeviceType LeakSensor
group Schaltdosen
homebridgeMapping LeakDetected=1.ALARMSTATE,values=ok:0;Alarm:1 StatusTampered=0.ERROR_NON_FLAT_POSITIONING StatusFault=0.ERROR_CODE
room Hausstatus
stateFormat Status: 1.ALARMSTATE | Feuchtigkeitserkennung: 1.MOISTURE_DETECTED | Wassererkennung: 1.WATERLEVEL_DETECTED
substitute ALARMSTATE!(0|false):ok,(1|true):Alarm;LOW_BAT!(0|false):ok,(1|true):low;MOISTURE_DETECTED!(0|false):ok,(1|true):Alarm;WATERLEVEL_DETECTED!(0|false):ok,(1|true):Alarm;ERROR_NON_FLAT_POSITIONING!(0|false):0,(1|true):1
Ich möchte eine Telegram-Nachricht, wenn sich der Alarm- und/oder Batteriestatus ändert.
Aber das DOIF wird einfach nicht ausgelöst, bei keinem Reading:
Internals:
DEF ([KG_HWR_Wassersensor:1.ALARMSTATE] eq "Alarm") (set Telegram message Wassersensor KG_HWR ALARM!)
FUUID 5e165ff8-f33f-d150-f0f3-932ee175156e796b
MODEL FHEM
NAME Wassersensor_Alarmierung_DOIF
NOTIFYDEV global,KG_HWR_Wassersensor
NR 1198
NTFY_ORDER 50-Wassersensor_Alarmierung_DOIF
STATE initialized
TYPE DOIF
VERSION 20500 2019-11-12 17:54:48
READINGS:
2020-01-09 00:37:06 cmd 0
2020-01-09 00:37:06 mode enabled
2020-01-09 00:37:06 state initialized
Regex:
accu:
cond:
KG_HWR_Wassersensor:
0:
1.ALARMSTATE ^KG_HWR_Wassersensor$:^1.ALARMSTATE:
condition:
0 ::ReadingValDoIf($hash,'KG_HWR_Wassersensor','1.ALARMSTATE') eq "Alarm"
do:
0:
0 set Telegram message Wassersensor KG_HWR ALARM!
1:
helper:
DEVFILTER ^global$|^KG_HWR_Wassersensor$
NOTIFYDEV global|KG_HWR_Wassersensor
globalinit 1
last_timer 0
sleeptimer -1
readings:
all KG_HWR_Wassersensor:1.ALARMSTATE
uiState:
uiTable:
Attributes:
do always
room Licht
Internals:
DEF ([KG_HWR_Wassersensor:battery] eq "low") (set Telegram message Wassersensor KG_HWR Batterie leer!)
FUUID 5e165ff8-f33f-d150-f0f3-932ee175156e796b
MODEL FHEM
NAME Wassersensor_Alarmierung_DOIF
NOTIFYDEV global,KG_HWR_Wassersensor
NR 1198
NTFY_ORDER 50-Wassersensor_Alarmierung_DOIF
STATE initialized
TYPE DOIF
VERSION 20500 2019-11-12 17:54:48
READINGS:
2020-01-09 00:35:47 cmd 0
2020-01-09 00:35:47 mode enabled
2020-01-09 00:35:47 state initialized
Regex:
accu:
cond:
KG_HWR_Wassersensor:
0:
battery ^KG_HWR_Wassersensor$:^battery:
condition:
0 ::ReadingValDoIf($hash,'KG_HWR_Wassersensor','battery') eq "low"
do:
0:
0 set Telegram message Wassersensor KG_HWR Batterie leer!
1:
helper:
DEVFILTER ^global$|^KG_HWR_Wassersensor$
NOTIFYDEV global|KG_HWR_Wassersensor
globalinit 1
last_timer 0
sleeptimer -1
readings:
all KG_HWR_Wassersensor:battery
uiState:
uiTable:
Attributes:
do always
room Licht
Ich teste dann immer mit
trigger KG_HWR_Wassersensor 1.ALARMSTATE: Alarm
oder
trigger KG_HWR_Wassersensor battery: low
Im Eventmonitor kann ich sehen, dass der Wert gesetzt wird. Aber im DOIF passiert gar nichts.
Was mache ich verkehrt?
Siehe hier: https://forum.fhem.de/index.php/topic,107177.msg1010786.html#msg1010786
(Doppelpost - statt dessen, kannst Du ein Thread verschieben: Knopf ganz unten links)