FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Kalendermodule => Thema gestartet von: Beta-User am 21 Mai 2020, 18:28:26

Titel: Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Beta-User am 21 Mai 2020, 18:28:26
Hallo zusammen,

nachdem die anderen von mir als Maintainer betreuten Module erst mal soweit durch sind, geht es mit dem WeekdayTimer weiter.

Anbei eine erste Testversion, die insbesondere manche Irritationen beseitigen sollte in den Fällen, in denen es die User zu gut gemeint hatten und "78" oder "$we,!$we" als "profile" angegeben hatten. Weiter sind einige weitere kleine (und hoffentlich auf programmiertechnisch größere) Verbesserungen eingeflossen, wie zwei "erlegte eval" und ein perlSyntaxCheck für die "delayedExecutionCond". Das sind leider sehr viele kleinere und (für mich) größere Umbauarbeiten gewesen, so dass es schwierig ist, das zu 100% durchzutesten, und fertig ist die Reise leider auch noch nicht.

Wie immer würde es mich freuen, wenn jemand mittesten würde, ansonsten: Es wird ggf. in näherer Zukunft eingecheckt, ebenso eventuelle weitere Schritte in diese Richtung, falls es nicht genug Freiwillige gibt. Wer also nicht mittesten will, sollte excludefromupdate nutzen... Entwarnung folgt dann zu gegebener Zeit.

Grüße,

Beta-User

Edit:
22.05.: aktualisierte Fassung mit etwas anderer Logik betr. IsHeating.
22.05. #2: aktualisierte Fassung mit "vollst. PBP-konformen eval".
22.12. erste package-Fassung incl. WDT_sendDelay und WDT_eventMap
02.01.21: bereinigte package-Fassung. Braucht unbedingt einen FHEM-restart!
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: juemuc am 21 Mai 2020, 22:21:33
Hallo Beta-User,

mit dem neuen Modul erhalte ich bei einem "Schaltvorgang" folgende Log-Einträge:
2020.05.21 22:15:00 1: PERL WARNING: Use of uninitialized value $setModifier in string gt at ./FHEM/98_WeekdayTimer.pm line 1166.
2020.05.21 22:15:00 1: PERL WARNING: Use of uninitialized value $n in hash element at fhem.pl line 4483.
2020.05.21 22:15:01 1: PERL WARNING: Use of uninitialized value in hash element at fhem.pl line 1709.


und hier die Definition:
defmod Nachtlampe_WT WeekdayTimer FBDECT_FB_08761_0230141 de 1234560|22:15|on 12345|06:10|off 1234560|{sunrise_abs(0,"00:00","23:59")}|off
attr Nachtlampe_WT commandTemplate set $NAME  $EVENT
attr Nachtlampe_WT devStateStyle style="text-align:right"
attr Nachtlampe_WT disable 0
attr Nachtlampe_WT event-on-change-reading .*
attr Nachtlampe_WT group Schaltzeitpunkte
attr Nachtlampe_WT room Schaltzentrale,Statuszentrale


Viele Grüße
Jürgen
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Beta-User am 22 Mai 2020, 06:29:38
Hallo Jürgen,

vorab mal Danke fürs Testen!

"Eigentlich" ist der Teil rund um Zeile 1166 nicht verändert, es sollte also schon früher was ähnliches (vermutlich mit anderer Zeilennummer, aber immer mit $setModifier) im Log aufgetaucht sein?
Jedenfalls ist die aktuelle Fassung im ersten Post (v.a.) an der Stelle etwas modifiziert.

Die beiden anderen Meldungen bekomme ich nicht auf die Schnelle zu WDT gebrückt:
Zeile 4483 in fhem.pl gehört zu ReadingsNum(), und das benutzt WDT gar nicht (evtl. FB_DECT beim Schalten?), und Zeile 1709 zu CommandSave(). Da bin ich dann vollends ratlos, wo der Zusammenhang sein könnte (immer unterstellt, die Zeilennummern gehören zur aktuellen fhem.pl).
Aber evtl. hast du ja eine Idee?
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Beta-User am 22 Mai 2020, 17:09:33
Noch ein update im ersten Post.

Damit wäre das eigentliche Ziel vermutlich geschafft, die eval rauszuwerfen/bzw. zu entschärfen :) .
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: juemuc am 23 Mai 2020, 15:16:45
Hallo Beta-User,

mit der aktuellen Version erhalte ich nun diese Meldungen:

Zitat2020.05.23 15:12:14 1: PERL WARNING: Argument "($element =~ tr/"//)" isn't numeric in modulus (%) at ./FHEM/98_WeekdayTimer.pm line 547.
2020.05.23 15:12:14 1: PERL WARNING: Argument "($element =~ tr/'//)" isn't numeric in modulus (%) at ./FHEM/98_WeekdayTimer.pm line 547.
2020.05.23 15:12:14 1: PERL WARNING: Argument "($element =~ tr/}//)" isn't numeric in subtraction (-) at ./FHEM/98_WeekdayTimer.pm line 561.
2020.05.23 15:12:14 1: PERL WARNING: Argument "($element =~ tr/{//)" isn't numeric in subtraction (-) at ./FHEM/98_WeekdayTimer.pm line 561.
2020.05.23 15:12:14 1: PERL WARNING: Argument "($element =~ tr/)//)" isn't numeric in subtraction (-) at ./FHEM/98_WeekdayTimer.pm line 561.
2020.05.23 15:12:14 1: PERL WARNING: Argument "($element =~ tr/(//)" isn't numeric in subtraction (-) at ./FHEM/98_WeekdayTimer.pm line 561.

Viele Grüße
Jürgen
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Beta-User am 23 Mai 2020, 19:55:56
Danke für die Rückmeldung.

Jetzt sollte es wirklich gefixt sein, vorher war da vermutlich doch noch ein ganz anderer Wurm drin...
Aus der Doku zu (u.a.) tr (https://perldoc.perl.org/perlop.html#Quote-Like-Operators):
ZitatBecause the transliteration table is built at compile time, neither the SEARCHLIST nor the REPLACEMENTLIST are subjected to double quote interpolation.  That means that if you want to use variables, you must use an eval() (https://perldoc.perl.org/functions/eval.html)
Da eval raus sollte, habe ich jetzt den Code "etwas mehr zu Fuß" umgestellt.

Fragen (mir spucken grade noch zwei Dinge im Kopf rum, weiß noch nicht, ob ich das angehen will/soll und wieviel Aufwand das ggf. wäre):
- Würde es Sinn machen, auch dem WDT ein "set ... inactive" zu spendieren?
- Heute bin ich über FILTER gestolpert (:FILTER=STATE!=$EVENT), siehe https://forum.fhem.de/index.php/topic,111436.msg1056799.html#msg1056799. Könnte man ggf. auch per Attribut automatisiert in den Command einbauen (?). Gibt es Meinungen dazu?
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: juemuc am 23 Mai 2020, 21:31:44
Hallo Beta-User,

für Leute, die den Filter nutzen, würde es wohl Sinn machen. Ich nutze es nicht.
Was mich viel mehr stört ist der Statuswechsel obwohl disabled auf 1 steht.

Viele Grüße
Jürgen
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Beta-User am 24 Mai 2020, 11:07:36
Hmm, mal schauen...

Also: das mit dem Statuswechsel müßte eigentlich "schon immer" so gewesen sein. Ergo dürfte es ein paar Leute geben, die das "irgendwie" in ihren Installationen berücksichtigen, was im Ergebnis bedeutet, dass es keine gute Idee ist, das Verhalten direkt zu ändern.

Was genau stört dich an dem Verhalten?
(Mich stört, dass die Timer im Hintergrund verwaltet werden und damit eine gewisse (geringe) unnötige Last erzeugt wird.)

Die Sache mit "inactive" könnte evtl. ein Ausweg sein, weil dann der state dauerhaft auf "inactive" bleiben sollte, bis man den WDT aktiviert. "Blöd" ist dabei nur, dass die Info "inactive" im Moment auch als Zwischenstatus genutzt wird, aber das ist zum einen noch nicht so lange so (=potentiell weniger Betroffene), und zum anderen ist das eigentlich nur eine Art "Übergangswert" ohne wirklichen Informationsgehalt für den User. Später könnte man dann ggf. feature-Level-abhängig auch das "disable"-Verhalten ändern...
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: juemuc am 24 Mai 2020, 11:38:16
Hallo Beta-User,

ich synchronisere den Status (currValue) meiner WT mit den dazugehörige Geräten (zur schöneren Anzeige). Anbei ein Beispiel. Der Rollo wird auf 50% gesetzt. Dann setze ich den Status von "ROLLO_WT" ebenfalls auf 50%. Wenn nun aber der WT um 20:00 Uhr den Rollo auf 0% setzen würde, dann geht der Status auf 0% obwohl der WT auf disabled steht. Ich bin hier der Meinung, dass sich ein Status bei  disabled nicht ändern darf (durch das Device).

Und ja das ist schon immer so  ::)

Ideal wäre, wenn in state oder in einem anderen Readings der Status "aktiv" bzw "inaktiv" stehen würde.

Viele Grüße
Jürgen

PS.: Die Meldungen sind jetzt weg  ;D
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Beta-User am 25 Mai 2020, 16:50:31
Zitat von: juemuc am 24 Mai 2020, 11:38:16
PS.: Die Meldungen sind jetzt weg  ;D
Danke für die Info.

Werde heute abend auch nochmal meine logs ansehen, ob da was kritisches zu sehen ist und dann vermutlich schon diese Version einchecken (evtl. nach etwas Kosmetik).

Wer also noch rechtzeitig "in Deckung gehen will": feel free ;D .

ZitatUnd ja das ist schon immer so  ::)

Ideal wäre, wenn in state oder in einem anderen Readings der Status "aktiv" bzw "inaktiv" stehen würde.
Na ja, dann werde ich das jetzt erst mal nicht ändern. Vielleicht meldet sich ja noch jemand zu "inactive", ich selber brauche das nicht und setze meine WDT auch in der Regel nicht auf "disable 1".

In jedem Fall: Vielen Dank für's Testen @juemuc!
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Beta-User am 29 Mai 2020, 12:43:50
Da zumindest bis dato keine Probleme gemeldet wurden, gebe ich mal vorsichtig Entwarnung...
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Beta-User am 10 Oktober 2020, 13:57:31
Hallo zusammen,

da ich neulich Bedarf hatte, etwas anderes im state zu haben als "open window", wenn die delayedExecutionCond zutrifft, gibt es an der Stelle mal wieder eine Testversion, die - wenn der Rückgabewert was anderes als undef/0 ist - entweder weiter "open window" anzeigt, wenn man sich brav an die commandref gehalten hat, und eine 1 (oder true) zurückgibt, oder eben das, was der Code der delayedExecutionCond zurückgibt...
Beispiel:
attr rr_Mann_Presence_Timer delayedExecutionCond {return "absent" if ReadingsVal("$NAME",'smartphone','absent') eq 'absent';; return "present" if ReadingsVal("$NAME",'smartphone','absent') eq 'present' and "$EVENT" eq 'absent' }

Da das "offene Fenster" auch eine Reminiszenz an die Zeiten ist, in denen das Modul als Heating_Control entwickelt wurde, an der Stelle nochmal die Ankündigung, dass der WDT-Code vermutlich in näherer Zukunft einer Überarbeitung unterzogen wird und danach Heating_Control nur noch funktionieren wird, wenn man eine "alte" Version (also im Prinzip dann die hier angehängte) verwendet. (An die 89+ User, die das lt Statistics noch im Einsatz haben: Dass es mAn. keinen Sinn macht, weiter an Heating_Control festzuhalten, sei an der Stelle nochmal angemerkt, bitte nutzt die einfach zu handhabende Umstellungsoption und macht eben aus den HC-Devices eine oder mehrere Gruppen von WeekdayTimern...).

Grüße, Beta-User
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Beta-User am 22 Dezember 2020, 08:00:40
Zitat von: Beta-User am 10 Oktober 2020, 13:57:31
an der Stelle nochmal die Ankündigung, dass der WDT-Code vermutlich in näherer Zukunft einer Überarbeitung unterzogen wird und danach Heating_Control nur noch funktionieren wird, wenn man eine "alte" Version [...] verwendet.

Die nähere Zukunft hat begonnen...

Im ersten Post findet ihr wieder eine Version zum Testen. Die ist jetzt tatsächlich inkompatibel mit Heating_Control, weil auf package umgestellt, so dass über den main-namespace nur noch die beiden explizit in der Doku erwähnten Perl-Funktionen aufgerufen werden können.

Das ganze ist noch nicht "schön", und manches will ich noch ändern.

Warum solltet ihr jetzt mittesten:
- erfahrungsgemäß ist das Leben bunter wie die Vorstellungskraft eines einzelnen Maintainers ::) . Manche Probleme kommen eben erst zum Vorschein, wenn bestimmte Konstellationen gegeben sind...
- Es gibt "news", die ggf. dem einen oder anderen das Leben erleichtern können bzw. Probleme vermeiden könnten...
-- WDT_sendDelay fügt zu den Schaltzeiten an das Device immer die betreffende Anzahl an Sekunden hinzu. Es gab zwar auf [Nötig?] WeekdayTimer und delays bei der Übertragung von Änderungen keine (!) Rückmeldung auf meine diesbezügliche Anfrage, aber nach meinen Erfahrungen mit ZWave-Rollladenaktoren und AutoShuttersControl und den ersten Praxiserfahrungen mit der Kombi weekprofile+WeekdayTimer+ZWave-Thermostat meine ich, das ist sinnvoll.
-- WDT_eventMap erlaubt es, _innerhalb des WeekdayTimer_ $EVENT "umzubiegen", um z.B. aus Temperaturvorgaben (weekprofile) dann "spezielle" Schaltanweisungen zu machen, wie sie insbesondere KNX zu benötigen scheint (es ginge wohl genauso mit ZWave, aber da ist der Bedarf wohl geringer).

Wie immer ist feedback willkommen :) .

Grüße, Beta-User
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: ToKa am 22 Dezember 2020, 10:44:55
Hallo Beta-User,

das klingt super, da ich auch Z-Wave Thermostate im Einsatz habe. Die Verzögerung macht absolut Sinn, damit nicht zu viel gleichzeitiger Funkverkehr entsteht. Bislang habe ich mir damit beholfen jeden WDT mit "krummen" Uhrzeiten zu versehen, so dass diese alle nacheinander die Thermostate gesteuert haben.

Bzgl. der WDT_eventMap habe ich noch Fragen. Bedeutet das im Zusammenhang mit den Z-Wave Thermostaten z.B. dem Eurotronic Spirit, dass ich diesem auch ein "set tmHeating" oder "tmEnergySaveHeating" schicken kann? Dann könnte ich das doch mit weekprofile kombinieren, weil man dort ja nur Temperaturen hinterlegen kann - zumindest über die Weboberfläche, wenn ich es richtig verstanden habe. Über json hatte ich probiert und es ging auch ein String z.B. eco.

