Ankündigung+Testversion: Überarbeitung WeekdayTimer

Begonnen von Beta-User, 21 Mai 2020, 18:28:26

Vorheriges Thema - Nächstes Thema

Beta-User

Ungetestet, aber du kannst doch auch ggf. den Zustand des Harmony-Readings zur CONDITION erklären und dann immer ein schlichtes enable oder "WDT_Params single" absetzen? (Wenn der WDT auch vorher aktiv war, sollte das keine Attribute ändern).

Dummy-Fenster hat den Nachteil, dass ggf. Logausgaben erfolgen, und eventuell auch (per eocr abschaltbare) Events.

Das mit dem "save" finde ich persönlich keine so gute Lösung und finde auch nachvollziehbar, dass das zwischenzeitlich per default (vereinfacht gesagt aus Code heraus) deaktiviert wurde.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Mitch

Zitat von: Beta-User am 16 Januar 2021, 17:06:03
Ungetestet, aber du kannst doch auch ggf. den Zustand des Harmony-Readings zur CONDITION erklären und dann immer ein schlichtes enable oder "WDT_Params single" absetzen? (Wenn der WDT auch vorher aktiv war, sollte das keine Attribute ändern).

Die Variante muss ich mir mal genauer anschauen, Danke.
FHEM im Proxmox Container

ToKa

Hallo Beta-User,

ich habe eine Frage zum Verhalten beim Neustart von fhem und switch in the past. Werden beim Neustart die Schaltungen in der Vergangenheit durchgeführt? Wenn ja, erfolgt die in der Reihenfolge und mit WDT_sendDelay?

Viele Grüße
Torsten
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

Beta-User

Beim Neustart werden Heizungsgeräte und ausdrücklich via Attribut mit SwitchInThePast versehene Geräte geprüft und ggf. geschaltet. "Ggf. geschaltet" bedeutet: nur, wenn sie nicht auf dem Sollwert aus der Vergangenheit stehen.

Ich _glaube_, auch da wird send_delay beachtet, aber bei Bedarf müßte ich das prüfen. Sollte aber nicht so dramatisch sein, weil bei einem Neustart ja in der Regel der alte Wert ok ist.
Kannst du aber auch mit einem längeren send_delay mal testen.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

ToKa

Danke für die schnelle Rückmeldung. Damit kann ich mir wahrscheinlich eine eigene Funktion zum setzen der richtigen Sollwerte nach einem Neustart sparen.

Wie prüfst Du, auf welchen Sollwert das device eingestellt ist?

Konkret geht es um zwave Thermostate mit desired-temp als Sollwert, wobei ich eine eigene perl Funktion zum Schalten benutze und im weekdaytimer mit 'Eco' und 'comfort' arbeite anstelle von Temperaturen.
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

Beta-User

Also: send_delay scheint nach überschlägiger Analyse des Codes auch in dem Fall beachtet zu werden.

desired-temp ist vermutlich schwierig, wenn du das feature "setReadingOnAck" (?) nicht nutzt, weil der Reading-Wert mit dem aktuellen Wert verglichen wird (und auf eine Stelle ergänzt, damit es zu den internen Werten/Parametern paßt).
Na jedenfalls: Falls es bei Eco etc. was zu vergleichen gibt, wird eben das verglichen (Codezeilen 1247ff).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

ToKa

Desired-temp aktualisiere ich als Userreading aus setpointTemp.
Ich schaue mir die Codezeile mal an, um es zu verstehen.
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

ToKa

#82
Hallo Beta-User,

ich habe mir den Code angeschaut und getestet. Der Vergleich actParam newParam geht leider schief, weil ReadingsVal "leer" zurückliefert (zum Testen habe ich bei fehlendem Wert "TEST" angegeben) und eine zus. Logzeile eingebaut. Der setmodifier wird richtig mit desired-temp belegt.

Mir ist klar, das selbst, wenn ReadingsVal funktioniert, der Vergleich schiefgeht, da desired-temp den Sollwert z.B. 21.0 enthält und newParam = 'comfort' ist. Könntest Du trotzdem mal schauen, warum ReadingsVal nicht funktioniert? Wäre es möglich anstatt gegen desired-temp gegen ein anderes Reading zu prüfen? Ansonsten kann ich das auch in meiner eigenen Funktion prüfen.

WDT_sendDelay greift beim Neustart nicht. Im Log sieht man, dass alle weekdaytimer direkt nacheinander abgearbeitet werden. Für den Test weekdaytimer hatte ich 180s eingestellt. Wäre toll, wenn Du Dir das auch noch einmal anschauen könntest.

