Ankündigung

Einklappen
Keine Ankündigung bisher.

Rule durch Persistence geschaltet

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

    Rule durch Persistence geschaltet

    Hallo zusammen,

    ich starte mein Openhab jeden Morgen um 4 Uhr einmal neu. Dabei werden aus der DB der letzte Status der Items zurückgeholt.
    Ich habe für meine Sohn eineRegel, die ich schalte bevor er ins Bett geht.

    Unter anderem wird dabei seine Wandleuchte angeschaltet. Wenn ich dann das Zimmer verlasse schalte ich diese aus.

    Wenn ich dann morgens um 4 in sein Zimmer reinkomme ist diese Wandleuchte wieder an.

    Kann es sein, dass durch den Neustart um 4 Uhr die Szene beim Rücksichern des Items , dass die Regel triggert, auf an geschaltet wird und damit die Szene erneut geschaltet wird?

    Danke für Eure Hilfe.

    #2
    Warum tust Du das? opeHAB sollte nicht regelhaft täglich neu gestartet werden.

    Was die Leuchte betrifft: Es ist nicht sinnvoll einfach alle Items beim Start per restoreOnStartup auf den letzten Stand zu bringen.

    Es kommt sehr darauf an, wie diese Nachtlichtautomatik realisiert ist. Wenn Du z.B. eine knx Szene dafür nutzt und openHAB diese Szene mit speichert, so wird diese Szene vermutlich durch den Restore aufgerufen. Da Du das Licht nicht über die Szene abschaltest, ändert sich die Szenennummer dann nicht.
    Das ist natürlich nur ein Beispiel, woran es nun genau liegt, kann man erst feststellen, wenn die zugrundeliegenden Regeln bekannt sind

    Kommentar


      #3
      Ich mache das,um einen mögliche Absturz von Openhab oder dem Raspberry vorzubeugen, damit das System wenn es hängen bleibt, wenigstens automatisiert sich wieder heilt.

      Die Regel ist in Openhab gebaut und keine KNX Szene. Es ist eine Regel die durch ein Item das geschaltet wird gestartet wird.

      Ich persistiere manche Items, da diese nicht aktiv ihren Status senden:

      Hier ist die Rule:


      Code:
      rule "Kind schlafen"
      when
      Item all_kind_schlafen received command
      then
      if (receivedCommand==ON) {
      
      if (ws_daemmerungswert.state < 10) {
      
      og_flur_db.sendCommand(OFF)
      eg_treppenhausegog_sl.sendCommand(OFF)
      og_treppenhausogdg_sl.sendCommand(OFF)
      og_kinderzimmer_rol.sendCommand(100)
      og_kinderzimmer_rol_so.sendCommand(ON)
      eg_entree_bw_sperren.sendCommand(ON)
      og_flur_bw_auf_sperren.sendCommand(ON)
      og_flur_bw_ab_sperren.sendCommand(ON)
      smartplug1.sendCommand(ON)
      
      }
      
      if (ws_daemmerungswert.state > 10) {
      
      og_flur_db.sendCommand(OFF)
      eg_treppenhausegog_sl.sendCommand(OFF)
      og_treppenhausogdg_sl.sendCommand(OFF)
      og_kinderzimmer_rol.sendCommand(100)
      og_kinderzimmer_rol_so.sendCommand(ON)
      eg_entree_bw_sperren.sendCommand(ON)
      og_flur_bw_auf_sperren.sendCommand(ON)
      og_flur_bw_ab_sperren.sendCommand(ON)
      smartplug1.sendCommand(ON)
      
      }
      
      }
      
      else {
      og_kinderzimmer_rol_so.sendCommand(OFF)
      og_kinderzimmer_rol.sendCommand(0)
      eg_entree_bw_sperren.sendCommand(OFF)
      og_flur_bw_auf_sperren.sendCommand(OFF)
      og_flur_bw_ab_sperren.sendCommand(OFF)
      
      
      }
      end
      Zuletzt geändert von SaschaQ; 20.08.2020, 09:24.

      Kommentar


        #4
        Wo versteckt sich denn die Szene? Die wird hier gar nicht angesprochen...
        Wie sind die Items definiert, und welche davon werden evtl. per restoreOnStartup wiederhergestellt?

        Wenn bestimmte Items ihren Status nicht über andere Wege bekommen, so kann es durchaus sein, dass sie nicht wiederhergestellt werden dürfen (z.B. eine Szenennummer wäre so ein Fall - Szenen sind Fire-and-Forget, es gibt keinen sicheren Weg, festzustellen, ob eine Szene gerade aktiv ist oder nicht (es sei denn, man überwacht alle beteiligten Geräte und prüft jedes davon, ob es den hinterlegten Status hat) Szenen-GA dürfen eigentlich nicht lesbar sein. Man kann testen, ob die beteiligten Aktoren allesamt eine Read-Request Answer ignorieren (das sollte man auch konfigurieren können, aber nicht alle Hersteller halten sich hier an die EIBA Vorgaben) und dann die Szenennummmer an irgendeiner Stelle abgreifen, aber sauber ist das nicht.

        Warum prüfst Du in der Rule auf die Helligkeit, wenn die Items dann anschließend doch alle identisch geschaltet werden? Was passiert, wenn der Dämmerungswert = 10 ist (nichts)?

        Bei mir läuft openHAB äußerst stabil, mit einer Ausnahme: Wenn ich etwas konfiguriert habe (gewöhnlich per VSCode) und vergesse, alle Editorfenster zeitnah zu schließen, reißt LSP das System anschließend in den Abgrund, und zwar erst Stunden später. Da ich das weiß, starte ich openHAB nach Konfigurationsänderungen einmal durch.
        Sollten sich Deine Probleme nicht auf ähnliche Art eingrenzen lassen, so hast Du mit hoher Wahrscheinlichkeit ein Problem in Deiner Konfiguration. Es wäre sinnvoll, dieses Problem zu lokalisieren und den regelhaften Neustart sein zu lassen.

        Kommentar

        Lädt...
        X