Planst Du da mit beiden Modulen noch eine "bessere" Integration bzw. weitere Features, die es erlauben nicht nur Temperaturen zu verwenden?

Beste Grüße
Torsten
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Beta-User am 22 Dezember 2020, 11:14:15
Hi ToKa,

das mapping für ZWave sollte mit der im ersten Post angehängten Version ohne weiteres gehen:
attr <wdt> WDT_eventMap 18.0:tmEnergySaveHeating 22.0:tmHeating 19.0:desired-temp+17.0
sollte bewirken, dass eine 18.0 im Profil (das auch aus weekprofile kommen kann) dann effektiv ein
set $NAME tmEnergySaveHeating
zur (ggf. verzögerten...) Schaltzeit "raushaut" bzw. dann eben auf "19.0" reagiert mit einem
set $NAME desired-temp 17.0
Das hat den Vorteil, dass man einheitlich "normale" Temperaturlisten für alle möglichen Devices pflegen kann, egal, ob es jetzt CUL_HM, ... oder eben "ZWave via WDT"-Hardware ist und dann ggf. die "lokalen Besonderheiten" eben durch die Einstellung am Device selbst und/oder dem WDT eingehen kann...
Das direkte Editieren der JSON geht natürlich auch, ist aber m.E. in der laufenden Pflege umständlicher wie das Berücksichtigen von "speziellen Temperaturen".

Da weekprofile nicht meine Baustelle ist, habe ich da keine weiteren Pläne, was "nicht-Temperaturlisten" angeht, das wäre beim Maintainer Risiko einzukippen. Ich sehe das aber - vielleicht abgesehen von weiteren "heizungstypischen Keywords" wie etwa "eco" - auch eher als nicht vordringlich an.

Was aus meiner Sicht (neben der Finalisierung des WDT-Codes) noch offen ist, sind noch ein oder zwei Beispiele für weekprofile+MQTT2_DEVICE. Für die "China-zigbee2mqtt"-Dinger gibt es bereits Code (aber noch keine Rückmeldung, ob das funktioniert), und bei ebus scheint es keinen Bedarf zu geben, jedenfalls war es da bisher still...

Letzteres ist aber kein WDT-Thema, sondern eher eine Frage, wie man  Heizungsgeräte ggf. "hausweit" synchron halten kann.

Tendenziell glaube ich auch, dass es mit der WDT_eventMap nunmehr auch genug Möglichkeiten gibt, alles mögliche abzubilden, mehr Optionen sind am Ende vermutlich auch eher verwirrend wie hilfreich.

Wir werden sehen ;D .
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: ToKa am 22 Dezember 2020, 11:45:46
Hallo Beta-User,

danke für die weiteren Erläuterungen und Beispiele. Damit sollte ich zurechtkommen und werde die Version mal in meinem Testsystem ausprobieren.

Mit "eco" und "comfort" im weekprofile wäre natürlich dann perfekt, aber da wende ich mich mal an Risiko...

Beste Grüße
Torsten
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: ToKa am 22 Dezember 2020, 18:07:33
Hallo Beta-User,

WDT_eventMap funktioniert wie beschrieben und der Z-Wave Thermostat lässt sich damit steuern. Viel mehr habe ich noch nicht getestet, aber es sind mir auch keine negativen Dinge (keine Fehler im log) aufgefallen.

Beste Grüße
Torsten
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Beta-User am 22 Dezember 2020, 18:15:51
Danke für die Rückmeldung. Ich habe das ohne größere Nutzung des Mappings im Echtsystem laufen und vorgestern mit der Vorversion auch schon mal nach Mitternacht einen FHEM-Neustart via systemd verursacht ::) ... (Der Neustart war jetzt letzte Nacht weg, und ich meine auch die Ursache gefunden/behoben zu haben, aber sowas _kann_ auch von Wechselwirkungen mit was anderem kommen...)
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: juemuc am 22 Dezember 2020, 20:30:40
Auch bei mir nach dem ersten Test alles ok :-)

Viele Grüße
Jürgen
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Wardancer am 01 Januar 2021, 10:39:12
So,

kurzes Feedback von mir... ich hab die Testversion vor zwei Tagen eingespielt und nutze das mit WDT_sendDelay im Zusammenhang mit meinen Z-Wave-Thermostaten. Funktioniert genauso wie erwartet, keine Probleme oder Abstürze von FHEM....
läuft also!
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Beta-User am 02 Januar 2021, 05:26:07
Vielen Dank für eure Rückmeldungen!

Im ersten Post gibt's nochmal eine aktualisierte Fassung. Bringt keine neuen features, aber unnötig gewordene Teile sind aus dem Code raus etc. pp..

Die Basis sollte da sein, um ggf. irgendwann die restlichen perlcritic-3-Punkte anzugehen.

Zwischenzeitlich bin ich am überlegen, ob ich dem WDT noch eine echte NotifyFn spendieren soll, mit der er direkt auf Verzögerungsbedingungen (Fensterkontakte) reagieren kann. Die Syntax dürfte nicht so einfach werden (device:reading:delay-regex:Reaktions-Wert), aber möglich wäre es. Besteht an sowas Interesse?

Grüße, Beta-User
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Wardancer am 02 Januar 2021, 09:30:32
Hi,

Du meinst, man würde dann wenn Fensterkontakt offen wäre, die Schaltung verzögern? Also ich brauch sowas nicht, da bei den ZWave-Thermostaten von mir die Temperatureinstellung das Ausschalten des Thermostats nicht aufhebt.
Oder verstehe ich das falsch?
Ich glaube übrigens noch eine Besonderheit gefunden zu haben:
Ich hab meine Thermostate alle aug Absenk um 23:59 gestellt. Wenn ich mit den Delays nicht über die Datumsgrenze komme scheint alles schön abgearbeitet zu werden, wenn ich aber mit den Delays über die 0-Uhr Grenze Rutsche scheinen die übrigen dann fast zeitgleich gesendet zu werden. Ich denke das liegt an dem Standard-Verhalten, das um 0:00 die Timer neu gesetzt werden, oder? Ich hab mir jetzt mal beholfen und einfach absenk auf 23:56 gesetzt. Ich schaue mal, wie es heute Abend ist.
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: ToKa am 02 Januar 2021, 09:45:08
Hallo Beta-User,

Ich nutze keine Fensterkontakte, zumal die Spirits das is angeblich selbst merken.

Viele Grüße
Torsten
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Beta-User am 02 Januar 2021, 09:53:18
Es ist heute schon so, dass WENN ein Fensterkontakt angegeben ist (oder eine delay-Condition), dass dann die nächste Schaltung verzögert wird. Man muss allerdings das Ausschalten extern triggern und auch die Rückkehr zum "Normalmode" extern erledigen (zwischen den Schaltzeiten).
Die Frage wäre, ob man diese externen Regelungen nach intern verlagern sollte/könnte.

