FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Omega am 05 Oktober 2015, 10:07:49

Titel: (gelöst) DOIF: unmotivierte Wiederholungen
Beitrag von: Omega am 05 Oktober 2015, 10:07:49
Ich habe für einen DOIF folgende Definition:


Internals:
   DEF        ([Clone_Vitocrossal:Temp-WarmWasser-Ist] > 48
and [Clone_Vitocrossal:Brenner] eq "on"
    and index([mein_Kalender:state], "Erster Sonntag im Monat") != -1)
(set Zw_Stecker_LM_2_Sw on-for-timer 2400)
   NAME       doif.Legionellen
   NR         593
   NTFY_ORDER 50-doif.Legionellen
   STATE      cmd_2
   TYPE       DOIF
   Readings:
     2015-10-05 09:45:27   Device          Clone_Vitocrossal
     2015-10-04 18:58:09   cmd_event       Clone_Vitocrossal
     2015-10-04 18:58:09   cmd_nr          2
     2015-10-05 09:45:27   e_Clone_Vitocrossal_Brenner off
     2015-10-05 09:45:27   e_Clone_Vitocrossal_Temp-WarmWasser-Ist 56.3
     2015-10-05 00:00:02   e_mein_Kalender_state none
     2015-10-04 18:58:09   state           cmd_2
   Condition:
     0          ReadingValDoIf('Clone_Vitocrossal','Temp-WarmWasser-Ist','') > 48 and ReadingValDoIf('Clone_Vitocrossal','Brenner','') eq "on"     and index(ReadingValDoIf('mein_Kalender','state',''), "Erster Sonntag im Monat") != -1
   Devices:
     0           Clone_Vitocrossal mein_Kalender
     all         Clone_Vitocrossal mein_Kalender
   Do:
     0:
       0          set Zw_Stecker_LM_2_Sw on-for-timer 2400
     1:
   Helper:
     globalinit 1
     last_timer 0
     sleeptimer -1
   Internals:
   Itimer:
   Readings:
     0           Clone_Vitocrossal:Temp-WarmWasser-Ist Clone_Vitocrossal:Brenner mein_Kalender:state
     all         Clone_Vitocrossal:Temp-WarmWasser-Ist Clone_Vitocrossal:Brenner mein_Kalender:state
   State:
   Trigger:
Attributes:
   group      Heizung
   room       Heizung


Da ich keine Wiederholungen definiert habe (do allways bzw. repeatsame), bin ich davon ausgegangen, dass der DOIF nur 1 x an dem Tag ausgeführt wird.

Insgesamt ist er allerdings  an dem Tag 9 x ausgelöst worden (Auszug aus dem Log)

2015.10.04 06:45:18 3: CUL_HM set Zw_Stecker_LM_2_Sw on-for-timer 2400
...
2015.10.04 06:54:18 3: CUL_HM set Zw_Stecker_LM_2_Sw on-for-timer 2400
...
2015.10.04 09:33:46 3: CUL_HM set Zw_Stecker_LM_2_Sw on-for-timer 2400
...
2015.10.04 10:00:54 3: CUL_HM set Zw_Stecker_LM_2_Sw on-for-timer 2400
2015.10.04 10:21:56 3: CUL_HM set Zw_Stecker_LM_2_Sw on-for-timer 2400
2015.10.04 10:42:48 3: CUL_HM set Zw_Stecker_LM_2_Sw on-for-timer 2400
...
2015.10.04 10:55:09 3: CUL_HM set Zw_Stecker_LM_2_Sw on-for-timer 2400
...
2015.10.04 16:18:19 3: CUL_HM set Zw_Stecker_LM_2_Sw on-for-timer 2400
...
2015.10.04 18:57:19 3: CUL_HM set Zw_Stecker_LM_2_Sw on-for-timer 2400


Habe ich etwas übersehen oder läuft tatsächlich etwas falsch?

Viele Grüße
Holger

Titel: Antw:DOIF: unmotivierte Wiederholungen
Beitrag von: Bartimaus am 05 Oktober 2015, 14:13:00
IMO erzeugt jedes Update vom Temperatursensor einen Auslöser für Dein DOIF.
mit attr repeatsame 1 sollte sich das umgehen lassen. Probier mal
Titel: Antw:DOIF: unmotivierte Wiederholungen
Beitrag von: Brockmann am 05 Oktober 2015, 15:24:39
Jedes Mal, wenn eine der anderen beiden Bedingungen (> 48 und/oder "on") nicht erfüllt ist, wechselt das DOIF zum - in diesem Fall impliziten- DOELSE-Fall.
Sind beide Bedingungen dann wieder erfüllt, folgt der Wechsel zu cmd_1, später wieder zurück zum DOELSE usw.

cmdpause könnte helfen, so dass das Modul maximal alle 24 Stunden seinen Zustand wechseln darf. Dann sollte es am fraglichen Tag maximal einmal ausgeführt werden.
Titel: Antw:DOIF: unmotivierte Wiederholungen
Beitrag von: Damian am 05 Oktober 2015, 18:51:12
Zitat von: Brockmann am 05 Oktober 2015, 15:24:39
Jedes Mal, wenn eine der anderen beiden Bedingungen (> 48 und/oder "on") nicht erfüllt ist, wechselt das DOIF zum - in diesem Fall impliziten- DOELSE-Fall.
Sind beide Bedingungen dann wieder erfüllt, folgt der Wechsel zu cmd_1, später wieder zurück zum DOELSE usw.

cmdpause könnte helfen, so dass das Modul maximal alle 24 Stunden seinen Zustand wechseln darf. Dann sollte es am fraglichen Tag maximal einmal ausgeführt werden.

Oder DOELSEIF ([00:00]) hinten dranhängen, dann wird kein DOELSE-Fall impliziert.

Gruß

Damian
Titel: Antw:DOIF: unmotivierte Wiederholungen
Beitrag von: Omega am 05 Oktober 2015, 20:28:43
@all: Danke!
Ist schon ein verdammt mächtiges Tool. Respekt.

Gruß
Holger