Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Off Topic
    4. Grafana
    5. Stapel-Balkengrafik mit Grafana

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Stapel-Balkengrafik mit Grafana

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

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

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

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

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

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

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

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

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

              @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 Reply Quote 2
              • W
                wolfi913 @Laser last edited by

                @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 mickemup 2 Replies Last reply Reply Quote 0
                • L
                  Laser @wolfi913 last edited by

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

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

                    @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 Reply Quote 0
                    • mickemup
                      mickemup @Laser last edited by

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

                      L 1 Reply Last reply Reply Quote 0
                      • L
                        Laser @mickemup last edited by 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...

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

                          @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 Reply Quote 0
                          • W
                            wolfi913 @mickemup last edited by

                            @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 Reply Quote 0
                            • L
                              Laser @wolfi913 last edited by 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 1 Reply Last reply Reply Quote 0
                              • L
                                Laser @Laser last edited by 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 1 Reply Last reply Reply Quote 0
                                • W
                                  wolfi913 @Laser last edited by

                                  @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 Reply Quote 0
                                  • L
                                    Laser @wolfi913 last edited by 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 icebear 2 Replies Last reply Reply Quote 0
                                    • W
                                      wolfi913 @Laser last edited by 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 1 Reply Last reply Reply Quote 1
                                      • L
                                        Laser @wolfi913 last edited by

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

                                        W 1 Reply Last reply Reply Quote 0
                                        • W
                                          wolfi913 @Laser last edited by 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 1 Reply Last reply Reply Quote 0
                                          • L
                                            Laser @wolfi913 last edited by 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 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            498
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            7
                                            76
                                            3372
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo