Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Off Topic
  4. Grafana
  5. Grafana Werte zur gleichen Zeit

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.9k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.3k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.5k

Grafana Werte zur gleichen Zeit

Geplant Angeheftet Gesperrt Verschoben Grafana
17 Beiträge 7 Kommentatoren 1.1k Aufrufe 6 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • EnduranceE 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 BergM Offline
    Marc BergM Offline
    Marc Berg
    Most Active
    schrieb am zuletzt editiert von
    #2

    @endurance

    Welche InfluxDB-Query liegt der Grafana Anzeige zugrunde?

    NUC10I3+Ubuntu+Docker+ioBroker+influxDB2+Node Red+RabbitMQ+Grafana

    Pi-hole, Traefik, Checkmk, Conbee II+Zigbee2MQTT, ESPSomfy-RTS, LoRaWAN, Arduino, KiCad

    Benutzt das Voting im Beitrag, wenn er euch geholfen hat.

    EnduranceE 1 Antwort Letzte Antwort
    0
    • EnduranceE 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.

      MartinPM Online
      MartinPM Online
      MartinP
      schrieb am zuletzt editiert von
      #3

      @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 ...

      Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
      Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
      Linux pve 6.8.12-16-pve
      6 GByte RAM für den Container
      Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
      Remote-Access über Wireguard der Fritzbox

      1 Antwort Letzte Antwort
      0
      • Marc BergM Marc Berg

        @endurance

        Welche InfluxDB-Query liegt der Grafana Anzeige zugrunde?

        EnduranceE Offline
        EnduranceE Offline
        Endurance
        schrieb am zuletzt editiert von
        #4

        @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 BergM 1 Antwort Letzte Antwort
        0
        • EnduranceE Endurance

          @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 BergM Offline
          Marc BergM Offline
          Marc Berg
          Most Active
          schrieb am zuletzt editiert von Marc Berg
          #5

          @endurance

          Da fehlt die

          aggregateWindow (...)
          

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

          NUC10I3+Ubuntu+Docker+ioBroker+influxDB2+Node Red+RabbitMQ+Grafana

          Pi-hole, Traefik, Checkmk, Conbee II+Zigbee2MQTT, ESPSomfy-RTS, LoRaWAN, Arduino, KiCad

          Benutzt das Voting im Beitrag, wenn er euch geholfen hat.

          EnduranceE 1 Antwort Letzte Antwort
          0
          • Marc BergM Marc Berg

            @endurance

            Da fehlt die

            aggregateWindow (...)
            

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

            EnduranceE Offline
            EnduranceE Offline
            Endurance
            schrieb am zuletzt editiert von
            #6

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

            mickemupM 1 Antwort Letzte Antwort
            0
            • EnduranceE Endurance

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

              mickemupM Offline
              mickemupM Offline
              mickemup
              schrieb am zuletzt editiert von
              #7

              @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?

              EnduranceE 1 Antwort Letzte Antwort
              0
              • mickemupM mickemup

                @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?

                EnduranceE Offline
                EnduranceE Offline
                Endurance
                schrieb am zuletzt editiert von
                #8

                @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

                mickemupM 1 Antwort Letzte Antwort
                0
                • EnduranceE Endurance

                  @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

                  mickemupM Offline
                  mickemupM Offline
                  mickemup
                  schrieb am zuletzt editiert von
                  #9

                  @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

                  EnduranceE 1 Antwort Letzte Antwort
                  0
                  • mickemupM mickemup

                    @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

                    EnduranceE Offline
                    EnduranceE Offline
                    Endurance
                    schrieb am zuletzt editiert von
                    #10

                    @mickemup hm, leider immer noch nicht ganz

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

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

                    mickemupM 1 Antwort Letzte Antwort
                    0
                    • EnduranceE Endurance

                      @mickemup hm, leider immer noch nicht ganz

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

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

                      mickemupM Offline
                      mickemupM Offline
                      mickemup
                      schrieb am zuletzt editiert von mickemup
                      #11

                      @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)
                      
                      EnduranceE 1 Antwort Letzte Antwort
                      0
                      • P Offline
                        P Offline
                        peterfido
                        schrieb am zuletzt editiert von peterfido
                        #12

                        @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")
                        

                        Gruß

                        Peterfido


                        Proxmox auf Intel NUC12WSHi5
                        ioBroker: Debian (VM)
                        CCU: Debmatic (VM)
                        Influx: Debian (VM)
                        Grafana: Debian (VM)
                        eBus: Debian (VM)
                        Zigbee: Debian (VM) mit zigbee2mqtt

                        mickemupM 1 Antwort Letzte Antwort
                        0
                        • P 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")
                          
                          mickemupM Offline
                          mickemupM Offline
                          mickemup
                          schrieb am zuletzt editiert von
                          #13

                          @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 Antwort Letzte Antwort
                          0
                          • mickemupM 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)
                            
                            EnduranceE Offline
                            EnduranceE Offline
                            Endurance
                            schrieb am zuletzt editiert von Endurance
                            #14

                            @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 mickemupM 2 Antworten Letzte Antwort
                            0
                            • EnduranceE 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 Online
                              W Online
                              wolfi913
                              schrieb am zuletzt editiert von
                              #15

                              @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 Antwort Letzte Antwort
                              0
                              • BananaJoeB Offline
                                BananaJoeB Offline
                                BananaJoe
                                Most Active
                                schrieb am zuletzt editiert von
                                #16

                                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.

                                ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

                                1 Antwort Letzte Antwort
                                0
                                • EnduranceE 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...

                                  mickemupM Offline
                                  mickemupM Offline
                                  mickemup
                                  schrieb am zuletzt editiert von
                                  #17

                                  @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 Antwort Letzte Antwort
                                  0
                                  Antworten
                                  • In einem neuen Thema antworten
                                  Anmelden zum Antworten
                                  • Älteste zuerst
                                  • Neuste zuerst
                                  • Meiste Stimmen


                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  562

                                  Online

                                  32.5k

                                  Benutzer

                                  81.6k

                                  Themen

                                  1.3m

                                  Beiträge
                                  Community
                                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                  ioBroker Community 2014-2025
                                  logo
                                  • Anmelden

                                  • Du hast noch kein Konto? Registrieren

                                  • Anmelden oder registrieren, um zu suchen
                                  • Erster Beitrag
                                    Letzter Beitrag
                                  0
                                  • Home
                                  • Aktuell
                                  • Tags
                                  • Ungelesen 0
                                  • Kategorien
                                  • Unreplied
                                  • Beliebt
                                  • GitHub
                                  • Docu
                                  • Hilfe