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
  5. Stapel-Balkengrafik mit Grafana

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

Stapel-Balkengrafik mit Grafana

Scheduled Pinned Locked Moved Grafana
76 Posts 7 Posters 8.6k 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.
  • mickemupM mickemup

    @wolfi913
    Ja das würde die Arbeit im Grafana deutlich vereinfachen:+1:
    @Laser Logg doch mal den Wert bei deinen zwei? Datenpunkten und dann kommen wir mit zwei Queries zurecht :-)

    L Offline
    L Offline
    Laser
    wrote on last edited by
    #35

    @mickemup @wolfi913 Nur CurrentDay. Da ohnehin in die Datenbank geschrieben wird, reicht das ja. Sehr gute Idee!

    mickemupM 1 Reply Last reply
    0
    • L Laser

      @mickemup @wolfi913 Nur CurrentDay. Da ohnehin in die Datenbank geschrieben wird, reicht das ja. Sehr gute Idee!

      mickemupM Offline
      mickemupM Offline
      mickemup
      wrote on last edited by
      #36

      @laser
      Also natürlich CurrentDay bei allen die du stapeln willst ;-)
      Das sind ja minimum zwei oder?

      L 1 Reply Last reply
      0
      • mickemupM mickemup

        @laser
        Also natürlich CurrentDay bei allen die du stapeln willst ;-)
        Das sind ja minimum zwei oder?

        L Offline
        L Offline
        Laser
        wrote on last edited by Laser
        #37

        @mickemup Insgesamt 4 Werte. Der Tagesverlauf ist nicht wichtig. Nur der Endwert.

        mickemupM W 2 Replies Last reply
        0
        • L Laser

          @mickemup Insgesamt 4 Werte. Der Tagesverlauf ist nicht wichtig. Nur der Endwert.

          mickemupM Offline
          mickemupM Offline
          mickemup
          wrote on last edited by
          #38

          @laser Perfekt
          Dann ab ans loggen und am besten pro DP ein Query schon mal erstellen.

          Aja und die Queries am besten dann mit Codetags anstatt printscreens hier rein.
          Dann kann man sie direkt anpassen und du sie auch elegant wieder zurückkopieren

          1 Reply Last reply
          2
          • L Laser

            @mickemup Insgesamt 4 Werte. Der Tagesverlauf ist nicht wichtig. Nur der Endwert.

            W Offline
            W Offline
            wolfi913
            wrote on last edited by
            #39

            @laser sagte in Stapel-Balkengrafik mit Grafana:

            @mickemup Insgesamt 4 Werte.

            Und dann je eine Query nach etwa diesem Schema:

            import "timezone"
            import "date"
            option location = timezone.location(name: "Europe/Berlin")
            
            from(bucket: "smarthome-history")
              |> range(start: date.add(d: -7d, to: today()), stop: date.truncate(t: today(), unit: 1d))
              |> filter(fn: (r) => r["_measurement"] == "modbus.0.inputRegisters.13022_Battery_level_")
              |> filter(fn: (r) => r["_field"] == "value")
              |> aggregateWindow(every: 1d, fn: last, createEmpty: true, timeSrc: "_start")
            
            L mickemupM 2 Replies Last reply
            0
            • W wolfi913

              @laser sagte in Stapel-Balkengrafik mit Grafana:

              @mickemup Insgesamt 4 Werte.

              Und dann je eine Query nach etwa diesem Schema:

              import "timezone"
              import "date"
              option location = timezone.location(name: "Europe/Berlin")
              
              from(bucket: "smarthome-history")
                |> range(start: date.add(d: -7d, to: today()), stop: date.truncate(t: today(), unit: 1d))
                |> filter(fn: (r) => r["_measurement"] == "modbus.0.inputRegisters.13022_Battery_level_")
                |> filter(fn: (r) => r["_field"] == "value")
                |> aggregateWindow(every: 1d, fn: last, createEmpty: true, timeSrc: "_start")
              
              L Offline
              L Offline
              Laser
              wrote on last edited by
              #40

              @wolfi913 Habe jetzt currentDay und jede Stunde und Änderungen 2. Stelle nach dem Komma eingestellt.

              mickemupM 1 Reply Last reply
              0
              • W wolfi913

                @laser sagte in Stapel-Balkengrafik mit Grafana:

                @mickemup Insgesamt 4 Werte.

                Und dann je eine Query nach etwa diesem Schema:

                import "timezone"
                import "date"
                option location = timezone.location(name: "Europe/Berlin")
                
                from(bucket: "smarthome-history")
                  |> range(start: date.add(d: -7d, to: today()), stop: date.truncate(t: today(), unit: 1d))
                  |> filter(fn: (r) => r["_measurement"] == "modbus.0.inputRegisters.13022_Battery_level_")
                  |> filter(fn: (r) => r["_field"] == "value")
                  |> aggregateWindow(every: 1d, fn: last, createEmpty: true, timeSrc: "_start")
                
                mickemupM Offline
                mickemupM Offline
                mickemup
                wrote on last edited by
                #41

                @wolfi913
                mir der Range können wir ja noch schauen, was genau gewollt ist.
                Eventuell auch via "Query Options"
                Aber das ist dann Feintuning

                W 1 Reply Last reply
                0
                • L Laser

                  @wolfi913 Habe jetzt currentDay und jede Stunde und Änderungen 2. Stelle nach dem Komma eingestellt.

                  mickemupM Offline
                  mickemupM Offline
                  mickemup
                  wrote on last edited by
                  #42

                  @laser
                  Wenn dich nur der Endwert intressiert, musst du nicht jede Stunde loggen.
                  Änderungen loggen sollte IMHO ausreichen.

                  L 1 Reply Last reply
                  0
                  • mickemupM mickemup

                    @laser
                    Wenn dich nur der Endwert intressiert, musst du nicht jede Stunde loggen.
                    Änderungen loggen sollte IMHO ausreichen.

                    L Offline
                    L Offline
                    Laser
                    wrote on last edited by Laser
                    #43

                    @mickemup Ja, eigentlich. Jede Stunde, da sieht man etwas bei der Kurvendarstellung. Manchmal ändert sich nichts. Wenn das Alles funktioniert, nehme ich das raus. Wenn ich es nicht vergesse, wie die 600 Sekunden...

                    mickemupM 1 Reply Last reply
                    0
                    • L Laser

                      @mickemup Ja, eigentlich. Jede Stunde, da sieht man etwas bei der Kurvendarstellung. Manchmal ändert sich nichts. Wenn das Alles funktioniert, nehme ich das raus. Wenn ich es nicht vergesse, wie die 600 Sekunden...

                      mickemupM Offline
                      mickemupM Offline
                      mickemup
                      wrote on last edited by
                      #44

                      @laser Ok, trifft ja nicht so viel an.
                      Und mit jeder Stunde, kreierst die auch nicht extrem viel unnötigen "Datenmüll"

                      1 Reply Last reply
                      0
                      • mickemupM mickemup

                        @wolfi913
                        mir der Range können wir ja noch schauen, was genau gewollt ist.
                        Eventuell auch via "Query Options"
                        Aber das ist dann Feintuning

                        W Offline
                        W Offline
                        wolfi913
                        wrote on last edited by
                        #45

                        @mickemup sagte in Stapel-Balkengrafik mit Grafana:

                        mir der Range können wir ja noch schauen, was genau gewollt ist.

                        Klar, dazu müssen ja zuerst mal Daten geloggt sein.
                        Mein Beispiel würde ja auch den aktuellen Tag abschneiden und nicht anzeigen sondern nur vollständige Tage.

                        L 1 Reply Last reply
                        0
                        • W wolfi913

                          @mickemup sagte in Stapel-Balkengrafik mit Grafana:

                          mir der Range können wir ja noch schauen, was genau gewollt ist.

                          Klar, dazu müssen ja zuerst mal Daten geloggt sein.
                          Mein Beispiel würde ja auch den aktuellen Tag abschneiden und nicht anzeigen sondern nur vollständige Tage.

                          L Offline
                          L Offline
                          Laser
                          wrote on last edited by Laser
                          #46

                          @wolfi913 ich miste erst mal aus. Habe auch noch die einzelnen Monate drin. Das stammt Alles aus der Zeit vor Grafana. Da hatte ich einzelne Balken in VIS.

                          L 1 Reply Last reply
                          0
                          • L Laser

                            @wolfi913 ich miste erst mal aus. Habe auch noch die einzelnen Monate drin. Das stammt Alles aus der Zeit vor Grafana. Da hatte ich einzelne Balken in VIS.

                            L Offline
                            L Offline
                            Laser
                            wrote on last edited by Laser
                            #47

                            @wolfi913
                            1Wert ist ja in jedem currentDay drin. 1 Tag sollte angezeigt werden. Habe Das mal so gemacht (ist aber noch ein Fehler drin):

                            import "timezone"
                            import "date"
                            option location = timezone.location(name: "Europe/Berlin")
                            
                            from(bucket: "iobroker")
                             // |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                              |> range(start: date.add(d: -7d, to: today()), stop: date.truncate(t: today(), unit: 1d))
                              |> filter(fn: (r)
                              => r["_measurement"] == "sourceanalytix.0.alias__0__VE-Total__H19.currentYear.delivered.01_currentDay"
                              or r["_measurement"] == "sourceanalytix.0.alias__0__Shelly1EM-Power__Total-EM1.currentYear.delivered.01_currentDay")
                              |> filter(fn: (r) => r["_field"] == "value")
                              |> aggregateWindow(every: 1d, fn: last, createEmpty: true, timeSrc: "_start")
                              |> yield(name: "last")
                            
                            W 1 Reply Last reply
                            0
                            • L Laser

                              @wolfi913
                              1Wert ist ja in jedem currentDay drin. 1 Tag sollte angezeigt werden. Habe Das mal so gemacht (ist aber noch ein Fehler drin):

                              import "timezone"
                              import "date"
                              option location = timezone.location(name: "Europe/Berlin")
                              
                              from(bucket: "iobroker")
                               // |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                                |> range(start: date.add(d: -7d, to: today()), stop: date.truncate(t: today(), unit: 1d))
                                |> filter(fn: (r)
                                => r["_measurement"] == "sourceanalytix.0.alias__0__VE-Total__H19.currentYear.delivered.01_currentDay"
                                or r["_measurement"] == "sourceanalytix.0.alias__0__Shelly1EM-Power__Total-EM1.currentYear.delivered.01_currentDay")
                                |> filter(fn: (r) => r["_field"] == "value")
                                |> aggregateWindow(every: 1d, fn: last, createEmpty: true, timeSrc: "_start")
                                |> yield(name: "last")
                              
                              W Offline
                              W Offline
                              wolfi913
                              wrote on last edited by
                              #48

                              @laser
                              Stell mal die Range auf

                                |> range(start: -7d, stop: v.timeRangeStop)
                              

                              Den aktuellen Tag zeigt er Dir ja mit der anderen Auswertung nicht an. Da werden nur ganze Tage genommen.
                              Außerdem würde ich je eine Query je Datenpunkt machen.

                              L 1 Reply Last reply
                              0
                              • W wolfi913

                                @laser
                                Stell mal die Range auf

                                  |> range(start: -7d, stop: v.timeRangeStop)
                                

                                Den aktuellen Tag zeigt er Dir ja mit der anderen Auswertung nicht an. Da werden nur ganze Tage genommen.
                                Außerdem würde ich je eine Query je Datenpunkt machen.

                                L Offline
                                L Offline
                                Laser
                                wrote on last edited by Laser
                                #49

                                @wolfi913 sagte in Stapel-Balkengrafik mit Grafana:

                                e

                                Da paßt noch was mit den Zeiten nicht. Kann nicht gestapelt werden. Ich versuche noch mal mit einzelnen Query.
                                (Darstellung mit dem Zeitversatz besteht aber noch)
                                d342e9f6-593c-4796-941e-4f75ad3a7217-image.png

                                Das Ganze muß ich erst mal verarbeiten. Ich werde morgen noch mal frisch ran gehen.
                                Ist diese Beschreibung richtig? https://docs.influxdata.com/flux/v0/stdlib/universe/range/ u.a.m.

                                W icebearI 2 Replies Last reply
                                0
                                • L Laser

                                  @wolfi913 sagte in Stapel-Balkengrafik mit Grafana:

                                  e

                                  Da paßt noch was mit den Zeiten nicht. Kann nicht gestapelt werden. Ich versuche noch mal mit einzelnen Query.
                                  (Darstellung mit dem Zeitversatz besteht aber noch)
                                  d342e9f6-593c-4796-941e-4f75ad3a7217-image.png

                                  Das Ganze muß ich erst mal verarbeiten. Ich werde morgen noch mal frisch ran gehen.
                                  Ist diese Beschreibung richtig? https://docs.influxdata.com/flux/v0/stdlib/universe/range/ u.a.m.

                                  W Offline
                                  W Offline
                                  wolfi913
                                  wrote on last edited by wolfi913
                                  #50

                                  @laser
                                  Das mit

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

                                  funktioniert nicht für den aktuellen Tag, nur für die ganzen Tage.
                                  Da müsste vermutlich noch zusätzlich mit timeShift oder was Ähnlichem gearbeitet werden.

                                  L 1 Reply Last reply
                                  1
                                  • W wolfi913

                                    @laser
                                    Das mit

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

                                    funktioniert nicht für den aktuellen Tag, nur für die ganzen Tage.
                                    Da müsste vermutlich noch zusätzlich mit timeShift oder was Ähnlichem gearbeitet werden.

                                    L Offline
                                    L Offline
                                    Laser
                                    wrote on last edited by
                                    #51

                                    @wolfi913 mal sehen, wie das morgen aussieht. Da habe ich schon 2 Tage...

                                    W 1 Reply Last reply
                                    0
                                    • L Laser

                                      @wolfi913 mal sehen, wie das morgen aussieht. Da habe ich schon 2 Tage...

                                      W Offline
                                      W Offline
                                      wolfi913
                                      wrote on last edited by wolfi913
                                      #52

                                      @laser
                                      Probier mal mit

                                        |> truncateTimeColumn(unit: 1d)
                                      

                                      hinter dem aggregateWindow...

                                      Dann sollte der anzuzeigende Wert jeweils auf Mitternacht gesetzt werden.
                                      Screenshot 2025-02-04 182825.png
                                      Und dann sollten die Werte wieder gesynct sein.

                                      L 1 Reply Last reply
                                      0
                                      • W wolfi913

                                        @laser
                                        Probier mal mit

                                          |> truncateTimeColumn(unit: 1d)
                                        

                                        hinter dem aggregateWindow...

                                        Dann sollte der anzuzeigende Wert jeweils auf Mitternacht gesetzt werden.
                                        Screenshot 2025-02-04 182825.png
                                        Und dann sollten die Werte wieder gesynct sein.

                                        L Offline
                                        L Offline
                                        Laser
                                        wrote on last edited by Laser
                                        #53

                                        @wolfi913 sagte in Stapel-Balkengrafik mit Grafana:

                                        9bea4f26-e74f-4a8a-82ac-644d69d486e7-image.png

                                        |> truncateTimeColumn(unit: 1d)

                                        import "timezone"
                                        import "date"
                                        option location = timezone.location(name: "Europe/Berlin")
                                        
                                        from(bucket: "iobroker")
                                        |> range(start: -7d, stop: v.timeRangeStop)
                                         |> filter(fn: (r)
                                          => r["_measurement"] == "sourceanalytix.0.alias__0__Shelly1EM-Power__Total-EM1.currentYear.delivered.01_currentDay")
                                         |> filter(fn: (r) => r["_field"] == "value")
                                         |> aggregateWindow(every: 1d, fn: last, createEmpty: true, timeSrc: "_start")
                                         |> truncateTimeColumn(unit: 1d)
                                         |> yield(name: "last")
                                        
                                        import "timezone"
                                        import "date"
                                        option location = timezone.location(name: "Europe/Berlin")
                                        
                                        from(bucket: "iobroker")
                                         |> range(start: -7d, stop: v.timeRangeStop)
                                         |> filter(fn: (r)
                                          => r["_measurement"] == "sourceanalytix.0.alias__0__VE-Total__H19.currentYear.delivered.01_currentDay")
                                         |> filter(fn: (r) => r["_field"] == "value")
                                         |> aggregateWindow(every: 1d, fn: last, createEmpty: true, timeSrc: "_start")
                                         |> truncateTimeColumn(unit: 1d)
                                         |> yield(name: "last")
                                        
                                        W 1 Reply Last reply
                                        0
                                        • L Laser

                                          @wolfi913 sagte in Stapel-Balkengrafik mit Grafana:

                                          9bea4f26-e74f-4a8a-82ac-644d69d486e7-image.png

                                          |> truncateTimeColumn(unit: 1d)

                                          import "timezone"
                                          import "date"
                                          option location = timezone.location(name: "Europe/Berlin")
                                          
                                          from(bucket: "iobroker")
                                          |> range(start: -7d, stop: v.timeRangeStop)
                                           |> filter(fn: (r)
                                            => r["_measurement"] == "sourceanalytix.0.alias__0__Shelly1EM-Power__Total-EM1.currentYear.delivered.01_currentDay")
                                           |> filter(fn: (r) => r["_field"] == "value")
                                           |> aggregateWindow(every: 1d, fn: last, createEmpty: true, timeSrc: "_start")
                                           |> truncateTimeColumn(unit: 1d)
                                           |> yield(name: "last")
                                          
                                          import "timezone"
                                          import "date"
                                          option location = timezone.location(name: "Europe/Berlin")
                                          
                                          from(bucket: "iobroker")
                                           |> range(start: -7d, stop: v.timeRangeStop)
                                           |> filter(fn: (r)
                                            => r["_measurement"] == "sourceanalytix.0.alias__0__VE-Total__H19.currentYear.delivered.01_currentDay")
                                           |> filter(fn: (r) => r["_field"] == "value")
                                           |> aggregateWindow(every: 1d, fn: last, createEmpty: true, timeSrc: "_start")
                                           |> truncateTimeColumn(unit: 1d)
                                           |> yield(name: "last")
                                          
                                          W Offline
                                          W Offline
                                          wolfi913
                                          wrote on last edited by
                                          #54

                                          @laser
                                          Schaut besser aus :blush:

                                          L 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

                                          304

                                          Online

                                          32.6k

                                          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