Und bitte bei allem berücksichtigen, dass es nicht nur ZWave auf der Welt gibt; ich meine, CUL_HM "tickt" da anders ;) , und wie ggf. die neueren ZigBee-Vertreter unterwegs sind, ist wieder eine "neue Welt". Die haben teils auch eine Fenster-Offen-Erkennung, aber es ist nicht gesagt, dass die bei "neuen Anweisungen" diese alle ebenfalls ignorieren, bis das Fenster wieder als geschlossen erkannt wird.
Aber dass  tmOff auch das Setzen einer andere desired-temp überdauert ist auf alle Fälle eine Info, die ich ggf. an anderer Stelle noch verwerten muss, dann ist vermutlich mein userReadings von hier (https://forum.fhem.de/index.php/topic,117204.msg1116753.html#msg1116753) überarbeitungsbedürftig (und tmOff (und ggf. noch mehr) muss auch noch irgenwie da rein)...

Und ja, man sollte bei den Verzögerungen darauf achten, dass man mit den Schaltzeiten etwas wegbleibt vom Tageswechsel. Falls da jemand Vorschläge für die Doku hat...
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Wardancer am 08 Januar 2021, 08:28:48
Hi,

eine Sache ist mir auch noch aufgefallen:
Kann es sein, dass die Verzögerungen (warum auch immer) einen Neustart von FHEM nach der Kalkulation der Zeiten um Mitternacht herum nicht überleben?
Ich habe nämlich im moment das Phänomen, dass die Verzögerungen morgens beim Hochfahren der Heizung korrekt gezogen werden, abends aber bei der Absenkungen alle Befehle auf einmal geschickt werden. Ich kann mir das eigentlich nur damit erklären, dass ich ja fast täglich einen Update-Lauf mit anschließendem Neustart von FHEM mache...den mache ich meistens irgendwann am Vormittag, also nach dem Schalten der Körper auf warm..... beobachte das gerade noch ein wenig und mache heute mal keinen Neustart...

VG
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Beta-User am 08 Januar 2021, 09:57:03
Müßte das nochmal im Code nachvollziehen, aber soweit ich das noch im Kopf habe, wird einfach bei jedem "eigentlichen" Schaltzeitpunkt die Verzögerung addiert und nicht zwischen erstem, x-tem und letztem Schaltzeitpunkt unterschieden, und die Ermittlung der Schaltzeitpunkte läuft auch im Grunde gleich ab, egal ob um Mitternacht oder untertägig (wegen Neustart, Topic-Änderung, ...).

Prüfen kannst du das, indem du
fheminfo timerList aufrufst. Da sollten die Timer dann lesbar aufgelistet sein. Bitte nochmal melden, falls es da Auffälligkeiten gibt.



@all:
Da das relativ stressfrei zu laufen scheint, werde ich das voraussichtlich am WE einchecken.

Bitte daher dringend alle mitlesenden "noch-Heating_Control"-Nutzer jetzt dann umsteigen, sonst wird das knirschen!
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Wardancer am 08 Januar 2021, 11:49:10
Hi,

fheminfo timerList

nimmt er bei mir nicht.
Zu den Timern zum runterfahren der Thermostate hat er es vorgestern z.B. mit den entsprechenden Delays gemacht, daher vermute ich halt irgendwas, was ich hier unbewusst auslöse ...
Wenn ich die Timer checken kann wäre das grandios, ansonsten warte ich einfach auf heute Abend.

Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Beta-User am 08 Januar 2021, 11:53:55
sorry, "fhemdebug" müßte es statt "fheminfo" heißen...
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Wardancer am 08 Januar 2021, 12:37:38
So,

direkt mal ausgeführt, und folgenden Mischmasch gefunden:

2021-01-08 18:00:00.00000 WeekdayTimer_Update
2021-01-08 18:04:31.99000 Twilight_fireEvent
2021-01-08 18:44:16.00000 Twilight_fireEvent
2021-01-08 19:30:31.00000 WeekdayTimer_Update
2021-01-08 20:00:02.00000 SunSetShuttersAfterTimerFn
2021-01-08 20:00:02.00000 SunSetShuttersAfterTimerFn
2021-01-08 20:03:31.00000 WeekdayTimer_Update
2021-01-08 22:00:00.00000 DOIF_TimerTrigger
2021-01-08 22:00:00.00000 WeekdayTimer_Update
2021-01-08 22:00:00.00000 WeekdayTimer_Update
2021-01-08 22:00:00.00000 WeekdayTimer_Update
2021-01-08 22:01:28.00000 WeekdayTimer_Update
2021-01-08 22:45:00.00000 WeekdayTimer_Update
2021-01-08 23:00:00.00000 DOIF_TimerTrigger
2021-01-08 23:00:00.00000 DOIF_TimerTrigger
2021-01-08 23:00:00.00000 DOIF_TimerTrigger
2021-01-08 23:00:00.00000 WeekdayTimer_Update
2021-01-08 23:00:00.00000 WeekdayTimer_Update
2021-01-08 23:00:00.00000 WeekdayTimer_Update
2021-01-08 23:00:00.00000 WeekdayTimer_Update
2021-01-08 23:00:00.00000 WeekdayTimer_Update
2021-01-08 23:00:00.00000 WeekdayTimer_Update
2021-01-08 23:00:00.00000 DOIF_TimerTrigger
2021-01-08 23:04:00.00000 WeekdayTimer_Update
2021-01-08 23:57:07.00000 WeekdayTimer_Update
2021-01-08 23:57:17.00000 WeekdayTimer_Update
2021-01-08 23:58:09.00000 WeekdayTimer_Update
2021-01-08 23:59:00.00000 DOIF_TimerTrigger
2021-01-08 23:59:00.00000 DOIF_TimerTrigger
2021-01-08 23:59:00.00000 WeekdayTimer_Update
2021-01-08 23:59:00.00000 DOIF_TimerTrigger
2021-01-08 23:59:11.00000 WeekdayTimer_Update
2021-01-08 23:59:50.00000 WeekdayTimer_Update


eigentlich sollte der Timer um 18:00 um 53 Sekunden verzögert laufen ... Witzigerweise ist aber z.b. der Timer um 23:57:07 vollkommen korrekt, genauso, wie der um 23:57:17 .... dazwischen gibt es dann wieder die um 23:00:00 die ich gar nicht zuordnen kann, weil Freitags eigentlich die Thermostate in der Mehrzahl um 23:57 + Delay runtergefahren werden ... kann ich noch was zur Fehleranalyse tun? Soll ich die Attribute mal neu setzen?

VG
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Beta-User am 08 Januar 2021, 12:58:46
Hmm, ist von hier aus schwierig. Es macht auf alle Fälle Sinn, mal zu checken, ob die Attribute wirklich bei allen gesetzt sind.

Ansonsten müßte man etwas tiefer einsteigen und nachsehen, welcher Timer denn im Detail zu welchem WDT gehört. Irgendwo hatte ich mal Code gepostet, mit dem man da etwas mehr rausbekommt, die Funktion heißt "listInternalTimer()" und steckt in einer myutils...
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Wardancer am 08 Januar 2021, 14:05:28
Ich schaue mal, ob ich die Funktion finde...

Das mit den Attributen hätte ich ja auch vermutet, wenn das morgens nicht immer so wie am Schnürchen klappen würde und zwar auch zu den hinterlegten Zeiten...

Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Wardancer am 08 Januar 2021, 15:16:13
So, hab die Funktion gefunden. Ausgabe sieht so aus:

207 08.01.2021 18:00:53 HCBZ_2 CODE(0x5c9b378)
282 08.01.2021 18:04:31 myTwilight_ss_naut CODE(0x696bb18)
279 08.01.2021 18:44:16 myTwilight_ss_astro CODE(0x696bb18)
252 08.01.2021 19:30:31 HCAZ_4 CODE(0x5c9b378)
315 08.01.2021 20:00:02 CODE(0x6795020)
267 08.01.2021 20:03:31 HCTZW_4 CODE(0x5c9b378)
530 08.01.2021 21:00:22 pushmsgTJ Pushover_ValidateUser
170 08.01.2021 22:00:00 DOIF_ADVENTLICHT DOIF_TimerTrigger
253 08.01.2021 22:00:31 HCAZ_5 CODE(0x5c9b378)
406 08.01.2021 22:01:28 HCB2_3 CODE(0x5c9b378)
263 08.01.2021 22:01:32 HCB2W_3 CODE(0x5c9b378)
268 08.01.2021 22:03:31 HCTZW_5 CODE(0x5c9b378)
182 08.01.2021 23:00:00 DOIF_Treppenlicht DOIF_TimerTrigger
213 08.01.2021 23:02:34 HCGWC_3 CODE(0x5c9b378)
6927 08.01.2021 23:56:07 HCKWZ2_4 CODE(0x5c9b378)
7018 08.01.2021 23:56:17 HCKWZ1_4 CODE(0x5c9b378)
6399 08.01.2021 23:57:09 HCB_4 CODE(0x5c9b378)
6532 08.01.2021 23:58:11 HCFLU_4 CODE(0x5c9b378)
6685 08.01.2021 23:58:50 HCBHT_4 CODE(0x5c9b378)
249 08.01.2021 23:59:00 ABHZ_4 CODE(0x5c9b378)
6273 08.01.2021 23:59:08 HCKUC_4 CODE(0x5c9b378)
6856 08.01.2021 23:59:20 HCTZ_4 CODE(0x5c9b378)


Meiner Meinung nach passt das eigentlich... ich warte jetzt mal morgen ab ....
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Beta-User am 08 Januar 2021, 15:26:11
Hmm, ja, sieht eigentich nicht schlecht aus.
(Wobei die Funktion ein paar "Haken" hat; es kann je nach Situation und Aufrufparameter (neben leer sind noch "t" und "f" möglich) vorkommen, dass man nicht alles angezeigt bekommt. Das liegt vermutlich daran, dass da ein Hash verwendet wird, um die Infos zwischenzuspeichern. Muss mal schauen, ob ich da bei Gelegenheit eine verbesserte Variante hinbekomme).

Aber an sich glaube ich nicht, dass der WDT-Code hier was falsch macht, alle zu einem WDT gehörenden regulären Timer werden innerhalb einer Schleife gesetzt. Kann es sein, dass dir irgendwas anderes dazwischenfunkt? (Eigentlich sollte auch ein Topic-Wechsel zu verzögerten Schaltungen führen, es könnte höchstens sein, dass es "gleichzeitige" switchInThePast" sind...?).
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Wardancer am 08 Januar 2021, 16:02:57
Ich hab ja noch kein weekprofile im Einsatz. Das sind wirklich nur die Timer aus dem WeekdayTimer.

Ich beobachte das mal und schaue mir die Timer mal über die nächsten Tage an... vielleicht bekomme ich da ja eine Idee für einen möglichen Grund. Ein Restart oder das Update sind es auf jeden Fall nicht, dass hab ich gerade gemacht. SwitchInThePast wäre auch merkwürdig... ich schalte verschiedene WeekdayTimer nur in Ausnahmefällen zur Laufzeit aktiv oder inaktiviere sie.

Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Beta-User am 08 Januar 2021, 16:07:16
Kannst du das nochmal gegenchecken mit dieser Version der myUtils-Routine:

Irgendwie kommt es mir so vor, als wären ein paar Timer unterschlagen worden in deiner Ausgabe von vorhin...
sub listInternalTimer {
    my $p = shift;
    my %cop;

    for my $e (@intAtA)
    {
        my $name = "";
        if (ref($e->{ARG}) eq "HASH") {
            if (exists($e->{ARG}{NAME}))
            {
                $name = $e->{ARG}{NAME};
            }
            elsif (exists($e->{ARG}{arg}))
            {
                $name = $e->{ARG}{arg};
            }           
        }
        elsif (ref($e->{ARG}) eq "REF" && exists(${$e->{ARG}}->{hash}))
        {
            $name = ${$e->{ARG}}->{hash}{NAME};
        }
        elsif (ref($e->{ARG}) ne "REF")
        {
            $name = $e->{ARG};
        }
        my $time = strftime('%d.%m.%Y %H:%M:%S', localtime($e->{TRIGGERTIME}));
        my $function = sprintf("%-25s %-25s", $name, $e->{FN});
        my $line = "<td>".$e->{atNr}."</td><td>".$time."</td><td>".$function."</td>";

        if ('f' eq $p)
        {
            $cop{$function." ".$e->{atNr}} = $line;
        }
        elsif ('t' eq $p)
        {
            $cop{$time." ".$e->{atNr}} = $line;
        }
        else
        {
            $cop{$name." ".$e->{atNr}} = $line;
        }
    }

    my $ret = '<html><table width=50%>';
    $ret .= "<td><b>InternalTimer List</b></td>";
    $ret .= '</tr></tr>';
    $ret .= "<td><b>Number</b></td>";
    $ret .= "<td><b>Date/Time</b></td>";
    $ret .= "<td><b>Function</b></td>";
    $ret .= '</tr>';
   
    for my $k (sort keys %cop) {
        $ret .= "$cop{$k}";
        $ret .= '</tr>';
    }

    $ret .= '</table></html>';
    return $ret;
}

Aufruf am besten mit "t", dann kommt das in der Abfolge der zeitlichen Abarbeitung:
{listInternalTimer("t")}
Und an sich sollte es egal sein, wo das Profil letztendlich herkommt, dia Abfolge ist immer: alles löschen, dann (standardisierte) Schaltzeiten ermitteln, dann neue timer setzen (da kommt sich genannte Schleife ins Spiel) und warten, dass die dran sind.
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Wardancer am 08 Januar 2021, 19:54:04
So,

sieht jetzt mit der angepassten Funktion so aus:

267 08.01.2021 20:03:31 HCTZW_4 CODE(0x5d61d90)
587 08.01.2021 21:57:42 pushmsgTJ Pushover_ValidateUser
170 08.01.2021 22:00:00 DOIF_ADVENTLICHT DOIF_TimerTrigger
253 08.01.2021 22:00:31 HCAZ_5 CODE(0x5d61d90)
258 08.01.2021 22:01:28 HCB2_3 CODE(0x5d61d90)
263 08.01.2021 22:01:32 HCB2W_3 CODE(0x5d61d90)
268 08.01.2021 22:03:31 HCTZW_5 CODE(0x5d61d90)
182 08.01.2021 23:00:00 DOIF_Treppenlicht DOIF_TimerTrigger
213 08.01.2021 23:02:34 HCGWC_3 CODE(0x5d61d90)
222 08.01.2021 23:56:07 HCKWZ2_4 CODE(0x5d61d90)
219 08.01.2021 23:56:17 HCKWZ1_4 CODE(0x5d61d90)
201 08.01.2021 23:57:09 HCB_4 CODE(0x5d61d90)
210 08.01.2021 23:58:11 HCFLU_4 CODE(0x5d61d90)
204 08.01.2021 23:58:50 HCBHT_4 CODE(0x5d61d90)
249 08.01.2021 23:59:00 ABHZ_4 CODE(0x5d61d90)
216 08.01.2021 23:59:08 HCKUC_4 CODE(0x5d61d90)
225 08.01.2021 23:59:20 HCTZ_4 CODE(0x5d61d90)
178 09.01.2021 00:00:00 DOIF_TV_AUDIO DOIF_TimerTrigger
285 09.01.2021 00:00:01 myTwilight_Midnight CODE(0x65cf1e8)
248 09.01.2021 00:00:02 nw holiday_refresh
76 09.01.2021 00:00:03 DOIFtools DOIFtoolsCounterReset
270 09.01.2021 00:00:05 HCTZW_SetTimerOfDay CODE(0x5df0a18)


soweit sieht es noch schlüssig aus. bin mal gespannt auf heute Abend und morgen früh. Was mich jetzt wundert ist, dass ich genau nur bei einem WeekdayTimer ein SetTimerOfDay habe. Das sollten doch bestimmt pro WeekdayTimer-Device jeweils einmal in den Timern drin stehen, oder?
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Beta-User am 09 Januar 2021, 07:13:16
An sich schon, aber evtl. ist da auch was noch/wieder in der Funktion schief.

Wie dem auch sei: habe das eben ins svn  eingecheckt, wer also noch Heating_Control nutzt:
"letzte Chance", das Modul vom update auszunehmen oder den TYPE zu konvertieren...
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Wardancer am 09 Januar 2021, 10:46:48
So,

Jetzt verstehe ich nichts mehr, die timer für heute Abend sehen jetzt so aus:


267275 09.01.2021 18:00:00 HCBZ_2 CODE(0x5d61d90)
267070 09.01.2021 18:05:39 myTwilight_ss_naut CODE(0x6a34290)
267067 09.01.2021 18:45:22 myTwilight_ss_astro CODE(0x6a34290)
502264 09.01.2021 20:00:02 CODE(0x68606a0)
267196 09.01.2021 20:03:31 HCTZW_4 CODE(0x5d61d90)
267279 09.01.2021 22:00:00 HCTZW_5 CODE(0x5d61d90)
501537 09.01.2021 23:00:00 DOIF_Treppenlicht DOIF_TimerTrigger
267287 09.01.2021 23:56:00 HCB_4 CODE(0x5d61d90)
501539 09.01.2021 23:59:00 DOIF_Treppenlicht DOIF_TimerTrigger
452541 10.01.2021 00:00:00 DOIF_TV_AUDIO DOIF_TimerTrigger
267073 10.01.2021 00:00:01 myTwilight_Midnight CODE(0x65cf1e8)
267083 10.01.2021 00:00:02 nw holiday_refresh
267098 10.01.2021 00:00:03 DOIFtools DOIFtoolsCounterReset
267199 10.01.2021 00:00:05 HCTZW_SetTimerOfDay CODE(0x5df0a18)

Da ist jetzt fast gar keine Schaltzeit mit drin, und wenn eine mit in der Liste ist, wie z.B um 23:56 hast sie kein Delay...
hab dann mal zum Vergleich den fhemdebug ausgepackt:


2021-01-09 23:00:00.00000 WeekdayTimer_Update
2021-01-09 23:00:00.00000 DOIF_TimerTrigger
2021-01-09 23:00:00.00000 DOIF_TimerTrigger
2021-01-09 23:56:00.00000 WeekdayTimer_Update
2021-01-09 23:56:00.00000 WeekdayTimer_Update
2021-01-09 23:56:00.00000 WeekdayTimer_Update
2021-01-09 23:56:00.00000 WeekdayTimer_Update
2021-01-09 23:56:00.00000 WeekdayTimer_Update
2021-01-09 23:56:00.00000 WeekdayTimer_Update
2021-01-09 23:56:00.00000 WeekdayTimer_Update
2021-01-09 23:59:00.00000 DOIF_TimerTrigger
2021-01-09 23:59:00.00000 DOIF_TimerTrigger
2021-01-09 23:59:00.00000 WeekdayTimer_Update
2021-01-09 23:59:00.00000 DOIF_TimerTrigger
2021-01-10 00:00:00.00000 DOIF_TimerTrigger
2021-01-10 00:00:01.00000 FileLog_dailySwitch
2021-01-10 00:00:01.00000 Twilight_Midnight
2021-01-10 00:00:02.36673 holiday_refresh
2021-01-10 00:00:03.50025 DOIFtoolsCounterReset
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay

Da scheinen zumindest mal alle Timer enthalten zu sein, aber alle ohne Delay. Die Funktion scheint wohl wirklich ein Problem zu haben... ist aber ja auch egal. Die Hohe Anzahl der Kalkulationen um Mitternacht kommt übrigens durch ein Set von inaktiven WeekdayTimern, die ich für den Urlaubsfall nutze..
Hat jemand noch ne Idee?
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Beta-User am 09 Januar 2021, 11:22:26
Welche Version von listInternalTimer() nutzt du?

fhemdebug ist m.E. vollständig, hat aber den Nachteil, dass die Zuordnung zu den Devices teilweise nicht möglich ist; das ist der Vorteil der Funktion (geht leider aber auch nur teilweise), allerdings nur, wenn der Kenner in dem zwischendurch gebildeten Hash eindeutig gesetzt wird und genau das müßte eigentlich die Fassung aus diesem Thread besser machen...
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Wardancer am 09 Januar 2021, 11:32:37
Hi,

ich hatte die Version genommen, die du gepostet hattest.
Jetzt der Knaller: Hab gerade mal ein Update gemacht (wegen WeekdayTimer aus dem SVN), FHEM neu gestartet und siehe da:
2021-01-09 18:00:53.00000 WeekdayTimer_Update
2021-01-09 18:05:39.99000 Twilight_fireEvent
2021-01-09 18:45:22.00000 Twilight_fireEvent
2021-01-09 20:00:02.00000 SunSetShuttersAfterTimerFn
2021-01-09 20:00:02.00000 SunSetShuttersAfterTimerFn
2021-01-09 20:03:31.00000 WeekdayTimer_Update
2021-01-09 22:00:00.00000 DOIF_TimerTrigger
2021-01-09 22:00:31.00000 WeekdayTimer_Update
2021-01-09 22:01:28.00000 WeekdayTimer_Update
2021-01-09 22:01:32.00000 WeekdayTimer_Update
2021-01-09 22:03:31.00000 WeekdayTimer_Update
2021-01-09 23:00:00.00000 DOIF_TimerTrigger
2021-01-09 23:00:00.00000 DOIF_TimerTrigger
2021-01-09 23:00:00.00000 DOIF_TimerTrigger
2021-01-09 23:00:00.00000 DOIF_TimerTrigger
2021-01-09 23:02:34.00000 WeekdayTimer_Update
2021-01-09 23:56:07.00000 WeekdayTimer_Update
2021-01-09 23:56:17.00000 WeekdayTimer_Update
2021-01-09 23:57:09.00000 WeekdayTimer_Update
2021-01-09 23:58:11.00000 WeekdayTimer_Update
2021-01-09 23:58:50.00000 WeekdayTimer_Update
2021-01-09 23:59:00.00000 DOIF_TimerTrigger
2021-01-09 23:59:00.00000 DOIF_TimerTrigger
2021-01-09 23:59:00.00000 DOIF_TimerTrigger
2021-01-09 23:59:00.00000 WeekdayTimer_Update
2021-01-09 23:59:08.00000 WeekdayTimer_Update
2021-01-09 23:59:20.00000 WeekdayTimer_Update
2021-01-10 00:00:00.00000 DOIF_TimerTrigger
2021-01-10 00:00:01.00000 FileLog_dailySwitch
2021-01-10 00:00:01.00000 Twilight_Midnight
2021-01-10 00:00:02.93595 holiday_refresh
2021-01-10 00:00:03.87325 DOIFtoolsCounterReset
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-10 00:00:05.00000 WeekdayTimer_SetTimerOfDay


Alle Timer mit den Delays da ...???

Hier auch noch die Ausgabe von dem listInternalTimer

207 09.01.2021 18:00:53 HCBZ_2 CODE(0x47eff20)
282 09.01.2021 18:05:39 myTwilight_ss_naut CODE(0x54c2bc0)
279 09.01.2021 18:45:22 myTwilight_ss_astro CODE(0x54c2bc0)
313 09.01.2021 20:00:02 CODE(0x52eedc8)
315 09.01.2021 20:00:02 CODE(0x52eedc8)
267 09.01.2021 20:03:31 HCTZW_4 CODE(0x47eff20)
170 09.01.2021 22:00:00 DOIF_ADVENTLICHT DOIF_TimerTrigger
253 09.01.2021 22:00:31 HCAZ_5 CODE(0x47eff20)
258 09.01.2021 22:01:28 HCB2_3 CODE(0x47eff20)
263 09.01.2021 22:01:32 HCB2W_3 CODE(0x47eff20)
268 09.01.2021 22:03:31 HCTZW_5 CODE(0x47eff20)
174 09.01.2021 23:00:00 DOIF_PRAESENZLAMPEN DOIF_TimerTrigger
176 09.01.2021 23:00:00 DOIF_TV_AUDIO DOIF_TimerTrigger
180 09.01.2021 23:00:00 DOIF_Treppenbewegungsmelder DOIF_TimerTrigger
182 09.01.2021 23:00:00 DOIF_Treppenlicht DOIF_TimerTrigger
213 09.01.2021 23:02:34 HCGWC_3 CODE(0x47eff20)
222 09.01.2021 23:56:07 HCKWZ2_4 CODE(0x47eff20)
219 09.01.2021 23:56:17 HCKWZ1_4 CODE(0x47eff20)
201 09.01.2021 23:57:09 HCB_4 CODE(0x47eff20)
210 09.01.2021 23:58:11 HCFLU_4 CODE(0x47eff20)
204 09.01.2021 23:58:50 HCBHT_4 CODE(0x47eff20)
175 09.01.2021 23:59:00 DOIF_PRAESENZLAMPEN DOIF_TimerTrigger
181 09.01.2021 23:59:00 DOIF_Treppenbewegungsmelder DOIF_TimerTrigger
184 09.01.2021 23:59:00 DOIF_Treppenlicht DOIF_TimerTrigger
249 09.01.2021 23:59:00 ABHZ_4 CODE(0x47eff20)
216 09.01.2021 23:59:08 HCKUC_4 CODE(0x47eff20)
225 09.01.2021 23:59:20 HCTZ_4 CODE(0x47eff20)
178 10.01.2021 00:00:00 DOIF_TV_AUDIO DOIF_TimerTrigger
199 10.01.2021 00:00:01 FileLog_dailySwitch
285 10.01.2021 00:00:01 myTwilight_Midnight CODE(0x53c7870)
230 10.01.2021 00:00:02 nw holiday_refresh
76 10.01.2021 00:00:03 DOIFtools DOIFtoolsCounterReset
203 10.01.2021 00:00:05 HCB_SetTimerOfDay CODE(0x487ed90)
206 10.01.2021 00:00:05 HCBHT_SetTimerOfDay CODE(0x487ed90)
209 10.01.2021 00:00:05 HCBZ_SetTimerOfDay CODE(0x487ed90)
212 10.01.2021 00:00:05 HCFLU_SetTimerOfDay CODE(0x487ed90)
215 10.01.2021 00:00:05 HCGWC_SetTimerOfDay CODE(0x487ed90)
218 10.01.2021 00:00:05 HCKUC_SetTimerOfDay CODE(0x487ed90)
221 10.01.2021 00:00:05 HCKWZ1_SetTimerOfDay CODE(0x487ed90)
224 10.01.2021 00:00:05 HCKWZ2_SetTimerOfDay CODE(0x487ed90)
227 10.01.2021 00:00:05 HCTZ_SetTimerOfDay CODE(0x487ed90)
232 10.01.2021 00:00:05 VACKUC_SetTimerOfDay CODE(0x487ed90)
234 10.01.2021 00:00:05 VACFLU_SetTimerOfDay CODE(0x487ed90)
236 10.01.2021 00:00:05 VACGWC_SetTimerOfDay CODE(0x487ed90)
238 10.01.2021 00:00:05 VACBZ_SetTimerOfDay CODE(0x487ed90)
240 10.01.2021 00:00:05 VACWZ1_SetTimerOfDay CODE(0x487ed90)
242 10.01.2021 00:00:05 VACWZ2_SetTimerOfDay CODE(0x487ed90)
244 10.01.2021 00:00:05 VACB_SetTimerOfDay CODE(0x487ed90)
246 10.01.2021 00:00:05 VACBHT_SetTimerOfDay CODE(0x487ed90)
248 10.01.2021 00:00:05 VACTZ_SetTimerOfDay CODE(0x487ed90)
251 10.01.2021 00:00:05 ABHZ_SetTimerOfDay CODE(0x487ed90)
255 10.01.2021 00:00:05 HCAZ_SetTimerOfDay CODE(0x487ed90)
257 10.01.2021 00:00:05 VAAZ_SetTimerOfDay CODE(0x487ed90)
260 10.01.2021 00:00:05 HCB2_SetTimerOfDay CODE(0x487ed90)
262 10.01.2021 00:00:05 VACB2_SetTimerOfDay CODE(0x487ed90)
265 10.01.2021 00:00:05 HCB2W_SetTimerOfDay CODE(0x487ed90)
270 10.01.2021 00:00:05 HCTZW_SetTimerOfDay CODE(0x487ed90)


Frage bleibt natürlich, warum verschluckt sich bei mir die Delay-Zuweisung??? Und das auch nur abends?
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Beta-User am 09 Januar 2021, 11:50:26
Hmm, kann natürlich sein, dass es da "Schwierigkeiten" gab, weil die alte Fassung noch mit prototype war und die neue ohne; sowas wird dann durch einen Neustart bereinigt.

Ansonsten sehen die Timer ok aus, oder übersehe ich was?

Kannst dann ja mal morgen früh nachschauen, ob jetzt alles passt...

Ansonsten würde ich mal einen Blick auf das weekprofile-feature empfehlen, das macht uU. zumindest mittelfristig die Behandlung mit "Sondersituationen" wie Urlaub einfacher.
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Wardancer am 09 Januar 2021, 15:56:45
Hi,

ja ich schaue morgen mal auf die Situation, und weekprofile ist ja schon gedanklich in Planung um die Sondersituation, wie "Party", Urlaub und diverse Personen sind mal anwesend und mal nicht abzudecken. Dafür wäre aber natürlich auf das Delay super, weil man dann nicht immer manuell 1 Minuten pro Thermostat schieben muss :)
Ich hoffe mal auf morgen und dann sehen wir weiter!
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: ToKa am 09 Januar 2021, 20:38:12
Hallo zusammen,

ich werde in den nächsten Tagen mein Produktivsystem umstellen und auch delay anstelle der unterschiedlichen Uhrzeiten einsetzen.

Werde die Timer im Auge behalten...

Viele Grüße
Torsten
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Wardancer am 10 Januar 2021, 10:05:19
Guten Morgen zusammen,

Die Thermostate haben heute morgen, wie gewohnt mit den entsprechenden Delays geschaltet.
Dann hab ich mir mal die Timer für heute Abend angeschaut. Die meisten Thermostate sollen heute um 23:00 mit Delay geschaltet werden. Das passt auch soweit. Was dann aber sehr witzig ist, ist das diese Thermostate dann angeblich wieder um 23:56 einen Schaltzeitpunkt hätten.
416006 10.01.2021 18:00:00 HCBZ_2 CODE(0x47eff20)
415796 10.01.2021 18:06:49 myTwilight_ss_naut CODE(0x54c2bc0)
415793 10.01.2021 18:46:29 myTwilight_ss_astro CODE(0x54c2bc0)
415929 10.01.2021 20:03:31 HCTZW_4 CODE(0x47eff20)
350414 10.01.2021 22:00:00 DOIF_ADVENTLICHT DOIF_TimerTrigger
416007 10.01.2021 22:00:00 HCTZW_5 CODE(0x47eff20)
416008 10.01.2021 22:00:00 HCB2_3 CODE(0x47eff20)
416009 10.01.2021 22:00:00 HCB2W_3 CODE(0x47eff20)
416010 10.01.2021 22:00:00 HCAZ_5 CODE(0x47eff20)
664883 10.01.2021 22:00:02 CODE(0x52eedc8)
664886 10.01.2021 22:00:02 CODE(0x52eedc8)
415905 10.01.2021 22:45:00 ABHZ_3 CODE(0x47eff20)
383104 10.01.2021 23:00:00 DOIF_PRAESENZLAMPEN DOIF_TimerTrigger
383105 10.01.2021 23:00:00 DOIF_Treppenbewegungsmelder DOIF_TimerTrigger
416011 10.01.2021 23:00:00 HCGWC_3 CODE(0x47eff20)
572479 10.01.2021 23:00:00 DOIF_TV_AUDIO DOIF_TimerTrigger
663683 10.01.2021 23:00:00 DOIF_Treppenlicht DOIF_TimerTrigger
415870 10.01.2021 23:00:07 HCKWZ2_3 CODE(0x47eff20)
415866 10.01.2021 23:00:17 HCKWZ1_3 CODE(0x47eff20)
415842 10.01.2021 23:01:09 HCB_3 CODE(0x47eff20)
426419 10.01.2021 23:02:11 HCFLU_3 CODE(0x47eff20)
415846 10.01.2021 23:02:50 HCBHT_3 CODE(0x47eff20)
415862 10.01.2021 23:03:08 HCKUC_3 CODE(0x47eff20)
415874 10.01.2021 23:03:20 HCTZ_3 CODE(0x47eff20)
416012 10.01.2021 23:56:00 HCTZ_4 CODE(0x47eff20)
416013 10.01.2021 23:56:00 HCKWZ2_4 CODE(0x47eff20)
416014 10.01.2021 23:56:00 HCBHT_4 CODE(0x47eff20)
416015 10.01.2021 23:56:00 HCKUC_4 CODE(0x47eff20)
416017 10.01.2021 23:56:00 HCKWZ1_4 CODE(0x47eff20)
416018 10.01.2021 23:56:00 HCB_4 CODE(0x47eff20)
426460 10.01.2021 23:56:00 HCFLU_4 CODE(0x47eff20)
415218 10.01.2021 23:59:00 DOIF_PRAESENZLAMPEN DOIF_TimerTrigger
415219 10.01.2021 23:59:00 DOIF_Treppenbewegungsmelder DOIF_TimerTrigger
416019 10.01.2021 23:59:00 ABHZ_4 CODE(0x47eff20)
663685 10.01.2021 23:59:00 DOIF_Treppenlicht DOIF_TimerTrigger
609831 11.01.2021 00:00:00 DOIF_TV_AUDIO DOIF_TimerTrigger
415785 11.01.2021 00:00:01 FileLog_dailySwitch
415799 11.01.2021 00:00:01 myTwilight_Midnight CODE(0x53c7870)
415819 11.01.2021 00:00:02 nw holiday_refresh
415825 11.01.2021 00:00:03 DOIFtools DOIFtoolsCounterReset
415844 11.01.2021 00:00:05 HCB_SetTimerOfDay CODE(0x487ed90)
415848 11.01.2021 00:00:05 HCBHT_SetTimerOfDay CODE(0x487ed90)
415852 11.01.2021 00:00:05 HCBZ_SetTimerOfDay CODE(0x487ed90)
415860 11.01.2021 00:00:05 HCGWC_SetTimerOfDay CODE(0x487ed90)
415864 11.01.2021 00:00:05 HCKUC_SetTimerOfDay CODE(0x487ed90)
415868 11.01.2021 00:00:05 HCKWZ1_SetTimerOfDay CODE(0x487ed90)
415872 11.01.2021 00:00:05 HCKWZ2_SetTimerOfDay CODE(0x487ed90)
415876 11.01.2021 00:00:05 HCTZ_SetTimerOfDay CODE(0x487ed90)
415879 11.01.2021 00:00:05 VACKUC_SetTimerOfDay CODE(0x487ed90)
415882 11.01.2021 00:00:05 VACFLU_SetTimerOfDay CODE(0x487ed90)
415885 11.01.2021 00:00:05 VACGWC_SetTimerOfDay CODE(0x487ed90)
415888 11.01.2021 00:00:05 VACBZ_SetTimerOfDay CODE(0x487ed90)
415891 11.01.2021 00:00:05 VACWZ1_SetTimerOfDay CODE(0x487ed90)
415894 11.01.2021 00:00:05 VACWZ2_SetTimerOfDay CODE(0x487ed90)
415897 11.01.2021 00:00:05 VACB_SetTimerOfDay CODE(0x487ed90)
415900 11.01.2021 00:00:05 VACBHT_SetTimerOfDay CODE(0x487ed90)
415903 11.01.2021 00:00:05 VACTZ_SetTimerOfDay CODE(0x487ed90)
415907 11.01.2021 00:00:05 ABHZ_SetTimerOfDay CODE(0x487ed90)
415912 11.01.2021 00:00:05 HCAZ_SetTimerOfDay CODE(0x487ed90)
415915 11.01.2021 00:00:05 VAAZ_SetTimerOfDay CODE(0x487ed90)
415919 11.01.2021 00:00:05 HCB2_SetTimerOfDay CODE(0x487ed90)
415922 11.01.2021 00:00:05 VACB2_SetTimerOfDay CODE(0x487ed90)
415926 11.01.2021 00:00:05 HCB2W_SetTimerOfDay CODE(0x487ed90)
415932 11.01.2021 00:00:05 HCTZW_SetTimerOfDay CODE(0x487ed90)
426421 11.01.2021 00:00:05 HCFLU_SetTimerOfDay CODE(0x487ed90)


23:56 wäre ein Schaltzeitpunkt für gestern oder vorgestern gewesen. Da dann das Thermostat schon geschaltet hat, würde der Schaltbefehl vermutlich gar nicht ausgeführt. Komisch ist es trotzdem.
Ich hab mal zum Vergleich den DEG von einem der beteiligten Thermostate hier unten gepostet.

DEF
EG_WZ_1HEIZUNG 12345|05:00|22 60|06:00|22 12340|23:00|16 56|23:56|16 (ReadingsVal("Heizung_HC1MQTT","ProgramChooseSwitch","") ne "Sommer")


Hab ich da noch ne Besonderheit drinne

Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Beta-User am 10 Januar 2021, 14:46:40
Hmm, im Moment bin ich vorläufig noch ratlos. Habe mal diese DEF (etwas modifiziert) übernommen und schaue dann morgen, wie da die Timer sind. Ich gehe davon aus, dass das ein Heizungs-Gerät ist (also in der Vergangenheit schaltet)?
Insgesamt ist es schwierig nachzuvollziehen, da ich aus der Liste und dem DEF-Schnippsel nicht sehen kann, was zu was gehört, oder übersehe ich da was?

Auf alle Fälle aber herzlichen Dank für die Rückmeldung in dem anderen Thread, dass das mit Topic etc. "easy" ist, wenn man mal durchschaut hat, wie es funktioniert.
Btw.: die aktuelle Version sollte eigentlich das weekprofile-Attribut gleich mit dem Namen des Devices (oder des WDT?) vorbelegen...
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Wardancer am 10 Januar 2021, 16:47:47
Hi,

Das DEF gehört zum Device HCKWZ1. Und ja ist ein Heizungsdevice, also SWitch in the past...

Zum weekprofile.... dann hab ich das wohl in der falschen Reihenfolge gemacht :)...

Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Wardancer am 11 Januar 2021, 08:16:37
Morgen,

