FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Thema gestartet von: ph1959de am 06 Januar 2015, 16:06:32

Titel: [gelöst] Funktion twilight(...,min,max): 1. Ausführung nach Restart falsch
Beitrag von: ph1959de am 06 Januar 2015, 16:06:32
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
Titel: Antw:Funktion twilight(...,min,max): 1. Ausführung nach Shutdown/Restart falsch
Beitrag von: Dietmar63 am 06 Januar 2015, 16:38:55
Ich denke ja
Titel: Antw:Funktion twilight(...,min,max): 1. Ausführung nach Shutdown/Restart falsch
Beitrag von: Dietmar63 am 06 Januar 2015, 18:14:53
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 (http://forum.fhem.de/index.php?topic=31049.new#new)
Titel: Antw:Funktion twilight(...,min,max): 1. Ausführung nach Shutdown/Restart falsch
Beitrag von: ph1959de am 07 Januar 2015, 08:36:32
Dietmar,

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

ist der Fehler behoben. Herzlichen Dank,
Peter
Titel: Antw:[gelöst] Funktion twilight(...,min,max): 1. Ausführung nach Restart falsch
Beitrag von: 8byte am 31 Januar 2017, 00:41:55
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? :-)
Titel: Antw:[gelöst] Funktion twilight(...,min,max): 1. Ausführung nach Restart falsch
Beitrag von: Dietmar63 am 31 Januar 2017, 07:30:23
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
Titel: Antw:[gelöst] Funktion twilight(...,min,max): 1. Ausführung nach Restart falsch
Beitrag von: Dietmar63 am 31 Januar 2017, 07:43:29

https://forum.fhem.de/index.php/topic,64231.msg569383.html#msg569383
(https://forum.fhem.de/index.php/topic,64231.msg569383.html#msg569383)

Sieh dir diesen thread an. Vermutlich gleiche Ursache
Titel: Antw:[gelöst] Funktion twilight(...,min,max): 1. Ausführung nach Restart falsch
Beitrag von: 8byte am 01 Februar 2017, 20:47:16
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.
Titel: Antw:[gelöst] Funktion twilight(...,min,max): 1. Ausführung nach Restart falsch
Beitrag von: Dietmar63 am 01 Februar 2017, 21:10:36
glaub mir:
es liegt an unzuverlässigen Datenlieferungen von yahoo.