Nachfolgend das LOG und das list vom Test-weekdaytimer:
2021.04.14 18:38:20.264 2: myHeatingControl_Single - overridable: 0
2021.04.14 18:38:20.265 2: myHeatingControl_Single - Device: ST_sz_THKV_Heizkoerper_Wand
2021.04.14 18:38:20.265 2: myHeatingControl_Single - Modus: eco
2021.04.14 18:38:20.265 2: myHeatingControl_Single - Anwesenheit: home
2021.04.14 18:38:20.265 2: myHeatingControl_Single - Urlaub: none
2021.04.14 18:38:20.265 2: myHeatingControl_Single - MainMode: tmHeating
2021.04.14 18:38:20.265 2: myHeatingControl_Single - eco:
2021.04.14 18:38:20.265 2: myHeatingControl_Single - ST_sz_THKV_Heizkoerper_Wand: => eco
2021.04.14 18:38:20.266 2: myHeatingControl_Single - single cmd: set ST_sz_THKV_Heizkoerper_Wand tmEnergySaveHeating;
2021.04.14 18:38:20.368 2: myHeatingControl_Single - Device: E2_ez_THKV_Heizkoerper_Fenster
2021.04.14 18:38:20.369 2: myHeatingControl_Single - Modus: comfort
2021.04.14 18:38:20.369 2: myHeatingControl_Single - Anwesenheit: home
2021.04.14 18:38:20.369 2: myHeatingControl_Single - Urlaub: none
2021.04.14 18:38:20.369 2: myHeatingControl_Single - MainMode: tmHeating
2021.04.14 18:38:20.369 2: myHeatingControl_Single - comfort:
2021.04.14 18:38:20.369 2: myHeatingControl_Single - E2_ez_THKV_Heizkoerper_Fenster: => fullPower / comfort
2021.04.14 18:38:20.369 2: myHeatingControl_Single - single cmd: set E2_ez_THKV_Heizkoerper_Fenster tmHeating; sleep 2.0; set E2_ez_THKV_Heizkoerper_Fenster tmFullPower;
2021.04.14 18:38:20.415 2: myHeatingControl_Single - Device: E1_wz_THKV_Heizkoerper_Wand
2021.04.14 18:38:20.416 2: myHeatingControl_Single - Modus: comfort
2021.04.14 18:38:20.416 2: myHeatingControl_Single - Anwesenheit: home
2021.04.14 18:38:20.416 2: myHeatingControl_Single - Urlaub: none
2021.04.14 18:38:20.416 2: myHeatingControl_Single - MainMode: tmHeating
2021.04.14 18:38:20.416 2: myHeatingControl_Single - comfort:
2021.04.14 18:38:20.416 2: myHeatingControl_Single - E1_wz_THKV_Heizkoerper_Wand: => fullPower / comfort
2021.04.14 18:38:20.416 2: myHeatingControl_Single - single cmd: set E1_wz_THKV_Heizkoerper_Wand tmHeating; sleep 2.0; set E1_wz_THKV_Heizkoerper_Wand tmFullPower;
2021.04.14 18:38:20.460 2: myHeatingControl_Single - Device: EG_fl_THKV_Heizkoerper_Wand
2021.04.14 18:38:20.460 2: myHeatingControl_Single - Modus: comfort
2021.04.14 18:38:20.461 2: myHeatingControl_Single - Anwesenheit: home
2021.04.14 18:38:20.461 2: myHeatingControl_Single - Urlaub: none
2021.04.14 18:38:20.461 2: myHeatingControl_Single - MainMode: tmHeating
2021.04.14 18:38:20.461 2: myHeatingControl_Single - comfort:
2021.04.14 18:38:20.461 2: myHeatingControl_Single - EG_fl_THKV_Heizkoerper_Wand: => fullPower / comfort
2021.04.14 18:38:20.461 2: myHeatingControl_Single - single cmd: set EG_fl_THKV_Heizkoerper_Wand tmHeating; sleep 2.0; set EG_fl_THKV_Heizkoerper_Wand tmFullPower;
2021.04.14 18:38:20.582 2: myHeatingControl_Single - Device: E2_ku_THKV_Heizkoerper_Fenster
2021.04.14 18:38:20.583 2: myHeatingControl_Single - Modus: comfort
2021.04.14 18:38:20.583 2: myHeatingControl_Single - Anwesenheit: home
2021.04.14 18:38:20.583 2: myHeatingControl_Single - Urlaub: none
2021.04.14 18:38:20.583 2: myHeatingControl_Single - MainMode: tmHeating
2021.04.14 18:38:20.583 2: myHeatingControl_Single - comfort:
2021.04.14 18:38:20.583 2: myHeatingControl_Single - E2_ku_THKV_Heizkoerper_Fenster: => fullPower / comfort
2021.04.14 18:38:20.583 2: myHeatingControl_Single - single cmd: set E2_ku_THKV_Heizkoerper_Fenster tmHeating; sleep 2.0; set E2_ku_THKV_Heizkoerper_Fenster tmFullPower;
2021.04.14 18:38:20.629 2: myHeatingControl_Single - Device: E1_wz_THKV_Heizkoerper_Fenster
2021.04.14 18:38:20.630 2: myHeatingControl_Single - Modus: comfort
2021.04.14 18:38:20.630 2: myHeatingControl_Single - Anwesenheit: home
2021.04.14 18:38:20.630 2: myHeatingControl_Single - Urlaub: none
2021.04.14 18:38:20.630 2: myHeatingControl_Single - MainMode: tmHeating
2021.04.14 18:38:20.630 2: myHeatingControl_Single - comfort:
2021.04.14 18:38:20.630 2: myHeatingControl_Single - E1_wz_THKV_Heizkoerper_Fenster: => fullPower / comfort
2021.04.14 18:38:20.630 2: myHeatingControl_Single - single cmd: set E1_wz_THKV_Heizkoerper_Fenster tmHeating; sleep 2.0; set E1_wz_THKV_Heizkoerper_Fenster tmFullPower;
2021.04.14 18:38:20.670 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] time=16:05/1618409100 delay=9200, nextDelay=9240, nextRetry=1618418520
2021.04.14 18:38:20.670 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] delayedExecutionCond:0
2021.04.14 18:38:20.671 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] result of delayedExecutionCond: 0
2021.04.14 18:38:20.671 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] list of window sensors found: 'ST_bz_THKV_Heizkoerper_Wand_hC_01'
2021.04.14 18:38:20.671 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] condition: - Tage:8
2021.04.14 18:38:20.672 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] condition: - Tage:8
2021.04.14 18:38:20.673 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] Update   - past timer activated
2021.04.14 18:38:20.678 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] device: ST_bz_THKV_Heizkoerper_Wand setModifier: desired-temp  aktParam: TEST
2021.04.14 18:38:20.678 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] aktParam:TEST newParam:comfort - is not disabled
2021.04.14 18:38:20.678 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] command: '{ myHeatingControl_Single($NAME,$EVENT) }' executed with %EVENT=>comfort,%NAME=>ST_bz_THKV_Heizkoerper_Wand
2021.04.14 18:38:20.679 2: myHeatingControl_Single - Device: ST_bz_THKV_Heizkoerper_Wand
2021.04.14 18:38:20.679 2: myHeatingControl_Single - Modus: comfort
2021.04.14 18:38:20.680 2: myHeatingControl_Single - Anwesenheit: home
2021.04.14 18:38:20.680 2: myHeatingControl_Single - Urlaub: none
2021.04.14 18:38:20.680 2: myHeatingControl_Single - MainMode: tmHeating
2021.04.14 18:38:20.680 2: myHeatingControl_Single - comfort:
2021.04.14 18:38:20.680 2: myHeatingControl_Single - ST_bz_THKV_Heizkoerper_Wand: => fullPower / comfort
2021.04.14 18:38:20.680 2: myHeatingControl_Single - single cmd: set ST_bz_THKV_Heizkoerper_Wand tmHeating; sleep 2.0; set ST_bz_THKV_Heizkoerper_Wand tmFullPower;


