Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Off Topic
  4. Grafana - InfluxDB 2 - Tageswert wird Folgetag zugeordnet

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    3.3k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

Grafana - InfluxDB 2 - Tageswert wird Folgetag zugeordnet

Scheduled Pinned Locked Moved Off Topic
grafana iinflux2dbkostal plenticore
26 Posts 10 Posters 5.6k Views 10 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C CoComp

    @bloop said in Grafana - InfluxDB 2 - Tageswert wird Folgetag zugeordnet:

    aggregateWindow(every: 1, offset:-1s, fn: max, createEmpty: false)

    Danke, die Richtung stimmte. Ich habe damit für die "Anzeige" in dem Zug auch mal das Delta zu UTC rausgenommen.

    aggregateWindow(every: 1d, offset:-121m, fn: max, createEmpty: false)
    

    und nun sieht es so aus und passt.
    b7c67e6b-e827-48b0-a464-7cd31f91fe0e-image.png

    S Offline
    S Offline
    SpacerX
    wrote on last edited by
    #13

    @cocomp das utc korrigiert man idealer Weise so.

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

    DS720|Nuc8i3BEH|Proxmox|RaspberryMatic|ioBroker|influxDB2|Grafana

    1 Reply Last reply
    2
    • A Offline
      A Offline
      AndreasK
      wrote on last edited by
      #14

      Hallo.
      Ich muss mal den alten Thread hoch holen.
      Ich habe genau das gleiche Problem.
      Ich lasse jeden Tag um 23:59 Uhr einen Wert in die InfluxDB schreiben.
      Influx ordnet diesen Wert aber dem Folgetag zu.
      Das liegt nun an InfluxDB und deren UTC Einstellung?
      Wo und wie verändere ich das?

      Gruß
      Andreas

      ? 1 Reply Last reply
      0
      • A AndreasK

        Hallo.
        Ich muss mal den alten Thread hoch holen.
        Ich habe genau das gleiche Problem.
        Ich lasse jeden Tag um 23:59 Uhr einen Wert in die InfluxDB schreiben.
        Influx ordnet diesen Wert aber dem Folgetag zu.
        Das liegt nun an InfluxDB und deren UTC Einstellung?
        Wo und wie verändere ich das?

        Gruß
        Andreas

        ? Offline
        ? Offline
        A Former User
        wrote on last edited by
        #15

        @andreask sagte in Grafana - InfluxDB 2 - Tageswert wird Folgetag zugeordnet:

        Das liegt nun an InfluxDB und deren UTC Einstellung?
        Wo und wie verändere ich das?

        Moin,

        du must das in die Abfrage mit einfügen

        Für influxDB V. 2.x in der Abfragesprache FLUX hier ein Beispiel und Doku

        import “timezone”
        option location = timezone.location(name: “Europe/Berlin”)
        from(bucket: “stromzaehler”)
        |> range(start: today())
        |> filter(fn: (r) => r["_measurement"] == “stromzaehler”)
        

        Es soll aber auch das gehen, so deine Version von influxDB > V 2.1 ist, Beispiel und Doku

        option location = loadLocation(name:"Europe/Berlin")
        from(bucket: “stromzaehler”)
        |> range(start: today())
        |> filter(fn: (r) => r["_measurement"] == “stromzaehler”)
        

        VG
        Bernd

        A 1 Reply Last reply
        0
        • ? A Former User

          @andreask sagte in Grafana - InfluxDB 2 - Tageswert wird Folgetag zugeordnet:

          Das liegt nun an InfluxDB und deren UTC Einstellung?
          Wo und wie verändere ich das?

          Moin,

          du must das in die Abfrage mit einfügen

          Für influxDB V. 2.x in der Abfragesprache FLUX hier ein Beispiel und Doku

          import “timezone”
          option location = timezone.location(name: “Europe/Berlin”)
          from(bucket: “stromzaehler”)
          |> range(start: today())
          |> filter(fn: (r) => r["_measurement"] == “stromzaehler”)
          

          Es soll aber auch das gehen, so deine Version von influxDB > V 2.1 ist, Beispiel und Doku

          option location = loadLocation(name:"Europe/Berlin")
          from(bucket: “stromzaehler”)
          |> range(start: today())
          |> filter(fn: (r) => r["_measurement"] == “stromzaehler”)
          

          VG
          Bernd

          A Offline
          A Offline
          AndreasK
          wrote on last edited by
          #16

          @dp20eic
          Sorry, wenn ich fragen muss. Bin neu in dem Thema!
          In die Query von Grafana?
          Ich habe die InfluxDB v2.6.1 am Laufen

          ? 1 Reply Last reply
          0
          • A AndreasK

            @dp20eic
            Sorry, wenn ich fragen muss. Bin neu in dem Thema!
            In die Query von Grafana?
            Ich habe die InfluxDB v2.6.1 am Laufen

            ? Offline
            ? Offline
            A Former User
            wrote on last edited by A Former User
            #17

            @andreask sagte in Grafana - InfluxDB 2 - Tageswert wird Folgetag zugeordnet:

            @dp20eic
            Sorry, wenn ich fragen muss. Bin neu in dem Thema!
            In die Query von Grafana?
            Ich habe die InfluxDB v2.6.1 am Laufen

            Moin,
            ja,, in Grafana im Panel/Daschborad welches du anpassen musst. Die Abfragesprache ist halt influxDB - Flux, wenn dein Grafana gegen eine influxDB V 2.x gebunden ist und Du dort mit FLUX abfragst.

            VG
            Bernd

            Edit, Bild gelöscht, da es mehr verwirrt als hilft.

            1 Reply Last reply
            0
            • A Offline
              A Offline
              AndreasK
              wrote on last edited by
              #18

              Hallo.
              Aktuell sieht meine Query so aus

              import “timezone”
              
              option location = timezone.location(name: “Europe/Berlin”)
              
              from(bucket: "iobroker")
                |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                |> filter(fn: (r) => r["_measurement"] == "Täglicher Stromverbrauch")
                |> filter(fn: (r) => r["_field"] == "value")
                |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
                |> yield(name: "mean")
              

              Nun bekomme aber folgende Fehlermeldung

              invalid: compilation failed: error @1:8-1:11: expected STRING, got ILLEGAL (“) at 1:8 error @1:8-1:11: invalid string literal error @1:19-1:22: invalid statement: ” error @3:37-3:59: invalid expression @3:59-3:62: ” error @3:46-3:52: invalid expression @3:43-3:46: “
              

              Als Datenquelle habe ich IngfluxDB mit Query Language "Flux" eingerichtet

              GlasfaserG 1 Reply Last reply
              0
              • A AndreasK

                Hallo.
                Aktuell sieht meine Query so aus

                import “timezone”
                
                option location = timezone.location(name: “Europe/Berlin”)
                
                from(bucket: "iobroker")
                  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                  |> filter(fn: (r) => r["_measurement"] == "Täglicher Stromverbrauch")
                  |> filter(fn: (r) => r["_field"] == "value")
                  |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
                  |> yield(name: "mean")
                

                Nun bekomme aber folgende Fehlermeldung

                invalid: compilation failed: error @1:8-1:11: expected STRING, got ILLEGAL (“) at 1:8 error @1:8-1:11: invalid string literal error @1:19-1:22: invalid statement: ” error @3:37-3:59: invalid expression @3:59-3:62: ” error @3:46-3:52: invalid expression @3:43-3:46: “
                

                Als Datenquelle habe ich IngfluxDB mit Query Language "Flux" eingerichtet

                GlasfaserG Offline
                GlasfaserG Offline
                Glasfaser
                wrote on last edited by Glasfaser
                #19

                @andreask sagte in Grafana - InfluxDB 2 - Tageswert wird Folgetag zugeordnet:

                import “timezone”
                “Europe/Berlin”)

                die Anführungszeichen " sind falsch , liegt an deiner Tastatur !!!

                Steht auch in der Meldung :

                got ILLEGAL (“)

                Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                ? 1 Reply Last reply
                0
                • GlasfaserG Glasfaser

                  @andreask sagte in Grafana - InfluxDB 2 - Tageswert wird Folgetag zugeordnet:

                  import “timezone”
                  “Europe/Berlin”)

                  die Anführungszeichen " sind falsch , liegt an deiner Tastatur !!!

                  Steht auch in der Meldung :

                  got ILLEGAL (“)

                  ? Offline
                  ? Offline
                  A Former User
                  wrote on last edited by
                  #20

                  @glasfaser

                  Warst schneller :)

                  Neh, kann auch an dem Kopierten von mir liegen :(

                  Wollte Ihm auch gerade die Fehlermeldungen mal erklären, für die Zukunft ;)

                  VG
                  Bernd

                  GlasfaserG 1 Reply Last reply
                  0
                  • ? A Former User

                    @glasfaser

                    Warst schneller :)

                    Neh, kann auch an dem Kopierten von mir liegen :(

                    Wollte Ihm auch gerade die Fehlermeldungen mal erklären, für die Zukunft ;)

                    VG
                    Bernd

                    GlasfaserG Offline
                    GlasfaserG Offline
                    Glasfaser
                    wrote on last edited by Glasfaser
                    #21

                    @dp20eic sagte in Grafana - InfluxDB 2 - Tageswert wird Folgetag zugeordnet:

                    Neh, kann auch an dem Kopierten von mir liegen

                    Ahh ... gar nicht oben gesehn :)

                    57999da1-7cea-42ef-b835-a8bf52ac6c4a-grafik.png

                    Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                    ? 1 Reply Last reply
                    0
                    • GlasfaserG Glasfaser

                      @dp20eic sagte in Grafana - InfluxDB 2 - Tageswert wird Folgetag zugeordnet:

                      Neh, kann auch an dem Kopierten von mir liegen

                      Ahh ... gar nicht oben gesehn :)

                      57999da1-7cea-42ef-b835-a8bf52ac6c4a-grafik.png

                      ? Offline
                      ? Offline
                      A Former User
                      wrote on last edited by
                      #22

                      @glasfaser sagte in Grafana - InfluxDB 2 - Tageswert wird Folgetag zugeordnet:

                      Ahh ... gar nicht oben gesehn

                      Deswegen, wer kopiert, verliert :)

                      VG
                      Bernd

                      1 Reply Last reply
                      1
                      • A Offline
                        A Offline
                        AndreasK
                        wrote on last edited by
                        #23

                        Na toll :blush:

                        Nun habe ich es richtig hinzugefügt. Aber trotzdem wird der Wert, welcher laut iobroker am 29.01. um 23:59 Uhr (unter letzter Änderung) ins Objekt geschrieben wurde, immer noch im Balken des 30.01. angezeigt.
                        Was ist hier immer noch falsch?

                        ? 1 Reply Last reply
                        0
                        • Marc BergM Online
                          Marc BergM Online
                          Marc Berg
                          Most Active
                          wrote on last edited by Marc Berg
                          #24

                          @andreask sagte in Grafana - InfluxDB 2 - Tageswert wird Folgetag zugeordnet:

                          Na toll :blush:

                          Nun habe ich es richtig hinzugefügt. Aber trotzdem wird der Wert, welcher laut iobroker am 29.01. um 23:59 Uhr (unter letzter Änderung) ins Objekt geschrieben wurde, immer noch im Balken des 30.01. angezeigt.
                          Was ist hier immer noch falsch?

                          Mit Deiner Abfrage stellst Du nicht sicher, dass ein "aggregateWindow" auch exakt um 00:00 Uhr startet. Es könnte je nach Ausführungsstart auch um 23:50 Uhr starten und bis 00:05 Uhr gehen. Durch die Dynamik in der Abfrage (v.timeRangestart ...) ist das eher zufällig.

                          Ich habe das so gelöst, wobei ich je nach Abfragezeitraum noch fixe aggregateWindows berechne. Beachte dabei den Teil "date.truncate"!
                          Meine Abfrage bezieht sich auf einen Zählerstand, deshalb "difference", das müsstest Du für Dich anpassen.

                          import "date"
                          import "timezone"
                          option location = timezone.location(name: "Europe/Berlin")
                          v_duration = duration(v:uint(v: v.timeRangeStop) - uint(v: v.timeRangeStart))
                          v_every = if int(v:v_duration) <= int(v:2d) then 1h 
                                    else if int(v:v_duration) <= int(v:7d) then 6h
                                    else if int(v:v_duration) <= int(v:30d) then 24h
                                    else 1w
                          
                          from(bucket: "iobroker")
                            |> range(start:date.truncate(t:v.timeRangeStart, unit:v_every), stop: v.timeRangeStop)
                            |> filter(fn: (r) => r["_measurement"] == "mqtt.0.power.Elektro.ZaehlerStandE")
                            |> filter(fn: (r) => r["_field"] == "value")
                            |> difference()
                            |> aggregateWindow(every: v_every,fn:sum,timeSrc: "_start",createEmpty:false)
                          

                          Kann sein, dass es irgendwie auch einfacher geht. Eine bessere Lösung habe ich aber bisher nicht gefunden.

                          Edit: timeSrc: "_start" nicht vergessen! (letzte Zeile)

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

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

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

                          1 Reply Last reply
                          0
                          • A AndreasK

                            Na toll :blush:

                            Nun habe ich es richtig hinzugefügt. Aber trotzdem wird der Wert, welcher laut iobroker am 29.01. um 23:59 Uhr (unter letzter Änderung) ins Objekt geschrieben wurde, immer noch im Balken des 30.01. angezeigt.
                            Was ist hier immer noch falsch?

                            ? Offline
                            ? Offline
                            A Former User
                            wrote on last edited by
                            #25

                            @andreask @Marc-Berg

                            Bin mir nicht sicher, ob das passt, habe keine passenden Daten.

                              |> range(start: today())
                              |> aggregateWindow(every: 1h, fn: mean, createEmpty: false)
                            

                            VG
                            Bernd

                            1 Reply Last reply
                            0
                            • OstfrieseUnterwegsO Offline
                              OstfrieseUnterwegsO Offline
                              OstfrieseUnterwegs
                              wrote on last edited by
                              #26

                              Hier ist meine Lösung zu einem ähnlichen Problem. Sourceanalytix schreibt den Tagesverbrauch immer 00:01 am nächsten Tag. Ich hab also in Grafana ein Shift eingebaut. Unique brauche ich, weil SA bei Neustart des Adapters den Wert erneut schreibt.

                              from(bucket: "iobroker")
                                |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                                |> filter(fn: (r) => r["_measurement"] == "multimedia-power-consumed")
                                |> filter(fn: (r) => r["_field"] == "value")
                                |> timeShift(duration: -24h)
                                |> aggregateWindow(every: v.windowPeriod, fn: unique, createEmpty: false)
                                |> unique()
                                |> fill(column: "value", usePrevious: true)
                               
                              
                              1 Reply Last reply
                              0
                              Reply
                              • Reply as topic
                              Log in to reply
                              • Oldest to Newest
                              • Newest to Oldest
                              • Most Votes


                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              594

                              Online

                              32.7k

                              Users

                              82.3k

                              Topics

                              1.3m

                              Posts
                              Community
                              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                              ioBroker Community 2014-2025
                              logo
                              • Login

                              • Don't have an account? Register

                              • Login or register to search.
                              • First post
                                Last post
                              0
                              • Home
                              • Recent
                              • Tags
                              • Unread 0
                              • Categories
                              • Unreplied
                              • Popular
                              • GitHub
                              • Docu
                              • Hilfe