Ankündigung

Einklappen
Keine Ankündigung bisher.

Persistence und Homematic

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

    Persistence und Homematic

    Hallo,

    ich habe noch eine Verständnisfrage zum Thema Persistence in Verbindung mit Homematic.

    Dort gibt es Devices, deren Status man nicht abfragen kann, z.B. die Fensterkontakte.

    Die habe ich alle in einer Gruppe "Windows" definiert.
    Wenn nun das System neu gestartet wird ist der Status der Kontakte so lange unbekannt, bis sich der Kontakt wieder meldet (z.B. durch Statusänderung).

    Kann ich nun mittels eines Persistente-Bindings den Status wegsichern, und beim Neustart des Servers, diesen wieder herstellen lassen? So habe ich zumindest das "restoreOnStartup" verstanden.

    Gibt es dabei Probleme, da beim Start des Servers evtl. die Items noch nicht geladen sind, und das Homematic Bindung aber schon initilisiert wird.

    Mit welchem Persistence-Binding löst man das am besten?

    Gruß
    Christian

    #2
    Richtig, genau für diesen Use Case ist "restoreOnStartup" gedacht!

    Gibt es dabei Probleme, da beim Start des Servers evtl. die Items noch nicht geladen sind, und das Homematic Bindung aber schon initilisiert wird.
    Wenn es welche gibt, dann ist es ein Bug, den Du mit einem Issueeintrag bekämpfen darfst

    Mit welchem Persistence-Binding löst man das am besten?
    Das geht prima mit rrd4j-Persistence. Schau mal in das openhab-demo Package, da wird genau das was Du brauchst mit dem Item "DemoSwitch" gemacht.

    Grüße,
    Kai

    Kommentar


      #3
      Hallo Kai,

      super, vielen Dank für die schnelle Antwort. Ich werde es versuchen.

      Zum Thema Homematic Bindung, und Items. Mir ist da etwas in Erinnerung, das es da zu zeitl. Problemen beim Laden kommt.

      Hier mal ein Auszug aus dem Log beim Starten.

      Code:
      10:42:09.889 INFO  o.o.c.internal.CoreActivator[:92]- openHAB runtime has been started (v1.2.0).
      10:42:13.881 INFO  o.o.b.f.i.FritzboxBinding[:235]- Connected to FritzBox on 192.168.114.1:1012
      10:42:14.533 INFO  o.o.b.h.internal.ccu.CCURF[:80]- Connected to CCU at 192.168.114.202:2001
      10:42:14.843 INFO  o.o.b.o.i.OneWireBinding[:120]- Established connection to OwServer on IP '192.168.114.164' Port '4304'.
      10:42:16.413 INFO  o.o.m.c.i.f.FolderObserver[:163]- Loaded file 'db4o.persist'
      10:42:16.665 WARN  o.o.b.h.i.bus.HomematicBinding[:316]- No item found for HEQ0113084:1#STATE - doing nothing.
      10:42:16.665 WARN  o.o.b.h.i.bus.HomematicBinding[:316]- No item found for HEQ0113084:2#STATE - doing nothing.
      10:42:16.665 WARN  o.o.b.h.i.bus.HomematicBinding[:316]- No item found for HEQ0135217:1#STATE - doing nothing.
      10:42:16.675 WARN  o.o.b.h.i.bus.HomematicBinding[:316]- No item found for HEQ0101826:1#STATE - doing nothing.
      10:42:16.675 WARN  o.o.b.h.i.bus.HomematicBinding[:316]- No item found for HEQ0150060:1#STATE - doing nothing.
      10:42:16.675 WARN  o.o.b.h.i.bus.HomematicBinding[:316]- No item found for IEQ0146144:1#LEVEL - doing nothing.
      10:42:16.675 WARN  o.o.b.h.i.bus.HomematicBinding[:316]- No item found for HEQ0401406:1#LEVEL - doing nothing.
      10:42:16.675 WARN  o.o.b.h.i.bus.HomematicBinding[:316]- No item found for HEQ0079749:1#TEMPERATURE - doing nothing.
      10:42:16.675 WARN  o.o.b.h.i.bus.HomematicBinding[:316]- No item found for HEQ0079749:1#HUMIDITY - doing nothing.
      10:42:16.685 WARN  o.o.b.h.i.bus.HomematicBinding[:316]- No item found for FEQ0065849:1#TEMPERATURE - doing nothing.
      10:42:16.685 WARN  o.o.b.h.i.bus.HomematicBinding[:316]- No item found for FEQ0065849:1#HUMIDITY - doing nothing.
      10:42:16.685 WARN  o.o.b.h.i.bus.HomematicBinding[:316]- No item found for HEQ0110930:1#TEMPERATURE - doing nothing.
      10:42:16.685 WARN  o.o.b.h.i.bus.HomematicBinding[:316]- No item found for HEQ0110930:1#HUMIDITY - doing nothing.
      10:42:16.685 WARN  o.o.b.h.i.bus.HomematicBinding[:316]- No item found for IEQ0020727:1#TEMPERATURE - doing nothing.
      10:42:16.695 WARN  o.o.b.h.i.bus.HomematicBinding[:316]- No item found for GEQ0129252:1#STATE - doing nothing.
      10:42:16.695 WARN  o.o.b.h.i.bus.HomematicBinding[:316]- No item found for GEQ0:1#STATE - doing nothing.
      10:42:16.695 WARN  o.o.b.h.i.bus.HomematicBinding[:316]- No item found for GGEQ0147556:1#STATE - doing nothing.
      10:42:16.695 WARN  o.o.b.h.i.bus.HomematicBinding[:316]- No item found for GEQ0148336:1#STATE - doing nothing.
      10:42:16.705 WARN  o.o.b.h.i.bus.HomematicBinding[:316]- No item found for IEQ0028231:1#STATE - doing nothing.
      10:42:16.705 WARN  o.o.b.h.i.bus.HomematicBinding[:316]- No item found for IEQ0027219:1#STATE - doing nothing.
      10:42:16.705 WARN  o.o.b.h.i.bus.HomematicBinding[:316]- No item found for IEQ0027826:1#STATE - doing nothing.
      10:42:16.705 WARN  o.o.b.h.i.bus.HomematicBinding[:316]- No item found for IEQ0027592:1#STATE - doing nothing.
      10:42:16.705 WARN  o.o.b.h.i.bus.HomematicBinding[:316]- No item found for JEQ0154904:1#STATE - doing nothing.
      10:42:16.705 WARN  o.o.b.h.i.bus.HomematicBinding[:316]- No item found for HEQ0119594:1#STATE - doing nothing.
      10:42:16.715 WARN  o.o.b.h.i.bus.HomematicBinding[:316]- No item found for GEQ0165909:1#STATE - doing nothing.
      10:42:16.715 WARN  o.o.b.h.i.bus.HomematicBinding[:316]- No item found for HEQ0128506:1#STATE - doing nothing.
      10:42:16.715 WARN  o.o.b.h.i.bus.HomematicBinding[:316]- No item found for HEQ0105759:1#STATE - doing nothing.
      10:42:16.845 INFO  o.o.m.c.i.f.FolderObserver[:163]- Loaded file 'ush.items'
      Da wird wohl das Binding vor der Items geladen.


      Gruß
      Christian

      Kommentar


        #4
        Zitat von Cradi Beitrag anzeigen
        Da wird wohl das Binding vor der Items geladen.
        Nee, das ganze Logging passiert nachdem die Items geladen wurden (nur die Logmeldung kommt erst, wenn alle Bindings ihre Config daraus ausgelesen haben).
        Die Meldungen habe ich aber auch, da macht das Homematic-Binding intern irgendwas in der falschen Reihenfolge. Werde ich nochmal nach schauen.

        Grüße,
        Kai

        Kommentar


          #5
          Hallo Kai,

          ok, dann war das nur bzgl. Homematic Bindung, hat aber keine Auswirkung auf das Logging.

          Ich werde es testen.

          Danke und Gruß
          Christian

          Kommentar


            #6
            Die Persistierung der Homematic Devices klingt soweit nach einer Lösung allerdings kann man sich darauf nicht wirklich verlassen.
            Im Idealfall sollte ja openHAB durchlaufen und so weit es geht eigentlich nie beendet werden. Es gibt aber dennoch immer wieder mal Fälle wo der ein oder andere Neustart eben nötig ist.
            Wenn nun beim Runterfahren von openHAB die Homematic Devices persistiert werden dann dürfen sich während der gesamten Downtime von openHab die Zustände der Homematic Devices auch nicht wieder ändern sonst funktioniert das ganze mit dem Wiederherstellen nicht richtig.

            Beispiel:

            - openHAB wird runtergefahren
            - Zustand von Licht Wohnzimmer (momentan AUS) wird persistiert
            - kurze Zeit später macht jemand das Licht im Wohnzimmer an
            - openHAB wird wieder hochgefahren (Wohnzimmer Licht ist immer noch an)
            - openHAB stellt nun die persistierten Items wieder her und setzt den Status vom Wohnzimmer Licht somit auf AUS -> die Wahrheit sieht aber anders aus

            Hier muss eine andere Lösung her. Das Homematic Binding sollte die Zustände beim initialen Start abfragen, das muss gehen. Kann mich noch dunkel daran erinnern als ich vor ca. zwei Jahren selbst was in Java implementiert hatte und das auch hinbekommen habe. Keine Ahnung ob der Author des Homematic Bindings das bereits auf seiner ToDo Liste hat aber sobald ich etwas Zeit habe versuch ich mir das mal anzuschauen.

            Kommentar


              #7
              Hallo DonGyros,

              da hast Du natürlich recht. Es ist aber besser, als bei allen Devices "unbekannt" als Status zu haben, zumindest für mich.
              Soweit ich weiss, lässt sich der Status an Geräten im Netzbetrieb auch abfragen, die Geräte im Batteriebetrieb können aber nicht abgefragt werden. Sie melden sich zyklisch am System bzw. wenn sich deren Status ändert.

              Gruß
              Christian

              Kommentar


                #8
                Das muss auch mit Geräten im Batteriebetrieb gehen. Ansonsten kannst du doch das ganze System vergessen.
                Wenn du deine CCU durchstartest dann werden dir doch auch relativ zeitnah die richtigen Zustände angezeigt. Und openHAB frägt ja letztendlich die Zustände über die CCU ab.
                Die CCU sollte immer den korrekten Zustand aller Geräte kennen. Wenn openHAB nun hochgefahren wird und die Geräte auf der CCU abfrägt, sollten somit auch die richtigen Zustände übermittelt werden.

                Kommentar

                Lädt...
                X