nochmal eine kleine Rückmeldung von mir. Irgendwie sind es jetzt noch mehr Timer geworden und irgendwie sind jetzt beide Schaltzeiten zu sehen, die mit und die ohne Delay.

11.01.2021 18:00:00 HCBZ_12 CODE(0x47eff20)
1174937 11.01.2021 18:00:53 HCBZ_6 CODE(0x47eff20)
1174821 11.01.2021 18:08:01 myTwilight_ss_naut CODE(0x54c2bc0)
1174818 11.01.2021 18:47:38 myTwilight_ss_astro CODE(0x54c2bc0)
1174957 11.01.2021 19:30:31 HCAZ_6 CODE(0x47eff20)
1111810 11.01.2021 20:00:02 CODE(0x52eedc8)
1111813 11.01.2021 20:00:02 CODE(0x52eedc8)
1174927 11.01.2021 20:03:20 HCTZ_9 CODE(0x47eff20)
1174895 11.01.2021 20:03:31 HCTZW_4 CODE(0x47eff20)
1111786 11.01.2021 22:00:00 DOIF_ADVENTLICHT DOIF_TimerTrigger
1175039 11.01.2021 22:00:00 HCAZ_12 CODE(0x47eff20)
1175040 11.01.2021 22:00:00 HCB2W_3 CODE(0x47eff20)
1175041 11.01.2021 22:00:00 HCB2_12 CODE(0x47eff20)
1175042 11.01.2021 22:00:00 HCTZW_5 CODE(0x47eff20)
1175043 11.01.2021 22:00:00 HCTZ_20 CODE(0x47eff20)
1174947 11.01.2021 22:01:28 HCB2_6 CODE(0x47eff20)
1174923 11.01.2021 22:03:20 HCTZ_10 CODE(0x47eff20)
1175044 11.01.2021 22:45:00 ABHZ_3 CODE(0x47eff20)
1143249 11.01.2021 23:00:00 DOIF_PRAESENZLAMPEN DOIF_TimerTrigger
1143250 11.01.2021 23:00:00 DOIF_Treppenbewegungsmelder DOIF_TimerTrigger
1175045 11.01.2021 23:00:00 HCFLU_12 CODE(0x47eff20)
1175046 11.01.2021 23:00:00 HCB_12 CODE(0x47eff20)
1175047 11.01.2021 23:00:00 HCKWZ1_12 CODE(0x47eff20)
1175048 11.01.2021 23:00:00 HCBHT_12 CODE(0x47eff20)
1175049 11.01.2021 23:00:00
1175049 11.01.2021 23:00:00 HCKWZ2_12 CODE(0x47eff20)
1175050 11.01.2021 23:00:00 HCGWC_12 CODE(0x47eff20)
1175051 11.01.2021 23:00:00 HCKUC_12 CODE(0x47eff20)
1321388 11.01.2021 23:00:00 DOIF_TV_AUDIO DOIF_TimerTrigger
1174942 11.01.2021 23:00:07 HCKWZ2_6 CODE(0x47eff20)
1174952 11.01.2021 23:00:17 HCKWZ1_6 CODE(0x47eff20)
1174932 11.01.2021 23:01:09 HCB_6 CODE(0x47eff20)
1174962 11.01.2021 23:02:11 HCFLU_6 CODE(0x47eff20)
1174920 11.01.2021 23:02:34 HCGWC_6 CODE(0x47eff20)
1174910 11.01.2021 23:02:50 HCBHT_6 CODE(0x47eff20)
1174915 11.01.2021 23:03:08 HCKUC_6 CODE(0x47eff20)
1174286 11.01.2021 23:59:00 DOIF_PRAESENZLAMPEN DOIF_TimerTrigger
1174287 11.01.2021 23:59:00 DOIF_Treppenbewegungsmelder DOIF_TimerTrigger
1357955 12.01.2021 00:00:00 DOIF_TV_AUDIO DOIF_TimerTrigger
1174810 12.01.2021 00:00:01 FileLog_dailySwitch
1174824 12.01.2021 00:00:01 myTwilight_Midnight CODE(0x53c7870)
1174836 12.01.2021 00:00:02 nw holiday_refresh
1174846 12.01.2021 00:00:03 DOIFtools DOIFtoolsCounterReset
1174858 12.01.2021 00:00:05 VACKUC_SetTimerOfDay CODE(0x487ed90)
1174861 12.01.2021 00:00:05 VACFLU_SetTimerOfDay CODE(0x487ed90)
1174864 12.01.2021 00:00:05 VACGWC_SetTimerOfDay CODE(0x487ed90)
1174867 12.01.2021 00:00:05 VACBZ_SetTimerOfDay CODE(0x487ed90)
1174870 12.01.2021 00:00:05 VACWZ1_SetTimerOfDay CODE(0x487ed90)
1174873 12.01.2021 00:00:05 VACWZ2_SetTimerOfDay CODE(0x487ed90)
1174876 12.01.2021 00:00:05 VACB_SetTimerOfDay CODE(0x487ed90)
1174879 12.01.2021 00:00:05 VACBHT_SetTimerOfDay CODE(0x487ed90)
1174882 12.01.2021 00:00:05 VACTZ_SetTimerOfDay CODE(0x487ed90)
1174885 12.01.2021 00:00:05 VAAZ_SetTimerOfDay CODE(0x487ed90)
1174888 12.01.2021 00:00:05 VACB2_SetTimerOfDay CODE(0x487ed90)
1174892 12.01.2021 00:00:05 HCB2W_SetTimerOfDay CODE(0x487ed90)
1174898 12.01.2021 00:00:05 HCTZW_SetTimerOfDay CODE(0x487ed90)
1174899 12.01.2021 00:00:05 THCKWZ1_SetTimerOfDay CODE(0x487ed90)
1174900 12.01.2021 00:00:05 THCKWZ1_SetTimerOfDay CODE(0x487ed90)
1174901 12.01.2021 00:00:05 THCKWZ1_SetTimerOfDay CODE(0x487ed90)
1174902 12.01.2021 00:00:05 THCKWZ1_SetTimerOfDay CODE(0x487ed90)
1174903 12.01.2021 00:00:05 THCKWZ1_SetTimerOfDay CODE(0x487ed90)
1174907 12.01.2021 00:00:05 ABHZ_SetTimerOfDay CODE(0x487ed90)
1174912 12.01.2021 00:00:05 HCBHT_SetTimerOfDay CODE(0x487ed90)
1174917 12.01.2021 00:00:05 HCKUC_SetTimerOfDay CODE(0x487ed90)
1174922 12.01.2021 00:00:05 HCGWC_SetTimerOfDay CODE(0x487ed90)
1174929 12.01.2021 00:00:05 HCTZ_SetTimerOfDay CODE(0x487ed90)
1174934 12.01.2021 00:00:05 HCB_SetTimerOfDay CODE(0x487ed90)
1174939 12.01.2021 00:00:05 HCBZ_SetTimerOfDay CODE(0x487ed90)
1174944 12.01.2021 00:00:05 HCKWZ2_SetTimerOfDay CODE(0x487ed90)
1174949 12.01.2021 00:00:05 HCB2_SetTimerOfDay CODE(0x487ed90)
1174954 12.01.2021 00:00:05 HCKWZ1_SetTimerOfDay CODE(0x487ed90)
1174959 12.01.2021 00:00:05 HCAZ_SetTimerOfDay CODE(0x487ed90)
1174964 12.01.2021 00:00:05 HCFLU_SetTimerOfDay CODE(0x487ed90)


