Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - State Alt < > State Neu

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

    - √ - State Alt < > State Neu

    Hallo

    Ich hole Daten vom Modbus und sende sie an KNX.
    Da der Modbus dauernd pollt werden die Daten bei jeden poll an KNX gesendet, das will ich vermeiden.

    Bei den Persistence-Bindings werden die Werte immer fortlaufend in eine Datenbank geschrieben und wieder hervorgeholt.

    Ich brauche aber ja nur den Wert vom letzen poll und den davor.

    Wie kann ich das machen?

    Gruß NetFritz
    KNX & Wago 750-849 ,Wiregate u. Cometvisu, iPad 3G 64GB.
    WP Alpha-Innotec WWC130HX (RS232-Moxa-LAN),Solaranlage für Brauchwasser und Heizung.
    PV-Anlage = SMA Webbox2.0 , SunnyBoy 4000TL, Sharp 4kWP

    #2
    Hallo
    Habe mal db4o - Binding installiert.
    In /var/lib/openhab/persistence/db4o/store.db4o ist die db4o vorhanden.

    Wie greife ich jetzt in Rules auf den letzten Wert zu?

    Code:
    Solarspeicher_oben.historicState(now.minusHours(1)). state as DecimalType)
    Mit "historicState" , wie muss dann der Eintrag in der Klammer hinter "historicState" aussehen?

    Gruß NetFritz
    KNX & Wago 750-849 ,Wiregate u. Cometvisu, iPad 3G 64GB.
    WP Alpha-Innotec WWC130HX (RS232-Moxa-LAN),Solaranlage für Brauchwasser und Heizung.
    PV-Anlage = SMA Webbox2.0 , SunnyBoy 4000TL, Sharp 4kWP

    Kommentar


      #3
      Hi,

      wenn du nicht den Default-PersistenceService verwenden möchtest, musst du angeben welchen du haben möchtest (im Beispiel MySQL):

      Code:
       if (! EO_0180FE98_Temperature.updatedSince(now.minusMinutes(Period), "mysql")  && ....
      Gruß,
      thoern

      Kommentar


        #4
        Hallo
        Habe in Default db4o eingetragen.

        Meine Test if Abrage sieht so aus.
        Code:
                if (Solarspeicher_oben.updatedSince(now.minusMinutes(1))){
                 logInfo("FILE", "------geaendert -----")
             }
        In der openhab.log müsste jetzt doch wenn sich in der letzten Minute der Wert geändert "------geaendert -----" stehen.
        Es kommt aber nicht in der log an, auch dann nicht wenn ich in der ETS einen neuen Wert vorgebe.

        Gruß NetFritz
        KNX & Wago 750-849 ,Wiregate u. Cometvisu, iPad 3G 64GB.
        WP Alpha-Innotec WWC130HX (RS232-Moxa-LAN),Solaranlage für Brauchwasser und Heizung.
        PV-Anlage = SMA Webbox2.0 , SunnyBoy 4000TL, Sharp 4kWP

        Kommentar


          #5
          Hi,

          ja, sollte so sein. Zeig doch mal deine komplette Rule, also mit "when" und "then" und so.

          Gruß,
          thoern

          Kommentar


            #6
            Hallo
            Habe nochmal ein neues KNX-Item eingetragen in Items und db4o.persist.
            In Rules
            Code:
                  if (T_Fernsehz_Ist.updatedSince(now.minusMillis(1000))){
                     logInfo("FILE", "------ if geaendert -----")
                  }
            Jetzt geht es.
            Wenn ich in der ETS eine andere "_Fernsehz_Ist" vorgebe wird mir in der log "------ if geaendert -----" angezeigt.
            Danke für die Hilfe.
            Gruß NetFritz
            KNX & Wago 750-849 ,Wiregate u. Cometvisu, iPad 3G 64GB.
            WP Alpha-Innotec WWC130HX (RS232-Moxa-LAN),Solaranlage für Brauchwasser und Heizung.
            PV-Anlage = SMA Webbox2.0 , SunnyBoy 4000TL, Sharp 4kWP

            Kommentar

            Lädt...
            X