Hallo,
ich habe hier ein Problem mit einem DoIf.
Dieses DoIf schaltet ständig, es wechselt ständig vom cmd1 nach cmd4, obwohl sich kein State ändert.
Kann das am Presence Modul liegen, dass es alle Minute aktualisiert wird.
Das verstehe ich nicht warum dies passiert.
define di.HaustuerSchloss DOIF (([Josef] eq "absent" and [Iris] eq "absent") and [FH_Haustuer] eq "closed")\
(set HausTuerschloss lock)\
DOELSEIF ([FH_Haustuer] eq "open" and [HausTuerschloss] eq "LOCKED")\
(set pushmsg msg 'fhem' 'Schloss schliesst;; Haustuer offen' 'iphone' 0 '')\
DOELSEIF ([FH_Haustuer] eq "open")\
(set pushmsg msg 'fhem' 'Haustür laenger als 30 min offen' 'iphone' 0 '')\
DOELSE ()
attr di.HaustuerSchloss disable 0
attr di.HaustuerSchloss group Haustuer
attr di.HaustuerSchloss icon helper_doif@black
attr di.HaustuerSchloss room Alarm,Zentrale
attr di.HaustuerSchloss wait 10:10:120:5
# DEF (([Josef] eq "absent" and [Iris] eq "absent") and [FH_Haustuer] eq "closed")
#(set HausTuerschloss lock)
#DOELSEIF ([FH_Haustuer] eq "open" and [HausTuerschloss] eq "LOCKED")
#(set pushmsg msg 'fhem' 'Schloss schliesst; Haustuer offen' 'iphone' 0 '')
#DOELSEIF ([FH_Haustuer] eq "open")
#(set pushmsg msg 'fhem' 'Haustür laenger als 30 min offen' 'iphone' 0 '')
#DOELSE ()
# FUUID 65995b68-f33f-07c9-000b-a003b852dbc25811
# MODEL FHEM
# NAME di.HaustuerSchloss
# NOTIFYDEV FH_Haustuer,Iris,global,Josef,HausTuerschloss
# NR 240
# NTFY_ORDER 50-di.HaustuerSchloss
# STATE cmd_4
# TYPE DOIF
# VERSION 28546 2024-02-23 20:11:05
# eventCount 17107
# READINGS:
# 2024-12-16 21:51:57 Device HausTuerschloss
# 2024-12-16 21:51:59 cmd 4
# 2024-12-16 21:51:59 cmd_event HausTuerschloss
# 2024-12-16 21:51:59 cmd_nr 4
# 2024-12-16 21:51:57 e_HausTuerschloss_STATE LOCKED
# 2024-12-16 21:51:43 e_Iris_STATE absent
# 2024-12-16 21:51:43 e_Josef_STATE absent
# 2024-12-16 21:50:36 mode enabled
# 2024-12-16 21:51:59 state cmd_4
# 2024-12-16 21:51:59 wait_timer no timer
# Regex:
# accu:
# bar:
# barAvg:
# collect:
# cond:
# FH_Haustuer:
# 0:
# &STATE ^FH_Haustuer$
# 1:
# &STATE ^FH_Haustuer$
# 2:
# &STATE ^FH_Haustuer$
# HausTuerschloss:
# 0:
# 1:
# &STATE ^HausTuerschloss$
# 2:
# Iris:
# 0:
# &STATE ^Iris$
# Josef:
# 0:
# &STATE ^Josef$
# attr:
# cmdState:
# wait:
# 0:
# 10
# 1:
# 10
# 2:
# 120
# 3:
# 5
# waitdel:
# condition:
# 0 (::InternalDoIf($hash,'Josef','STATE') eq "absent" and ::InternalDoIf($hash,'Iris','STATE') eq "absent") and ::InternalDoIf($hash,'FH_Haustuer','STATE') eq "closed"
# 1 ::InternalDoIf($hash,'FH_Haustuer','STATE') eq "open" and ::InternalDoIf($hash,'HausTuerschloss','STATE') eq "LOCKED"
# 2 ::InternalDoIf($hash,'FH_Haustuer','STATE') eq "open"
# do:
# 0:
# 0 set HausTuerschloss lock
# 1:
# 0 set pushmsg msg 'fhem' 'Schloss schliesst; Haustuer offen' 'iphone' 0 ''
# 2:
# 0 set pushmsg msg 'fhem' 'Haustür laenger als 30 min offen' 'iphone' 0 ''
# 3:
# 0
# helper:
# NOTIFYDEV FH_Haustuer,Iris,global,Josef,HausTuerschloss
# event devstate: ok,hmstate: LOCKED
# globalinit 1
# last_timer 0
# sleepdevice HausTuerschloss
# sleepsubtimer -1
# sleeptimer -1
# timerdev HausTuerschloss
# timerevent devstate: ok,hmstate: LOCKED
# triggerDev HausTuerschloss
# DOIF_eventa:
# cmd_nr: 4
# cmd: 4
# cmd_event: HausTuerschloss
# cmd_4
# DOIF_eventas:
# cmd_nr: 4
# cmd: 4
# cmd_event: HausTuerschloss
# state: cmd_4
# timerevents:
# devstate: ok
# hmstate: LOCKED
# timereventsState:
# devstate: ok
# hmstate: LOCKED
# triggerEvents:
# devstate: ok
# hmstate: LOCKED
# triggerEventsState:
# devstate: ok
# hmstate: LOCKED
# hmccu:
# internals:
# all Josef:STATE Iris:STATE FH_Haustuer:STATE HausTuerschloss:STATE
# readings:
# trigger:
# uiState:
# uiTable:
#
setstate di.HaustuerSchloss cmd_4
setstate di.HaustuerSchloss 2024-12-16 21:51:57 Device HausTuerschloss
setstate di.HaustuerSchloss 2024-12-16 21:51:59 cmd 4
setstate di.HaustuerSchloss 2024-12-16 21:51:59 cmd_event HausTuerschloss
setstate di.HaustuerSchloss 2024-12-16 21:51:59 cmd_nr 4
setstate di.HaustuerSchloss 2024-12-16 21:51:57 e_HausTuerschloss_STATE LOCKED
setstate di.HaustuerSchloss 2024-12-16 21:51:43 e_Iris_STATE absent
setstate di.HaustuerSchloss 2024-12-16 21:51:43 e_Josef_STATE absent
setstate di.HaustuerSchloss 2024-12-16 21:50:36 mode enabled
setstate di.HaustuerSchloss 2024-12-16 21:51:59 state cmd_4
setstate di.HaustuerSchloss 2024-12-16 21:51:59 wait_timer no timer
define Josef PRESENCE function {checkAllFritzMACpresent("2E:50:01:73:79:33")}
attr Josef event-on-update-reading state
attr Josef icon it_smartphone@blue
attr Josef room Alarm,Zentrale
# DEF function {checkAllFritzMACpresent("2E:50:01:73:79:33")}
# FUUID 6378c698-f33f-07c9-de32-864a8f1e51402e43
# INTERVAL_NORMAL 30
# INTERVAL_PRESENT 30
# MODE function
# NAME Josef
# NOTIFYDEV global
# NR 214
# NTFY_ORDER 50-Josef
# STATE absent
# TYPE PRESENCE
# eventCount 17686
# READINGS:
# 2024-12-10 16:28:59 model function
# 2024-12-16 21:54:14 presence absent
# 2024-12-16 21:54:14 state absent
# helper:
# CURRENT_STATE present
# call {checkAllFritzMACpresent("2E:xx:xx:xx:xx:xx")}
# hmccu:
#
setstate Josef absent
setstate Josef 2024-12-16 21:54:14 .absenceThresholdCounter 0
setstate Josef 2024-12-16 21:54:14 .presenceThresholdCounter 0
setstate Josef 2024-12-10 16:28:59 model function
setstate Josef 2024-12-16 21:54:14 presence absent
setstate Josef 2024-12-16 21:54:14 state absent
Gruß Josef
Du fragst den Status von [HausTuerschloss] ab. Solche Abfragen reagieren auf alle Events des Devices.
Probiere mal [HausTuerschloss:state] abzufragen, diese Abfrage sollte nur noch auf Änderungen des Readings state reagieren.
Hallo Damian,
Du hattest natürlich recht. Seid ich bei jeder Abfrage das :state angehängt habe ist Ruhe.
Vielen herzlichen Dank
Josef