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
https://wiki.fhem.de/wiki/Zeitangaben,_rechnen_mit (https://wiki.fhem.de/wiki/Zeitangaben,_rechnen_mit)
d.h., ich muss die Zeiten in eine Zeichenkette umwandeln und dann vergleichen ? Gibt es das nicht einfacher ? :o
Zitat von: Frank84 am 19 November 2023, 07:48:34Gibt es das nicht einfacher ?
https://wiki.fhem.de/wiki/SUNRISE_EL (https://wiki.fhem.de/wiki/SUNRISE_EL)
https://fhem.de/commandref_DE.html#DOIF_Zeitsteuerung_mit_Zeitberechnung (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
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")}
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.
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 ::)