Ankündigung

Einklappen
Keine Ankündigung bisher.

Persistenz Startup Verhalten

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Persistenz Startup Verhalten

    Hallo,
    im Persistenz Artikel (https://github.com/openhab/openhab/wiki/Persistence) steht am Ende folgender Absatz:
    Startup Behavior

    Persistence services and rule engine are started in parallel. It may happen that rules are already executed using items that have not been persisted yet having an "undefined" state. Therefore, rules that rely on persisted information break during this time. A workaround which helped some cases is to introduce an item e.g. "delayed_start" that is set to "OFF" at startup and to "ON" some time later (when it can be assumed that persistence has restored all items. The time needs to be determined empirically. It is influenced by the size of your home automation project and the performance of your platform). The affected rules then have to be masked by using "delayed_start".
    Wie würde diese Rule Maskierung genau aussehen?
    Es müsste eine Rule erstellt werden, die bei Startup das Item delayed_start auf OFF und nach dem Ablauf eines zu bestimmenden Timers würde das Item auf ON gesetzt. Soweit OK.
    Aber muss ich dann um jede Rule die Abfrage
    Code:
    if (delayed_start.state==OFF) then 
    ... rule ...
    }
    packen? Das heißt, diese fast immer unnütze Abfrage müsste ständig ablaufen (und zwar um jede betroffene Rule), nur damit diese einmalige Race-Condition am Anfang abgefangen wird? Verstehe ich das richtig?

    Dann stellt sich mir noch die Frage: was stellt sicher, dass die delayed_start Rule rechtzeitig aufgerufen wird. Da ich mehrere Rule-Files habe, weiß ich ja nicht, welches File als erstes gestartet wird.

    Geht das nicht irgendwie eleganter? Tatsächlich habe ich beim Startup immer ein merkwürdiges Verhalten, was vermutlich daher rührt, dass eben Werte noch nicht rechtzeitig gesetzt wurden.

    Viele Grüße
    Michael
Lädt...
X