modifyTimeSpec fehlerhaft!?

Begonnen von DocCyber, 04 September 2017, 18:56:07

Vorheriges Thema - Nächstes Thema

DocCyber

Hallo FHEMisten,

Benutzt man modifyTimeSpec bei einem Zeitgeber (at) zur Berechnung der neuen Triggerzeit, so ist die Zeitspanne doppelt so groß wie gewünscht.

Ich bin in diesem Forum schon an anderer Stelle auf ein ähnliches Problem gestoßen.
Als Lösung wurde das neue Attribut computeAfterInit eingeführt.
Das erweist sich aber im vorliegenden Fall als wirkungslos.

Im gezeigten Beispiel wird die neue Zeit auf +1 Minute (rel.) festgelegt, aber danach steht Next auf 2 Minuten später.

Hier die Internals mit bzw ohne computeAfterInit

Internals:
   CFGFN
   COMMAND    set at_test modifyTimeSpec 00:01:00
   DEF        +*00:01:00 set at_test modifyTimeSpec 00:01:00
   NAME       at_test
   NR         24630
   NTM        18:36:58
   PERIODIC   yes
   RELATIVE   yes
   REP        -1
   STATE      Next: 18:36:58
   TIMESPEC   00:01:00
   TRIGGERTIME 1504543018.51374
   TRIGGERTIME_FMT 2017-09-04 18:36:58
   TYPE       at
   Readings:
     2017-09-04 18:34:58   state           Next: 18:36:58
Attributes:
   computeAfterInit 1

--------------------------------------------------------------------

Internals:
   CFGFN
   COMMAND    set at_test modifyTimeSpec 00:01:00
   DEF        +*00:01:00 set at_test modifyTimeSpec 00:01:00
   NAME       at_test
   NR         24630
   NTM        18:35:12
   PERIODIC   yes
   RELATIVE   yes
   REP        -1
   STATE      Next: 18:35:12
   TIMESPEC   00:01:00
   TRIGGERTIME 1504542912.79035
   TRIGGERTIME_FMT 2017-09-04 18:35:12
   TYPE       at
   Readings:
     2017-09-04 18:33:12   state           Next: 18:35:12
Attributes:
   computeAfterInit 0


Mache ich etwas falsch, oder liegt ein Bug vor?
Behandle die Menschen so, als wären sie, was sie sein sollten. Dadurch hilfst du ihnen zu werden, was sie sein können. (Goethe)


RPi-4B mit HM-CFG-LAN und viele weitere HM Komponenten, diverse Shellys, Tuya-Geräte, SMA und Solis Wechselrichter, Elgris EnergyManager, go-e Wallbox

rudolfkoenig

ZitatMache ich etwas falsch, oder liegt ein Bug vor?
Falsch wuerde ich nicht sagen, aber ungewoehnlich, da modifyTimepec nicht dazu gedacht ist, aus dem gleichen at heraus ausgefuehrt zu werden.

Beim Ausfuehren des at Befehls wird zunaechst via modifyTimeSpec die naechste Ausfuehrungszeit mit jetzt+1min berechnet. Danach wird die at-Definition analysiert, und wg +*00:01:00 wird wieder eine Minute draufaddiert, macht in der Summe jetzt+2 Minuten. Ich wuerde sagen, das ist richtig so.

DocCyber

Zitat von: rudolfkoenig am 05 September 2017, 19:32:28
... ungewoehnlich, da modifyTimepec nicht dazu gedacht ist, aus dem gleichen at heraus ausgefuehrt zu werden.

Hallo Rudolf,

Danke für deine Antwort. Jetzt weiß ich wenigstens, warum das Ergebnis so ist.

Ich nutze modifyTimeSpec in einer komplexen Zufallszeit-Routine.
Wegen des Problems setze ich jetzt nur die Hälfte der beabsichtigten Zeitspanne ein.
Damit funktioniert es jetzt zwar, aber ich bin der Meinung, dass eine in ein Modul eingebaute Funktionalität auch unter ungewöhnlichen Bedingungen funktionieren sollte.

Grüße
Klaus
Behandle die Menschen so, als wären sie, was sie sein sollten. Dadurch hilfst du ihnen zu werden, was sie sein können. (Goethe)


RPi-4B mit HM-CFG-LAN und viele weitere HM Komponenten, diverse Shellys, Tuya-Geräte, SMA und Solis Wechselrichter, Elgris EnergyManager, go-e Wallbox

nils_

Zitat von: DocCyber am 04 September 2017, 18:56:07
Benutzt man modifyTimeSpec bei einem Zeitgeber (at) zur Berechnung der neuen Triggerzeit, so ist die Zeitspanne doppelt so groß wie gewünscht.

Zitat von: DocCyber am 05 September 2017, 20:07:38
Wegen des Problems setze ich jetzt nur die Hälfte der beabsichtigten Zeitspanne ein.

sicher das das mit doppelt (bzw. hälfte) immer passt??
wenn ich mir rudis erklärung durchlese, ist das eher die summe aus beiden.
sprich wenn du die werte nicht gleich setzt in modifytimespec und in der at-def, dann kommt da nicht wirklich das doppelte raus.
(bei dir passt es dann wohl, da du vmtl. immer die selben werte verwendest?!)



ob das verhalten richtig oder falsch oder doch zu ungewöhnlich ist, kann ich dir leider nicht beantworten.


Grüße
Nils
viele Wege in FHEM es gibt!

DocCyber

Hi Nils,

bei mir passt es mit der Hälfte.
Ob das generell so ist, müsstest du vielleicht einfach mal ausprobieren,
ich glaube ja...
Behandle die Menschen so, als wären sie, was sie sein sollten. Dadurch hilfst du ihnen zu werden, was sie sein können. (Goethe)


RPi-4B mit HM-CFG-LAN und viele weitere HM Komponenten, diverse Shellys, Tuya-Geräte, SMA und Solis Wechselrichter, Elgris EnergyManager, go-e Wallbox