Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Off Topic
    4. InfluxDB
    5. influxdb2 Watt zu Wh summieren

    NEWS

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    influxdb2 Watt zu Wh summieren

    This topic has been deleted. Only users with topic management privileges can see it.
    • D
      Dieter_P @Marc Berg last edited by Dieter_P

      @marc-berg

      Vielen Dank. Probiere das am Testsystem.

      Edit: Mmmh, auch mit dem CSV-Export stimmt die Integralrechnung über Flux bei mir überein. Erstmal positiv.

      1 Reply Last reply Reply Quote 0
      • sten-tor
        sten-tor @haus-automatisierung last edited by

        @haus-automatisierung @Marc-Berg

        Das ist kein bug, sondern ein feature glaube ich. Ich habe mir das mal genauer angeschaut und eine Erklärung gefunden:

        Die Integral-Funktion ergänzt hier erst Zwischenwerte zwischen den einzelnen Zeitstempeln durch Interpolation und führt darüber dann das Integral aus.

        Hier mal anhand Matthias' Beispiel dargestellt:

        5ce1198c-cf52-4071-adcb-d2d41534ffe8-Unbenannt-1.png

        Falls die Messung mit festen Zeitintervallen erfolgt, sind die 46,25 Wh tatsächlich korrekt errechnet, denn wir kennen ja die echten Werte zwischen Minute 0 und 4 nicht - müssen also sinnvollerweise einen Mittelwert annehmen.

        Bei Messwerterhebung durch Wertänderungs-Trigger wären die 54,16 Wh richtig. Möchte man hier integral() nutzen, müsste man zu jedem Triggerzeitpunkt zwei Werte speichern: Den Wert vor Trigger und den Wert nach Trigger - sinnvollerweise mit einem kleinen Zeitversatz.

        haus-automatisierung Marc Berg 2 Replies Last reply Reply Quote 3
        • haus-automatisierung
          haus-automatisierung Developer Most Active @sten-tor last edited by

          @sten-tor Wow, vielen Dank! So ergibt das Ganze natürlich wieder Sinn. Wenn man mit den Standard ioBroker-Adaptern arbeitet um Werte zu protokollieren, dann wird es ja etwas schwierig den vorigen Wert ebenfalls zu speichern.

          1 Reply Last reply Reply Quote 0
          • Marc Berg
            Marc Berg Most Active @sten-tor last edited by Marc Berg

            @sten-tor super, das deckt sich mit den Testreihen, die ich durchgeführt habe. Wenn ich (anders, als in Matthias' Beispiel) konstante Zeitabstände in den Testdaten habe, rechnet die integral Funktion korrekt:
            ea0d8d48-ea5c-4cd2-87f1-fdf3a96e0b52-grafik.png

            Wenn ich allerdings einen Messwert > 0 an den "Berechnungsgrenzen" einfüge (hier die 1000):
            8fcecfd7-f20e-4544-845d-8fbad7e8753c-grafik.png f6d1a699-c0c4-45be-b433-8230be2312f0-grafik.png
            wird der erste Wert IMMER nur mit 50% berücksichtigt, egal, welcher Wert folgt. Und das beißt sich aus meiner Sicht mit der Interpolations-Theorie.

            sten-tor 2 Replies Last reply Reply Quote 1
            • sten-tor
              sten-tor @Marc Berg last edited by sten-tor

              @marc-berg Probier doch mal, die Parameter unit und interpolate (https://docs.influxdata.com/flux/v0.x/stdlib/universe/integral/) zu verändern:

              • unit z.B. auf 1s und/oder
              • interpolate auf "" setzen (sollte lt. Doku eigentlich defaultmäßig sein, aber vielleicht ist das falsch implementiert)

              Bringt das was?

              Marc Berg 1 Reply Last reply Reply Quote 0
              • Marc Berg
                Marc Berg Most Active @sten-tor last edited by Marc Berg

                @sten-tor sagte in influxdb2 Watt zu Wh summieren:

                @marc-berg Probier doch mal, die Parameter unit und interpolate (https://docs.influxdata.com/flux/v0.x/stdlib/universe/integral/) zu verändern:

                • unit z.B. auf 1s und/oder
                • interpolate auf "" setzen (sollte lt. Doku eigentlich defaultmäßig sein, aber vielleicht ist das falsch implementiert)

                Bringt das was?

                Habe ich alles schon durch. Wenn ich die unit auf kleinere Werte setze, kommt immer ein Vielfaches raus. Also das Doppelte bei 60m>30m oder das Vierfache bei 60m-->15m, etc.
                Interpolate bringt bei "" das gleiche Ergebnis wie ohne Parameter, mit "linear" wilde (teils negative) Werte, die ich mir nicht herleiten kann.

                haus-automatisierung 1 Reply Last reply Reply Quote 0
                • sten-tor
                  sten-tor @Marc Berg last edited by

                  @marc-berg sagte in influxdb2 Watt zu Wh summieren:

                  wird der erste Wert IMMER nur mit 50% berücksichtigt, egal, welcher Wert folgt. Und das beißt sich aus meiner Sicht mit der Interpolations-Theorie.

                  Sicher? Wenn ich dein Beispiel mit Interpolation nachrechne, komme ich genau auf das von deiner InfluxDb angezeigte Ergebnis. Die Interpolation ist ja quasi der Mittelwert der Grenzwerte * Zeit:

                  Min 0 - 10: (1000W+500W)/2 * 1/6h = 125 Wh
                  Min 10 - 20: (500W+1500W)/2 * 1/6h = 166,67 Wh
                  Min 20 - 30: (1500+0W)/2 * 1/6h = 125 Wh

                  Summe: 416,67 Wh

                  1 Reply Last reply Reply Quote 0
                  • haus-automatisierung
                    haus-automatisierung Developer Most Active @Marc Berg last edited by

                    @marc-berg sagte in influxdb2 Watt zu Wh summieren:

                    mit "linear" wilde (teils negative) Werte

                    Ja, ist bei mir auch so. linear liefert ganz komisches Zeug. Habe ich hier noch ergänzt:

                    https://gist.github.com/klein0r/a3391b36b60eb0bb9ed344be1705ad82

                    sten-tor 1 Reply Last reply Reply Quote 0
                    • sten-tor
                      sten-tor @haus-automatisierung last edited by

                      @haus-automatisierung

                      Influx interpoliert in deinem Beispiel Werte für VOR dem ersten Messwert, weil dein Range 10 Minuten vor dem ersten Wert anfängt. Da die Steigung nach dem ersten Punkt positiv ist, wird der Wert vor dem ersten Punkt negativ:

                      7946ff84-ad10-4875-87a7-cd20431dfe16-image.png

                      Setz doch mal dein Range-Start/Stop auf den ersten bzw. letzten Timestamp der Werte - dann müsste das gleiche rauskommen.

                      haus-automatisierung 1 Reply Last reply Reply Quote 1
                      • haus-automatisierung
                        haus-automatisierung Developer Most Active @sten-tor last edited by haus-automatisierung

                        @sten-tor sagte in influxdb2 Watt zu Wh summieren:

                        Setz doch mal dein Range-Start/Stop auf den ersten bzw. letzten Timestamp der Werte

                        Okay muss ich mal testen, aber in der Praxis wähle ich ja z.B. in einem Grafana-Dashboard nie genau die Zeiträume, zu denen es auch Daten gibt.

                        EDIT: Du hast Recht, dann sind es wieder 46,25 Wh. Also identisch zum "leeren" Parameter.

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        850
                        Online

                        31.6k
                        Users

                        79.4k
                        Topics

                        1.3m
                        Posts

                        5
                        35
                        2450
                        Loading More Posts
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes
                        Reply
                        • Reply as topic
                        Log in to reply
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                        The ioBroker Community 2014-2023
                        logo