fhem.save wird nicht wiederhergestellt

Begonnen von kmatthias, 02 Dezember 2014, 11:55:06

Vorheriges Thema - Nächstes Thema

kmatthias

Folgendes Problem: Wenn FHEM bei mir gestoppt ist, modifiziere ich die fhem.save. Dann starte ich FHEM neu und erwarte, dass die Werte entsprechend gesetzt sind. Das geht bei mir nicht.

Ich habe folgendes in FHEM definiert:
define time_sunrise_civil_plus_30 at 08:01:02 {doIt();;}
Das finde ich auch in der fhem.save wieder. Dort steht drin:
setstate time_sunrise_civil_plus_30 Next: 08:01:02

Setze ich die Uhrzeit nun auf 08:01:03 (FHEM ist gestoppt), dann würde ich nach einem FHEM Start erwarten, dass time_sunrise_civil_plus_30 um 08:01:03 gestartet wird. Gucke ich aber in FHEM nach, steht dort immer noch 08:01:02?!

Im fhem-2014-12.log sehe ich, dass die fhem.save eingebunden wird. Mit verbose=5 sehe ich dann, dass 08:01:02 restauriert wird?! Wie kommt er darauf? In der fhem.save steht doch 08:01:03.

Hat jemand eine Idee?

kmatthias

Ich weiß, es besteht eigentlich kein Grund, in der fhem.save zu editieren. Das Grundproblem war folgendes: Immer kurz nach Mitternacht berechne ich die Uhrzeit des Sonnenaufgangs + 30 Minuten. Über "at" erfolgt dann zur passenden Uhrzeit die Steuerung. Nach einigen Wochen fiel mir auf, dass sich die Uhrzeit von Sonnenaufgang + 30 Minuten nicht geändert hat. Das hat mich irritiert. Dann habe ich fhem.save mal von Hand modifiziert und geguckt, was passiert (siehe oben).

Ach ja: Gegen 2:00 Uhr wird FHEM immer für kurze Zeit gestoppt, damit ich ein Backup meiner Datenbank machen kann. DbLog nimmt es mir übel, wenn ich ihm den MySQL Server einfach unter dem Hintern wegziehe. Daher stoppe ich FHEM. Alles soll in die fhem.save geschrieben werden und dann beim Start wieder in FHEM erscheinen.

KernSani

Hi Matthias,

ich habe keine Ahnung von der FHEM.save, stelle mir aber die Frage, warum berechnest du die Uhrzeit des Sonnenaufgangs und arbeitest nicht mit {sunrise(..)}?

Grüße,

Oli
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

betateilchen

Zitat von: kmatthias am 02 Dezember 2014, 11:55:06
Folgendes Problem: Wenn FHEM bei mir gestoppt ist, modifiziere ich die fhem.save.

Das tut man nicht!

Zitat von: kmatthias am 02 Dezember 2014, 11:55:06
dann würde ich nach einem FHEM Start erwarten

Tja, was Du erwartest und was fhem tut, sind grundsätzlich zwei verschiedene Welten, vor allem wenn man offensichtlich noch keinerlei Grundverständnis der Philosophie von fhem hat.

Regel 1: die fhem.save geht Dich als Benutzer überhaupt nichts an, darin hast Du nix zu verändern
Regel 2: ein setstate ist nicht dafür gedacht, irgendwelche Variablenwerte nach Deinem Gutdünken zu befüllen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

kmatthias

Zitat
Regel 1: die fhem.save geht Dich als Benutzer überhaupt nichts an, darin hast Du nix zu verändern
Regel 2: ein setstate ist nicht dafür gedacht, irgendwelche Variablenwerte nach Deinem Gutdünken zu befüllen

Das mache ich ja eigentlich auch nicht (siehe Post 2 von mir). Das war mir nur später aufgefallen, dass es nicht so funktioniert, wie erwartet.

Mein FHEM stoppt in der Nacht und wird dann wieder gestartet. Die Uhrzeiten in den "at" Definitionen sind dann auf irgendeinen alten Wert gesetzt, aber nicht auf den, der um kurz nach Mitternacht berechnet wurde. Und ich habe keinen Plan, warum.

Zitat
Warum berechnest du die Uhrzeit des Sonnenaufgangs und arbeitest nicht mit {sunrise(..)}?
Das frage ich mich mittlerweile auch. Stelle ich gleich mal um. Wäre quasi ein Workaround.