DOIF mit sunrise hängt bei Neustart

Begonnen von Freibeuter, 12 Juli 2019, 10:06:22

Vorheriges Thema - Nächstes Thema

Freibeuter

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

Damian

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
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Helmi55

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
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

Damian

#3
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.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Helmi55

System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/