Hallo.
Ich habe ein Problem, welches sehr komisch ist und ich nicht lösen kann. Die Suche hat mir auch nichts brauchbares geliefert und daher bitte ich euch um Hilfe.
Ich erhalte Uhrzeiten über 23:59:59
Das erste Fehlerbild zeigt sich im Logfile. Dort erhalte ich pro Timer 7 Mal (ich denke für jeden Wochentag eine) die Meldung "invalid time <31:51:51>".
Hier im Logfile-Auszug mit verbose 5
2014.12.17 19:45:00 5: Cmd: >define Timer.DG.Rollo.Buero.Garten WeekdayTimer DG.Rollo.Buero.Garten Mo-So|{sunrise(6,'06:30:00','08:00:00')}|rauf Mo-So|{sunset(6,'16:30','22:00')}|runter<
2014.12.17 19:45:00 5: Compute sunrise/sunset for latitude 51.929255 , longitude 7.662297
2014.12.17 19:45:00 1: [Timer.DG.Rollo.Buero.Garten] invalid time <31:51:51> HH:MM[:SS]
2014.12.17 19:45:00 5: Compute sunrise/sunset for latitude 51.929255 , longitude 7.662297
2014.12.17 19:45:00 1: [Timer.DG.Rollo.Buero.Garten] invalid time <31:51:51> HH:MM[:SS]
2014.12.17 19:45:00 5: Compute sunrise/sunset for latitude 51.929255 , longitude 7.662297
2014.12.17 19:45:00 1: [Timer.DG.Rollo.Buero.Garten] invalid time <31:51:51> HH:MM[:SS]
2014.12.17 19:45:00 5: Compute sunrise/sunset for latitude 51.929255 , longitude 7.662297
2014.12.17 19:45:00 1: [Timer.DG.Rollo.Buero.Garten] invalid time <31:51:51> HH:MM[:SS]
2014.12.17 19:45:00 5: Compute sunrise/sunset for latitude 51.929255 , longitude 7.662297
2014.12.17 19:45:00 1: [Timer.DG.Rollo.Buero.Garten] invalid time <31:51:51> HH:MM[:SS]
2014.12.17 19:45:00 5: Compute sunrise/sunset for latitude 51.929255 , longitude 7.662297
2014.12.17 19:45:00 1: [Timer.DG.Rollo.Buero.Garten] invalid time <31:51:51> HH:MM[:SS]
2014.12.17 19:45:00 5: Compute sunrise/sunset for latitude 51.929255 , longitude 7.662297
2014.12.17 19:45:00 1: [Timer.DG.Rollo.Buero.Garten] invalid time <31:51:51> HH:MM[:SS]
2014.12.17 19:45:00 5: [Timer.DG.Rollo.Buero.Garten] Switchingtime: Mo-So|{sunrise(6,'06:30:00','08:00:00')}|rauf : so,mo,di,mi,do,fr,sa -> {sunrise(6,'06:30:00','08:00:00')} -> rauf
2014.12.17 19:45:00 5: Compute sunrise/sunset for latitude 51.929255 , longitude 7.662297
2014.12.17 19:45:00 1: [Timer.DG.Rollo.Buero.Garten] invalid time <40:59:44> HH:MM[:SS]
2014.12.17 19:45:00 5: Compute sunrise/sunset for latitude 51.929255 , longitude 7.662297
2014.12.17 19:45:00 1: [Timer.DG.Rollo.Buero.Garten] invalid time <40:59:44> HH:MM[:SS]
2014.12.17 19:45:00 5: Compute sunrise/sunset for latitude 51.929255 , longitude 7.662297
2014.12.17 19:45:00 1: [Timer.DG.Rollo.Buero.Garten] invalid time <40:59:44> HH:MM[:SS]
2014.12.17 19:45:00 5: Compute sunrise/sunset for latitude 51.929255 , longitude 7.662297
2014.12.17 19:45:00 1: [Timer.DG.Rollo.Buero.Garten] invalid time <40:59:44> HH:MM[:SS]
2014.12.17 19:45:00 5: Compute sunrise/sunset for latitude 51.929255 , longitude 7.662297
2014.12.17 19:45:00 1: [Timer.DG.Rollo.Buero.Garten] invalid time <40:59:44> HH:MM[:SS]
2014.12.17 19:45:00 5: Compute sunrise/sunset for latitude 51.929255 , longitude 7.662297
2014.12.17 19:45:00 1: [Timer.DG.Rollo.Buero.Garten] invalid time <40:59:44> HH:MM[:SS]
2014.12.17 19:45:00 5: Compute sunrise/sunset for latitude 51.929255 , longitude 7.662297
2014.12.17 19:45:00 1: [Timer.DG.Rollo.Buero.Garten] invalid time <40:59:44> HH:MM[:SS]
2014.12.17 19:45:00 5: [Timer.DG.Rollo.Buero.Garten] Switchingtime: Mo-So|{sunset(6,'16:30','22:00')}|runter : so,mo,di,mi,do,fr,sa -> {sunset(6,'16:30','22:00')} -> runter
2014.12.17 19:45:00 5: [Timer.DG.Rollo.Buero.Garten] setting Timer: Timer.DG.Rollo.Buero.Garten_UpdatePerlTime 18.12.2014 00:10:00
2014.12.17 19:45:00 5: [Timer.DG.Rollo.Buero.Garten] setting Timer: Timer.DG.Rollo.Buero.Garten_Update 17.12.2014 19:45:01
2014.12.17 19:45:00 5: Cmd: >attr Timer.DG.Rollo.Buero.Garten disable 0<
2014.12.17 19:45:00 5: Cmd: >attr Timer.DG.Rollo.Buero.Garten group Jalousie Timer<
2014.12.17 19:45:00 5: Cmd: >attr Timer.DG.Rollo.Buero.Garten icon timer<
2014.12.17 19:45:00 5: Cmd: >attr Timer.DG.Rollo.Buero.Garten sortby 2<
Schaut man sich nun die Eigenschaften des Timers an findet man folgendes. Seht euch bitte die Abschnitte an die unterhalb "PERLTIMEUPDATEMODE 0" oder "Switchingtime" sind.
Internals:
CFGFN ./userfiles/fhem80addon_timer.cfg
DEF DG.Rollo.Buero.Garten Mo-So|{sunrise(6,'06:30:00','08:00:00')}|rauf Mo-So|{sunset(6,'16:30','22:00')}|runter
DEVICE DG.Rollo.Buero.Garten
LANGUAGE de
NAME Timer.DG.Rollo.Buero.Garten
NR 438
PERLTIMEUPDATEMODE 0
PROFILE 0: Sonntag 31:51 rauf, 40:59 runter,
PROFILE 1: Montag 31:51 rauf, 40:59 runter,
PROFILE 2: Dienstag 31:51 rauf, 40:59 runter,
PROFILE 3: Mittwoch 31:51 rauf, 40:59 runter,
PROFILE 4: Donnerstag 31:51 rauf, 40:59 runter,
PROFILE 5: Freitag 31:51 rauf, 40:59 runter,
PROFILE 6: Samstag 31:51 rauf, 40:59 runter,
STATE runter
TIME_AS_PERL 1
TYPE WeekdayTimer
Readings:
2014-12-17 19:45:00 disabled 0
2014-12-17 19:45:06 nextUpdate 18.12.2014 07:51:51
2014-12-17 19:45:06 nextValue rauf
2014-12-17 19:45:06 state runter
Timer:
Timer.dg.rollo.buero.garten_update:
HASH Timer.DG.Rollo.Buero.Garten
MODIFIER Update
NAME Timer.DG.Rollo.Buero.Garten_Update
Timer.dg.rollo.buero.garten_updateperltime:
HASH Timer.DG.Rollo.Buero.Garten
MODIFIER UpdatePerlTime
NAME Timer.DG.Rollo.Buero.Garten_UpdatePerlTime
Helper:
DESIRED_TEMP_READING
SWITCHINGTIMES Mo-So|{sunrise(6,'06:30:00','08:00:00')}|rauf Mo-So|{sunset(6,'16:30','22:00')}|runter
Switchingtime:
0:
31:51:51 rauf
40:59:44 runter
1:
31:51:51 rauf
40:59:44 runter
2:
31:51:51 rauf
40:59:44 runter
3:
31:51:51 rauf
40:59:44 runter
4:
31:51:51 rauf
40:59:44 runter
5:
31:51:51 rauf
40:59:44 runter
6:
31:51:51 rauf
40:59:44 runter
Attributes:
disable 0
group Jalousie Timer
icon timer
sortby 2
Das komische daran ist, das die Rollos tatsächlich aber mit der richtig errechneten Sunrise und Sunset Zeit arbeiten.
Diese Problem tritt nur auf, wenn ich rereadcfg mache. Lasse ich FHEM ca.24h in Ruhe werden die Zeiten neu berechnet aber trotzdem falsch dargestellt. Das Logfile hat darüber aber keine Fehler.
Habt ihr eine Idee was da schief läuft?
Danke Tipetan
das ist ein feature von sunrise/sunset - lies die Doku mal aufmerksam durch. Irgendwo steht, dass man von den Stunden 24 abziehen soll.
Hier im Forum gibt es viele Beispiele dazu.
Wenn du auf
sunrise_abs()/sunset_abs() return the absolute time of the corresponding event today (no 24 hours added).
umstellst, sollte sich dein Problem in Luft auflösen.