Internals:
   COMMAND    { myHeatingControl_Single($NAME,$EVENT) }
   CONDITION 
   DEF        ST_bz_THKV_Heizkoerper_Wand de !$we|05:15|comfort !$we|07:45|eco:0 !$we|16:05|comfort !$we|20:15|eco:0 $we|08:05|comfort $we|10:35|eco:0 $we|17:35|comfort $we|20:15|eco:0 { myHeatingControl_Single($NAME,$EVENT) }
   DEVICE     ST_bz_THKV_Heizkoerper_Wand
   FUUID      5cd810d3-f33f-2e5f-05e1-334d8cafe9528f4d
   FVERSION   98_WeekdayTimer.pm:0.241740/2021-04-07
   GlobalDaylistSpec
   LANGUAGE   de
   NAME       ST_bz_THKV_Heizkoerper_Wand_hC_01
   NR         223
   Profil 0: Sonntag 08:05:00 comfort, 10:35:00 eco:0, 17:35:00 comfort, 20:15:00 eco:0,
   Profil 1: Montag 05:15:00 comfort, 07:45:00 eco:0, 16:05:00 comfort, 20:15:00 eco:0,
   Profil 2: Dienstag 05:15:00 comfort, 07:45:00 eco:0, 16:05:00 comfort, 20:15:00 eco:0,
   Profil 3: Mittwoch 05:15:00 comfort, 07:45:00 eco:0, 16:05:00 comfort, 20:15:00 eco:0,
   Profil 4: Donnerstag 05:15:00 comfort, 07:45:00 eco:0, 16:05:00 comfort, 20:15:00 eco:0,
   Profil 5: Freitag 05:15:00 comfort, 07:45:00 eco:0, 16:05:00 comfort, 20:15:00 eco:0,
   Profil 6: Samstag 08:05:00 comfort, 10:35:00 eco:0, 17:35:00 comfort, 20:15:00 eco:0,
   Profil 7: Wochenende 08:05:00 comfort, 10:35:00 eco:0, 17:35:00 comfort, 20:15:00 eco:0,
   Profil 8: Werktags 05:15:00 comfort, 07:45:00 eco:0, 16:05:00 comfort, 20:15:00 eco:0,
   SETTIMERATMIDNIGHT 1
   STATE      nächste Schaltung: 2021-04-14 20:15:00 comfort ==> eco
   STILLDONETIME 0
   TYPE       WeekdayTimer
   setModifier desired-temp
   READINGS:
     2021-04-14 18:38:20   currValue       comfort
     2021-04-12 21:39:22   disabled        0
     2021-04-14 18:38:20   nextUpdate      2021-04-14 20:15:00
     2021-04-14 18:38:20   nextValue       eco:0
     2021-04-14 18:38:20   state           comfort
   SWITCHINGTIMES:
     8|05:15|comfort
     8|07:45|eco:0
     8|16:05|comfort
     8|20:15|eco:0
     7|08:05|comfort
     7|10:35|eco:0
     7|17:35|comfort
     7|20:15|eco:0
   TIMER:
     ST_bz_THKV_Heizkoerper_Wand_hC_01_3:
       HASH       ST_bz_THKV_Heizkoerper_Wand_hC_01
       MODIFIER   3
       NAME       ST_bz_THKV_Heizkoerper_Wand_hC_01_3
       forceSwitch 1
     ST_bz_THKV_Heizkoerper_Wand_hC_01_4:
       HASH       ST_bz_THKV_Heizkoerper_Wand_hC_01
       MODIFIER   4
       NAME       ST_bz_THKV_Heizkoerper_Wand_hC_01_4
   helper:
     daysRegExp (so|mo|di|mi|do|fr|sa|\$we|\!\$we)
     daysRegExpMessage (so|mo|di|mi|do|fr|sa|$we|!$we)
     SWITCHINGTIME:
       0:
         08:05:00   comfort
         10:35:00   eco:0
         17:35:00   comfort
         20:15:00   eco:0
       1:
         05:15:00   comfort
         07:45:00   eco:0
         16:05:00   comfort
         20:15:00   eco:0
       2:
         05:15:00   comfort
         07:45:00   eco:0
         16:05:00   comfort
         20:15:00   eco:0
       3:
         05:15:00   comfort
         07:45:00   eco:0
         16:05:00   comfort
         20:15:00   eco:0
       4:
         05:15:00   comfort
         07:45:00   eco:0
         16:05:00   comfort
         20:15:00   eco:0
       5:
         05:15:00   comfort
         07:45:00   eco:0
         16:05:00   comfort
         20:15:00   eco:0
       6:
         08:05:00   comfort
         10:35:00   eco:0
         17:35:00   comfort
         20:15:00   eco:0
       7:
         08:05:00   comfort
         10:35:00   eco:0
         17:35:00   comfort
         20:15:00   eco:0
       8:
         05:15:00   comfort
         07:45:00   eco:0
         16:05:00   comfort
         20:15:00   eco:0
     WEDAYS:
       3          1
       4          1
   profil:
     1:
       EPOCH      1618370100
       PARA       comfort
       TIME       05:15
       WE_Override 0
       TAGE:
         8
     2:
       EPOCH      1618379100
       PARA       eco:0
       TIME       07:45
       WE_Override 0
       TAGE:
         8
     3:
       EPOCH      1618409100
       PARA       comfort
       TIME       16:05
       WE_Override 0
       TAGE:
         8
     4:
       EPOCH      1618424100
       PARA       eco:0
       TIME       20:15
       WE_Override 0
       TAGE:
         8
     5:
       EPOCH      1618380300
       PARA       comfort
       TIME       08:05
       WE_Override 0
       TAGE:
         7
     6:
       EPOCH      1618389300
       PARA       eco:0
       TIME       10:35
       WE_Override 0
       TAGE:
         7
     7:
       EPOCH      1618414500
       PARA       comfort
       TIME       17:35
       WE_Override 0
       TAGE:
         7
     8:
       EPOCH      1618424100
       PARA       eco:0
       TIME       20:15
       WE_Override 0
       TAGE:
         7
   profile_IDX:
     0:
       08:05:00   5
       10:35:00   6
       17:35:00   7
       20:15:00   8
     1:
       05:15:00   1
       07:45:00   2
       16:05:00   3
       20:15:00   4
     2:
       05:15:00   1
       07:45:00   2
       16:05:00   3
       20:15:00   4
     3:
       05:15:00   1
       07:45:00   2
       16:05:00   3
       20:15:00   4
     4:
       05:15:00   1
       07:45:00   2
       16:05:00   3
       20:15:00   4
     5:
       05:15:00   1
       07:45:00   2
       16:05:00   3
       20:15:00   4
     6:
       08:05:00   5
       10:35:00   6
       17:35:00   7
       20:15:00   8
     7:
       08:05:00   5
       10:35:00   6
       17:35:00   7
       20:15:00   8
     8:
       05:15:00   1
       07:45:00   2
       16:05:00   3
       20:15:00   4
