FHEM Forum

FHEM => fhem-users => Thema gestartet von: Dr. Boris Neubert am 28 März 2010, 09:24:14

Titel: 99_SUNRISE_EL.pm und Umstellung auf Sommerzeit
Beitrag von: Dr. Boris Neubert am 28 März 2010, 09:24:14
                                             

Hallo,

ich fahre meine Rolladen am Wochenende eine halbe Stunde nach Beginn der
zivilen Morgendaemmerung, nicht aber vor 07:30 hoch:

define meinAt  at *{sunrise(1800,"07:30")} { fhem("set meinRolladen on")
if($we) }

Aufgrund der Umstellung auf die Sommerzeit fuhr der Rolladen heute aber
erst um 08:30 auf. Ich vermute, dass der Grund dafuer diese Codestelle
in der Funktion sr() im Modul 99_SUNRISE_EL.pm ist:

  my $diff = 0;
  if($data{AT_RECOMPUTE} ||                     # compute it for tommorow
     int(($nh-$sst)*3600) >= 0) {               # if called a subsec earlier
    $nt += 86400;
    $diff = 24;
    @lt = localtime($nt);
    $gmtoff = _calctz($nt,@lt); # in hour

    ($rt,$st) = _sr($needrise,$needset, $lt[5]+1900,$lt[4]+1,$lt[3],
$gmtoff);
    $sst = ($rise ? $rt : $st) + ($seconds/3600);
  }

Waehre es korrekt, $nt mittels localtime in Datumskomponenten zu
wandeln, dann den Tag eins hochzuzaehlen, und dann wieder in einen
Timestamp zurueckzuwandeln? $diff ergaebe sich dann, indem die Differenz
aus $nt nachher und vorher durch 3600 geteilt wird.

Gruesse,
Boris

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-users@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+unsubscribe@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.
Titel: Re: 99_SUNRISE_EL.pm und Umstellung auf Sommerzeit
Beitrag von: rudolfkoenig am 02 April 2010, 16:32:54
                                                   

> Aufgrund der Umstellung auf die Sommerzeit fuhr der Rolladen heute
> aber erst um 08:30 auf.

Ich meine, dass "at" absolute Zeiten, und das SUNRISE_EL Modul relative Zeiten
beim Sommerzeitwechsel falsch berechnet. Das jeweils andere ist in Ordnung.

Ich hoffe, dass ich die Probleme jetzt mehr oder weniger behoben habe, ich habe
Sie auch getestet. Mehr oder weniger heisst, dass die Uhrzeit wahrscheinlich
immer noch falsch ist, falls die Berechnung des naechsten Zeitpunktes zw. 00:00
und 3:00 am Tag des Zeitwechsels stattfindet.  Wiederholende at's berechnen den
naechsten Zeitpunkt direkt nach dem ausfuehren des Befehls.

Waere dankbar, wenn jemand es ueberpruefen wuerde.

Gruss,
  Rudi

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-users@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+unsubscribe@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.