Ich werde jetzt mal Restarten und mal schauen, wie es dann aussieht.
Nach einem Neustart sieht es jetzt "clean" aus:

208 11.01.2021 18:00:53 HCBZ_6 CODE(0x63b01d8)
284 11.01.2021 18:08:01 myTwilight_ss_naut CODE(0x70844c0)
281 11.01.2021 18:47:38 myTwilight_ss_astro CODE(0x70844c0)
255 11.01.2021 19:30:31 HCAZ_6 CODE(0x63b01d8)
315 11.01.2021 20:00:02 CODE(0x6eadef0)
317 11.01.2021 20:00:02 CODE(0x6eadef0)
228 11.01.2021 20:03:20 HCTZ_9 CODE(0x63b01d8)
269 11.01.2021 20:03:31 HCTZW_4 CODE(0x63b01d8)
171 11.01.2021 22:00:00 DOIF_ADVENTLICHT DOIF_TimerTrigger
260 11.01.2021 22:01:28 HCB2_6 CODE(0x63b01d8)
265 11.01.2021 22:01:32 HCB2W_3 CODE(0x63b01d8)
226 11.01.2021 22:03:20 HCTZ_10 CODE(0x63b01d8)
270 11.01.2021 22:03:31 HCTZW_5 CODE(0x63b01d8)
252 11.01.2021 22:45:00 ABHZ_3 CODE(0x63b01d8)
175 11.01.2021 23:00:00 DOIF_PRAESENZLAMPEN DOIF_TimerTrigger
177 11.01.2021 23:00:00 DOIF_TV_AUDIO DOIF_TimerTrigger
181 11.01.2021 23:00:00 DOIF_Treppenbewegungsmelder DOIF_TimerTrigger
183 11.01.2021 23:00:00 DOIF_Treppenlicht DOIF_TimerTrigger
223 11.01.2021 23:00:07 HCKWZ2_6 CODE(0x63b01d8)
220 11.01.2021 23:00:17 HCKWZ1_6 CODE(0x63b01d8)
202 11.01.2021 23:01:09 HCB_6 CODE(0x63b01d8)
211 11.01.2021 23:02:11 HCFLU_6 CODE(0x63b01d8)
214 11.01.2021 23:02:34 HCGWC_6 CODE(0x63b01d8)
205 11.01.2021 23:02:50 HCBHT_6 CODE(0x63b01d8)
217 11.01.2021 23:03:08 HCKUC_6 CODE(0x63b01d8)
176 11.01.2021 23:59:00 DOIF_PRAESENZLAMPEN DOIF_TimerTrigger
182 11.01.2021 23:59:00 DOIF_Treppenbewegungsmelder DOIF_TimerTrigger
185 11.01.2021 23:59:00 DOIF_Treppenlicht DOIF_TimerTrigger
179 12.01.2021 00:00:00 DOIF_TV_AUDIO DOIF_TimerTrigger
200 12.01.2021 00:00:01 FileLog_dailySwitch
287 12.01.2021 00:00:01 myTwilight_Midnight CODE(0x6f87d10)
251 12.01.2021 00:00:02 nw holiday_refresh
76 12.01.2021 00:00:03 DOIFtools DOIFtoolsCounterReset
204 12.01.2021 00:00:05 HCB_SetTimerOfDay CODE(0x643fe58)
207 12.01.2021 00:00:05 HCBHT_SetTimerOfDay CODE(0x643fe58)
210 12.01.2021 00:00:05 HCBZ_SetTimerOfDay CODE(0x643fe58)
213 12.01.2021 00:00:05 HCFLU_SetTimerOfDay CODE(0x643fe58)
216 12.01.2021 00:00:05 HCGWC_SetTimerOfDay CODE(0x643fe58)
219 12.01.2021 00:00:05 HCKUC_SetTimerOfDay CODE(0x643fe58)
222 12.01.2021 00:00:05 HCKWZ1_SetTimerOfDay CODE(0x643fe58)
225 12.01.2021 00:00:05 HCKWZ2_SetTimerOfDay CODE(0x643fe58)
230 12.01.2021 00:00:05 HCTZ_SetTimerOfDay CODE(0x643fe58)
232 12.01.2021 00:00:05 VACKUC_SetTimerOfDay CODE(0x643fe58)
234 12.01.2021 00:00:05 VACFLU_SetTimerOfDay CODE(0x643fe58)
236 12.01.2021 00:00:05 VACGWC_SetTimerOfDay CODE(0x643fe58)
238 12.01.2021 00:00:05 VACBZ_SetTimerOfDay CODE(0x643fe58)
240 12.01.2021 00:00:05 VACWZ1_SetTimerOfDay CODE(0x643fe58)
242 12.01.2021 00:00:05 VACWZ2_SetTimerOfDay CODE(0x643fe58)
244 12.01.2021 00:00:05 VACB_SetTimerOfDay CODE(0x643fe58)
246 12.01.2021 00:00:05 VACBHT_SetTimerOfDay CODE(0x643fe58)
248 12.01.2021 00:00:05 VACTZ_SetTimerOfDay CODE(0x643fe58)
254 12.01.2021 00:00:05 ABHZ_SetTimerOfDay CODE(0x643fe58)
257 12.01.2021 00:00:05 HCAZ_SetTimerOfDay CODE(0x643fe58)
259 12.01.2021 00:00:05 VAAZ_SetTimerOfDay CODE(0x643fe58)
262 12.01.2021 00:00:05 HCB2_SetTimerOfDay CODE(0x643fe58)
264 12.01.2021 00:00:05 VACB2_SetTimerOfDay CODE(0x643fe58)
267 12.01.2021 00:00:05 HCB2W_SetTimerOfDay CODE(0x643fe58)
272 12.01.2021 00:00:05 HCTZW_SetTimerOfDay CODE(0x643fe58)

Ich hatte aber auch vor dem Neustart eine extrem Lange ausführungzeit von der Funktion. Jetzt geht es alles ganz flüssig.
Gibt es eine Möglichkeit, wie ich der Sache näher komme?
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Beta-User am 11 Januar 2021, 09:35:17
Ich werd's mir ansehen. Schade, dass du gleich neu gestartet hattest, der Vergleich mit fhemdebug timerList hätte mich interessiert, vielleicht wäre da sichtbar geworden, warum #1175049 doppelt auftaucht; der Teil sieht mir mehr nach einem Problem in der Darstellung aus...

