at, restart und fhem.save

Begonnen von kmatthias, 27 Februar 2016, 23:16:32

Vorheriges Thema - Nächstes Thema

kmatthias

Hallo,

die Suche hat mir nicht weitergeholfen. Folgendes Problem:

Ich habe ein at mit einer benutzerdefinierten Funktion versehen, z. B. define rollo_auf_wochenende at *{my_twilight("Twilight","sr_civil","8:05","8:55",0,300)} mach_das_rollo_auf;

Solange FHEM läuft, ist auch alles gut. Aber wehe, ich mache einen "shutdown restart". Dann gibt es Chaos. Was ich gesehen habe, ist, dass bei einem Restart meine my_twilight Funktion durchlaufen wird (habe dort eine Logausgabe platziert). Damit habe ich schon mal nicht gerechnet. Ich bin davon ausgegangen, dass alles über die fhem.save restauriert wird. Denn wofür hat man sonst die fhem.save?

Der Haken bei mir ist, dass my_twilight als Rückgabewert manchmal auch den morgigen Tag hat. D. h. mein at wird dann erst am nächsten Tag wieder ausgelöst, obwohl es heute noch nicht ausgelöst wurde. Würde my_twilight bei einem Restart nicht aufgerufen werden, wäre alles gut. Nun ist guter Rat teuer. Hat jemand eine Idee, wie ich das trotzdem hinbekomme?

Vielen Dank
Matthias

viegener

Ich kenne jetzt Deine Funktion my_twilight nicht, insofern ist das mit dem Ratschlag etwas schwierig. Grundsätzlich wird aber beim Neustart der Device quasi wieder neu definiert. Also der Define durchlaufen und auch die Attribute entsprechend gesetzt (aus der fhem.cfg). Die fhem.save enthält im wesentlichen Readings der Devices aber nicht den kompletten Device mit Internals etc.

Du musst also Deine Funktion entsprechend anpassen, dass auch beim Durchlauf direkt nach dem Neustart der korrekte Zeitwert wiedergegeben wird.

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

kmatthias

Das ist eine interessante Info. Ich war davon ausgegangen, dass fhem.save ein komplettes Abbild enthält. Das erklärt dann natürlich einiges.