Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Off Topic
    4. Grafana
    5. Grafana Werte zur gleichen Zeit

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    Grafana Werte zur gleichen Zeit

    This topic has been deleted. Only users with topic management privileges can see it.
    • Endurance
      Endurance last edited by Endurance

      Hallo zusammen,

      Ich lasse mir die Erzeugung meiner PV Wechselrichter (habe 2 Stk), pro Tag in Grafana anzeigen. Hin und wieder kommt es vor, dass die Werte nicht zur gleichen Zeit geschrieben werden, und Grafana sie desswegen nicht in einem Balken anzeigt.

      So sollte es aussehen:
      bb9e999e-d422-4b91-a535-4d1b76905c1d-image.png

      Wenn die Werte nicht zur gleichen Zeit geschrieben werden, zeig Grafana es dann so an:
      459f919c-3e29-4f10-91e7-4b6574ce5652-image.png

      17b2f146-b5c8-4a76-8c44-b20e7f79612f-image.png

      059b1f54-930e-4542-8a73-3cd86ba632b0-image.png

      Mein Workaround: via Putty den Wert manuell löschen, und via Influx Webinterface den Wert neu schreiben....

      Habt ihr eine Idee, wie ich das Lösen kann? Entweder ioBroker dazu zwingen, die Werte zur gleichen Zeit zu schreiben, oder Grafana den minimalen Zeitunterscheid zu Ignorieren.

      Marc Berg MartinP 2 Replies Last reply Reply Quote 0
      • Marc Berg
        Marc Berg Most Active @Endurance last edited by

        @endurance

        Welche InfluxDB-Query liegt der Grafana Anzeige zugrunde?

        Endurance 1 Reply Last reply Reply Quote 0
        • MartinP
          MartinP @Endurance last edited by

          @endurance Wenn die Werte nicht synchron in die Grafana Datenbank geschrieben werden, sondern vom iobroker weggeschrieben werden, wie sie anfallen, passiert das.
          Du must wahrscheinlich dafür sorgen, dass das Zeug "getaktet" von iobroker geschrieben wird ... Das wird nicht gut mit dem influx-Adapter gehen ... da muss man wahrscheinlich Javascript bemühen, und ggfs auch noch interpolieren zumindest bei Werten, die deutlich seltener einlaufen, als andere ...

          1 Reply Last reply Reply Quote 0
          • Endurance
            Endurance @Marc Berg last edited by

            @marc-berg said in Grafana Werte zur gleichen Zeit:

            Welche InfluxDB-Query liegt der Grafana Anzeige zugrunde?

            from(bucket: "iobroker")
              |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
              |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.PV.TageszählerWR2")
              |> filter(fn: (r) => r["_field"] == "value")
            
            from(bucket: "iobroker")
              |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
              |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.PV.Tageszähler")
              |> filter(fn: (r) => r["_field"] == "value")
            
            Marc Berg 1 Reply Last reply Reply Quote 0
            • Marc Berg
              Marc Berg Most Active @Endurance last edited by Marc Berg

              @endurance

              Da fehlt die

              aggregateWindow (...)
              

              Zeile. Damit kannst du die Datensätze auf die exakt gleiche Zeit "zwingen".

              Endurance 1 Reply Last reply Reply Quote 0
              • Endurance
                Endurance @Marc Berg last edited by

                @marc-berg
                Danke, was gehört zwischen die Klammern?

                mickemup 1 Reply Last reply Reply Quote 0
                • mickemup
                  mickemup @Endurance last edited by

                  @endurance

                  Wie oft und wann schreibst du deine Daten in Influx?

                  mit folgendem Code wird der letzte Wert vom Tag genommen, der Timestamp aber auf Beginn des Tages gelegt.

                  |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start")
                  

                  Passt das so?

                  Endurance 1 Reply Last reply Reply Quote 0
                  • Endurance
                    Endurance @mickemup last edited by

                    @mickemup said in Grafana Werte zur gleichen Zeit:

                    folgendem Code wird der letzte Wert vom Tag genommen, der Timestamp aber auf Beginn des Tages gelegt.

                    nicht wirklich, geschrieben werden die Daten immer um 02:00 Nachts, vom Vortag.

                    9b476707-4c0f-44b8-8243-66d939eb78c5-image.png

                    aa529311-b3f3-4cd0-a286-6383e87c7cfd-image.png

                    mickemup 1 Reply Last reply Reply Quote 0
                    • mickemup
                      mickemup @Endurance last edited by

                      @endurance

                      Pack mal dies ganz oben in deinen query:

                      import "date"
                      import "timezone"
                      option location = timezone.location(name: "Europe/Madrid")
                      

                      und wende das

                      |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start")
                      

                      mal auf beide queries an

                      Endurance 1 Reply Last reply Reply Quote 0
                      • Endurance
                        Endurance @mickemup last edited by

                        @mickemup hm, leider immer noch nicht ganz

                        288a4e46-fd55-4513-9a81-eeb8c798494b-image.png

                        a7a1565d-5439-48e5-9739-009f03e4af7b-image.png

                        mickemup 1 Reply Last reply Reply Quote 0
                        • mickemup
                          mickemup @Endurance last edited by mickemup

                          @endurance
                          Kannst du mal im bearbeiten Modus auf Table view gehen?

                          3a9c335a-eec2-4124-9ecc-a610ccd8a5a6-image.png

                          Dies am besten von beiden queries..
                          Wenn die identisch sind, liegts nicht mehr am query sondern an anderen Darstellungsettings

                          also Idee schonmal, probiere

                          |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start", createEmpty: false)
                          
                          Endurance 1 Reply Last reply Reply Quote 0
                          • P
                            peterfido last edited by peterfido

                            @endurance

                            Hast Du schon probiert beide Werte in einem Rutsch abzufragen?

                            from(bucket: "iobroker")
                            |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                            |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.PV.Tageszähler" or r["_measurement"] == "0_userdata.0.PV.TageszählerWR2")
                            |> filter(fn: (r) => r["_field"] == "value")
                            |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start", createEmpty: false)
                            |> yield(name: "last")
                            

                            Strom und Spannung werden etwas versetzt gespeichert, jedoch beide Werte gestapelt (macht keinen Sinn, ist nur ein Test für hier)
                            64136fe7-a502-4200-8f2d-0f64e343d6ff-image.png

                            Die Abfrage für das Beispielbild:

                            from(bucket: "iobroker")
                              |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                              |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Zaehler.Strom.EVU.ist.U1" or r["_measurement"] == "0_userdata.0.Zaehler.Strom.EVU.ist.I1" )
                              |> filter(fn: (r) => r["_field"] == "value")
                              |> aggregateWindow(every: 10s, fn: mean, createEmpty: false)
                              |> yield(name: "last")
                            
                            mickemup 1 Reply Last reply Reply Quote 0
                            • mickemup
                              mickemup @peterfido last edited by

                              @peterfido
                              Sollte ja keinen Unterschied machen ob in einem oder zwei Queries oder?
                              Ich denke, dass createEmpty könnte der Schlüssel zum Erfolg sein.
                              Ist halt ein wenig schwierig zu supporten, wenn man so wenig Infos hat (wie oft wird geloggt usw.)
                              Zumal ganz am Anfang Bilder von täglichen Logs aufgelistet sind, nachher aber scheinbar DPs angezeigt werden sollen, die nur allle Wochen geloggt werden...

                              1 Reply Last reply Reply Quote 0
                              • Endurance
                                Endurance @mickemup last edited by Endurance

                                @mickemup

                                8b777640-5b13-4806-95e6-e9ded1ba91a8-image.png

                                26c84938-2841-43cb-9ae2-59db1bd97e8c-image.png

                                Bis auf Sekunden sind sie gleich, aber ms nicht. Sieht man nur, wenn man die Daten via Query inypector aufruft:

                                b555fbbf-0d1d-4075-a374-23806b7a38f6-image.png

                                f13adc99-f137-408a-93c6-f2de38104554-image.png

                                mit den neuen Settings sieht es schon ganz gut aus, nur was passiert beim ersten Balken?

                                9ab388d8-9689-4604-a271-590cfec61ab5-image.png

                                allerdings sind die Balken in meinem ersten Screenshot noch breiter...

                                W mickemup 2 Replies Last reply Reply Quote 0
                                • W
                                  wolfi913 @Endurance last edited by

                                  @endurance sagte in Grafana Werte zur gleichen Zeit:

                                  mit den neuen Settings sieht es schon ganz gut aus, nur was passiert beim ersten Balken?

                                  Wird vermutlich nur der Teil des Tages dargestellt der aktuell für den heutigen Tag noch bis Tagesende verbleibt.
                                  Versuch's mal bei Relative Time mit 6w/d.
                                  Damit sollte er auf den Tagesanfang zurückspringen.

                                  1 Reply Last reply Reply Quote 0
                                  • BananaJoe
                                    BananaJoe Most Active last edited by

                                    Mal pauschal als Lösung bei solchen Problemen "Werte werden nicht zur gleichen Zeit geschrieben".
                                    Wenn man das über ein Skript macht, kann man beim schreiben auch einen Zeitstempel mitgeben.

                                    Siehe https://github.com/ioBroker/ioBroker.influxdb und dann unten bei storeState

                                    Das bedeutet, man kann um 18:01:36 Uhr einen Wert mit dem Zeitstempel 17:53:00 schreiben, wenn es sein muss auch mit Millisekunden. Die Zeit muss halt in einen ts: xxxxxxx umgerechnet werden, das sind die Millisekunden seit dem 1.1.1970.

                                    Ich schreibe so z.B. meine Solarprognose für den Tag bei erhalt zu den passenden Zeiten (allerdings mit dem SQL-Adapter und MySQL/MariaDB).

                                    Hier bräuchte man halt eine Skript was die beiden Quelldatenpunkte überwacht und die Werte dann mit identischen Zeitstempeln in 2 Zieldatenpunkte (bei dem die Aufzeichnung per Influx aktiviert ist) schreibt.

                                    Alternativ könnte das Skript die vorhandenen Datenpunkte für einen Zeitraum abfragen, die falschen löschen und mit korrigierten Zeitstempeln neu schreiben.

                                    1 Reply Last reply Reply Quote 0
                                    • mickemup
                                      mickemup @Endurance last edited by

                                      @endurance Sehr schön....
                                      Ist das in etwas so, wie du es haben willst?
                                      Balkenbreite kann man sicher noch was in den Einstellungen rausholen, ist aber nur noch feintuning 🙂

                                      Pack mal an den Beginn der Queries noch nach hin:

                                      import "date"
                                      import "timezone"
                                      option location = timezone.location(name: "Europe/Madrid")
                                      

                                      Sonst sind die Daten verschoben (in deinem Fall 2h) und nicht am korrekten Tag abgebildet...

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

                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      910
                                      Online

                                      31.6k
                                      Users

                                      79.5k
                                      Topics

                                      1.3m
                                      Posts

                                      7
                                      17
                                      582
                                      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