Hallo, ich habe folgendes DOIF:
defmod d_Nachtabschaltung_Solarauswertung DOIF ([{sunrise("HORIZON=-6.0")}-{sunset("HORIZON=-6.0")}]) (attr a_SolarMax disable 0)\
DOELSE (attr a_SolarMax disable 1)
attr d_Nachtabschaltung_Solarauswertung do always
Mein Problem ist, dass bei einem Neustart von FHEM erst wieder bei Sonnenaufgang / Untergang das richtige Kommando ausgeführt wird.
Wie kann ich nach der Initialisierung direkt ein "checkall" ausführen lassen?
Gruß
Peter F
Zitat von: Freibeuter am 12 Juli 2019, 10:06:22
Hallo, ich habe folgendes DOIF:
defmod d_Nachtabschaltung_Solarauswertung DOIF ([{sunrise("HORIZON=-6.0")}-{sunset("HORIZON=-6.0")}]) (attr a_SolarMax disable 0)\
DOELSE (attr a_SolarMax disable 1)
attr d_Nachtabschaltung_Solarauswertung do always
Mein Problem ist, dass bei einem Neustart von FHEM erst wieder bei Sonnenaufgang / Untergang das richtige Kommando ausgeführt wird.
Wie kann ich nach der Initialisierung direkt ein "checkall" ausführen lassen?
Gruß
Peter F
Wahrscheinlich reicht schon: https://commandref.fhem.de/commandref_DE.html#DOIF_initialize
Hallo Damian
kurze Frage von mir zu diesem Thema
Heißt das ich bin auf der sicheren Seite (nach einem ungewollten Systemneustart --Stromausfall)
wenn ich das attr initialize initialized und attire startup set$SELF checkall. setze?
Gruß
Helmut
Zitat von: Helmi55 am 13 Juli 2019, 17:03:24
Hallo Damian
kurze Frage von mir zu diesem Thema
Heißt das ich bin auf der sicheren Seite (nach einem ungewollten Systemneustart --Stromausfall)
wenn ich das attr initialize initialized und attire startup set$SELF checkall. setze?
Gruß
Helmut
Das kann man nicht pauschal sagen.
Mit attr initialize initialized wird nur der Zustand des Moduls zurückgesetzt. Damit erreicht man nur, dass der selbe DOIF-Zweig nochmal ausgeführt werden kann.
Einen verpassten Zeitpunkt dagegen nachzuholen, kann man evtl. mit startup checkall, dabei müssen die Zeittrigger als Zeitintervalle definiert sein, einzelne Zeittrigger sind dagegen bei checkall nicht wahr, sie führen nicht zum Ausführen eines Zweiges.
Bsp:
DOIF ([20:00]) (set lamp on) DOELESEIF ([23:00]) (set lamp off)
wenn das System um 19:59 ausfällt und um 20:01 neugestartet wird, passiert hier bei startup checkall nichts, weil keiner der Zweige um 20:01 wahr ist.
DOIF ([20:00-23:00]) (set lamp on) DOELESE (set lamp off)
Im zweiten Beispiel sollte auch um 20:01 die Lampe beim Neustart mit startup checkall angehen, da der erste Zweig um 20:01 wahr ist.
Danke für deine genaue Erklärung