Attributes:
   WDT_Group  HC
   WDT_sendDelay 180
   alias      Duschbad
   commandTemplate set $NAME desired-temp $EVENT
   disable    0
   event-on-change-reading .*
   group      Zeitsteuerung Heizung
   mqttDefaults floorID={substr $device,0,2} roomID={substr $device,3,2} devName={substr $device,6}
   mqttPublish disabled|currValue|nextUpdate|nextValue:topic={"$base/$floorID/$roomID/$devName/$reading"}
WDT_Group|WDT_sendDelay:atopic={"$base/$floorID/$roomID/$devName/$reading"}
   mqttSubscribe disable:atopic={"$remoteBase/$floorID/$roomID/$devName/disable"}
   room       Duschbad,Heizungsraum
   sortby     6
   stateFormat {if (ReadingsVal("ST_bz_THKV_Heizkoerper_Wand_hC_01","disabled","1") == 1) {
return "disabled"
} else {
my $cValue = ReadingsVal("ST_bz_THKV_Heizkoerper_Wand_hC_01","currValue","");
my $idx = index($cValue,":");
if ($idx != -1) {
$cValue = substr($cValue,0,$idx);
}
my $nValue = ReadingsVal("ST_bz_THKV_Heizkoerper_Wand_hC_01","nextValue","");
$idx = index($nValue,":");
if ($idx != -1) {
$nValue = substr($nValue,0,$idx);
}
return "nächste Schaltung: ".ReadingsVal("ST_bz_THKV_Heizkoerper_Wand_hC_01","nextUpdate","")." ".$cValue." ==> ".$nValue
}
}
   switchInThePast 1
   verbose    4


Edit: Für parameter und wdt_eventmap lassen such keine perl Funktion nutzen oder?

Viele Grüße
Torsten
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

Beta-User

Kannst du mal wegen der Verzögerung Zeile 896 so erweitern:
     resetRegisteredInternalTimer('delayed', time + 5 + AttrVal($name,'WDT_sendDelay',0), \&WeekdayTimer_delayedTimerInPast, $tipHash, 0);
Dann sollten eigentlich alle "verzögerten" dann auch verzögert kommen.

Der Code ist ziemlich speziell, muss mich auch immer wieder erst eindenken...

Das mit der Parameterersetzung ist eine reine Ersetzung via Hash-lookup, da klappt also kein Perl. Du kannst aber "hinten" Perl definieren und dann nur den reinen Parameter (eco/comfort etc.) übergeben,  sowohl $DEVICE wie $EVENT (der Parameter) sind ja verfügbar und können auch an eigene Routinen übergeben werden. Kann gerne bei Bedarf nachsehen, aber ich meine, dass der "normale" Perl-Aufruf ("hinten") ggf. dann nach der Ersetzung erfolgt (evtl. steht das auch in der cref?).

