FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Freibeuter am 12 Juli 2019, 10:06:22

Titel: DOIF mit sunrise hängt bei Neustart
Beitrag 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
Titel: Antw:DOIF mit sunrise hängt bei Neustart
Beitrag von: Damian am 12 Juli 2019, 10:34:05
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
Titel: Antw:DOIF mit sunrise hängt bei Neustart
Beitrag 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
Titel: Antw:DOIF mit sunrise hängt bei Neustart
Beitrag von: Damian am 13 Juli 2019, 18:52:02
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.
Titel: Antw:DOIF mit sunrise hängt bei Neustart
Beitrag von: Helmi55 am 14 Juli 2019, 13:28:06
Danke für deine genaue Erklärung