Ankündigung

Einklappen
Keine Ankündigung bisher.

binären Messwert aus Datenbank abfragen - seltsames Verhalten der Intervalle?

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

    binären Messwert aus Datenbank abfragen - seltsames Verhalten der Intervalle?

    Hi!

    Ich habe den Betrieb meiner Heizungspumpe mitgeloggt. Datentyp ist sinnigerweise "bool". Natürlich ändert sich das Item nur, wenn die Pumpe eingeschaltet/ausgeschaltet wird, bei mir also abhängig von der Anwesenheit höchstens einmal alle 2h für 8 Minuten.

    Idealerweise würde ich mir nun einen (smartVISU) Plot wünschen, der "sekundengenau" dies nachvollzieht.

    _____|-|_____|-|_____

    Bei "avg" bekomme ich natürlich was unsinniges mit Zwischenwerten - wobei man das evtl. ja abhängig vom Datentyp verhindern können?

    Bei "max" allerdings bekomme ich

    _____|----------------

    wenn ich die smartVISU neu lade bzw.

    _____|----|__|----------------

    wenn sie per "update" während das Visu-Fenster offen war aktualisiert wurde. Also irgendwie seltsam?

    Bei Bedarf stelle ich gerne die ganzen Configs ein, allerdings wüsste ich gerne ob es überhaupt ein Fehler oder nur ein Denkfehler meinerseits ist. smartVISU und sh.py sind aktuell (trunk bzw. develop).

    Kurz: "type = bool, alle 2h für 8min an" ergibt seltsames Verhalten im Plot.

    Vielleicht sollte für bool-Typen eine Sonderlocke gemacht werden. Auch ein "avg" macht hier keinen Sinn. Man stelle sich den Durchschnittswert eines geöffneten Fensters in 3 Jahren vor...

    Grüße
    Robert

    #2
    Hi Robert,

    momentan werden die Werte aus der sqlite Datenbank aggregiert an die SV geschickt.
    Die SV fragt beim Backend einen Zeitabschnitt an und bekommt max 100 Zeitscheiben. Dadurch geht die Auflösung nach unten.
    Bei großen Zeitabschnitten ist das sinnvoll. Bei kleinen geht die Genauigkeit nach unten. Weiterhin könnte man dadurch auch einfacher zoomable Plots machen, da alle Werte für den angeforderten Bereich übertragen werden.

    [Grübel]vllt sollte man das einfach rausnehmen?[/Grübel]

    Bis bald

    Marcus

    Kommentar


      #3
      Hi Marcus,

      ich habe es vielleicht noch nicht ganz erfasst:

      - 100 Zeitscheiben: äquidistant? Oder mit unterschiedlichen Intervallen?
      - bei einem Tag Gesamtinterval: wenn äquidistant: 3600min/d / 100 Zeitscheiben = 36min/Zeitscheibe? Warum kriege ich dann bei o.g. Zeitverhalten nicht wenigstens 2 Einträge die "0" sind zwischen den "1"ern?

      Wenn ich ehrlich bin, ohne jetzt Anspruch auf Schlüssigkeit:
      - Zeitbereich wird angefordert:
      -- bei <= 100 Einträgen im Zeitraum oder Bool: alle Daten mit exakten Zeitstempel
      -- bei >100 Einträgen: Aggregation, entweder äquidistant (finde ich schlechter), oder evtl. was raffinierteres wie: wenn ein Punkt sich mit einem quadratischen Fehler von x zwischen zwei Punkten interpolieren lässt, diesen entfallen lassen.

      Beispiel: Ein Sägezahn mit hundert Abfolgen [ 0 1 2 3 4 5] (also 600 Werten im Interval) könnte so zu [ 0:0 5:5 6:0 11:5 .... 90:0 96:5] komprimiert werden. Das ginge z.B. auch ganz gut für irgendwelche Temperaturwerte, so häufig Werte eng aufeinander folgen, aber dann auch halt mal ein dicker Sprung kommt (bei Warmwasser oder so).

      Ziemlich sicher gibts dafür auch nen fancy Algo...

      Hoffe das war nicht zu verwirrend - ansonsten einfach diskutieren. *g*

      Grüße
      Robert

      Kommentar


        #4
        Hallo Robert,

        ja die Scheiben sind äquidistant.

        Aus Deiner ASCII-Art jetzt das Verhalten zu bewerten ist schwer bis unmöglich. Ich denke ich kann es nachvollziehen. Es ist allerdings schwer das zu erklären.

        Wahrscheinlich muss ich da noch ein bisschen (Denk-) Arbeit investieren.

        Bis bald

        Marcus

        Kommentar


          #5
          Hi Markus,

          die Sache wird (noch?) seltsamer. Im Anhang ist zu erkennen, dass die ersten zwei Auslösungen der Pumpe irgendwie falsch berechnet werden. Interessant ist, dass die von gestern Abend und heute Morgen korrekt sind - sogar mit den korrekten Zeiten. Einziger Unterschied: In den ersten beiden Intervallen habe ich evtl. mal smarthome.py neu gestartet und dann dabei per knx_cache die Werte abgefragt, so dass es zu 10010001 gekommen sein könnte statt zu einem regelmäßigen Wechsel (101010101).

          Ich denke eine Vereinfachung des Algorithmus wäre hier sinnvoll.

          Grüße
          Robert
          Angehängte Dateien

          Kommentar


            #6
            Hi Markus,

            bist du schon zu einem Ergebnis gekommen? Die Plots sind leider auch im "eingeschwungenen" Zustand nach mehreren Tagen (= mehreren Intervallen in meinem Fall) nicht "ok", sondern werden scheinbar zufällig gemittelt. Mal ist die "Aktivität" sauber mit 8min Dauer zu sehen, mal wird über 2h gemittelt, mal sogar über 4h.

            Woanders wird gerade nach plot.rtr gefragt - da wird der Kollege auch bald dieses Problem feststellen sofern er smarthome.py einsetzt. Können wir das irgendwie lösen?

            Grüße
            Robert

            Kommentar

            Lädt...
            X