Moin,
wenn ich folgende Weekdaytimer Definition habe sehe ich schon, dass vermutlich das Licht trotzdem angeht wenn der Sonnenaufgang vorher stattfindet. Mit "at" bekomme ich das mit isday() gelöst aber wie bekommt man dass mit weekdaytimer?
FuSt.HC31D {sunset_abs("REAL",0,"15:00","23:00")}|on 00:05|off 06:30|on {sunrise_abs("REAL",0,"06:15","09:00")}|off
Nur in dem ich bei Sunrise die eine Zeit auch auf 6:30 setze oder kann? Oder kann ich hier auch irgendwie eine Bedingung mit isday() benutzen.
Gruß Lunepi
Das Problem habe ich noch nicht verstanden.
- Der Parameter in sunset() ist doch genau dafür da, jeweils eine Uhrzeit "nicht vor..." und/oder "nicht nach..." festzulegen, damit das Licht nur innerhalb eines bestimmten Zeitfensters angeht?
- Du hast doch sowieso schon perl-Code in Deiner Definition, da kannst Du doch alle Funktionen verwenden, die Du möchtest?
Hm, jein vielleicht hab ich auch nur ein Denkfehler.
Es geht mir um den Morgen. Sorry hätte nicht meine ganze Zeile kopieren sollen:
06:30|on {sunrise_abs("REAL",0,"06:15","09:00")}|off
Wenn jetzt der Sonnenaufgang um 6:25 ist, wäre die Lampe den ganzen Tag an. Richtig oder?
Jetzt kann ich wenn ich es richtig verstehe die Zeile so schreiben:
06:30|on {sunrise_abs("REAL",0,"06:30","09:00")}|off
Richtig?
Das würde aber bedeuten, dass ich bei allen Änderungen immer 2 Zeiten nämlich "on" und den Sunrise ändern muss.
Das wiederum würde bedeuten das ich das meiner Frau beibringen muss, die das verändern von Zeiten liebt :}
Ich frage mich halt ob es sowas gibt wie ich das vorher mit at gemacht hab
*06:30 { if( !isday() ) { fhem("set FuSt.HC31B on-till " .sunrise_abs("REAL",0, "5:30","9:00")) }}
Hier ist es halt Wurscht, denn das wird ja nur ausgeführt wenn es noch nicht Tag ist.
Ich finde hat am weekdaytimer attraktiv, dass ich halt alle Zeiten Morgen Mittags abends und zwischendurch nutzen kann.
Ich stell mir das halt so ähnlich vor
{if (!isday()){06:30} }|on {sunrise_abs("REAL",0,"06:30","09:00")}|off
Oder bin ich auf dem Holzweg oder denke zu kompliziert?
Bisher habe ich noch nicht verstanden, was Du eigentlich tun willst.
Warum willst Du mit weekdaytimer arbeiten, wenn Du schon eine Lösung mit at hast, die funktioniert?
Formuliere doch mal die konkrete Aufgabe, anstatt hier wirre Dinge zu beschreiben, die Du probierst und die nicht funktionieren wie Du Dir das vorstellst.
Ich will verstehen ob und wie ich mit weekdaytimer eine Bedingung wie z.B. isday() einbauen kann.
Zitat von: lunepi am 30 März 2024, 07:16:43Ich will verstehen ob und wie ich mit weekdaytimer eine Bedingung wie z.B. isday() einbauen kann.
a) weekdayTimer arbeitet Zeit(Punkt)-orientiert und ist nicht für andere Bedingungen konzipiert.
b) isday() nutzt dieselben Routinen, die hinter der Berechnung der sunset-etc.-Zeitpunkte stecken. Finde das ist eine unnötige Doppelung... Man könnte auf ein Reading zeigen für den frühesten Zeitpunkt (in sunrise()).
c) wenn unbedingt eine Ausnahme zu a) erforderlich ist, kann man das als condition definieren.
d) Der Ausführungsteil erlaubt Perl...
Genug Optionen also...
Und hier ein Beispiel:
defmod Esszimmerlampe_WT WeekdayTimer Esszimmerlampe_WT_dummy de 1234560|{sunset_abs("HORIZON=-0.9",0,"00:00","23:59")}|on 1234560|02:00|off (ReadingsVal("Uhrzeit","state","") le "20:30")
Viele Grüße
Jürgen
Zitat von: lunepi am 30 März 2024, 07:16:43Ich will verstehen ob und wie ich mit weekdaytimer eine Bedingung wie z.B. isday() einbauen kann.
Ja, kannst Du. Das habe ich doch schon in meiner ersten Antwort geschrieben.
Du verwendest perl-code, da kannst Du jede beliebige Funktion mit einbauen, wenn es sein muss, auch isday().