[gelöst] Funktion twilight(...,min,max): 1. Ausführung nach Restart falsch

Begonnen von ph1959de, 06 Januar 2015, 16:06:32

Vorheriges Thema - Nächstes Thema

ph1959de

Ich habe den Eindruck, mit einem der letzten Updates von Twilight hat sich das Verhalten bei Verwendung der Funktion twilight() geändert. Bei der ersten Ausführung (eines "at") nach einem Fhem Shutdown/Restart wird immer der angegebene "min"-Wert verwendet. Spätere Ausführungen stimmen dann, auch ein editieren/modify der DEF des at führt offensichtlich zu korrekter Neuberechnung.

Folgendes kann ich zur Fehlerbestimmung beisteuern:

Verbose>5 des Fhem-Restart:
2015.01.06 13:05:39 3: [aidTL] got no weather info from yahoo. Error code: connect to http://weather.yahooapis.com:80 timed out
2015.01.06 13:05:39 5: [aidTL] setting  Timer: aidTL_sr_astro 06.01.2015  06:21:11
2015.01.06 13:05:39 5: [aidTL] setting  Timer: aidTL_ss_astro 06.01.2015  18:39:21
2015.01.06 13:05:39 5: [aidTL] setting  Timer: aidTL_sr_naut 06.01.2015  06:59:11
2015.01.06 13:05:39 5: [aidTL] setting  Timer: aidTL_ss_naut 06.01.2015  18:01:21
2015.01.06 13:05:39 5: [aidTL] setting  Timer: aidTL_sr_civil 06.01.2015  07:38:55
2015.01.06 13:05:39 5: [aidTL] setting  Timer: aidTL_ss_civil 06.01.2015  17:21:37
2015.01.06 13:05:39 5: [aidTL] setting  Timer: aidTL_sr 06.01.2015  08:21:25
2015.01.06 13:05:39 5: [aidTL] setting  Timer: aidTL_ss 06.01.2015  16:39:07
2015.01.06 13:05:39 5: [aidTL] setting  Timer: aidTL_sr_indoor 06.01.2015  08:28:53
2015.01.06 13:05:39 5: [aidTL] setting  Timer: aidTL_ss_indoor 06.01.2015  16:31:39
2015.01.06 13:05:39 5: [aidTL] setting  Timer: aidTL_sr_weather 06.01.2015  08:21:25
2015.01.06 13:05:39 5: [aidTL] setting  Timer: aidTL_ss_weather 06.01.2015  16:39:07
2015.01.06 13:05:39 5: [aidTL] setting  Timer: aidTL_Midnight 07.01.2015  00:00:30
2015.01.06 13:05:39 5: [aidTL] setting  Timer: aidTL_perlTime 06.01.2015  15:39:07
2015.01.06 13:05:39 3: [degTL] got no weather info from yahoo. Error code: connect to http://weather.yahooapis.com:80 timed out
2015.01.06 13:05:40 4: [aidTL] sr_astro   state=1  light=1  nextEvent=sr_naut    06.01.2015  06:59:11  deg=-18.0°
2015.01.06 13:05:40 4: [aidTL] sr_naut    state=2  light=2  nextEvent=sr_civil   06.01.2015  07:38:55  deg=-12.0°
2015.01.06 13:05:40 4: [aidTL] sr_civil   state=3  light=3  nextEvent=sr         06.01.2015  08:21:25  deg=-6.0°
2015.01.06 13:05:40 4: [aidTL] sr         state=4  light=4  nextEvent=sr_indoor  06.01.2015  08:28:53  deg=+0.0°
2015.01.06 13:05:40 4: [aidTL] sr_weather state=6  light=6  nextEvent=ss_weather 06.01.2015  16:39:07  deg=+0.0°
2015.01.06 13:05:40 4: [aidTL] sr_indoor  state=5  light=5  nextEvent=sr_weather 06.01.2015  08:21:25  deg=+1.0°

Überraschend / seltsam hierbei: die "got no weather info from yahoo."-Meldung bezieht sich auf ein anderes Twilight-Objekt, für das nicht verbose=5 gesetzt ist. Das ist im Übrigen die einzige Meldung für dieses zweite Twilight Objekt.

Definition des "at":
Internals:
   COMMAND    set wz_Rollo_.* on
   DEF        *{twilight("aidTL","sr_indoor","7:29","9:01")} set wz_Rollo_.* on
   NAME       wz_Rollo.SR
   NR         1370
   NTM        07:29:00
   PERIODIC   yes
   RELATIVE   no
   REP        -1
   STATE      Next: 07:29:00
   TIMESPEC   {twilight("aidTL","sr_indoor","7:29","9:01")}
   TRIGGERTIME 1420612140
   TRIGGERTIME_FMT 2015-01-07 07:29:00
   TYPE       at
Attributes:
   alias      Sonnenaufgang
   disable    0
   group      RolloAuf,RolloAutomatik
   icon       weather_sunrise


Wie aus dem Log ersichtlich, ist "Timer: aidTL_sr_indoor 06.01.2015  08:28:53", ich hätte also eine TRIGGERTIME von 8:28:53 erwartet. Stattdessen wird der "min"-Wert verwendet.

Fhem ist auf dem aktuellen Stand (von heute), Twilight ist
# $Id: 59_Twilight.pm 7402 2015-01-01 22:38:18Z dietmar63 $

Dietmar, kannst Du mit dieser Fehlerbeschreibung etwas anfangen?

Peter
Aktives Mitglied des FHEM e.V. | Moderator im Forenbereich "Wiki"

Dietmar63

Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Dietmar63

eingecheckt:
59_Twilight: correction of issues when starting fhem wehn reading weatherdata in nonBlockingmode

hier kannst du nachlesen was passiert ist:
http://forum.fhem.de/index.php?topic=31049.new#new
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

ph1959de

Dietmar,

mit
# $Id: 59_Twilight.pm 7462 2015-01-06 17:13:36Z dietmar63 $

ist der Fehler behoben. Herzlichen Dank,
Peter
Aktives Mitglied des FHEM e.V. | Moderator im Forenbereich "Wiki"

8byte

Hallo zusammen,

der Fehler scheint wieder da zu sein. Aktuell habe ich das Problem, dass bei jedem Neustart von FHEM der Min-Wert verwendet wird. Ist es möglich dass dieser Fehler wieder "eingebaut" ist? :-)

Dietmar63

Ich versuche mal zu ergründen was ich damals gemacht habe.
Ich glaube die Probleme kommen eher daher, dass Yahoo die Wetterdaten nicht zuverlässig liefert
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Dietmar63

Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

8byte

Danke für deine schnelle Antwort und den Tipp. Ich werde mal testen ob es damit zusammenhängt.

Bisher sieht es allerdings so aus als kämen die Wetterdaten zuverlässig. Es ist ja auch so, dass es eigentlich immer gut funktioniert - nur eben nicht wenn es einen Neustart gab oder die Config neu geladen wird. Direkt nach einem Neustart wird z.B. bei Notifys ein "Next: 06:00:00" angezeigt, was wieder die Min-Zeit darstellt.

Dietmar63

glaub mir:
es liegt an unzuverlässigen Datenlieferungen von yahoo.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm