Hallo,
ich habe in der fhem.cfg u.a. Folgendes konfiguriert:
define isNACHT dummy
attr isNACHT webCmd on:off
define IST_NACHT at *{sunset("HORIZON=-0.833")} set isNACHT on
define IST_TAG at *{sunrise("HORIZON=-0.833")} set isNACHT off
und werte isNACHT so aus:
define PIR_Carport notify Bewegungsmelder:on {\
if (Value("PIR_Automatik") eq "on" && Value("isNACHT") eq "on") {\
fhem "set Licht on-for-timer 192";;\
...
Nach einem FHEM- oder FritzBox-Neustart schaltet das Licht allerdigs auch tagsüber. Erst wenn tatsächlich das erste mal die Sunrise oder Sunset Schwelle erreicht wird, funktioniert alles so, wie es soll.
Welchen Wert hat denn in meinem Fall isNACHT direkt nach einem Neustart von FHEM oder der FritzBox?
Ich initialisiere bereits Werte beim Systemstart:
define FHEM_init_INITIALIZED notify global:INITIALIZED set Schreibtischlampe,PIR_Automatik,vBatWarningNOTSent on
define FHEM_init_REREADCFG notify global:REREADCFG set Schreibtischlampe,PIR_Automatik,vBatWarningNOTSent on
Wie könnte ich denn hier auch isNACHT mit initialisieren. Insb. da der Wert sich ja dynamisch ergibt?
Wie könnte ich den Wert sonst zumindest auf off setzen? Ich habe keine Ahnung, wie ich beim Initialisieren komplexere Strukturen anlegen kann.
Danke für Hilfe.
Ich wollte schon hinschreiben:
define Startsequenz notify global:INITIALIZED.* {\
if (!isday()) {\
fhem("set ...
weil ich das verwende, um beim Neustart Dinge zu initialisieren in Abhängigkeit dabon, ob es Tag oder Nacht ist.
Und da fällt mir auf: "isday" kennst du oder?
Die Abweichung von
{sunset("HORIZON=-0.833")}
zu
!isday
dürfte nicht besonders gross sein.
Wenn du
define IST_NACHT at *{sunset("HORIZON=-0.833")} set isNACHT on
verwendest, weil die Umschaltuhrzeiten von isday nicht passen, kann man aber !isday vielleicht doch benutzen, um beim Neustart "isNACHT" näherungsweise richtig zu befüllen. Die Zeitliche Abweichung ist ja maximal HORIZON=-0.833, das dürften ja nur einige Minuten sein.
Beachte das isday auch Parameter kennt.
isday()
Und obwohl ich das noch nie versucht habe, würde ich an deiner Stelle mal
isday("HORIZON=-0.833")
versuchen, das könnte dir ja einiges an Code sparen.