Das mit dem Vergleich "alt/neu" müßte eigentlich passen, da hatte sich neulich erst jemand gewundert, warum seine Devices _nicht_ geschalten wurden (weil sie schon auf dem Zielwert waren); glaube eigentlich nicht, dass ich da was so geändert habe, dass das jetzt fehlschlägt, wenn es passende Readings gibt.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

ToKa

Hallo Beta-User,

ich habe die Zeile geändert und auch eine Log-Zeile eingebaut. Das Attribut WDT_sendDelay wird auch richtig ermittelt, aber berücksichtigt wird es nicht. Es werden nach wie vor alle WDT unmittelbar nacheinander abgearbeitet.

    resetRegisteredInternalTimer('delayed', time + 5 + AttrVal($name,'WDT_sendDelay',0), \&WeekdayTimer_delayedTimerInPast, $tipHash, 0);
    Log3( $hash, 4, "[$name] WDT_sendDelay $name " .  AttrVal($name,'WDT_sendDelay',0));


ReadingsVal liefert trotzt harter Kodierung des WDT immer noch den "Testeintrag" zurück anstelle des Readings. Kann es sein, dass WDT zu früh nach dem Neustart losläuft und somit das Reading noch nicht gelesen werden kann?

  my $devName = $hash->{DEVICE};
#  my $aktParam  = ReadingsVal($hash->{DEVICE}, $setModifier, 'TEST');
  my $aktParam  = ReadingsVal('ST_bz_THKV_Heizkoerper_Wand', $setModifier, 'TEST');
     Log3( $hash, 4, "[$name] device: $devName setModifier: $setModifier aktParam: $aktParam" );


