sunset liefert auf einmal komische Werte zurück - "43:06:52"

Begonnen von bugster_de, 26 September 2022, 22:09:28

Vorheriges Thema - Nächstes Thema

bugster_de

Hi,

ich nutze seit Jahren das sunset Kommando um die Rolläden im Obergeschoß abends zu schliessen
{ sunset("REAL",0,"16:30","19:30")}
Das funktioniert seit Jahren echt problemlos. Nun viel mir dieser Tage, als die Abende kürzen wurden auf, dass die Rolläden immer um 19:30h schliessen, obwohl es bereits gegen 19:00h im Zimmer so dunkel ist, dass man das Licht einschalten muß.

Wenn ich obigen Befehl in der FHEM Kommandoleiste eingebe, erhalte ich als Ergebniss "43:06:52".

Ist da an sunset was kaputt? Wie gesagt funktioniert das seit Jahren ohne Probleme. Latitude und Longitude sind auch korrekt gesetzt.

Otto123

#1
Nix kaputt heute ist sunset schon vorbei und es liefert Dir den Wert für morgen :)
https://fhem.de/commandref_modular_DE.html#SUNRISE_EL

Wie Wo verwendest Du denn den sunset Befehl?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

bugster_de

Hi,

Danke, aber das ist schon klar, dass es da schon vorbei war. Allerdings sind 43 Stunden auch nicht die richtige Zahl. Irgendwas kleiner als 24 Stunden hätte gepasst  :)

Verwendung innerhalb meines Perl wie folgt:
    $sunsettime = sunset("REAL",-300,"16:30","22:00");
    my $nacht_latest = ReadingsVal( "RC_Nacht_late", "state", "19:15:00" );
    my $nacht_earliest = ReadingsVal( "RC_Nacht_early", "state", "17:30:00" );

    # sunset inbetween the max and min time?
    if( MM_Get_IsAfter( $sunsettime, $nacht_latest ) == true ) {
$closetime = $nacht_latest;
    } elsif( MM_Get_IsBefore( $sunsettime, $nacht_earliest ) == true ) {
$closetime = $nacht_earliest;
    } else {
$closetime = $sunsettime;
    }

Wie gesagt läuft das so seit min 6 Jahren unverändert und nun auf einmal wegen der falscehn sunset nicht mehr

Otto123

#3
Kannst Du meinen Link nicht lesen?  :o
Zitatsunset() - absolute Zeit des nächsten Sonnenuntergangs (+ 24 h, wenn am nächsten Tag)
(43-24):06:52 -> 19:06:52

Ich denke für diese Art Rechnung solltest Du sunset_abs nehmen.

BTW: sunrise_el ist seit 14.04.2021 nicht mehr geändert.
Warum das was Du da rechnest jemals funktioniert hat, kann ich nicht sagen. Mit Sicherheit hat es nichts mit einem Fehler in sunset zu tun.

Kann gut sein, dass sich Deine komplette Formel dadurch ersetzen ließe,
{sunset("REAL",-300,ReadingsVal( "RC_Nacht_early", "state", "17:30:00" ),ReadingsVal( "RC_Nacht_late", "state", "19:15:00" ))}
denn diese Funktion ist in sunset eingebaut (oder ich verstehe deine Formel falsch):
Zitatdefmod a15 at *{sunset("REAL",0,"18:00","21:00")} set lamp1 on
Schalte lamp1 an, sobald die Sonne unter den Horizont sinkt (h ≤ 0), jedoch nicht vor 18:00 und nicht nach 21:00.
sunset ist für den Einsatz in einem at designed - such hier mal im Forum: es gibt immer wieder Erklärungen was passiert wenn die Tage länger oder kürzer werden und wie damit zwei Schaltvorgänge hintereinander vermieden werden.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

bugster_de

Zitat von: Otto123 am 27 September 2022, 23:28:28
Kannst Du meinen Link nicht lesen?  :o(43-24):06:52 -> 19:06:52
Oh, habe ich tatsächlich überlesen. Mein Fehler, tut mir leid.

Zitat von: Otto123 am 27 September 2022, 23:28:28
Ich denke für diese Art Rechnung solltest Du sunset_abs nehmen.
habe ich gerade umgesetzt und passt vermutlich besser

Zitat von: Otto123 am 27 September 2022, 23:28:28
BTW: sunrise_el ist seit 14.04.2021 nicht mehr geändert.
Warum das was Du da rechnest jemals funktioniert hat, kann ich nicht sagen. Mit Sicherheit hat es nichts mit einem Fehler in sunset zu tun.
das ist echt eine gute Frage. Ich habe gerade auf meinem Versionsmanagementsystem nachgeschaut: meine Perl-Routinen habe ich dort im Feb. 2016 das letzte mal eingecheckt und es ist die gleiche Datei wie auf meinem FHEM Server. Sprich diese Routinen laufen seit 2016 ohne Veränderungen durch. Warum das nun auf einmal nicht mehr so geht wie gedacht ist mir auch unklar.

Zitat von: Otto123 am 27 September 2022, 23:28:28
Kann gut sein, dass sich Deine komplette Formel dadurch ersetzen ließe,
{sunset("REAL",-300,ReadingsVal( "RC_Nacht_early", "state", "17:30:00" ),ReadingsVal( "RC_Nacht_late", "state", "19:15:00" ))}
denn diese Funktion ist in sunset eingebaut (oder ich verstehe deine Formel falsch):
Du hast das genau richtig verstanden und so wie von Dir gelistet werde ich das gleich einbauen. Danke!

bugster_de

Hi,

ich habe das nun so umgesetzt wie Otto123 das vorgeschlagen hat. Funktioniert nun einwandfrei ###FREU###