Ankündigung

Einklappen
Keine Ankündigung bisher.

Starthilfe: Rules mit Schwellwerten über eine bestimmte Zeit

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

    Starthilfe: Rules mit Schwellwerten über eine bestimmte Zeit

    Hallo zusammen,

    ich tue mich etwas schwer, für folgende Anforderung (die bei uns zu Haus nun immer öfter auftritt) den generell richtigen Ansatz zu finden.

    Oftmals haben wir die Anforderung, eine Aktion auszuführen, wenn ein bestimmter Schwellwert für einen bestimmten Zeitraum überschritten ist.

    Wenn ich mir http://docs.openhab.org/configuration/rules-dsl.html anschaue, würde eine Kombination aus

    Code:
    Item <item> received update [<state>]
    und
    Code:
    createTimer(now.plusSeconds(30))
    würde mir jetzt als erstes einfallen, also den state mit meinem Schwellwert vergleichen, dann z.B. 30 Sekunden warten und wieder mit dem state vergleichen. Das ginge bei kurzen Intervallen, aber wenn ich einen Schwellwert z.B. für 30 MINUTEN unterschritten wissen will, ist das sehr unscharf. Wenn der Schwellwert jetzt und in 30 Minuten unterschritten ist, muss er das ja nicht die ganzen 30 Minuten gewesen sein.

    Kann mir jemand ein Beispiel geben, wie ich das elegant löse? Oder mir einen Link auf die Stelle der Doku geben, wo das beschrieben ist? Auf meine Belange angepasst bekomme ich das dann wohl, so tief bin ich drin. Ich will mich nur nicht in einen selbst erdachten, komplizierten Ansatz verrennen, wenns da vielleicht auch was pragmatisches out-of-the-box gibt.

    Danke euch!

    #2
    Ich würde die Regel auf Item changed oder Item updated triggern, je nachdem was genau Di willst. In der Regel würde ich dann auf minimumSince() oder maximumSince() abfragen.


    Voraussetzung dafür ist ein konfigurierter Persistence Service (nicht mapdb) in den die Daten auch mit ausreichender zeitlicher Auflösung geschrieben werden.

    Kommentar


      #3
      Gibt es auch Möglichkeiten, die Anforderung ohne Persistence umzusetzen? An der Ecke bin ich noch nicht so weit...

      Kommentar


        #4
        Schon, z.B. indem Du die Werte bei jedem Update selbst in ein Array sicherst und das dann auswertest.

        ist aber deutlich umständlicher und fehleranfälliger.

        rrd Persistence ist schnell konfiguriert, Updates wie im Beispiel jede Minute und bedarf keiner weiteren Pflege!

        Kommentar

        Lädt...
        X