2021.04.15 11:37:44.146 2: myFHEM Initialisierung
2021.04.15 11:37:47.686 2: FB_CALLMONITOR (ZS_zs_NW_CallMonitor) - read 105 contacts from remote phonebook "Telefonbuch"
2021.04.15 11:38:11.581 2: FB_CALLMONITOR (ZS_zs_NW_CallMonitor) - downloaded 39 contact images from all phonebooks
2021.04.15 11:38:39.412 0: Featurelevel: 6.0
2021.04.15 11:38:39.413 0: Server started with 242 defined entities (fhem.pl:23904/2021-03-07 perl:5.028001 os:linux user:fhem pid:24324)
2021.04.15 11:38:40.915 2: AttrTemplates: got 249 entries
2021.04.15 11:38:40.993 2: ZWDongle_ProcessSendStack: no ACK, resending message 0107000301020100f9
2021.04.15 11:38:41.970 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] !$we|05:15|comfort - accepted
2021.04.15 11:38:41.970 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] !$we|07:45|eco:0 - accepted
2021.04.15 11:38:41.970 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] !$we|16:05|comfort - accepted
2021.04.15 11:38:41.970 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] !$we|20:15|eco:0 - accepted
2021.04.15 11:38:41.971 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] $we|08:05|comfort - accepted
2021.04.15 11:38:41.971 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] $we|10:35|eco:0 - accepted
2021.04.15 11:38:41.971 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] $we|17:35|comfort - accepted
2021.04.15 11:38:41.971 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] $we|20:15|eco:0 - accepted
2021.04.15 11:38:41.972 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] { myHeatingControl_Single($NAME,$EVENT) } - NOT accepted, must be command or condition
2021.04.15 11:38:41.987 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] 06:01:19 20:51:38 Donnerstag
2021.04.15 11:38:41.987 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] 08:05:00 comfort, 10:35:00 eco:0, 17:35:00 comfort, 20:15:00 eco:0,  (Profil 0: Sonntag)
2021.04.15 11:38:41.987 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] 05:15:00 comfort, 07:45:00 eco:0, 16:05:00 comfort, 20:15:00 eco:0,  (Profil 1: Montag)
2021.04.15 11:38:41.987 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] 05:15:00 comfort, 07:45:00 eco:0, 16:05:00 comfort, 20:15:00 eco:0,  (Profil 2: Dienstag)
2021.04.15 11:38:41.988 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] 05:15:00 comfort, 07:45:00 eco:0, 16:05:00 comfort, 20:15:00 eco:0,  (Profil 3: Mittwoch)
2021.04.15 11:38:41.988 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] 05:15:00 comfort, 07:45:00 eco:0, 16:05:00 comfort, 20:15:00 eco:0,  (Profil 4: Donnerstag)
2021.04.15 11:38:41.988 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] 05:15:00 comfort, 07:45:00 eco:0, 16:05:00 comfort, 20:15:00 eco:0,  (Profil 5: Freitag)
2021.04.15 11:38:41.988 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] 08:05:00 comfort, 10:35:00 eco:0, 17:35:00 comfort, 20:15:00 eco:0,  (Profil 6: Samstag)
2021.04.15 11:38:41.988 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] 08:05:00 comfort, 10:35:00 eco:0, 17:35:00 comfort, 20:15:00 eco:0,  (Profil 7: Wochenende)
2021.04.15 11:38:41.988 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] 05:15:00 comfort, 07:45:00 eco:0, 16:05:00 comfort, 20:15:00 eco:0,  (Profil 8: Werktags)
2021.04.15 11:38:42.004 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] 06:01:19 20:51:38 Donnerstag
2021.04.15 11:38:42.004 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] 08:05:00 comfort, 10:35:00 eco:0, 17:35:00 comfort, 20:15:00 eco:0,  (Profil 0: Sonntag)
2021.04.15 11:38:42.005 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] 05:15:00 comfort, 07:45:00 eco:0, 16:05:00 comfort, 20:15:00 eco:0,  (Profil 1: Montag)
2021.04.15 11:38:42.005 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] 05:15:00 comfort, 07:45:00 eco:0, 16:05:00 comfort, 20:15:00 eco:0,  (Profil 2: Dienstag)
2021.04.15 11:38:42.005 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] 05:15:00 comfort, 07:45:00 eco:0, 16:05:00 comfort, 20:15:00 eco:0,  (Profil 3: Mittwoch)
2021.04.15 11:38:42.005 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] 05:15:00 comfort, 07:45:00 eco:0, 16:05:00 comfort, 20:15:00 eco:0,  (Profil 4: Donnerstag)
2021.04.15 11:38:42.005 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] 05:15:00 comfort, 07:45:00 eco:0, 16:05:00 comfort, 20:15:00 eco:0,  (Profil 5: Freitag)
2021.04.15 11:38:42.005 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] 08:05:00 comfort, 10:35:00 eco:0, 17:35:00 comfort, 20:15:00 eco:0,  (Profil 6: Samstag)
2021.04.15 11:38:42.006 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] 08:05:00 comfort, 10:35:00 eco:0, 17:35:00 comfort, 20:15:00 eco:0,  (Profil 7: Wochenende)
2021.04.15 11:38:42.006 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] 05:15:00 comfort, 07:45:00 eco:0, 16:05:00 comfort, 20:15:00 eco:0,  (Profil 8: Werktags)
2021.04.15 11:38:42.024 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] device type heating recognized, setModifier:desired-temp
2021.04.15 11:38:42.024 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] Heating recognized - switch in the past activated
2021.04.15 11:38:42.039 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] condition: - Tage:8
2021.04.15 11:38:42.056 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] condition: - Tage:8
2021.04.15 11:38:42.058 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] condition: - Tage:8
2021.04.15 11:38:42.060 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] setTimer - timer seems to be active today: 8|16:05|comfort
2021.04.15 11:38:42.060 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] condition: - Tage:8
2021.04.15 11:38:42.062 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] setTimer - timer seems to be active today: 8|20:15|eco:0
2021.04.15 11:38:42.063 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] condition: - Tage:7
2021.04.15 11:38:42.064 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] condition: - Tage:7
2021.04.15 11:38:42.065 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] condition: - Tage:7
2021.04.15 11:38:42.066 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] setTimer - timer seems to be NOT active today: 7|17:35|comfort
2021.04.15 11:38:42.066 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] condition: - Tage:7
2021.04.15 11:38:42.067 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] setTimer - timer seems to be NOT active today: 7|20:15|eco:0
2021.04.15 11:38:42.073 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] time=07:45/1618465500 delay=14022, nextDelay=14100, nextRetry=1618479780
2021.04.15 11:38:42.073 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] delayedExecutionCond:0
2021.04.15 11:38:42.074 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] result of delayedExecutionCond: 0
2021.04.15 11:38:42.074 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] list of window sensors found: 'ST_bz_THKV_Heizkoerper_Wand_hC_01'
2021.04.15 11:38:42.074 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] past timer on ST_bz_THKV_Heizkoerper_Wand at 2021-04-15 07:45:00 with  eco:0 activated
2021.04.15 11:38:42.075 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] WDT_sendDelay ST_bz_THKV_Heizkoerper_Wand_hC_01 180
2021.04.15 11:38:42.376 0: HourCounter KG_hz_BZ_Zirkulationspumpe Run.598 first run done countsOverall:3097
2021.04.15 11:38:42.900 1: smarthome.srv.cgnf.net:1883 reappeared (ZS_zs_CO_SCADA_MQTT_Client)
2021.04.15 11:38:43.187 1: PERL WARNING: Argument "low" isn't numeric in numeric lt (<) at (eval 1268) line 1.
2021.04.15 11:38:55.692 1: ZS_uw_UW_Pollenflug: URL error (1): write to http://www.allergie.hexal.de:80 timed out
2021.04.15 11:38:58.408 1: PERL WARNING: Argument "" isn't numeric in numeric eq (==) at ./FHEM/57_CALVIEW.pm line 226.
2021.04.15 11:39:07.011 2: myHeatingControl_Single - overridable: 0
2021.04.15 11:39:07.011 2: myHeatingControl_Single - Device: EG_fl_THKV_Heizkoerper_Wand
2021.04.15 11:39:07.013 2: myHeatingControl_Single - Modus: eco
2021.04.15 11:39:07.013 2: myHeatingControl_Single - Anwesenheit: home
2021.04.15 11:39:07.013 2: myHeatingControl_Single - Urlaub: none
2021.04.15 11:39:07.013 2: myHeatingControl_Single - MainMode: tmHeating
2021.04.15 11:39:07.013 2: myHeatingControl_Single - eco:
2021.04.15 11:39:07.014 2: myHeatingControl_Single - EG_fl_THKV_Heizkoerper_Wand: => eco
2021.04.15 11:39:07.014 2: myHeatingControl_Single - single cmd: set EG_fl_THKV_Heizkoerper_Wand tmEnergySaveHeating;
2021.04.15 11:39:07.119 2: myHeatingControl_Single - overridable: 0
2021.04.15 11:39:07.120 2: myHeatingControl_Single - Device: ST_sz_THKV_Heizkoerper_Wand
2021.04.15 11:39:07.120 2: myHeatingControl_Single - Modus: eco
2021.04.15 11:39:07.120 2: myHeatingControl_Single - Anwesenheit: home
2021.04.15 11:39:07.120 2: myHeatingControl_Single - Urlaub: none
2021.04.15 11:39:07.120 2: myHeatingControl_Single - MainMode: tmHeating
2021.04.15 11:39:07.120 2: myHeatingControl_Single - eco:
2021.04.15 11:39:07.120 2: myHeatingControl_Single - ST_sz_THKV_Heizkoerper_Wand: => eco
2021.04.15 11:39:07.120 2: myHeatingControl_Single - single cmd: set ST_sz_THKV_Heizkoerper_Wand tmEnergySaveHeating;
2021.04.15 11:39:07.245 2: myHeatingControl_Single - overridable: 1
2021.04.15 11:39:07.246 2: myHeatingControl_Single - Device: E2_ku_THKV_Heizkoerper_Fenster
2021.04.15 11:39:07.246 2: myHeatingControl_Single - Modus: eco
2021.04.15 11:39:07.246 2: myHeatingControl_Single - Anwesenheit: home
2021.04.15 11:39:07.246 2: myHeatingControl_Single - Urlaub: none
2021.04.15 11:39:07.246 2: myHeatingControl_Single - MainMode: tmHeating
2021.04.15 11:39:07.246 2: myHeatingControl_Single - eco:
2021.04.15 11:39:07.246 2: myHeatingControl_Single - E2_ku_THKV_Heizkoerper_Fenster: => eco
2021.04.15 11:39:07.246 2: myHeatingControl_Single - single cmd: set E2_ku_THKV_Heizkoerper_Fenster tmEnergySaveHeating;
2021.04.15 11:39:07.294 2: myHeatingControl_Single - overridable: 1
2021.04.15 11:39:07.294 2: myHeatingControl_Single - Device: E1_wz_THKV_Heizkoerper_Fenster
2021.04.15 11:39:07.294 2: myHeatingControl_Single - Modus: eco
2021.04.15 11:39:07.294 2: myHeatingControl_Single - Anwesenheit: home
2021.04.15 11:39:07.295 2: myHeatingControl_Single - Urlaub: none
2021.04.15 11:39:07.295 2: myHeatingControl_Single - MainMode: tmHeating
2021.04.15 11:39:07.295 2: myHeatingControl_Single - eco:
2021.04.15 11:39:07.295 2: myHeatingControl_Single - E1_wz_THKV_Heizkoerper_Fenster: => eco
2021.04.15 11:39:07.295 2: myHeatingControl_Single - single cmd: set E1_wz_THKV_Heizkoerper_Fenster tmEnergySaveHeating;
2021.04.15 11:39:07.342 2: myHeatingControl_Single - overridable: 1
2021.04.15 11:39:07.343 2: myHeatingControl_Single - Device: E2_ez_THKV_Heizkoerper_Fenster
2021.04.15 11:39:07.343 2: myHeatingControl_Single - Modus: eco
2021.04.15 11:39:07.343 2: myHeatingControl_Single - Anwesenheit: home
2021.04.15 11:39:07.343 2: myHeatingControl_Single - Urlaub: none
2021.04.15 11:39:07.343 2: myHeatingControl_Single - MainMode: tmHeating
2021.04.15 11:39:07.343 2: myHeatingControl_Single - eco:
2021.04.15 11:39:07.343 2: myHeatingControl_Single - E2_ez_THKV_Heizkoerper_Fenster: => eco
2021.04.15 11:39:07.343 2: myHeatingControl_Single - single cmd: set E2_ez_THKV_Heizkoerper_Fenster tmEnergySaveHeating;
2021.04.15 11:39:07.391 2: myHeatingControl_Single - overridable: 1
2021.04.15 11:39:07.391 2: myHeatingControl_Single - Device: E1_wz_THKV_Heizkoerper_Wand
2021.04.15 11:39:07.391 2: myHeatingControl_Single - Modus: eco
2021.04.15 11:39:07.391 2: myHeatingControl_Single - Anwesenheit: home
2021.04.15 11:39:07.392 2: myHeatingControl_Single - Urlaub: none
2021.04.15 11:39:07.392 2: myHeatingControl_Single - MainMode: tmHeating
2021.04.15 11:39:07.392 2: myHeatingControl_Single - eco:
2021.04.15 11:39:07.392 2: myHeatingControl_Single - E1_wz_THKV_Heizkoerper_Wand: => eco
2021.04.15 11:39:07.392 2: myHeatingControl_Single - single cmd: set E1_wz_THKV_Heizkoerper_Wand tmEnergySaveHeating;
2021.04.15 11:39:07.413 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] time=07:45/1618465500 delay=14047, nextDelay=14100, nextRetry=1618479780
2021.04.15 11:39:07.413 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] delayedExecutionCond:0
2021.04.15 11:39:07.413 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] result of delayedExecutionCond: 0
2021.04.15 11:39:07.414 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] list of window sensors found: 'ST_bz_THKV_Heizkoerper_Wand_hC_01'
2021.04.15 11:39:07.414 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] condition: - Tage:8
2021.04.15 11:39:07.415 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] condition: - Tage:8
2021.04.15 11:39:07.416 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] Update   - past timer activated
2021.04.15 11:39:07.421 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] device: ST_bz_THKV_Heizkoerper_Wand setModifier: desired-temp  aktParam: TEST
2021.04.15 11:39:07.421 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] aktParam:TEST newParam:eco:0 - is not disabled
2021.04.15 11:39:07.421 4: [ST_bz_THKV_Heizkoerper_Wand_hC_01] command: '{ myHeatingControl_Single($NAME,$EVENT) }' executed with %EVENT=>eco 0,%NAME=>ST_bz_THKV_Heizkoerper_Wand
2021.04.15 11:39:07.422 2: myHeatingControl_Single - overridable: 0
2021.04.15 11:39:07.422 2: myHeatingControl_Single - Device: ST_bz_THKV_Heizkoerper_Wand
2021.04.15 11:39:07.422 2: myHeatingControl_Single - Modus: eco
2021.04.15 11:39:07.422 2: myHeatingControl_Single - Anwesenheit: home
2021.04.15 11:39:07.422 2: myHeatingControl_Single - Urlaub: none
2021.04.15 11:39:07.423 2: myHeatingControl_Single - MainMode: tmHeating
2021.04.15 11:39:07.423 2: myHeatingControl_Single - eco:
2021.04.15 11:39:07.423 2: myHeatingControl_Single - ST_bz_THKV_Heizkoerper_Wand: => eco
2021.04.15 11:39:07.423 2: myHeatingControl_Single - single cmd: set ST_bz_THKV_Heizkoerper_Wand tmEnergySaveHeating;


