Moin miteinander :-)
Ich habe folgende mich störende Situation:
Wird FHEM neu gestartet oder aber es kommt mal zu einem Stromverlust (ja eine USV wäre noch was tolles - is aber noch nicht) und FHEM startet wieder - greift es sich die vorherigen states - entweder aus der fhem.save (so meine Denke) oder aus der Config DB weil die fhem.save bei mir seit Ewigkeiten unverändert ist (13.02.18 letzte Änderung- spricht für mich irgendwie dafür, dass es mittlerweile woanders liegt). Jedenfalls schaltet sich bisher immer ein und das selbe Gerät dann ein - ob physikalisch muss ich noch prüfen... Wenn ich kurz vorher ein anderes Gerät schaltete wird dies auch in den Zustand vor meiner Aktion gebracht - also wirklich geschaltet.
Da bei mir ein "save statefile" -> Config DB saved ergibt tippe ich darauf, dass dort mittlerweile alles liegt.
Da wäre dann nun die Frage was sinnvoll wäre - automatisiert die Config DB alle 1-2 Stunden speichern lassen um halbwegs aktuelle Zustände zu haben?
Oder gibt es hier eine mir unbekannte Lösung die auf Minuten oder noch genauer immer alles transaktionssicher hat :-D
Ich danke euch. 8)
FHEM verhält sich da bei fhem.cfg und configDB völlig identisch. Die states werden regulär bei einem "save" gesichert.
Zitat von: Master_Nick am 15 Mai 2018, 11:06:28
Da bei mir ein "save statefile"
Einen solchen Befehl gibt es in FHEM nicht.
Zitat von: Master_Nick am 15 Mai 2018, 11:06:28
Da wäre dann nun die Frage was sinnvoll wäre - automatisiert die Config DB alle 1-2 Stunden speichern lassen
Das wäre auf keinen Fall sinnvoll. Warum willst Du die gesamte Konfiguration so häufig sichern, wenn es Dir nur um die states geht?
define at_saveState at +*02:00 {WriteStatefile()}
ist völlig ausreichend und wurde auch schon mehrfach hier im Forum beschrieben. Aber auch das macht für mich keinen Sinn.
Was für mich Sinn machen könnte:
- vor einem manuellen restart ein save durchführen
- schnellstmöglich dafür sorgen, dass ein FHEM nicht wegen Stromausfall ausfallen kann, wenn man sich schon an einer falsch geschalteten Lampe stört.
Ausserdem ist mir unklar, wie durch das Setzen eines readings eine Lampe tatsächlich eingeschaltet werden kann - das passiert doch wohl eher über ein notify oder ein DOIF und nicht über den state der Lampe selbst.
8) Hehe
Das "save statefile" hatte ich so verstanden aus der Commandref:
Zitatsave [<configfile>]
Save first the statefile, then the configfile information. If a parameter is specified, it will be used instead the global configfile attribute.
Ich hatte "define at_saveState at +*02:00 {WriteStatefile()}" das durchaus schon mehrfach gefunden - wunderte mich nur weil ich WriteStatefile() so nicht ausführen konnte in der Konsole oben bei FHEM.
Ja die nicht vorhandene USV ist definitiv doof... Ich wunder mich ja, dass er IMMER diese eine Lampe einschaltet ohne das sie 2 Tage vorher überhaupt mal an war.
Das normale save macht also immer auch die states mit - dann müsste ja ein normaler restart keine Lampe schalten danach.
es gibt auch aktoren/geräte, die nach spannungswiederkehr nicht off sind. eventuell sogar konfigurierbar.
Ja, dass hatte ich auch schon überlegt - der Funkschalter (einer der letzten seiner Art in Verwendung) ist aber tatsächlich immer aus bei Rückker von Spannung und wurde aktiv geschaltet.
Zitat von: Master_Nick am 15 Mai 2018, 13:33:15
wunderte mich nur weil ich WriteStatefile() so nicht ausführen konnte in der Konsole oben bei FHEM.
Alles was eine runde Klammer hat und nicht in einem DOIF steckt, ist perl Code und muss deshalb in geschweifte Klammern gepackt werden, wenn Du ihn auf der FHEM Konsole ausführen willst.
{WriteStatefile()}
Arg... Stimmt sorry. :-D
Danke soweit - ich prüfe mal was bei mir die Ursache ist.
Stromausfälle kann man ja auch gezielt simulieren ohne schaden anzurichten.
So ich habe es mal getestet:
1. {WriteStatefile()}
2. shutdown restart
3. Lampe ist nach restart (zumindest innerhalb von FHEM eingeschaltet - bin gerade nicht @home)
Ganz dreist und reckig das fhem.save gelöscht und {WriteStatefile()} gemacht ein neues wird nicht angelegt.
Ist das ganze nun noch mit nutzen dieser Datei oder ist es tatsächlich innerhalb der configDB?
Auch ein "save" erzeugt kein neues.
1. save
2. schutdown restart
3. kein neues save und Lampe wieder an :-D
Verrückt!
Zitat von: Master_Nick am 15 Mai 2018, 14:04:29
Ist das ganze nun noch mit nutzen dieser Datei oder ist es tatsächlich innerhalb der configDB?
Auch ein "save" erzeugt kein neues.
Was Du im Filesystem als configDB Nutzer mit der Datei machst, ist völlig egal. Die states werden in die Datenbank geschrieben, davon siehst Du nix explizit.
Mach mal ein "configdb info" dann siehst Du, wann deine states zum letzten Mal gesichert wurde.
Und ich behaupte immer noch, dass Dein "Problem" nicht vom statefile verursacht wird, sondern von Deiner Konfiguration selbst. Und mit configDB hat es überhaupt nichts zu tun.
Ich möchte dir auch gar nicht widersprechen - ich suche ja auch nach dem Fehler.
state: 647 entries saved: Tue May 15 14:04:33 2018
Das ist also alles tutti :-)
Ich denke ich habe das Problem gefunden.
Und es tritt nun auch nicht mehr auf, aber nicht weil ich etwas gelöst habe sondern nur weil ich nun OFF da habe. ^^
Also kleines Vorwort ich nutze die MQTT Generic Bridge und anscheind scheint da was zu passieren beim startup von FHEM - folgendes spammt dann nämlich auf meinem MQTT Broker:
homeland/haushalt/elektrik/wohnzimmer/Streifen/state off
homeland/haushalt/heizung/Heizungssteuerung/state on
homeland/haushalt/elektrik/wohnzimmer/Spot/state off
homeland/haushalt/heizung/Heizungssteuerung/state on
homeland/haushalt/elektrik/wohnzimmer/Spot/state off
homeland/haushalt/elektrik/wohnzimmer/Streifen/state off
homeland/haushalt/elektrik/wohnzimmer/Streifen/state off
homeland/haushalt/heizung/Heizungssteuerung/state on
homeland/haushalt/elektrik/wohnzimmer/Spot/state off
homeland/haushalt/elektrik/wohnzimmer/Streifen/state off
homeland/haushalt/elektrik/wohnzimmer/Spot/state off
homeland/haushalt/heizung/Heizungssteuerung/state on
homeland/haushalt/elektrik/wohnzimmer/Streifen/state off
homeland/haushalt/heizung/Heizungssteuerung/state on
homeland/haushalt/elektrik/wohnzimmer/Spot/state off
homeland/haushalt/elektrik/wohnzimmer/Streifen/state off
homeland/haushalt/heizung/Heizungssteuerung/state on
homeland/haushalt/elektrik/wohnzimmer/Spot/state off
homeland/haushalt/elektrik/wohnzimmer/Streifen/state off
homeland/haushalt/elektrik/wohnzimmer/Spot/state off
homeland/haushalt/elektrik/wohnzimmer/Streifen/state off
homeland/haushalt/heizung/Heizungssteuerung/state on
homeland/haushalt/elektrik/wohnzimmer/Spot/state off
homeland/haushalt/heizung/Heizungssteuerung/state on
homeland/haushalt/heizung/Heizungssteuerung/state on
homeland/haushalt/heizung/Heizungssteuerung/state on
homeland/haushalt/elektrik/wohnzimmer/Streifen/state off
homeland/haushalt/heizung/Heizungssteuerung/state on
homeland/haushalt/elektrik/wohnzimmer/Streifen/state off
homeland/haushalt/elektrik/wohnzimmer/Streifen/state off
homeland/haushalt/heizung/Heizungssteuerung/state on
homeland/haushalt/elektrik/wohnzimmer/Spot/state off
homeland/haushalt/elektrik/wohnzimmer/Streifen/state off
homeland/haushalt/elektrik/wohnzimmer/Spot/state off
homeland/haushalt/elektrik/wohnzimmer/Spot/state off
homeland/haushalt/elektrik/wohnzimmer/Spot/state off
Da war vorher halt warum auch immer mal state on drin. Jetzt bleibt er immerhin aus.
Ich melde mich damit mal, wo es thematisch hin gehört.
Und exakt wie du sagtest betateilchen - ein auto save des statefiles sollte nie die Lösung sein ;-) Danke für die Hilfen!
Ach wie fein... da lag ne neue Version herum und schon kann ich es nicht mehr nachstellen.