Hast du eine Erklärung, warum THCKWZ1_SetTimerOfDay gleich 5x erscheint? Könnte das eine entsprechende Anzahl vorangegangener Pofilwechsel sein?
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Wardancer am 11 Januar 2021, 10:00:12
Oh #1175049 ist ein copy/paste Fehler.....
Zu dem HCKWZ1, könnte sein. Aber eigentlich hab ich gestern eher mit dem ABHZ die Umstellung auf weekprofile durchgetestet.

Was mich wundert war wirklich ein Blocker beim Durchlaufen der Funktion. Ich hatte dort einen ewig langen String drinnen stehen. Nach dem Neustart war davon nichts mehr zusehen ... sehr mysteriös...

Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Wardancer am 12 Januar 2021, 07:14:45
Guten Morgen,

Hier die Timer von heute morgen. Leider quasi genauso, wie gestern:
490440 12.01.2021 18:00:00 HCBZ_6 CODE(0x63b01d8)
490377 12.01.2021 18:00:53 HCBZ_18 CODE(0x63b01d8)
490277 12.01.2021 18:09:14 myTwilight_ss_naut CODE(0x70844c0)
490274 12.01.2021 18:48:48 myTwilight_ss_astro CODE(0x70844c0)
490441 12.01.2021 19:30:00 HCAZ_6 CODE(0x63b01d8)
490347 12.01.2021 19:30:31 HCAZ_18 CODE(0x63b01d8)
427880 12.01.2021 20:00:02 CODE(0x6eadef0)
427883 12.01.2021 20:00:02 CODE(0x6eadef0)
490383 12.01.2021 20:03:20 HCTZ_29 CODE(0x63b01d8)
427851 12.01.2021 22:00:00 DOIF_ADVENTLICHT DOIF_TimerTrigger
490443 12.01.2021 22:00:00 HCB2_6 CODE(0x63b01d8)
490445 12.01.2021 22:00:00 HCTZ_10 CODE(0x63b01d8)
490342 12.01.2021 22:01:28 HCB2_18 CODE(0x63b01d8)
490384 12.01.2021 22:03:20 HCTZ_30 CODE(0x63b01d8)
490446 12.01.2021 22:45:00 ABHZ_3 CODE(0x63b01d8)
460567 12.01.2021 23:00:00 DOIF_PRAESENZLAMPEN DOIF_TimerTrigger
460568 12.01.2021 23:00:00 DOIF_Treppenbewegungsmelder DOIF_TimerTrigger
490447 12.01.2021 23:00:00 HCFLU_6 CODE(0x63b01d8)
490448 12.01.2021 23:00:00 HCKWZ1_6 CODE(0x63b01d8)
490449 12.01.2021 23:00:00 HCB_6 CODE(0x63b01d8)
490450 12.01.2021 23:00:00 HCBHT_6 CODE(0x63b01d8)
490451 12.01.2021 23:00:00 HCKUC_6 CODE(0x63b01d8)
490452 12.01.2021 23:00:00 HCKWZ2_6 CODE(0x63b01d8)
490453 12.01.2021 23:00:00 HCGWC_6 CODE(0x63b01d8)
639560 12.01.2021 23:00:00 DOIF_TV_AUDIO DOIF_TimerTrigger
490357 12.01.2021 23:00:07 HCKWZ2_18 CODE(0x63b01d8)
490332 12.01.2021 23:00:17 HCKWZ1_18 CODE(0x63b01d8)
490372 12.01.2021 23:01:09 HCB_18 CODE(0x63b01d8)
490352 12.01.2021 23:02:11 HCFLU_18 CODE(0x63b01d8)
490367 12.01.2021 23:02:34 HCGWC_18 CODE(0x63b01d8)
490362 12.01.2021 23:02:50 HCBHT_18 CODE(0x63b01d8)
490337 12.01.2021 23:03:08 HCKUC_18 CODE(0x63b01d8)
489826 12.01.2021 23:59:00 DOIF_PRAESENZLAMPEN DOIF_TimerTrigger
489827 12.01.2021 23:59:00 DOIF_Treppenbewegungsmelder DOIF_TimerTrigger
677489 13.01.2021 00:00:00 DOIF_TV_AUDIO DOIF_TimerTrigger
490266 13.01.2021 00:00:01 FileLog_dailySwitch
490280 13.01.2021 00:00:01 myTwilight_Midnight CODE(0x6f87d10)
490289 13.01.2021 00:00:02 nw holiday_refresh
490298 13.01.2021 00:00:03 DOIFtools DOIFtoolsCounterReset
490319 13.01.2021 00:00:05 ABHZ_SetTimerOfDay CODE(0x643fe58)
490334 13.01.2021 00:00:05 HCKWZ1_SetTimerOfDay CODE(0x643fe58)
490339 13.01.2021 00:00:05 HCKUC_SetTimerOfDay CODE(0x643fe58)
490344 13.01.2021 00:00:05 HCB2_SetTimerOfDay CODE(0x643fe58)
490349 13.01.2021 00:00:05 HCAZ_SetTimerOfDay CODE(0x643fe58)
490354 13.01.2021 00:00:05 HCFLU_SetTimerOfDay CODE(0x643fe58)
490359 13.01.2021 00:00:05 HCKWZ2_SetTimerOfDay CODE(0x643fe58)
490364 13.01.2021 00:00:05 HCBHT_SetTimerOfDay CODE(0x643fe58)
490369 13.01.2021 00:00:05 HCGWC_SetTimerOfDay CODE(0x643fe58)
490374 13.01.2021 00:00:05 HCB_SetTimerOfDay CODE(0x643fe58)
490379 13.01.2021 00:00:05 HCBZ_SetTimerOfDay CODE(0x643fe58)
490386 13.01.2021 00:00:05 HCTZ_SetTimerOfDay CODE(0x643fe58)


2021-01-12 18:00:00.00000 WeekdayTimer_Update
2021-01-12 18:00:53.00000 WeekdayTimer_Update
2021-01-12 18:09:14.99000 Twilight_fireEvent
2021-01-12 18:48:48.00000 Twilight_fireEvent
2021-01-12 19:30:00.00000 WeekdayTimer_Update
2021-01-12 19:30:31.00000 WeekdayTimer_Update
2021-01-12 20:00:02.00000 SunSetShuttersAfterTimerFn
2021-01-12 20:00:02.00000 SunSetShuttersAfterTimerFn
2021-01-12 20:03:20.00000 WeekdayTimer_Update
2021-01-12 22:00:00.00000 DOIF_TimerTrigger
2021-01-12 22:00:00.00000 WeekdayTimer_Update
2021-01-12 22:00:00.00000 WeekdayTimer_Update
2021-01-12 22:01:28.00000 WeekdayTimer_Update
2021-01-12 22:03:20.00000 WeekdayTimer_Update
2021-01-12 22:45:00.00000 WeekdayTimer_Update
2021-01-12 23:00:00.00000 DOIF_TimerTrigger
2021-01-12 23:00:00.00000 DOIF_TimerTrigger
2021-01-12 23:00:00.00000 WeekdayTimer_Update
2021-01-12 23:00:00.00000 WeekdayTimer_Update
2021-01-12 23:00:00.00000 WeekdayTimer_Update
2021-01-12 23:00:00.00000 WeekdayTimer_Update
2021-01-12 23:00:00.00000 WeekdayTimer_Update
2021-01-12 23:00:00.00000 WeekdayTimer_Update
2021-01-12 23:00:00.00000 WeekdayTimer_Update
2021-01-12 23:00:00.00000 DOIF_TimerTrigger
2021-01-12 23:00:07.00000 WeekdayTimer_Update
2021-01-12 23:00:17.00000 WeekdayTimer_Update
2021-01-12 23:01:09.00000 WeekdayTimer_Update
2021-01-12 23:02:11.00000 WeekdayTimer_Update
2021-01-12 23:02:34.00000 WeekdayTimer_Update
2021-01-12 23:02:50.00000 WeekdayTimer_Update
2021-01-12 23:03:08.00000 WeekdayTimer_Update
2021-01-12 23:59:00.00000 DOIF_TimerTrigger
2021-01-12 23:59:00.00000 DOIF_TimerTrigger
2021-01-13 00:00:00.00000 DOIF_TimerTrigger
2021-01-13 00:00:01.00000 FileLog_dailySwitch
2021-01-13 00:00:01.00000 Twilight_Midnight
2021-01-13 00:00:02.33350 holiday_refresh
2021-01-13 00:00:03.60870 DOIFtoolsCounterReset
2021-01-13 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-13 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-13 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-13 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-13 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-13 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-13 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-13 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-13 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-13 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-13 00:00:05.00000 WeekdayTimer_SetTimerOfDay
2021-01-13 00:00:05.00000 WeekdayTimer_SetTimerOfDay


Ich hab gestern einmal die überflüssigen WeekdayTimer gelöscht, die für die Abwesenheit verwendet wurden. Daher ist grundsätzlich etwas übersichtlicher.

Große Ratlosigkeit...
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Beta-User am 12 Januar 2021, 07:42:36
Da ist in der Timer-Verwaltung noch bzw. wieder der Wurm drin, ich hoffe, das die Tage bereinigt zu bekommen.
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Wardancer am 12 Januar 2021, 10:49:23
Top!
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Beta-User am 12 Januar 2021, 13:23:14
Anbei mit erheblichem Restrisiko eine Fassung, die ich aber grade nur grob auf dem Testsystem antesten konnte.

Also falls sich jemand wagemutiges findet, würde ich mich über kritische Tester freuen...
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Wardancer am 12 Januar 2021, 21:43:09
Hab es mal eingespielt und melde mich morgen mal mit meinem Timern :)
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Wardancer am 13 Januar 2021, 07:03:14
Morgen,

Also die Timer sehen jetzt gut aus
74023 13.01.2021 18:00:53 HCBZ_21 CODE(0x4b207d0)
73982 13.01.2021 18:10:29 myTwilight_ss_naut CODE(0x57df418)
73979 13.01.2021 18:50:00 myTwilight_ss_astro CODE(0x57df418)
74047 13.01.2021 19:30:31 HCAZ_21 CODE(0x4b207d0)
9417 13.01.2021 20:00:02 CODE(0x560a0a0)
9420 13.01.2021 20:00:02 CODE(0x560a0a0)
9399 13.01.2021 22:00:00 DOIF_ADVENTLICHT DOIF_TimerTrigger
74051 13.01.2021 22:01:28 HCB2_21 CODE(0x4b207d0)
223658 13.01.2021 23:00:00 DOIF_TV_AUDIO DOIF_TimerTrigger
42178 13.01.2021 23:00:00 DOIF_PRAESENZLAMPEN DOIF_TimerTrigger
42179 13.01.2021 23:00:00 DOIF_Treppenbewegungsmelder DOIF_TimerTrigger
74039 13.01.2021 23:00:07 HCKWZ2_21 CODE(0x4b207d0)
74015 13.01.2021 23:01:09 HCB_21 CODE(0x4b207d0)
74027 13.01.2021 23:02:11 HCFLU_21 CODE(0x4b207d0)
74031 13.01.2021 23:02:34 HCGWC_21 CODE(0x4b207d0)
74019 13.01.2021 23:02:50 HCBHT_21 CODE(0x4b207d0)
74035 13.01.2021 23:03:08 HCKUC_21 CODE(0x4b207d0)
74043 13.01.2021 23:03:20 HCTZ_21 CODE(0x4b207d0)
73447 13.01.2021 23:59:00 DOIF_PRAESENZLAMPEN DOIF_TimerTrigger
73448 13.01.2021 23:59:00 DOIF_Treppenbewegungsmelder DOIF_TimerTrigger
261955 14.01.2021 00:00:00 DOIF_TV_AUDIO DOIF_TimerTrigger
73971 14.01.2021 00:00:01 FileLog_dailySwitch
73985 14.01.2021 00:00:01 myTwilight_Midnight CODE(0x537af88)
73994 14.01.2021 00:00:02 nw holiday_refresh
73999 14.01.2021 00:00:03 DOIFtools DOIFtoolsCounterReset
74016 14.01.2021 00:00:05 HCB CODE(0x4baf250)
74020 14.01.2021 00:00:05 HCBHT CODE(0x4baf250)
74024 14.01.2021 00:00:05 HCBZ CODE(0x4baf250)
74028 14.01.2021 00:00:05 HCFLU CODE(0x4baf250)
74032 14.01.2021 00:00:05 HCGWC CODE(0x4baf250)
74036 14.01.2021 00:00:05 HCKUC CODE(0x4baf250)
74040 14.01.2021 00:00:05 HCKWZ2 CODE(0x4baf250)
74044 14.01.2021 00:00:05 HCTZ CODE(0x4baf250)
74048 14.01.2021 00:00:05 HCAZ CODE(0x4baf250)
74052 14.01.2021 00:00:05 HCB2 CODE(0x4baf250)


Verabschiedet hat sich bisher auch nichts :)... daher Danke!
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Beta-User am 13 Januar 2021, 07:59:14
Danke für die Rückmeldung!

Auch hier keine auf die Schnelle erkennbaren Probleme.
update ist im svn, ich war wohl nur für den heutigen Lauf etwas zu spät dran...
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Wardancer am 13 Januar 2021, 15:38:02
Sorry,

jetzt muss ich doch was melden:
Hab gerade einmal auf ein anderes Topic umgestellt und dann wieder zurück. Danach ist mit FHEM abgestürzt.
Das war im Log:

2021.01.13 15:33:21 0: [HCTZ] profile heatingprofile:default:Turmzimmer, item 32 seems to be somehow damaged or incomlete!
2021.01.13 15:33:21 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_WeekdayTimer.pm line 1150.
2021.01.13 15:33:21 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_WeekdayTimer.pm line 1318.
2021.01.13 15:33:21 1: ERROR evaluating my $EVENT=   $evalSpecials->{'%EVENT'};my $NAME=   $evalSpecials->{'%NAME'};{ my $days={};map{$days->{$_}=1}() ;; ( (ReadingsVal("Heizung_HC1MQTT","ProgramChooseSwitch","") ne "Sommer") && ) }: syntax error at (eval 241525) line 1, near "&& ) "

Can't use an undefined value as an ARRAY reference at ./FHEM/98_WeekdayTimer.pm line 1314.


Ist das nen Problem vom weekprofile? Und leider ist es auch nicht reproduzierbar ... habs gerade nochmal probiert ....
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Beta-User am 13 Januar 2021, 15:48:31
Sorry erst mal.