Viele Grüße
Torsten
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

Beta-User

Zitat
ReadingsVal liefert trotzt harter Kodierung des WDT immer noch den "Testeintrag" zurück anstelle des Readings. Kann es sein, dass WDT zu früh nach dem Neustart losläuft und somit das Reading noch nicht gelesen werden kann?
Die volle Initialisierung wird beim WDT seit längerem über einen InternalTimer gemacht (mit niedriger Prio). Von daher sollte eigentlich alles andere voll verfügbar sein.

Bist du denn sicher, dass da ein Reading mit Namen "desired-temp" vorhanden ist? Der Setter desired-temp geht ja bei ZWave normalerweise auf state und hat gerade keine Entsprechung in einem Reading (bzw. nicht zwingend).

Zitat von: ToKa am 15 April 2021, 11:56:16
Das Attribut WDT_sendDelay wird auch richtig ermittelt, aber berücksichtigt wird es nicht.
Wenn ich die Log-Auszüge ansehe, stimmt das m.E. nicht ganz: Es wird verzögert, aber nicht ausreichend, die effektive Schaltung findet um 11:39:07.421 statt. Dieses "add-on" im Code ist also notwendig, aber nicht hinreichend.

Allerdings ist mir jetzt die Ursache klarer: WDT scannt alle Minute, ob noch irgendwas an "delayed execution" abzuarbeiten ist. Dabei kommt es dann wieder auf den ursprünglichen Schaltzeitpunkt an, den man auch nicht so einfach ändern kann. Hmmm, tricky. Muss mal schauen, ob mir was einfällt, ohne den Gesamtcode auseinandernehmen zu müssen...
Vermutlich muss man da irgendwo noch uptime abfragen und mit send_delay vergleichen.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

