Autor Thema: Ankündigung+Testversion: Überarbeitung WeekdayTimer  (Gelesen 491 mal)

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 10437
  • eigentlich eher "user" wie "developer"
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".
« Letzte Änderung: 29 Mai 2020, 12:44:07 von Beta-User »
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | BT@OpenMQTTGateway
svn:MySensors, WeekdayTimer, RandomTimer, AttrTemplate => {mqtt2, mysensors, httpmod}

Offline juemuc

  • Sr. Member
  • ****
  • Beiträge: 605
Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
« Antwort #1 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
3x Sonos Play 1, 1x Sonos Playbar + Sub, 1 Sonos-One
Fritzbox 7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM Fensterkontakte und  Amazon Echo Dot, raspberry3B+ mit RPI-RF-MOD und piVCCU, Raspbian Buster Lite

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 10437
  • eigentlich eher "user" wie "developer"
Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
« Antwort #2 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?
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | BT@OpenMQTTGateway
svn:MySensors, WeekdayTimer, RandomTimer, AttrTemplate => {mqtt2, mysensors, httpmod}

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 10437
  • eigentlich eher "user" wie "developer"
Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
« Antwort #3 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 :) .
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | BT@OpenMQTTGateway
svn:MySensors, WeekdayTimer, RandomTimer, AttrTemplate => {mqtt2, mysensors, httpmod}

Offline juemuc

  • Sr. Member
  • ****
  • Beiträge: 605
Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
« Antwort #4 am: 23 Mai 2020, 15:16:45 »
Hallo Beta-User,

mit der aktuellen Version erhalte ich nun diese Meldungen:

Zitat
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 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
3x Sonos Play 1, 1x Sonos Playbar + Sub, 1 Sonos-One
Fritzbox 7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM Fensterkontakte und  Amazon Echo Dot, raspberry3B+ mit RPI-RF-MOD und piVCCU, Raspbian Buster Lite

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 10437
  • eigentlich eher "user" wie "developer"
Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
« Antwort #5 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:
Zitat
Because 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()
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?
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | BT@OpenMQTTGateway
svn:MySensors, WeekdayTimer, RandomTimer, AttrTemplate => {mqtt2, mysensors, httpmod}

Offline juemuc

  • Sr. Member
  • ****
  • Beiträge: 605
Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
« Antwort #6 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
3x Sonos Play 1, 1x Sonos Playbar + Sub, 1 Sonos-One
Fritzbox 7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM Fensterkontakte und  Amazon Echo Dot, raspberry3B+ mit RPI-RF-MOD und piVCCU, Raspbian Buster Lite

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 10437
  • eigentlich eher "user" wie "developer"
Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
« Antwort #7 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...
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | BT@OpenMQTTGateway
svn:MySensors, WeekdayTimer, RandomTimer, AttrTemplate => {mqtt2, mysensors, httpmod}

Offline juemuc

  • Sr. Member
  • ****
  • Beiträge: 605
Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
« Antwort #8 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
 
« Letzte Änderung: 24 Mai 2020, 15:14:03 von juemuc »
3x Sonos Play 1, 1x Sonos Playbar + Sub, 1 Sonos-One
Fritzbox 7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM Fensterkontakte und  Amazon Echo Dot, raspberry3B+ mit RPI-RF-MOD und piVCCU, Raspbian Buster Lite

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 10437
  • eigentlich eher "user" wie "developer"
Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
« Antwort #9 am: 25 Mai 2020, 16:50:31 »
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 .

Zitat
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.
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!
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | BT@OpenMQTTGateway
svn:MySensors, WeekdayTimer, RandomTimer, AttrTemplate => {mqtt2, mysensors, httpmod}

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 10437
  • eigentlich eher "user" wie "developer"
Antw:Ankündigung+Testversion: Überarbeitung WeekdayTimer
« Antwort #10 am: 29 Mai 2020, 12:43:50 »
Da zumindest bis dato keine Probleme gemeldet wurden, gebe ich mal vorsichtig Entwarnung...
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | BT@OpenMQTTGateway
svn:MySensors, WeekdayTimer, RandomTimer, AttrTemplate => {mqtt2, mysensors, httpmod}