[Gelöst] Licht einschalten 10min vor/nach Sonnenauf- / Untergang

Begonnen von Frank84, 19 November 2023, 07:33:04

Vorheriges Thema - Nächstes Thema

Frank84

Hallo,

isday()-Abfrage ist trotz Angabe der Koordinaten nicht zugebrauchen, daher wollte ich die Zeiten von Sonnenauf- / Untergang anpassen. Ich komme aber jetzt mit der Abfrage der Uhrzeit nicht klar:

my $Uhrzeit_Sonnenaufgang = sunrise_abs(600);
my $aktUhrzeit = localtime();
fhem("set Sonnenaufgang $Uhrzeit_Sonnenaufgang");
  if ($aktUhrzeit > $Uhrzeit_Sonnenaufgang)
  {
    fhem("set d_Tag 1");
  }

Wie kann ich die Uhrzeiten vergleichen ?

Ich habe bisher in einem notify eine If-Abfrage mit isDay() , die soll durch d_Tag ersetz werden



Frank84

#2
d.h., ich muss die Zeiten in eine Zeichenkette umwandeln und dann vergleichen ? Gibt es das nicht einfacher ?  :o

Nobbynews

#3
Zitat von: Frank84 am 19 November 2023, 07:48:34Gibt es das nicht einfacher ?

https://wiki.fhem.de/wiki/SUNRISE_EL

https://fhem.de/commandref_DE.html#DOIF_Zeitsteuerung_mit_Zeitberechnung

Da mir der Zusammenhang unbekannt ist, hier noch als Idee eine andere Möglichkeit:
Zitat# Schalte lamp1 und lamp2 ein von 7:00 bis 10 Minuten nach Sonnenaufgang
    define a13 at *07:00 set lamp1,lamp2 on-till {sunrise(+600)}

Bezogen auf d_Tag ungetestet z.B. so:
define d_Tag_ein at *{sunrise_abs("CIVIL",-600,"04:00","09:00")} set d_Tag 1
define d_Tag_aus at *{sunset_abs("CIVIL",600,"16:30","22:00")} set d_Tag 0

Frank84

Ich hoffe, dass dies mit einem DOIF so funktioniert:

{[({sunrise_abs(600)})];fhem("set d_Tag 1")}
{[({sunset_abs(-600)})];fhem("set d_Tag 0")}

rabehd

Wenn ich die Überschrift sehe und dann Deine Problembeschreibung, dann verstehe ich nichts, zumindest passt da nichts für mich. 

ZitatLicht einschalten 10min vor/nach Sonnenauf- / Untergang
Das löst man entweder mit einem at oder DOIF.

Für mich sähe die Bedingung in einem DOIF so aus:
([{sunset_abs("CIVIL", 600, "16:30","21:45")}])
10 min nach dem bürgerlichen Sonnenuntergang, jedoch frühstens 16:30 und spätestens 21:24.
Die Zeiten sind (glaube ich) optional.
Auch funktionierende Lösungen kann man hinterfragen.

Frank84

Zitat von: Frank84 am 19 November 2023, 17:20:32Ich hoffe, dass dies mit einem DOIF so funktioniert:

{[({sunrise_abs(600)})];fhem("set d_Tag 1")}
{[({sunset_abs(-600)})];fhem("set d_Tag 0")}


In Verbindung mit dem DOIF funktionierts jetzt - das von mir zunächst angedachte Vergleichen von Uhrzeiten ist tatsächlich zu aufwendig  ::)