Ankündigung

Einklappen
Keine Ankündigung bisher.

Rule erstellen mit letztem Wert aus der Datenbank

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

    Rule erstellen mit letztem Wert aus der Datenbank

    Hallo,
    ich möchte eine Statistik erzeugen im Openhab in der ich sehe wann unsere Heizung einen Brennerstart durchgeführt hat.

    Derzeit habe ich nur wieviele Brennerstarts gestern es waren und aktuell am Tag durchgeführt wurden (Addition).
    Dafür benutze ich:
    Code:
    var DecimalType start = Heizung_Brenner_Starts.historicState(now.withTimeAtStartOfDay,"mysql").state as DecimalType
    für diese Regel würde ich so machen wollen das er den aktuellen Wert minus den vorhergehenden Wert subtrahiert.
    Bloß wie greife ich auf den vorhergegangenen Wert zurück?
    gibts da ein Pondon zu meinem historicState(now.withTimeAtStartOfDay,"mysql" ?
    Danke!

    aktull am Tag Rule komplett:
    Code:
    rule "Brennerstarts aktuell am Tag"
    when Time cron "15 0 0 * * ?"   or Item Heizung_Brenner_Starts changed
    then    
        var DecimalType start = Heizung_Brenner_Starts.historicState(now.withTimeAtStartOfDay,"mysql").state as DecimalType
        var DecimalType aktuell = Heizung_Brenner_Starts.state as DecimalType
        if( start > 0 && aktuell > 0 )
        {
            var DecimalType differenz = new DecimalType( aktuell - start )
            var String msg = differenz.format("%.0f")
            if( Heizung_Brenner_Starts_aktuell.state != msg )
            {
                postUpdate(Heizung_Brenner_Starts_aktuell,msg)
            }
        }
    end

    #2
    Ich verstehen nicht so ganz, worauf Du hinaus willst. Wenn Du den Brennerstart persistierst, hast Du doch schon alle Informationen (also wann ein Brennerstart ausgeführt wurde).

    Kommentar


      #3
      Ich kann nur die gesamtzahl an brennerstarts auslesen, da ich dies alle 5 Minuten mache weiß ich ja wann ein Brennerstart war. Aber um das in einem chart darzustellen benötige ich ja den einzelnen brennerstart. Sprich aktueller wert minus alter Wert. Ergibt den wert an brennerstarts im zeitraum (z.B jede stunde)

      Kommentar


        #4
        Ah. Heizung_Brenner_Starts wird von der Heizung ausgelesen und ist schon kumuliert. Also, das einfachste wäre ja ein zweites Item, welches Du bei jedem changed von Heizung_Brenner_Starts mit 1 und anschließend 0 updatest. Das persistierst Du. Jedes Update 1 entspricht also einem Brennerstart, und Du kannst einfach mit Heizung_Einzelstarts.sumSince(now.withTimeAtStartO fDay) Die Anzahl Brennerstarts seit 0 Uhr ausgeben. Weiterhin bekommst Du in einem Graphen Nadeln für jeden Brennerstart. Wenn Du über ein Item herausbekommen kannst, ob der Brenner aktuell läuft, könntest Du auch diese Information einfach verwenden und hättest in der Grafik anschließend nicht nur die Brennerstarts, sondern auch die optische Information, wie lang die Heizung gelaufen ist (Fläche im Graphen)

        Kommentar


          #5
          ja das ist es schon, sorry kam wohl so im Startpost nicht rüber.
          Ich werde es mal mit einem weiteren Item probieren.

          Danke schonmal!

          Kommentar

          Lädt...
          X