Heating_Control: set desired wenn Schaltevents 2x übersprungen wurde

Begonnen von FilliFairy, 14 November 2017, 19:51:45

Vorheriges Thema - Nächstes Thema

FilliFairy

Hallo,

mir ist ein Verhalten aufgefallen, das in diesem Beitrag zum WeekdayTimer ( https://forum.fhem.de/index.php/topic,53368.msg450555.html#msg450555 ) in anscheinend ähnlicher Form beschrieben wurde. Aber so ganz klar bin ich mir nicht, ob das Verhalten bei mir nun ein Bug oder ein Feature ist.

Um gut auf den Punkt kommen zu können habe ich einen Testaufbau gemacht und auf das wesentliche reduziert:

define Test_FensterSensor dummy
attr Test_FensterSensor room Testaufbau

define Test_IstTemperatur dummy
attr Test_IstTemperatur room Testaufbau
attr Test_IstTemperatur stateFormat {sprintf("%s", ReadingsVal("Test_IstTemperatur","measured-temp", 0))}
attr Test_IstTemperatur userReadings measured-temp

define Test_Pid PID20 Test_IstTemperatur:measured-temp Test_Pwm:actuator
attr Test_Pid verbose 4

define Test_HeatCtrl Heating_Control Test_Pid de 0123456|12:00|18.0 0123456|13:00|20.0 0123456|14:00|18.0 0123456|15:00|20.0 0123456|16:00|18.0 0123456|17:00|20.0 0123456|18:00|18.0 0123456|19:00|20.0 0123456|20:00|18.0 0123456|21:00|20.0
attr Test_HeatCtrl commandTemplate set $NAME desired $EVENT
attr Test_HeatCtrl delayedExecutionCond IsWindowOpen()
attr Test_HeatCtrl verbose 3


Ein Heating_Control steuert einen PID20 an und wechselt jede Stunde die Solltemperatur. Mit Test_FensterSensor und der Funktion IsWindowOpen() steuere ich die delayedExecutionCondition (jeweils zur halben Stunde).

Dabei zeigt sich folgender Log (mit händischen Kommentaren):

2017.11.14 12:00:00.043 3: PID20 Test_Pid: Set.354 set Test_Pid desired 18.0
[Test_HeatCtrl] hat um 12:00 eine Schaltfahne für 18.0 grad -> Wird korrekt gesetzt

2017.11.14 13:00:00.008 3: [Test_HeatCtrl] switch of Test_Pid delayed - delayedExecutionCond: 'IsWindowOpen()' is TRUE
[Test_HeatCtrl] hat um 13:00 eine Schaltfahne für 20.0 grad -> Wird korrekt verzögert

2017.11.14 14:00:00.009 3: [Test_HeatCtrl] timer at 13:00 skiped by new timer at 14:00
[Test_HeatCtrl] hat um 14:00 eine Schaltfahne für 18.0 grad -> Wird korrekt verzögert

2017.11.14 14:31:00.005 3: [Test_HeatCtrl] delay of switching Test_Pid stopped.
delayedExecutionCond: 'IsWindowOpen()' wird FALSE
>>> hier hätte ich jetzt ein set Test_Pid desired 18.0 erwartet. Warum kommt hier kein set ?

2017.11.14 15:00:00.039 3: PID20 Test_Pid: Set.354 set Test_Pid desired 20.0
... sondern erst wieder bei der nächsten Schaltfahne


Was meint Ihr? Habe ich etwas falsch verstanden oder ist das so wie beabsichtigt?

Gruß

FillyFairy



FHEM auf Raspi mit
HMLAN: HM-CC-RT-DN,HM-CC-TC,HM-CC-VD,HM-LC-BL1-FM,HM-LC-SW1-PL2,HM-LC-SW2-FM,HM-LC-Sw1PBU-FM,HM-RC-4-B,HM-SCI-3-FM,HM-SEC-MDIR,HM-SEC-MDIR-2,HM-SEC-SC-2,HM-SEC-TIS,HM-Sen-MDIR-O,HM-WDS10-TH-O,HM-WDS40-TH-I
OWDevice: DS18B20,DS2408,DS2413,DS2438