Hast du mal ein list oder eine RAW-Definition von dem betreffenden WDT und kannst die Rückmeldungen aus
get <weekprofile> profile_data <topic1:entity>
get <weekprofile> profile_data <topic2:entity>

liefern?

Da scheint das Profil im Ergebnis komplett leer gewesen zu sein, und mich würde interessieren, warum...
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Wardancer am 13 Januar 2021, 15:56:59
Hi,

Raw:

defmod HCTZ WeekdayTimer DG_VOR_HEIZUNG weekprofile:heatingprofile (ReadingsVal("Heizung_HC1MQTT","ProgramChooseSwitch","") ne "Sommer")
attr HCTZ userattr weekprofile
attr HCTZ WDT_Group former_HC
attr HCTZ WDT_sendDelay 200
attr HCTZ alias Turmzimmer
attr HCTZ commandTemplate set $NAME desired-temp $EVENT
attr HCTZ disable 0
attr HCTZ group Heizplan
attr HCTZ room Turmzimmer,Heizung
attr HCTZ switchInThePast 1
attr HCTZ weekprofile Turmzimmer

setstate HCTZ 21.5
setstate HCTZ 2021-01-13 15:51:35 currValue 21.5
setstate HCTZ 2021-01-08 15:00:03 disabled 0
setstate HCTZ 2021-01-13 15:51:35 nextUpdate 2021-01-13 23:00:00
setstate HCTZ 2021-01-13 15:51:35 nextValue 16.0
setstate HCTZ 2021-01-13 15:51:35 state 21.5
setstate HCTZ 2021-01-13 15:51:30 weekprofiles heatingprofile:default:Turmzimmer



hier das default-Topic:

{"Sat":{"temp":["16.0","21.5","16.0"],"time":["06:00","23:00","24:00"]},"Fri":{"time":["05:00","23:00","24:00"],"temp":["16.0","21.5","16.0"]},"Tue":{"temp":["16.0","21.5","16.0"],"time":["05:00","23:00","24:00"]},"Mon":{"temp":["16.0","21.5","16.0"],"time":["05:00","23:00","24:00"]},"Thu":{"time":["05:00","23:00","24:00"],"temp":["16.0","21.5","16.0"]},"Wed":{"temp":["16.0","21.5","16.0"],"time":["05:00","23:00","24:00"]},"Sun":{"temp":["16.0","21.5","16.0"],"time":["06:00","23:00","24:00"]}}

hier das nicht Standard-Topic auf das ich gewechselt hatte:
{"Thu":{"time":["05:00","16:00","20:00","22:00","24:00"],"temp":["17.0","21.5","20.0","18.0","17.0"]},"Wed":{"time":["05:00","16:00","20:00","22:00","24:00"],"temp":["17.0","21.5","20.0","18.0","17.0"]},"Sun":{"time":["07:00","16:00","20:00","22:00","24:00"],"temp":["17.0","21.5","20.0","18.0","17.0"]},"Fri":{"temp":["17.0","21.5","20.0","18.0","17.0"],"time":["05:00","16:00","20:00","22:00","24:00"]},"Sat":{"time":["07:00","16:00","20:00","22:00","24:00"],"temp":["17.0","21.5","20.0","18.0","17.0"]},"Mon":{"time":["05:00","16:00","20:00","22:00","24:00"],"temp":["17.0","21.5","20.0","18.0","17.0"]},"Tue":{"temp":["17.0","21.5","20.0","18.0","17.0"],"time":["05:00","16:00","20:00","22:00","24:00"]}}
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Beta-User am 13 Januar 2021, 16:28:41
Hmm,

habe das eben auf dem Testsystem mit den Daten und einem dummy simuliert und auch bei mehrfachem Wechsel zwischen diesen beiden Profilen sieht es auf die Schnelle ok aus und FHEM läuft auch noch.

War der Absturz im unmittelbarem zeitlich Zusammenhang mit dem Wechsel? Steht sonst noch was im Log? Ggf. auch einige Zeilen vorher? Irgendein JSON-Fehler oder so (die Profildaten an sich scheinen ok zu sein, aber an irgendwas muss es ja liegen)?

Welche Perl-Version, welches OS?
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Wardancer am 13 Januar 2021, 16:45:30
Hi,

leider war da sonst nix ... hier mal der Auszug aus dem Log mit dem Eintrag vor dem umsetzen der Topics:

2021.01.13 14:50:24 2: ROOMMATE set rr_Susanne home
2021.01.13 15:33:09 3: [HCKWZ2] set HCKWZ2 weekprofile heatingprofile:default:Wohnzimmer
2021.01.13 15:33:09 3: [HCGWC] set HCGWC weekprofile heatingprofile:default:GästeWC
2021.01.13 15:33:09 3: [HCFLU] set HCFLU weekprofile heatingprofile:default:Flur
2021.01.13 15:33:09 3: [HCBZ] set HCBZ weekprofile heatingprofile:default:Babyzimmer
2021.01.13 15:33:09 3: [HCKUC] set HCKUC weekprofile heatingprofile:default:Küche
2021.01.13 15:33:10 3: [HCKWZ1] set HCKWZ1 weekprofile heatingprofile:default:Wohnzimmer
2021.01.13 15:33:10 3: [HCTZ] set HCTZ weekprofile heatingprofile:Waltraud:Turmzimmer
2021.01.13 15:33:10 3: [HCBHT] set HCBHT weekprofile heatingprofile:default:Bad
2021.01.13 15:33:10 3: [HCAZ] set HCAZ weekprofile heatingprofile:default:Arbeitszimmer
2021.01.13 15:33:10 3: [HCB2] set HCB2 weekprofile heatingprofile:Waltraud:Bad2
2021.01.13 15:33:10 3: [HCB] set HCB weekprofile heatingprofile:default:Bad
2021.01.13 15:33:14 3: [HCKWZ2] set HCKWZ2 weekprofile heatingprofile:default:Wohnzimmer
2021.01.13 15:33:14 3: [HCGWC] set HCGWC weekprofile heatingprofile:default:GästeWC
2021.01.13 15:33:14 3: [HCFLU] set HCFLU weekprofile heatingprofile:default:Flur
2021.01.13 15:33:15 3: [HCBZ] set HCBZ weekprofile heatingprofile:default:Babyzimmer
2021.01.13 15:33:15 3: [HCKUC] set HCKUC weekprofile heatingprofile:default:Küche
2021.01.13 15:33:15 3: [HCKWZ1] set HCKWZ1 weekprofile heatingprofile:default:Wohnzimmer
2021.01.13 15:33:15 3: [HCTZ] set HCTZ weekprofile heatingprofile:default:Turmzimmer
2021.01.13 15:33:15 3: [HCBHT] set HCBHT weekprofile heatingprofile:default:Bad
2021.01.13 15:33:15 3: [HCAZ] set HCAZ weekprofile heatingprofile:default:Arbeitszimmer
2021.01.13 15:33:15 3: [HCB2] set HCB2 weekprofile heatingprofile:default:Bad2
2021.01.13 15:33:15 3: [HCB] set HCB weekprofile heatingprofile:default:Bad
2021.01.13 15:33:21 0: [HCTZ] profile heatingprofile:default:Turmzimmer, item 32 seems to be somehow damaged or incomlete!
2021.01.13 15:33:21 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_WeekdayTimer.pm line 1150.
2021.01.13 15:33:21 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_WeekdayTimer.pm line 1318.
2021.01.13 15:33:21 1: ERROR evaluating my $EVENT=   $evalSpecials->{'%EVENT'};my $NAME=   $evalSpecials->{'%NAME'};{ my $days={};map{$days->{$_}=1}() ;; ( (ReadingsVal("Heizung_HC1MQTT","ProgramChooseSwitch","") ne "Sommer") && ) }: syntax error at (eval 241525) line 1, near "&& ) "

Can't use an undefined value as an ARRAY reference at ./FHEM/98_WeekdayTimer.pm line 1314.

Das ganze ging auch ziemlich fix ... vielleicht war es ein Timing Problem?
OS ist auf einem Raspi 3 ein Buster mit Kernel 5.4.79 ... also Zielich aktuell ..
Perl v5.28.1 ich denke auch recht aktuell...
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Beta-User am 13 Januar 2021, 17:00:20
Na ja, da steht auf alle Fälle, dass WDT ein Problem mit dem Profil hatte:
seems to be somehow damaged or incomlete
Und in dem zugehörigen Kommentar findet sich
#prevent FHEM crashing when profile is somehow damaged or incomlete, forum #109164Scheinbar war der dortige Fix also nicht vollständig, oder es ist zwischendurch was passiert. Da kein Fensterkontakt oä. angegeben ist, kann es eigentlich auch kein "hängender Timer" mehr gewesen sein.

Wie hattest du den JSON erstellt? Der ist andersrum als der default (was eigentlich egal ist, zumindest hier auf meinem Testsystem). Ist da evtl. irgendein verborgenes Zeichen drin, das hier bei der Übertragung dann weg ist?

(Aber selbst wenn, das muss ich irgendwie abfangen).
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Wardancer am 13 Januar 2021, 18:13:39
Ich hatte alles über die Webgui gemacht...
Daher war mein erster Reflex auch, dass weekprofil das kaput erstellt hat. Aber sieht ja alles soweit okay aus.
Ich krieg es halt im Moment auch nicht wieder reproduziert. Sehr blöd!
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Beta-User am 14 Januar 2021, 10:18:07
Hmm, irgendwie schon blöd, aber eigentlich auch beruhigend...

Denn: Das ist m.E. nichts, was wirklich mit der aktuellen Überarbeitung zu tun hat, sondern - soweit ich das im Moment überblicken kann - eher irgendein zufälliges Zusammentreffen von unglücklichen Umständen, das auch anderen passieren könnte.

Ich habe mal ein paar fixes eingebaut, um scheinbar (?) korrupte Profile besser abfangen zu können, und es gibt dann auch ein counter-Reading, aus dem man erkennen kann, ob bzw. wie oft sowas passiert (erscheint nur dann, wenn es passiert!).

Wie immer wären Tests willkommen...
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Wardancer am 14 Januar 2021, 16:40:07
Habs mal eingespielt.
Also ich glaube auch nicht, dass es hier an der ganz neuen Version liegt.
Ich hab ja quasi direkt nach dem Einspielen mit der Umstellung auf weekprofile begonnen. Witzigerweise wurden die Topics auch in den beiden Tagen zu vor mehrfach immer mal wieder vor und zurück getauscht. Aber halt in größeren (normalen) zeitlichen Abständen.
Mal schauen ob die zusätzlichen Logausgaben Licht ins dunkle bringen, falls es wieder auftritt.
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Beta-User am 14 Januar 2021, 16:55:35
An sich dürfte nach meinem Verständnis die "Geschwindigkeit" keine Rolle spielen.
FHEM arbeitet streng linear (single-threaded), wenn man nicht absichtlich was anderes macht (fork), von daher war anscheinend die Rückgabe von weekprofile einfach kaputt, warum auch immer (könnte auch ein Lesefehler von der Karte gewesen sein, oder sonst eine externe Ursache).

Jedenfalls hat WDT ja sogar gemerkt, dass was nicht stimmt (=>log-Eintrag, jetzt auch sichtbarer Zähler), allerdings dann trotzdem versucht rauszufinden, ob der nicht vorhandene Timer ein gültiger Timer ist. Das letztere sollte (!) jetzt auch an den beiden Stellen, wo das noch Folgewirkungen haben könnte "erkannt" werden und der "Timer" dann (durch die veränderten direkten Rückgaben) als "heute ungültig" verworfen werden. Da das nur in Ausnahmefällen vorkommen kann, bin ich mal gespannt, wie lange es dauert, bis da jemand nachfragt, woher dieses ominöse Reading kommt.... Erst dann wissen wir, ob die jetzt eingebauten Sicherungen funktionieren oder ob es doch irgendein "feature" in WDT ist, die korrekten Profile gelegentlich nicht richtig auszuwerten ;) .
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Mitch am 16 Januar 2021, 00:02:34
Ich habe mal eine Frage zu disable.
Wurde glaube ich schon vor langer Zeit mal darüber geschrieben.

Wenn ich disable 0 und 1 nutze kommt ja immer das ?, weil es eine Änderung an der cfg gibt.
Kann man das ändern?
Wäre schön ein temporäres disable nutzen zu können.
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: amenomade am 16 Januar 2021, 00:06:28
"set ... disable" statt "attr ... disable 1"

Und es gibt auch den Parameter "condition"
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Mitch am 16 Januar 2021, 00:11:18
Condition is klar, nutze ich auch.

Aber ein set <device> disable macht bei mir ein attr <device> disable 1 und somit habe ich eine ungesicherte Änderung.
Enable genau das gleiche.
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: amenomade am 16 Januar 2021, 00:16:13
Ok, diese Besonderheit von WDT wusste ich nicht.

Als Workaround kannst Du immer ein reading mit "setreading" setzen, und dieses Reading in der "condition" mit einbauen.
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Mitch am 16 Januar 2021, 00:29:32
Jein, geht schon aber es muss dann immer auch ein Update gemacht werden.
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Beta-User am 16 Januar 2021, 10:08:53
Zitat von: Mitch am 16 Januar 2021, 00:02:34
Ich habe mal eine Frage zu disable.
Wurde glaube ich schon vor langer Zeit mal darüber geschrieben.

Wenn ich disable 0 und 1 nutze kommt ja immer das ?, weil es eine Änderung an der cfg gibt.
Kann man das ändern?
Na ja, soweit ich das beurteilen kann, stammt das ursprüngliche Verhalten noch aus einer Zeit, als man allg.  temporäte Änderungen an der cfg nicht als "kritisch" angesehen hat.
Ich fand das auch nicht optimal, aber eine bessere - rückwärtskompatible! - Lösung ist mir bisher auch nicht eingefallen, eigentlich bin ich ganz zufrieden, jetzt mit der Möglichkeit der jederzeitigen Re-Initiatilisierung eine Option dafür im Angebot zu haben und mit weekprofile/Topic-Wechsel auch eine Variante, mit der man zumindest Heizungsgeräte einfacher verwalten kann...

Für Code-Vorschläge bin ich offen, werde diesen Teilaspekt aber von meiner Seite nicht aktiv bearbeiten.



@all: Die "Sicherheitsgurte" für "kaputte" Profile sind eingecheckt.
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Mitch am 16 Januar 2021, 12:26:10
Verstehe ich.

Vielleicht gibt es für meinen Usecase ja eine andere Möglichkeit.
Was ich mache/machen will: wenn die Harmony meldet, es wird geschaut, geht die Heizung um 1 Grad hoch und der Heizplan über den WeedkayTimer wird pausiert/gedisbaled.
Wenn die Activity beendet ist, wird der Heizplan wieder aktiviert und die Temperatur daraus gesetzt/upgedated.
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: juemuc am 16 Januar 2021, 15:13:34
Hi Mitch,

