Seit einem update schalten meine DOIF's nicht mehr!
define di_Sonoff_1_Alarm DOIF ([Motion_1:"on"] and [Tag_Nacht:twilight_weather] < 40) (set Sonoff_1 on)
Dieses DOIF schaltete bisher bei Bewegung und twilight_weather < 40 per Sonoff das Alarmlicht ein.
Seit einem Update vor 2 Tagen geht das nicht mehr. :'(
Das List:
Internals:
DEF ([Motion_1:"on"] and [Tag_Nacht:twilight_weather] < 40) (set Sonoff_1 on)
MODEL FHEM
NAME di_Sonoff_1_Alarm
NR 491
NTFY_ORDER 50-di_Sonoff_1_Alarm
STATE cmd_2
TYPE DOIF
READINGS:
2018-05-16 22:42:07 Device Tag_Nacht
2018-05-16 22:42:07 cmd 2
2018-05-16 22:42:07 cmd_event Tag_Nacht
2018-05-16 22:42:07 cmd_nr 2
2018-05-16 22:35:28 e_Motion_1_events Alarm: off
2018-05-15 17:07:15 e_Tag_Nacht_events twilight_weather: 100
2018-05-16 22:42:07 e_Tag_Nacht_twilight_weather 0
2018-05-16 22:08:13 mode enabled
2018-05-16 22:42:07 state cmd_2
Regex:
condition:
0 EventDoIf('Motion_1',$hash,'on',1) and ReadingValDoIf($hash,'Tag_Nacht','twilight_weather') < 40
devices:
0 Motion_1 Tag_Nacht
all Motion_1 Tag_Nacht
do:
0:
0 set Sonoff_1 on
1:
helper:
DOIF_Readings_events
DOIF_eventas
event twilight_weather: 0
globalinit 1
last_timer 0
sleeptimer -1
timerdev Tag_Nacht
timerevent twilight_weather: 0
triggerDev Tag_Nacht
timerevents:
twilight_weather: 0
timereventsState:
twilight_weather: 0
triggerEvents:
twilight_weather: 0
triggerEventsState:
twilight_weather: 0
internals:
itimer:
perlblock:
readings:
0 Tag_Nacht:twilight_weather
all Tag_Nacht:twilight_weather
trigger:
all Motion_1
uiState:
uiTable:
Attributes:
group Sonoff
room MQTT
Jemand eine Idee? Was hat sich geändert?
Gruß Billy
Habe jetzt
attr di_Sonoff_1_Alarm checkReadingEvent 0
gesetzt damit geht alles wie vorher. :)
Würde mich aber interessieren wie das DOIF aussehen muss damit es auch ohne dieses attr funktioniert?
Muss ich jetzt bei allen meinen DOIF's dieses attr setzten?
Billy
Zitat von: Billy am 16 Mai 2018, 23:13:03
Habe jetzt
attr di_Sonoff_1_Alarm checkReadingEvent 0
gesetzt damit geht alles wie vorher. :)
Würde mich aber interessieren wie das DOIF aussehen muss damit es auch ohne dieses attr funktioniert?
Muss ich jetzt bei allen meinen DOIF's dieses attr setzten?
Billy
Da ist noch ein Bug in der aktuellen DOIF-Version drin, den werde ich morgen patchen.
Deine Definition ist allerdings nicht ganz sinnvoll. Es funktioniert eher zufällig. Ohne do always würde set Sonoff_1 on nur einmal funktionieren. Alle fünf Minuten sendet Tag_Nacht:twilight_weather, was dazu führt, dass deine Bedingung nicht wahr ist und cmd_2 kommt, was wiederum die Möglichkeit für die Ausführung von cmd_1 freigibt. Ich denke, das hast du nicht bewusst so definiert. Mit anderen Worten innerhalb von fünf Minuten kannst du nur einmal set Sonoff_1 on ausführen.
Ich würde definieren:
define di_Sonoff_1_Alarm DOIF ([Motion_1:"on"] and [?Tag_Nacht:twilight_weather] < 40) (set Sonoff_1 on)
attr di_Sonoff_1_Alarm do always
Das funktioniert auch ohne checkReadingEvent 0 mit der aktuellen Version und triggert nicht alle fünf Minuten dein Modul.
Zitat von: Damian am 16 Mai 2018, 23:52:19
Da ist noch ein Bug in der aktuellen DOIF-Version drin, den werde ich morgen patchen.
Deine Definition ist allerdings nicht ganz sinnvoll. Es funktioniert eher zufällig. Ohne do always würde set Sonoff_1 on nur einmal funktionieren. Alle fünf Minuten sendet Tag_Nacht:twilight_weather, was dazu führt, dass deine Bedingung nicht wahr ist und cmd_2 kommt, was wiederum die Möglichkeit für die Ausführung von cmd_1 freigibt. Ich denke, das hast du nicht bewusst so definiert. Mit anderen Worten innerhalb von fünf Minuten kannst du nur einmal set Sonoff_1 on ausführen.
Ich würde definieren:
define di_Sonoff_1_Alarm DOIF ([Motion_1:"on"] and [?Tag_Nacht:twilight_weather] < 40) (set Sonoff_1 on)
attr di_Sonoff_1_Alarm do always
Das funktioniert auch ohne checkReadingEvent 0 mit der aktuellen Version und triggert nicht alle fünf Minuten dein Modul.
siehe: https://forum.fhem.de/index.php/topic,87183.msg803068.html#msg803068
Danke, funktioniert jetzt wie von dir vorgeschlagen auch ohne checkReadingEvent 0. :)
Das mit den 5 Minuten war mir nicht aufgefallen, da das Alarmlicht über den Sonoff Timer sowieso 5 Minuten angeschaltet wurde!
Billy