ToKa

OK, das klingt nicht trivial, aber ich hoffe, Dir fällt da etwas ein, um die Verzögerungen auch beim Start zu berücksichtigen.

Desired-Temp ist bei meine ZWave Thermostaten vorhanden und wird über ein userreading
desired-temp:setpointTemp:..* {ReadingsNum("ST_bz_THKV_Heizkoerper_Wand","setpointTemp","18.5")}
mit setpointTemp belegt.

Wenn ich ReadingsVal manuell als Kommando ausführe, liefert das auch den Wert korrekt im Dialog. Außerdem arbeite ich mit dem Reading auch an anderer Stelle.
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

Beta-User

...ungetestet...

Bin nicht sicher, ob das den erhofften Erfolg bringt, jetzt ist noch ein Vergleich zur Startzeit/(bzw. Mitternacht) dazu gekommen.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

ToKa

Ich traue es mich ja kaum zu schreiben... aber die WDTs werden immer noch ohne Delay alle auf einmal aktiviert.
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

Beta-User

#89
Zitat von: ToKa am 15 April 2021, 18:22:32
Ich traue es mich ja kaum zu schreiben... aber die WDTs werden immer noch ohne Delay alle auf einmal aktiviert.
...nachdem ich mich aus anderen Gründen mal wieder etwas intensiver mit der Timerverwaltung vom WDT auseinandergesetzt habe, habe ich eventuell den "Dreh" gefunden, um das WDT-delay auch beim Starten und "delayed"-Massenänderungen zu verwirklichen.
Bisher war es so, dass alle "delayed" Timer in einem zentralen Array (für alle WDT) abgelegt wurden und dann vermutlich einfach durch den ersten "losgelassen" wurden, dessen Timer abgelaufen war.
Jetzt erfolgt diese Verwaltung pro WDT, was bei meinem Test zumindest dazu geführt hat, dass das beim Starten beachtet wurde.

Kann aber sein, dass auch das a) wirklungslos ist und b) unbeabsichtigte Nebenwirkungen hat, weil ich zugegebenermaßen immer noch darüber rätsle, warum das überhaupt in einem zentralen Array verwaltet wurde und nicht direkt "lokal"... Ich vermute, das hatte was mit der Doppelnutzung des Codes mit Heating_Control zu tun, aber sicher bin ich bei weitem nicht...

Rückmeldung von Usern, die mehrere potentiell betroffene Geräte haben wäre super, in meiner Echtinstallation ist das Thema nicht wirklich von Bedeutung und daher schlecht zu testen.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files