ich habe hierfür ein notify, welches dann ein "save" absetzt.

Viele Grüße
Jürgen
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Mitch am 16 Januar 2021, 16:25:43
ja, hatte ich auch früher, ab save geht ja nicht mehr per notify/DOIF. Oder hat sich da was geändert?

Ich habe einen Workarround über ein Dummy-Fenster, welches ich dazu auf Open setzte, dann schaltet WDT ja auch nicht.
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag 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).

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.
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Mitch am 16 Januar 2021, 17:07:58
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.
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: ToKa am 13 April 2021, 21:42:05
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
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Beta-User am 13 April 2021, 21:55:30
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.
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: ToKa am 13 April 2021, 22:07:41
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.
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Beta-User am 13 April 2021, 22:27:01
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).
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: ToKa am 13 April 2021, 23:07:15
Desired-temp aktualisiere ich als Userreading aus setpointTemp.
Ich schaue mir die Codezeile mal an, um es zu verstehen.
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: ToKa am 14 April 2021, 18:51:34
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
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Beta-User am 14 April 2021, 22:06:51
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.
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: ToKa am 15 April 2021, 11:56:16
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
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Beta-User am 15 April 2021, 13:06:00
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.
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: ToKa am 15 April 2021, 14:53:29
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.
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Beta-User am 15 April 2021, 17:19:33
...ungetestet...

Bin nicht sicher, ob das den erhofften Erfolg bringt, jetzt ist noch ein Vergleich zur Startzeit/(bzw. Mitternacht) dazu gekommen.
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag 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.
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Beta-User am 30 April 2021, 12:19:09
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.
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Beta-User am 06 Mai 2021, 10:01:15
Zitat von: Beta-User am 30 April 2021, 12:19:09
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.
Nanu?
Eine Woche um, und kein Download...?

Na ja, hier dann eine etwas im Hinblick auf "weaken" aktualisierte Version (https://forum.fhem.de/index.php/topic,120813.msg1154322.html#msg1154322 (https://forum.fhem.de/index.php/topic,120813.msg1154322.html#msg1154322)).

Wäre nett, wenn jemand testen würde, ansonsten checke ich das irgendwann ein, wenn ich selbst keine Probleme feststelle...
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: ToKa am 06 Mai 2021, 11:27:34
Hallo Beta-User,

ich habe Deinen Post bzw. die neue Version gesehen, komme aber im Moment nicht dazu das Neustart-Verhalten zu testen.

VG
Torsten
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Beta-User am 06 Mai 2021, 11:33:18
OK, Danke für die Rückmeldung; dann warte ich mal ab, ggf. findet sich ja auch sonst jemand, den das Thema (bzw. die Themen) interessiert :) .
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: juemuc am 06 Mai 2021, 19:50:12
Ich teste jetzt auch :-)

Viele Grüße
Jürgen
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Beta-User am 18 Mai 2021, 09:46:06
Fyi: habe das (etwas überarbeitet) jetzt ins svn geschubst. Wäre nett, wenn ihr auch nochmal gegenchecken könntet (fhemdebug timerList), v.a., ob in etwas komplexeren (wechselseitig abhängigen) Situationen alle Timer sauber gesetzt werden, also insbesondere auch der jeweils letzte/späteste Timer des Tages auch vorhanden ist.
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: helmut am 19 Mai 2021, 17:57:15
Ich habe das Problem, dass bei "delete <device>" die Timer nicht geloescht werden und weiterhin aktiv bleiben.

98_WeekdayTimer.pm 24466 2021-05-18 05:26:03Z Beta-User

Das laesst sich einfach nachstellen:define wdt_dummy dummy
define wdt WeekdayTimer wdt_dummy de 01:00:00|on 02:00:00|off
delete wdt
define wdt WeekdayTimer wdt_dummy de 03:00:00|on 04:00:00|off
delete wdt
define wdt WeekdayTimer wdt_dummy de 05:00:00|on 06:00:00|off

list wdt:
Internals:
   CFGFN     
   COMMAND   
   CONDITION 
   DEF        wdt_dummy de 05:00:00|on 06:00:00|off
   DEVICE     wdt_dummy
   FUUID      60a3fca8-f33f-053c-230a-55260b408fe078ea
   GlobalDaylistSpec
   LANGUAGE   de
   NAME       wdt
   NR         3274
   Profil 0: Sonntag 05:00:00 on, 06:00:00 off,
   Profil 1: Montag 05:00:00 on, 06:00:00 off,
   Profil 2: Dienstag 05:00:00 on, 06:00:00 off,
   Profil 3: Mittwoch 05:00:00 on, 06:00:00 off,
   Profil 4: Donnerstag 05:00:00 on, 06:00:00 off,
   Profil 5: Freitag 05:00:00 on, 06:00:00 off,
   Profil 6: Samstag 05:00:00 on, 06:00:00 off,
   SETTIMERATMIDNIGHT 1
   STATE      off
   STILLDONETIME 0
   TYPE       WeekdayTimer
   .attraggr:
   .attrminint:
   .dayNumber:
     !$we       8
     $we        7
     di         2
     do         4
     fr         5
     mi         3
     mo         1
     sa         6
     so         0
   .longDays:
     de:
       Sonntag
       Montag
       Dienstag
       Mittwoch
       Donnerstag
       Freitag
       Samstag
       Wochenende
       Werktags
     en:
       Sunday
       Monday
       Tuesday
       Wednesday
       Thursday
       Friday
       Saturday
       weekend
       weekdays
     fr:
       Dimanche
       Lundi
       Mardi
       Mercredi
       Jeudi
       Vendredi
       Samedi
       weekend
       jours de la semaine
     nl:
       Zondag
       Maandag
       Dinsdag
       Woensdag
       Donderdag
       Vrijdag
       Zaterdag
       weekend
       werkdagen
   .shortDays:
     de:
       so
       mo
       di
       mi
       do
       fr
       sa
       $we
       !$we
     en:
       su
       mo
       tu
       we
       th
       fr
       sa
       $we
       !$we
     fr:
       di
       lu
       ma
       me
       je
       ve
       sa
       $we
       !$we
     nl:
       zo
       ma
       di
       wo
       do
       vr
       za
       $we
       !$we
   READINGS:
     2021-05-19 06:00:00   currValue       off
     2021-05-19 06:00:00   nextUpdate      2021-05-20 05:00:00
     2021-05-19 06:00:00   nextValue       on
     2021-05-19 06:00:00   state           off
   SWITCHINGTIMES:
     05:00:00|on
     06:00:00|off
   TIMER:
     wdt_1:
       HASH       wdt
       MODIFIER   1
       NAME       wdt_1
     wdt_2:
       HASH       wdt
       MODIFIER   2
       NAME       wdt_2
   helper:
     daysRegExp (so|mo|di|mi|do|fr|sa|\$we|\!\$we)
     daysRegExpMessage (so|mo|di|mi|do|fr|sa|$we|!$we)
     SWITCHINGTIME:
       0:
         05:00:00   on
         06:00:00   off
       1:
         05:00:00   on
         06:00:00   off
       2:
         05:00:00   on
         06:00:00   off
       3:
         05:00:00   on
         06:00:00   off
       4:
         05:00:00   on
         06:00:00   off
       5:
         05:00:00   on
         06:00:00   off
       6:
         05:00:00   on
         06:00:00   off
     WEDAYS:
       3          1
       4          1
   profil:
     1:
       EPOCH      1621393200
       PARA       on
       TIME       05:00:00
       WE_Override 0
       TAGE:
         0
         1
         2
         3
         4
         5
         6
     2:
       EPOCH      1621396800
       PARA       off
       TIME       06:00:00
       WE_Override 0
       TAGE:
         0
         1
         2
         3
         4
         5
         6
   profile_IDX:
     0:
       05:00:00   1
       06:00:00   2
     1:
       05:00:00   1
       06:00:00   2
     2:
       05:00:00   1
       06:00:00   2
     3:
       05:00:00   1
       06:00:00   2
     4:
       05:00:00   1
       06:00:00   2
     5:
       05:00:00   1
       06:00:00   2
     6:
       05:00:00   1
       06:00:00   2
Attributes:
   commandTemplate set $NAME  $EVENT
   verbose    5


Mit "fhemdebug timerList" sehe ich - in Erwartung eines - anschliessend drei Timer ...2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt

... die bis zum naechsten Restart auch aktiv sind. Hier ein halbstuendliches "fhemdebug timerList":
Date: Wed, 19 May 2021 00:00:02
2021-05-19 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-19 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-19 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
Date: Wed, 19 May 2021 00:30:01
2021-05-19 01:00:00.00000 WeekdayTimer_Update wdt_1
2021-05-19 02:00:00.00000 WeekdayTimer_Update wdt_2
2021-05-19 03:00:00.00000 WeekdayTimer_Update wdt_1
2021-05-19 04:00:00.00000 WeekdayTimer_Update wdt_2
2021-05-19 05:00:00.00000 WeekdayTimer_Update wdt_1
2021-05-19 06:00:00.00000 WeekdayTimer_Update wdt_2
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
Date: Wed, 19 May 2021 01:00:02
2021-05-19 02:00:00.00000 WeekdayTimer_Update wdt_2
2021-05-19 03:00:00.00000 WeekdayTimer_Update wdt_1
2021-05-19 04:00:00.00000 WeekdayTimer_Update wdt_2
2021-05-19 05:00:00.00000 WeekdayTimer_Update wdt_1
2021-05-19 06:00:00.00000 WeekdayTimer_Update wdt_2
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
Date: Wed, 19 May 2021 01:30:01
2021-05-19 02:00:00.00000 WeekdayTimer_Update wdt_2
2021-05-19 03:00:00.00000 WeekdayTimer_Update wdt_1
2021-05-19 04:00:00.00000 WeekdayTimer_Update wdt_2
2021-05-19 05:00:00.00000 WeekdayTimer_Update wdt_1
2021-05-19 06:00:00.00000 WeekdayTimer_Update wdt_2
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
Date: Wed, 19 May 2021 02:00:02
2021-05-19 03:00:00.00000 WeekdayTimer_Update wdt_1
2021-05-19 04:00:00.00000 WeekdayTimer_Update wdt_2
2021-05-19 05:00:00.00000 WeekdayTimer_Update wdt_1
2021-05-19 06:00:00.00000 WeekdayTimer_Update wdt_2
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
Date: Wed, 19 May 2021 02:30:01
2021-05-19 03:00:00.00000 WeekdayTimer_Update wdt_1
2021-05-19 04:00:00.00000 WeekdayTimer_Update wdt_2
2021-05-19 05:00:00.00000 WeekdayTimer_Update wdt_1
2021-05-19 06:00:00.00000 WeekdayTimer_Update wdt_2
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
Date: Wed, 19 May 2021 03:00:02
2021-05-19 04:00:00.00000 WeekdayTimer_Update wdt_2
2021-05-19 05:00:00.00000 WeekdayTimer_Update wdt_1
2021-05-19 06:00:00.00000 WeekdayTimer_Update wdt_2
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
Date: Wed, 19 May 2021 03:30:01
2021-05-19 04:00:00.00000 WeekdayTimer_Update wdt_2
2021-05-19 05:00:00.00000 WeekdayTimer_Update wdt_1
2021-05-19 06:00:00.00000 WeekdayTimer_Update wdt_2
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
Date: Wed, 19 May 2021 04:00:02
2021-05-19 05:00:00.00000 WeekdayTimer_Update wdt_1
2021-05-19 06:00:00.00000 WeekdayTimer_Update wdt_2
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
Date: Wed, 19 May 2021 04:30:02
2021-05-19 05:00:00.00000 WeekdayTimer_Update wdt_1
2021-05-19 06:00:00.00000 WeekdayTimer_Update wdt_2
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
Date: Wed, 19 May 2021 05:00:01
2021-05-19 06:00:00.00000 WeekdayTimer_Update wdt_2
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
Date: Wed, 19 May 2021 05:30:02
2021-05-19 06:00:00.00000 WeekdayTimer_Update wdt_2
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
Date: Wed, 19 May 2021 06:00:02
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt

Auszug aus dem Log:
2021.05.19 01:00:00.026 4: [wdt] command: 'set $NAME  $EVENT' executed with %NAME=>wdt_dummy,%EVENT=>on
2021.05.19 02:00:00.008 4: [wdt] command: 'set $NAME  $EVENT' executed with %EVENT=>off,%NAME=>wdt_dummy
2021.05.19 03:00:00.013 4: [wdt] command: 'set $NAME  $EVENT' executed with %NAME=>wdt_dummy,%EVENT=>on
2021.05.19 04:00:00.014 4: [wdt] command: 'set $NAME  $EVENT' executed with %NAME=>wdt_dummy,%EVENT=>off
2021.05.19 05:00:00.013 4: [wdt] command: 'set $NAME  $EVENT' executed with %NAME=>wdt_dummy,%EVENT=>on
2021.05.19 06:00:00.011 4: [wdt] command: 'set $NAME  $EVENT' executed with %EVENT=>off,%NAME=>wdt_dummy

Gruss Helmut
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Beta-User am 19 Mai 2021, 18:25:57
Ups... Danke für den Hinweis!

Update kommt, wenn auch der andere Test heute nacht stressfrei durchläuft.
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: helmut am 19 Mai 2021, 18:44:12
Danke fuer die schnelle Reaktion.

Gruss Helmut

Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Beta-User am 20 Mai 2021, 07:24:27
So, update ist im svn; bitte auch nochmal kritisch die Timer checken (fhemdebug timerList), v.a. dann auch wieder ab morgen/dem nächsten Tageswechsel (siehe https://forum.fhem.de/index.php/topic,114168.msg1157525.html#msg1157525).

Bei Gelegenheit muss ich dann den Code wieder aufräumen und denke, dann auch den lib-Ansatz aus https://forum.fhem.de/index.php/topic,120813.0.html auszubauen; mAn. ist die interne Timerverwaltung in WDT aus gutem Grund etwas "speziell", und das läßt sich kaum ohne "Ergänzung" der Bordmittel von InternalTimer bewerkstelligen...
Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: helmut am 20 Mai 2021, 20:01:06
Mein Problem ist gelöst und bei der Gelegenheit sogar ein sprechenderer Name herausgekommen.2021-05-21 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt_midnight
Danke.
Gruss Helmut

Titel: Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
Beitrag von: Beta-User am 20 Mai 2021, 20:10:19
Danke für die Rückmeldung - auch zu dem Namensthema!

(Das andere "schöne" an der "lib-Lösung" ist übrigens , dass man die Parametrierung ohne Neusetzen des Timers noch ändern kann, also insbesondere weitere Elemente neben dem Label und dem Gerätehash im Hash ergänzen (oder wieder löschen)...)