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. Vergleichskurve in Grafana mit influx Daten

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    524

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

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

Vergleichskurve in Grafana mit influx Daten

Scheduled Pinned Locked Moved Off Topic
29 Posts 4 Posters 2.3k Views 6 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.
  • S stenmic

    Hallo,
    ist es möglich in einem Grafana Diagramm sich den aktuellen Wert und den Wert z.B. vor einem Jahr gleichzeitig anzeigen zu lassen.
    Beispiel:
    Ich hab ein Diagramm in dem ich mir den Temperaturverlauf vom aktuellen Jahr anzeigen lasse.
    Gleichzeitig hätte ich gerne die Kurve vom Vorjahr.

    B Offline
    B Offline
    bommel_030
    wrote on last edited by
    #2

    @stenmic
    Meinst du sowas in der Art? Ist halt nen Bar-Chart und nur aktuelle und letzte Woche verglichen.
    Die Abfragen musste halt auf deinen Zeitrahmen anpassen.
    284bda52-a6c2-4a46-8b1f-9fc840442e7d-image.png

    import "timezone"
    option location = timezone.location(name: "Europe/Berlin")
    from(bucket: "iobroker_never")
     |> range(start: -7d, stop: now())
     |> filter(fn: (r) => r["_measurement"] == "Hausmeter")
     |> filter(fn: (r) => r["_field"] == "value")
     |> set(key: "_field", value: "aktuelle Woche")
     |> drop(columns:["from","ack", "q"])
     |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start", createEmpty: false)
     |> difference()
    


    import "timezone" 
    option location = timezone.location(name: "Europe/Berlin")
    from(bucket: "iobroker_never")
     |> range(start: -14d, stop: -7d)
     |> timeShift(duration: 7d)
     |> filter(fn: (r) => r["_measurement"] == "Hausmeter")
     |> filter(fn: (r) => r["_field"] == "value")
     |> set(key: "_field", value: "letzte Woche")
     |> drop(columns:["from","ack", "q"])
     |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start", createEmpty: false)
     |> difference()
    

    maximal1981M 1 Reply Last reply
    0
    • B bommel_030

      @stenmic
      Meinst du sowas in der Art? Ist halt nen Bar-Chart und nur aktuelle und letzte Woche verglichen.
      Die Abfragen musste halt auf deinen Zeitrahmen anpassen.
      284bda52-a6c2-4a46-8b1f-9fc840442e7d-image.png

      import "timezone"
      option location = timezone.location(name: "Europe/Berlin")
      from(bucket: "iobroker_never")
       |> range(start: -7d, stop: now())
       |> filter(fn: (r) => r["_measurement"] == "Hausmeter")
       |> filter(fn: (r) => r["_field"] == "value")
       |> set(key: "_field", value: "aktuelle Woche")
       |> drop(columns:["from","ack", "q"])
       |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start", createEmpty: false)
       |> difference()
      


      import "timezone" 
      option location = timezone.location(name: "Europe/Berlin")
      from(bucket: "iobroker_never")
       |> range(start: -14d, stop: -7d)
       |> timeShift(duration: 7d)
       |> filter(fn: (r) => r["_measurement"] == "Hausmeter")
       |> filter(fn: (r) => r["_field"] == "value")
       |> set(key: "_field", value: "letzte Woche")
       |> drop(columns:["from","ack", "q"])
       |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start", createEmpty: false)
       |> difference()
      

      maximal1981M Offline
      maximal1981M Offline
      maximal1981
      wrote on last edited by
      #3

      @bommel_030
      ich hab das versucht, bei mir ist da nicht wirklich was rausgekommen.

      erst hab ich einen Fehler für die timezone gekommen, und dann nur eine Bar mit dem aktuellen Tag, die anderen 13 waren nicht zu sehen :woman-shrugging:

      ? 1 Reply Last reply
      0
      • maximal1981M maximal1981

        @bommel_030
        ich hab das versucht, bei mir ist da nicht wirklich was rausgekommen.

        erst hab ich einen Fehler für die timezone gekommen, und dann nur eine Bar mit dem aktuellen Tag, die anderen 13 waren nicht zu sehen :woman-shrugging:

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

        @maximal1981 sagte in Vergleichskurve in Grafana mit influx Daten:

        @bommel_030
        ich hab das versucht, bei mir ist da nicht wirklich was rausgekommen.

        erst hab ich einen Fehler für die timezone gekommen, und dann nur eine Bar mit dem aktuellen Tag, die anderen 13 waren nicht zu sehen :woman-shrugging:

        Moin,

        Du musst uns schon etwas zeigen, nicht nur schreiben, es geht nicht ;)

        VG
        Bernd

        maximal1981M 1 Reply Last reply
        0
        • ? A Former User

          @maximal1981 sagte in Vergleichskurve in Grafana mit influx Daten:

          @bommel_030
          ich hab das versucht, bei mir ist da nicht wirklich was rausgekommen.

          erst hab ich einen Fehler für die timezone gekommen, und dann nur eine Bar mit dem aktuellen Tag, die anderen 13 waren nicht zu sehen :woman-shrugging:

          Moin,

          Du musst uns schon etwas zeigen, nicht nur schreiben, es geht nicht ;)

          VG
          Bernd

          maximal1981M Offline
          maximal1981M Offline
          maximal1981
          wrote on last edited by
          #5

          @dp20eic
          nein, mag ich nicht zeigen.
          War schon spät und hatte keine Lust mehr, und wollte nur noch meinen Frust los werden.


          Unbenannt.PNG
          Unbenannt2.PNG
          Unbenannt3.PNG

          Daten sind aber vorhanden. Liegt sicher an mir :blush:
          Unbenannt4.PNG

          ? 1 Reply Last reply
          0
          • maximal1981M maximal1981

            @dp20eic
            nein, mag ich nicht zeigen.
            War schon spät und hatte keine Lust mehr, und wollte nur noch meinen Frust los werden.


            Unbenannt.PNG
            Unbenannt2.PNG
            Unbenannt3.PNG

            Daten sind aber vorhanden. Liegt sicher an mir :blush:
            Unbenannt4.PNG

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

            @maximal1981

            Moin,

            von Text bitte keine Bilder, sondern hier in Code Tags </> rein, denn ich tippe mir das nicht aus Bildern ab.

            Dann noch die Informationen, über deine Installation, wäre auch schön zu wissen.

            VG
            Bernd

            maximal1981M 1 Reply Last reply
            0
            • ? A Former User

              @maximal1981

              Moin,

              von Text bitte keine Bilder, sondern hier in Code Tags </> rein, denn ich tippe mir das nicht aus Bildern ab.

              Dann noch die Informationen, über deine Installation, wäre auch schön zu wissen.

              VG
              Bernd

              maximal1981M Offline
              maximal1981M Offline
              maximal1981
              wrote on last edited by
              #7

              @dp20eic
              dann nochmal^^
              dachte man sieht den Fehler gleich

              läuft aktuell noch auf Windows am selben Client
              InfluxDB v2.5.1 (language Flux)
              grafana v9.2.5 (2022-11-16)

              sollte was fehlen ergänze ich es gerne

              from(bucket: "iobroker")
              |> range(start: -7d, stop: now())
              |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Solarweb.Current.01_Day.Energy.EnergyProductionTotal")
              |> filter(fn: (r) => r["_field"] == "value")
              |> set(key: "_field", value: "aktuelle Woche")
              |> drop(columns:["from","ack", "q"])
              |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start", createEmpty: false)
              |> difference()
              

              from(bucket: "iobroker")
              |> range(start: -14d, stop: -7d)
              |> timeShift(duration: 7d)
              |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Solarweb.Current.01_Day.Energy.EnergyProductionTotal")
              |> filter(fn: (r) => r["_field"] == "value")
              |> set(key: "_field", value: "letzte Woche")
              |> drop(columns:["from","ack", "q"])
              |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start", createEmpty: false)
              |> difference()
              

              ? 1 Reply Last reply
              0
              • maximal1981M maximal1981

                @dp20eic
                dann nochmal^^
                dachte man sieht den Fehler gleich

                läuft aktuell noch auf Windows am selben Client
                InfluxDB v2.5.1 (language Flux)
                grafana v9.2.5 (2022-11-16)

                sollte was fehlen ergänze ich es gerne

                from(bucket: "iobroker")
                |> range(start: -7d, stop: now())
                |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Solarweb.Current.01_Day.Energy.EnergyProductionTotal")
                |> filter(fn: (r) => r["_field"] == "value")
                |> set(key: "_field", value: "aktuelle Woche")
                |> drop(columns:["from","ack", "q"])
                |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start", createEmpty: false)
                |> difference()
                

                from(bucket: "iobroker")
                |> range(start: -14d, stop: -7d)
                |> timeShift(duration: 7d)
                |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Solarweb.Current.01_Day.Energy.EnergyProductionTotal")
                |> filter(fn: (r) => r["_field"] == "value")
                |> set(key: "_field", value: "letzte Woche")
                |> drop(columns:["from","ack", "q"])
                |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start", createEmpty: false)
                |> difference()
                

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

                @maximal1981

                Moin,

                wenn Windows, dann ist das ein bekannter Bug, es müssen zusätzliche Zonenfiles installiert werden und ein Environment erstellt werden.

                Timezone not working und
                error while defining timezone

                Bei Windows kann ich Dir nicht helfen, das ist nicht meine Baustelle.

                Diesen Verdacht hatte ich schon vorhin, wenn man alle Information gleich bekommt, dann kann man auch besser helfen, bzw. hätte ich bei Windows schon aufgehört zu lesen ;)

                Spaß bei Seite, im zweiten Link am Ende steht, was Du machen musst, hoffe, das hilft. Ansonsten muss Dir da jemand mit Windows Erfahrung helfen.

                VG
                Bernd

                maximal1981M 1 Reply Last reply
                0
                • ? A Former User

                  @maximal1981

                  Moin,

                  wenn Windows, dann ist das ein bekannter Bug, es müssen zusätzliche Zonenfiles installiert werden und ein Environment erstellt werden.

                  Timezone not working und
                  error while defining timezone

                  Bei Windows kann ich Dir nicht helfen, das ist nicht meine Baustelle.

                  Diesen Verdacht hatte ich schon vorhin, wenn man alle Information gleich bekommt, dann kann man auch besser helfen, bzw. hätte ich bei Windows schon aufgehört zu lesen ;)

                  Spaß bei Seite, im zweiten Link am Ende steht, was Du machen musst, hoffe, das hilft. Ansonsten muss Dir da jemand mit Windows Erfahrung helfen.

                  VG
                  Bernd

                  maximal1981M Offline
                  maximal1981M Offline
                  maximal1981
                  wrote on last edited by
                  #9

                  @dp20eic
                  mit der Timezone selbst hab ich keine Probleme, somit kann ich es im Code einfach weg lassen.

                  Jedoch bekomme ich ja trotzdem nur den aktuellen Tag angezeigt.

                  ? 2 Replies Last reply
                  0
                  • maximal1981M maximal1981

                    @dp20eic
                    mit der Timezone selbst hab ich keine Probleme, somit kann ich es im Code einfach weg lassen.

                    Jedoch bekomme ich ja trotzdem nur den aktuellen Tag angezeigt.

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

                    @maximal1981

                    Moin,

                    ach so, ich dachte, es geht Dir um die Errors.

                    Ich kenne die Datenbasis, auf die Du Dich beziehst, nicht.
                    Wenn ich heute mal etwas Zeit habe, schaue ich mir die Abfrage, an. Sie sieht mir aber erst einmal oK aus.

                    VG
                    Bernd

                    1 Reply Last reply
                    0
                    • maximal1981M maximal1981

                      @dp20eic
                      mit der Timezone selbst hab ich keine Probleme, somit kann ich es im Code einfach weg lassen.

                      Jedoch bekomme ich ja trotzdem nur den aktuellen Tag angezeigt.

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

                      @maximal1981 sagte in Vergleichskurve in Grafana mit influx Daten:

                      Jedoch bekomme ich ja trotzdem nur den aktuellen Tag angezeigt.

                      Moin,

                      ich habe das mal auf ähnliche Daten angewendet, Stromverbrauch total. Ich habe nur wegen UTC Zeit, die Zone-Info wieder reingenommen.
                      Bei mr funktionieren die Abfragen wie gewollt.
                      e015baca-c8d4-4399-9b44-5732c25442ed-grafik.png

                      Da scheint was mit den Daten nicht zu passen, kannst Du mal für zwei/drei Wochen einen CSV Export machen und zur Verfügung stellen, damit ich die mal in ein Test-Bucket schreibe und dann mit Deinen Daten gegenprüfen kann?

                      VG
                      Bernd

                      maximal1981M 1 Reply Last reply
                      0
                      • ? A Former User

                        @maximal1981 sagte in Vergleichskurve in Grafana mit influx Daten:

                        Jedoch bekomme ich ja trotzdem nur den aktuellen Tag angezeigt.

                        Moin,

                        ich habe das mal auf ähnliche Daten angewendet, Stromverbrauch total. Ich habe nur wegen UTC Zeit, die Zone-Info wieder reingenommen.
                        Bei mr funktionieren die Abfragen wie gewollt.
                        e015baca-c8d4-4399-9b44-5732c25442ed-grafik.png

                        Da scheint was mit den Daten nicht zu passen, kannst Du mal für zwei/drei Wochen einen CSV Export machen und zur Verfügung stellen, damit ich die mal in ein Test-Bucket schreibe und dann mit Deinen Daten gegenprüfen kann?

                        VG
                        Bernd

                        maximal1981M Offline
                        maximal1981M Offline
                        maximal1981
                        wrote on last edited by
                        #12

                        @dp20eic
                        30 Tage zum spielen^^

                        2023-03-04_22_28_influxdb_data.csv

                        ? 1 Reply Last reply
                        0
                        • maximal1981M maximal1981

                          @dp20eic
                          30 Tage zum spielen^^

                          2023-03-04_22_28_influxdb_data.csv

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

                          @maximal1981

                          Moin,

                          also nach dem Import der Daten in mein test_bucket und Einbinden in Grafana sehen die Abfragen bei mir wie folgt aus:

                          Aktuelle Woche, mit difference(nonNegative: true ...
                          438605c3-d139-4a1a-8b59-83c950ff1460-grafik.png

                          import "timezone"
                          option location = timezone.location(name: "Europe/Berlin")
                          from(bucket: "test_bucket")
                            |> range(start: -7d, stop: now())
                            |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Solarweb.Current.01_Day.Energy.EnergyProductionTotal")
                            |> filter(fn: (r) => r["_field"] == "value")
                            |> set(key: "_field", value: "aktuelle Woche")
                            //|> drop(columns:["from","ack", "q"])
                            |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start", createEmpty: false)
                            |> difference(nonNegative: true, columns: ["_value"])
                          

                          Aktuelle Woche, mit difference(nonNegative: false ...
                          bde31499-284b-478e-954b-952d11802841-grafik.png

                          import "timezone"
                          option location = timezone.location(name: "Europe/Berlin")
                          from(bucket: "test_bucket")
                            |> range(start: -7d, stop: now())
                            |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Solarweb.Current.01_Day.Energy.EnergyProductionTotal")
                            |> filter(fn: (r) => r["_field"] == "value")
                            |> set(key: "_field", value: "aktuelle Woche")
                            //|> drop(columns:["from","ack", "q"])
                            |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start", createEmpty: false)
                            |> difference(nonNegative: false, columns: ["_value"])
                          

                          Aktuelle und vergangene Woche zusammen:
                          6cb837a9-7eb1-467d-864d-ffa14fb8872d-grafik.png

                          Query A:
                          import "timezone"
                          option location = timezone.location(name: "Europe/Berlin")
                          from(bucket: "test_bucket")
                            |> range(start: -7d, stop: now())
                            |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Solarweb.Current.01_Day.Energy.EnergyProductionTotal")
                            |> filter(fn: (r) => r["_field"] == "value")
                            |> set(key: "_field", value: "aktuelle Woche")
                            |> drop(columns:["from","ack", "q"])
                            |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start", createEmpty: false)
                            |> difference(nonNegative: false, columns: ["_value"])
                          
                          Query B:
                          import "timezone"
                          option location = timezone.location(name: "Europe/Berlin")
                          from(bucket: "test_bucket")
                          |> range(start: -14d, stop: -7d)
                          |> timeShift(duration: 7d)
                          |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Solarweb.Current.01_Day.Energy.EnergyProductionTotal")
                          |> filter(fn: (r) => r["_field"] == "value")
                          |> set(key: "_field", value: "letzte Woche")
                          |> drop(columns:["from","ack", "q"])
                          |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start", createEmpty: false)
                          |> difference(nonNegative: false, columns: ["_value"])
                          

                          Also so wie ich das sehe, funktionieren die Abfragen.

                          VG
                          Bernd

                          maximal1981M 1 Reply Last reply
                          0
                          • ? A Former User

                            @maximal1981

                            Moin,

                            also nach dem Import der Daten in mein test_bucket und Einbinden in Grafana sehen die Abfragen bei mir wie folgt aus:

                            Aktuelle Woche, mit difference(nonNegative: true ...
                            438605c3-d139-4a1a-8b59-83c950ff1460-grafik.png

                            import "timezone"
                            option location = timezone.location(name: "Europe/Berlin")
                            from(bucket: "test_bucket")
                              |> range(start: -7d, stop: now())
                              |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Solarweb.Current.01_Day.Energy.EnergyProductionTotal")
                              |> filter(fn: (r) => r["_field"] == "value")
                              |> set(key: "_field", value: "aktuelle Woche")
                              //|> drop(columns:["from","ack", "q"])
                              |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start", createEmpty: false)
                              |> difference(nonNegative: true, columns: ["_value"])
                            

                            Aktuelle Woche, mit difference(nonNegative: false ...
                            bde31499-284b-478e-954b-952d11802841-grafik.png

                            import "timezone"
                            option location = timezone.location(name: "Europe/Berlin")
                            from(bucket: "test_bucket")
                              |> range(start: -7d, stop: now())
                              |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Solarweb.Current.01_Day.Energy.EnergyProductionTotal")
                              |> filter(fn: (r) => r["_field"] == "value")
                              |> set(key: "_field", value: "aktuelle Woche")
                              //|> drop(columns:["from","ack", "q"])
                              |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start", createEmpty: false)
                              |> difference(nonNegative: false, columns: ["_value"])
                            

                            Aktuelle und vergangene Woche zusammen:
                            6cb837a9-7eb1-467d-864d-ffa14fb8872d-grafik.png

                            Query A:
                            import "timezone"
                            option location = timezone.location(name: "Europe/Berlin")
                            from(bucket: "test_bucket")
                              |> range(start: -7d, stop: now())
                              |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Solarweb.Current.01_Day.Energy.EnergyProductionTotal")
                              |> filter(fn: (r) => r["_field"] == "value")
                              |> set(key: "_field", value: "aktuelle Woche")
                              |> drop(columns:["from","ack", "q"])
                              |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start", createEmpty: false)
                              |> difference(nonNegative: false, columns: ["_value"])
                            
                            Query B:
                            import "timezone"
                            option location = timezone.location(name: "Europe/Berlin")
                            from(bucket: "test_bucket")
                            |> range(start: -14d, stop: -7d)
                            |> timeShift(duration: 7d)
                            |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Solarweb.Current.01_Day.Energy.EnergyProductionTotal")
                            |> filter(fn: (r) => r["_field"] == "value")
                            |> set(key: "_field", value: "letzte Woche")
                            |> drop(columns:["from","ack", "q"])
                            |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start", createEmpty: false)
                            |> difference(nonNegative: false, columns: ["_value"])
                            

                            Also so wie ich das sehe, funktionieren die Abfragen.

                            VG
                            Bernd

                            maximal1981M Offline
                            maximal1981M Offline
                            maximal1981
                            wrote on last edited by
                            #14

                            @dp20eic
                            danke für die Mühe. Aber irgendwas stimmt nicht. so sehen die Daten in influx aus:

                            Unbenannt5.PNG

                            negative Erzeugung gibt es ja nicht und die Werte stimmen auch nicht :blush:
                            keine Ahnung was hier falsch läuft.

                            und die Meldung bekomme ich unter Teil B bzw. links oben in der Diagramm-Ecke:
                            Post "http://...:8086/api/v2/query?org=my-org": context deadline exceeded (Client.Timeout exceeded while awaiting headers)

                            ? 1 Reply Last reply
                            0
                            • maximal1981M maximal1981

                              @dp20eic
                              danke für die Mühe. Aber irgendwas stimmt nicht. so sehen die Daten in influx aus:

                              Unbenannt5.PNG

                              negative Erzeugung gibt es ja nicht und die Werte stimmen auch nicht :blush:
                              keine Ahnung was hier falsch läuft.

                              und die Meldung bekomme ich unter Teil B bzw. links oben in der Diagramm-Ecke:
                              Post "http://...:8086/api/v2/query?org=my-org": context deadline exceeded (Client.Timeout exceeded while awaiting headers)

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

                              @maximal1981 sagte in Vergleichskurve in Grafana mit influx Daten:

                              negative Erzeugung gibt es ja nicht u

                              Moin,
                              doch, nach meinem Verständnis, bekommst Du negativ Werte, da Du ja zum Vortag berechnest, sagen wir mal Du hast 10, dann am nachfolgenden 12, dann ist das +2, wenn Du dann aber am dritten Tag 8 hast, dann ist das -4.

                              Bei meinem Beispiel mit dem Stromverbrauch, der ist annähernd linear, somit immer nur +.

                              Deine Werte sehen bei mir auch so aus:
                              39b777ee-8f95-4419-864a-342e0645a131-grafik.png

                              maximal1981M 1 Reply Last reply
                              0
                              • ? A Former User

                                @maximal1981 sagte in Vergleichskurve in Grafana mit influx Daten:

                                negative Erzeugung gibt es ja nicht u

                                Moin,
                                doch, nach meinem Verständnis, bekommst Du negativ Werte, da Du ja zum Vortag berechnest, sagen wir mal Du hast 10, dann am nachfolgenden 12, dann ist das +2, wenn Du dann aber am dritten Tag 8 hast, dann ist das -4.

                                Bei meinem Beispiel mit dem Stromverbrauch, der ist annähernd linear, somit immer nur +.

                                Deine Werte sehen bei mir auch so aus:
                                39b777ee-8f95-4419-864a-342e0645a131-grafik.png

                                maximal1981M Offline
                                maximal1981M Offline
                                maximal1981
                                wrote on last edited by
                                #16

                                @dp20eic
                                ok, so wollte ich das gar nicht :joy:
                                bin das vermutlich falsch angegangen.

                                Ich wollte eine Darstellung jeden Tages mit der Gesamterzeugung ohne Differenz im vergleich zur Vorwoche (damit ich optisch die Differenz sehe) :wink:

                                Nur mal die aktuelle Woche und das macht aggregiert keinen Sinn, oder?


                                Unbenannt6.PNG
                                Unbenannt7.PNG

                                from(bucket: "iobroker")
                                  |> range(start: -7d, stop: now())
                                  |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Solarweb.Current.01_Day.Energy.EnergyProductionTotal")
                                  |> filter(fn: (r) => r["_field"] == "value")
                                  |> set(key: "_field", value: "aktuelle Woche")
                                  |> drop(columns:["from","ack", "q"])
                                  |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start", createEmpty: false)
                                

                                1 Reply Last reply
                                0
                                • ? Offline
                                  ? Offline
                                  A Former User
                                  wrote on last edited by
                                  #17

                                  @maximal1981

                                  Moin,
                                  wie ermittelst Du?
                                  SourceAnalytix Adapter?
                                  Skript?

                                  Wenn, dann brauchst Du erst einmal einen echten totalen Wert, der nur größer werden kann. Dann kannst Du auch mit der ursprünglichen Abfrage arbeiten.

                                  Ich habe mal bei Deinen Tageswerten, in die Abfrage ein cumulativeSum hinzugefügt.

                                  import "timezone"
                                  option location = timezone.location(name: "Europe/Berlin")
                                  from(bucket: "test_bucket")
                                    |> range(start: -7d, stop: now())
                                    |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Solarweb.Current.01_Day.Energy.EnergyProductionTotal")
                                    |> filter(fn: (r) => r["_field"] == "value")
                                    |> cumulativeSum(columns: ["_value"])
                                    |> set(key: "_field", value: "aktuelle Woche")
                                    |> drop(columns:["from","ack", "q"])
                                    |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start", createEmpty: false)
                                    //|> difference(nonNegative: false, columns: ["_value"])
                                  

                                  Dann sieht das für die Woche so aus:
                                  a4d5cf50-b4a5-4f58-bde6-008d92780c68-grafik.png

                                  Wenn ich dann die Vorwoche noch dazu hole, dann passt natürlich die X-Achse nicht mehr

                                  Query A:
                                  import "timezone"
                                  option location = timezone.location(name: "Europe/Berlin")
                                  from(bucket: "test_bucket")
                                    |> range(start: -7d, stop: now())
                                    |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Solarweb.Current.01_Day.Energy.EnergyProductionTotal")
                                    |> filter(fn: (r) => r["_field"] == "value")
                                    |> cumulativeSum(columns: ["_value"])
                                    |> set(key: "_field", value: "aktuelle Woche")
                                    |> drop(columns:["from","ack", "q"])
                                    |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start", createEmpty: false)
                                    //|> difference(nonNegative: false, columns: ["_value"])
                                  
                                  Query B:
                                  import "timezone"
                                  option location = timezone.location(name: "Europe/Berlin")
                                  from(bucket: "test_bucket")
                                    |> range(start: -14d, stop: -7d)
                                    |> timeShift(duration: 7d)
                                    |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Solarweb.Current.01_Day.Energy.EnergyProductionTotal")
                                    |> filter(fn: (r) => r["_field"] == "value")
                                    |> cumulativeSum(columns: ["_value"])
                                    |> set(key: "_field", value: "letzte Woche")
                                    |> drop(columns:["from","ack", "q"])
                                    |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start", createEmpty: false)
                                    //|> difference(nonNegative: false, columns: ["_value"])
                                  

                                  7ac2062c-107c-4eb9-8232-e3107978a612-grafik.png

                                  Ich schaue gerade wie ich die Zeitwerte aus Deinen Daten in Wochentag Namen ummodeln kann, dann würde man auf der X-Achse nur noch der Wochenname stehen

                                  VG
                                  Bernd

                                  maximal1981M 2 Replies Last reply
                                  0
                                  • ? A Former User

                                    @maximal1981

                                    Moin,
                                    wie ermittelst Du?
                                    SourceAnalytix Adapter?
                                    Skript?

                                    Wenn, dann brauchst Du erst einmal einen echten totalen Wert, der nur größer werden kann. Dann kannst Du auch mit der ursprünglichen Abfrage arbeiten.

                                    Ich habe mal bei Deinen Tageswerten, in die Abfrage ein cumulativeSum hinzugefügt.

                                    import "timezone"
                                    option location = timezone.location(name: "Europe/Berlin")
                                    from(bucket: "test_bucket")
                                      |> range(start: -7d, stop: now())
                                      |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Solarweb.Current.01_Day.Energy.EnergyProductionTotal")
                                      |> filter(fn: (r) => r["_field"] == "value")
                                      |> cumulativeSum(columns: ["_value"])
                                      |> set(key: "_field", value: "aktuelle Woche")
                                      |> drop(columns:["from","ack", "q"])
                                      |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start", createEmpty: false)
                                      //|> difference(nonNegative: false, columns: ["_value"])
                                    

                                    Dann sieht das für die Woche so aus:
                                    a4d5cf50-b4a5-4f58-bde6-008d92780c68-grafik.png

                                    Wenn ich dann die Vorwoche noch dazu hole, dann passt natürlich die X-Achse nicht mehr

                                    Query A:
                                    import "timezone"
                                    option location = timezone.location(name: "Europe/Berlin")
                                    from(bucket: "test_bucket")
                                      |> range(start: -7d, stop: now())
                                      |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Solarweb.Current.01_Day.Energy.EnergyProductionTotal")
                                      |> filter(fn: (r) => r["_field"] == "value")
                                      |> cumulativeSum(columns: ["_value"])
                                      |> set(key: "_field", value: "aktuelle Woche")
                                      |> drop(columns:["from","ack", "q"])
                                      |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start", createEmpty: false)
                                      //|> difference(nonNegative: false, columns: ["_value"])
                                    
                                    Query B:
                                    import "timezone"
                                    option location = timezone.location(name: "Europe/Berlin")
                                    from(bucket: "test_bucket")
                                      |> range(start: -14d, stop: -7d)
                                      |> timeShift(duration: 7d)
                                      |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Solarweb.Current.01_Day.Energy.EnergyProductionTotal")
                                      |> filter(fn: (r) => r["_field"] == "value")
                                      |> cumulativeSum(columns: ["_value"])
                                      |> set(key: "_field", value: "letzte Woche")
                                      |> drop(columns:["from","ack", "q"])
                                      |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start", createEmpty: false)
                                      //|> difference(nonNegative: false, columns: ["_value"])
                                    

                                    7ac2062c-107c-4eb9-8232-e3107978a612-grafik.png

                                    Ich schaue gerade wie ich die Zeitwerte aus Deinen Daten in Wochentag Namen ummodeln kann, dann würde man auf der X-Achse nur noch der Wochenname stehen

                                    VG
                                    Bernd

                                    maximal1981M Offline
                                    maximal1981M Offline
                                    maximal1981
                                    wrote on last edited by
                                    #18

                                    @dp20eic
                                    achso, der wird täglich auf 0 gesetzt.
                                    also muss ich mir nur einen anderen Datenpunkt holen, das war mir nicht bewusst.

                                    1 Reply Last reply
                                    0
                                    • ? A Former User

                                      @maximal1981

                                      Moin,
                                      wie ermittelst Du?
                                      SourceAnalytix Adapter?
                                      Skript?

                                      Wenn, dann brauchst Du erst einmal einen echten totalen Wert, der nur größer werden kann. Dann kannst Du auch mit der ursprünglichen Abfrage arbeiten.

                                      Ich habe mal bei Deinen Tageswerten, in die Abfrage ein cumulativeSum hinzugefügt.

                                      import "timezone"
                                      option location = timezone.location(name: "Europe/Berlin")
                                      from(bucket: "test_bucket")
                                        |> range(start: -7d, stop: now())
                                        |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Solarweb.Current.01_Day.Energy.EnergyProductionTotal")
                                        |> filter(fn: (r) => r["_field"] == "value")
                                        |> cumulativeSum(columns: ["_value"])
                                        |> set(key: "_field", value: "aktuelle Woche")
                                        |> drop(columns:["from","ack", "q"])
                                        |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start", createEmpty: false)
                                        //|> difference(nonNegative: false, columns: ["_value"])
                                      

                                      Dann sieht das für die Woche so aus:
                                      a4d5cf50-b4a5-4f58-bde6-008d92780c68-grafik.png

                                      Wenn ich dann die Vorwoche noch dazu hole, dann passt natürlich die X-Achse nicht mehr

                                      Query A:
                                      import "timezone"
                                      option location = timezone.location(name: "Europe/Berlin")
                                      from(bucket: "test_bucket")
                                        |> range(start: -7d, stop: now())
                                        |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Solarweb.Current.01_Day.Energy.EnergyProductionTotal")
                                        |> filter(fn: (r) => r["_field"] == "value")
                                        |> cumulativeSum(columns: ["_value"])
                                        |> set(key: "_field", value: "aktuelle Woche")
                                        |> drop(columns:["from","ack", "q"])
                                        |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start", createEmpty: false)
                                        //|> difference(nonNegative: false, columns: ["_value"])
                                      
                                      Query B:
                                      import "timezone"
                                      option location = timezone.location(name: "Europe/Berlin")
                                      from(bucket: "test_bucket")
                                        |> range(start: -14d, stop: -7d)
                                        |> timeShift(duration: 7d)
                                        |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Solarweb.Current.01_Day.Energy.EnergyProductionTotal")
                                        |> filter(fn: (r) => r["_field"] == "value")
                                        |> cumulativeSum(columns: ["_value"])
                                        |> set(key: "_field", value: "letzte Woche")
                                        |> drop(columns:["from","ack", "q"])
                                        |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start", createEmpty: false)
                                        //|> difference(nonNegative: false, columns: ["_value"])
                                      

                                      7ac2062c-107c-4eb9-8232-e3107978a612-grafik.png

                                      Ich schaue gerade wie ich die Zeitwerte aus Deinen Daten in Wochentag Namen ummodeln kann, dann würde man auf der X-Achse nur noch der Wochenname stehen

                                      VG
                                      Bernd

                                      maximal1981M Offline
                                      maximal1981M Offline
                                      maximal1981
                                      wrote on last edited by
                                      #19

                                      @dp20eic
                                      jetzt geht zumindest A. B mag mich jedoch trotzdem nicht.

                                      Unbenannt.PNG
                                      eine neue csv falls benötigt

                                      from(bucket: "iobroker")
                                       |> range(start: -7d, stop: now())
                                       |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Solarweb.Current.06_Year.Energy.EnergyProductionTotal")
                                       |> filter(fn: (r) => r["_field"] == "value")
                                       |> set(key: "_field", value: "aktuelle Woche")
                                       |> drop(columns:["from","ack", "q"])
                                       |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start", createEmpty: false)
                                       |> difference(nonNegative: false, columns: ["_value"])
                                      
                                      from(bucket: "iobroker")
                                      |> range(start: -14d, stop: -7d)
                                      |> timeShift(duration: 7d)
                                      |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Solarweb.Current.06_Year.Energy.EnergyProductionTotal")
                                      |> filter(fn: (r) => r["_field"] == "value")
                                      |> set(key: "_field", value: "letzte Woche")
                                      |> drop(columns:["from","ack", "q"])
                                      |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start", createEmpty: false)
                                      |> difference(nonNegative: false, columns: ["_value"])
                                      

                                      2023-03-05_16_31_influxdb_data.csv

                                      ? 1 Reply Last reply
                                      0
                                      • maximal1981M maximal1981

                                        @dp20eic
                                        jetzt geht zumindest A. B mag mich jedoch trotzdem nicht.

                                        Unbenannt.PNG
                                        eine neue csv falls benötigt

                                        from(bucket: "iobroker")
                                         |> range(start: -7d, stop: now())
                                         |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Solarweb.Current.06_Year.Energy.EnergyProductionTotal")
                                         |> filter(fn: (r) => r["_field"] == "value")
                                         |> set(key: "_field", value: "aktuelle Woche")
                                         |> drop(columns:["from","ack", "q"])
                                         |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start", createEmpty: false)
                                         |> difference(nonNegative: false, columns: ["_value"])
                                        
                                        from(bucket: "iobroker")
                                        |> range(start: -14d, stop: -7d)
                                        |> timeShift(duration: 7d)
                                        |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Solarweb.Current.06_Year.Energy.EnergyProductionTotal")
                                        |> filter(fn: (r) => r["_field"] == "value")
                                        |> set(key: "_field", value: "letzte Woche")
                                        |> drop(columns:["from","ack", "q"])
                                        |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start", createEmpty: false)
                                        |> difference(nonNegative: false, columns: ["_value"])
                                        

                                        2023-03-05_16_31_influxdb_data.csv

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

                                        @maximal1981

                                        Moin,

                                        wenn Du jetzt aus einem Jahreswert aufbaust, dann ja, kannst mir da noch mal einen Abzug manchen.

                                        2487b36b-b906-42c0-9b1f-41bac4df111b-grafik.png

                                        Query A:
                                        import "experimental/date/boundaries"
                                        thisWeek = boundaries.week()
                                        //lastWeek = boundaries.week(week_offset: -1)
                                        
                                        from(bucket: "test_bucket")
                                          |> range(start: thisWeek.start, stop: thisWeek.stop)
                                          //|> range(start: lastWeek.start, stop: lastWeek.stop)
                                          //|> range(start: -7d, stop: now())
                                          |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Solarweb.Current.01_Day.Energy.EnergyProductionTotal")
                                          |> filter(fn: (r) => r["_field"] == "value")
                                          |> cumulativeSum(columns: ["_value"])
                                          |> set(key: "_field", value: "aktuelle Woche")
                                          |> drop(columns:["from","ack", "q"])
                                          |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start", createEmpty: false)
                                          //|> difference(nonNegative: false, columns: ["_value"])
                                        
                                        Query B:
                                        import "experimental/date/boundaries"
                                        //thisWeek = boundaries.week()
                                        lastWeek = boundaries.week(week_offset: -1)
                                        
                                        from(bucket: "test_bucket")
                                          //|> range(start: thisWeek.start, stop: thisWeek.stop)
                                          |> range(start: lastWeek.start, stop: lastWeek.stop)
                                          //|> range(start: -14d, stop: -7d)
                                          |> timeShift(duration: 7d)
                                          |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Solarweb.Current.01_Day.Energy.EnergyProductionTotal")
                                          |> filter(fn: (r) => r["_field"] == "value")
                                          |> cumulativeSum(columns: ["_value"])
                                          |> set(key: "_field", value: "letzte Woche")
                                          |> drop(columns:["from","ack", "q"])
                                          |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start", createEmpty: false)
                                          //|> difference(nonNegative: false, columns: ["_value"])
                                        

                                        VG
                                        Bernd

                                        Edit
                                        Hab die Datei gesehen, hat sich etwas versteckt :)

                                        maximal1981M 1 Reply Last reply
                                        0
                                        • ? A Former User

                                          @maximal1981

                                          Moin,

                                          wenn Du jetzt aus einem Jahreswert aufbaust, dann ja, kannst mir da noch mal einen Abzug manchen.

                                          2487b36b-b906-42c0-9b1f-41bac4df111b-grafik.png

                                          Query A:
                                          import "experimental/date/boundaries"
                                          thisWeek = boundaries.week()
                                          //lastWeek = boundaries.week(week_offset: -1)
                                          
                                          from(bucket: "test_bucket")
                                            |> range(start: thisWeek.start, stop: thisWeek.stop)
                                            //|> range(start: lastWeek.start, stop: lastWeek.stop)
                                            //|> range(start: -7d, stop: now())
                                            |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Solarweb.Current.01_Day.Energy.EnergyProductionTotal")
                                            |> filter(fn: (r) => r["_field"] == "value")
                                            |> cumulativeSum(columns: ["_value"])
                                            |> set(key: "_field", value: "aktuelle Woche")
                                            |> drop(columns:["from","ack", "q"])
                                            |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start", createEmpty: false)
                                            //|> difference(nonNegative: false, columns: ["_value"])
                                          
                                          Query B:
                                          import "experimental/date/boundaries"
                                          //thisWeek = boundaries.week()
                                          lastWeek = boundaries.week(week_offset: -1)
                                          
                                          from(bucket: "test_bucket")
                                            //|> range(start: thisWeek.start, stop: thisWeek.stop)
                                            |> range(start: lastWeek.start, stop: lastWeek.stop)
                                            //|> range(start: -14d, stop: -7d)
                                            |> timeShift(duration: 7d)
                                            |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Solarweb.Current.01_Day.Energy.EnergyProductionTotal")
                                            |> filter(fn: (r) => r["_field"] == "value")
                                            |> cumulativeSum(columns: ["_value"])
                                            |> set(key: "_field", value: "letzte Woche")
                                            |> drop(columns:["from","ack", "q"])
                                            |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start", createEmpty: false)
                                            //|> difference(nonNegative: false, columns: ["_value"])
                                          

                                          VG
                                          Bernd

                                          Edit
                                          Hab die Datei gesehen, hat sich etwas versteckt :)

                                          maximal1981M Offline
                                          maximal1981M Offline
                                          maximal1981
                                          wrote on last edited by
                                          #21

                                          @dp20eic
                                          wenn ich das richtig gelesen habe, sind die Wochentage Settings in den Grundeinstellungen, somit muss man damit leben

                                          ? 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

                                          608

                                          Online

                                          32.7k

                                          Users

                                          82.5k

                                          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