Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Off Topic
    4. Verständnisproblem zu benötigten Datenpunkt Grafana

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Verständnisproblem zu benötigten Datenpunkt Grafana

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

      Guten Morgen zusammen,

      ich logge den Stromverbrauch meiner 7 Shellys mit dem Script von Kreyenborg. Also habe ich mal munter die Daten von dem Verbrauch: heute, gestern, diese Woche, letzte Woche etc. mit Influx geloggt und dann für jeden Zeitraum ein eigenes Dashboard erstellt.
      Mittlerweile stelle ich aber fest das dies wohl ziemlich dämlich war, denn ich kann ja in Grafana jeweils den Zeitraum festlegen und in einem Dashboards mehrere Panels anlegen.
      Deshalb meine Frage: Würde es nicht reichen, wenn ich lediglich den Datenpunkt von diesem Jahr logge. Daran müsste ich doch dann die Panels für heute, gestern, diese Woche usw. erstellen können.

      Ist das so korrekt, oder habe ich hier wieder einen Denkfehler drin?

      S 1 Reply Last reply Reply Quote 0
      • S
        SpacerX @Damrak2022 last edited by

        @damrak2022

        Ich logge den Datenpunkt Gesamtverbrauch. So lässt sich mit Grafana und Difference alles von Tag, Woche, Monat, Jahr berechnen.
        https://forum.iobroker.net/post/897990

        Damrak2022 1 Reply Last reply Reply Quote 1
        • Damrak2022
          Damrak2022 @SpacerX last edited by Damrak2022

          @spacerx Ich muss hier nochmal nachhaken, Da mir das Script auch den Gesamtverbrauch ausgibt habe ich diesen jetzt von jedem Gerät geloggt.
          Kannst Du mir bitte einmal erklären, wie ich das mit den Difference berechne, damit ich dann halt die Wert von heute, letzte Woche etc. habe.
          Also wie muss das im Script Editor bei Grafana dann aussehen? Eventuell kannst Du mir mal ein Beispiel posten?

          So sieht das bei mir im Moment aus:
          Bildschirm­foto 2023-02-22 um 17.14.25.png

          Nur mit dem Code tue ich mich schwer.

          S S 2 Replies Last reply Reply Quote 0
          • S
            Skarpain @Damrak2022 last edited by Skarpain

            @damrak2022
            Hi als bsp

            from(bucket: "iobroker")
              |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
              |> filter(fn: (r) => r["_measurement"] == "stromtotal")
              |> filter(fn: (r) => r["_field"] == "value")
                |> difference()
                  |> aggregateWindow(every: 1d, fn: sum,createEmpty: true)
            

            bei query option
            Relative time now/M
            ist für Monat z.b ( jeder Tag )
            bsp.gif

            Damrak2022 1 Reply Last reply Reply Quote 0
            • Damrak2022
              Damrak2022 @Skarpain last edited by

              @skarpain Ich danke Dir, das sollte mir weiterhelfen.

              1 Reply Last reply Reply Quote 0
              • S
                SpacerX @Damrak2022 last edited by SpacerX

                @damrak2022

                Tageswerte der letzten 7 Tage:

                import "timezone" // import wegen der Berechnung um 02:00:00
                option location = timezone.location(name: "Europe/Berlin")
                from(bucket: "ioBroker")
                  |> range(start: -7d, stop: now() )
                  |> filter(fn: (r) => r["_measurement"] == "Vb_Kuehlschrank")
                  |> filter(fn: (r) => r["from"] == "system.adapter.javascript.0")
                  |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start")
                  |> difference()
                

                SnipSnap_1.PNG

                Werte der letzten 4 Wochen:

                import "timezone"  // import wegen der Berechnung um 02:00:00
                option location = timezone.location(name: "Europe/Berlin")
                from(bucket: "ioBroker")
                  |> range(start: -1mo, stop: now())
                  |> filter(fn: (r) => r["_measurement"] == "Vb_Stromzaehler")
                  |> filter(fn: (r) => r["from"] == "system.adapter.javascript.0")
                  |> aggregateWindow(every: 1w, offset: -3d, fn: last)
                  |> difference()
                

                SnipSnap_2.PNG

                Noch Verbrauch über das Jahr mit Werten aus dem Downsampling und der aktuelle Monat aus dem aktuell geschriebenen Daten:

                <A>
                import "date"
                import "timezone" // import wegen der Berechnung um 02:00:00
                option location = timezone.location(name: "Europe/Berlin")
                  from(bucket: "Stromverbrauch")
                  |> range(start: -1y, stop: date.truncate(t: now(), unit: 1mo))
                  |> filter(fn: (r) => r["_measurement"] == "Stromzaehler")
                  |> aggregateWindow(every: 1mo , fn: last,  timeSrc: "_start" ,createEmpty: true )
                  |> difference()
                
                <B>
                import "timezone" // import wegen der Berechnung um 02:00:00
                option location = timezone.location(name: "Europe/Berlin")
                from(bucket: "ioBroker")
                  |> range(start: -1mo, stop: now())
                  |> filter(fn: (r) => r["_measurement"] == "Vb_Stromzaehler")
                  |> filter(fn: (r) => r["from"] == "system.adapter.javascript.0")
                  |> aggregateWindow(every: 1mo , fn: last,  timeSrc: "_start")
                  |> difference()
                

                SnipSnap_3.PNG

                MfG Ralf

                Damrak2022 1 Reply Last reply Reply Quote 0
                • Damrak2022
                  Damrak2022 last edited by

                  @spacerx Hier sind noch ein paar Fragen aufgetaucht. Zuerst ml mein Problem:
                  Wenn ich die query options leer lasse sind alle Geräte da, speziell "FeFoTV".
                  Bildschirmfoto_2023-02-23_um_04_25_19.png

                  Sobald ich aber bei relative Time "now/d" eintrage, ist der Wert von FeFoTV verschwunden - siehe hier:
                  Bildschirmfoto_2023-02-23_um_04_28_59.png
                  Das kann ich mir überhaupt nicht erklären. Habe das Panel auch schon mehrfach gelöscht und neu angelegt. Der Fehler bleibt.

                  S 1 Reply Last reply Reply Quote 0
                  • S
                    Skarpain @Damrak2022 last edited by Skarpain

                    @damrak2022
                    servus mach doch mal add new panel
                    dann

                    import "timezone"
                    option location = timezone.location(name: "Europe/Berlin")
                    
                    from(bucket: "iobroker")
                      |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                      |> filter(fn: (r) => r["_measurement"] == "FeFoTV_gesamt")
                      |> filter(fn: (r) => r["_field"] == "value")
                      |> difference()
                        |> aggregateWindow(every: 1mo, fn: sum,createEmpty: false)
                    

                    und bei relative Time "now/y"

                    Damrak2022 2 Replies Last reply Reply Quote 0
                    • Damrak2022
                      Damrak2022 @Skarpain last edited by Damrak2022

                      @skarpain Dieses Problem hat sich irgendwie von alleine erledigt. Trotzdem möchte ich Dir hier gerne mal meine Panels posten, und würde mich freuen, wenn Du mal einen Blick darauf wirfst, da ich mir nicht ganz sicher bin, ob das alles korrekt ist.

                      Board für heute:
                      Bildschirm­foto 2023-02-23 um 15.22.27.png

                      Board für diese Woche:
                      Bildschirm­foto 2023-02-23 um 15.24.10.png

                      Board für diesen Monat
                      Bildschirm­foto 2023-02-23 um 15.25.50.png

                      Ich logge den Gesamtverbrauch erst seit dem 20.02.2023. Aber warum sind die Werte bei "Stromverbrauch heute" und "Stromverbrauch diese Woche" identisch? Ich sehe den Fehler nicht.

                      S 1 Reply Last reply Reply Quote 0
                      • S
                        Skarpain @Damrak2022 last edited by

                        @damrak2022
                        hi für woche habe ich so gemacht

                         |> aggregateWindow(every: 7d, fn: sum,createEmpty: false)
                        

                        bei Relative time
                        now/y
                        gibt viele varianten wie man es sich anzeigen lassen kann

                        Damrak2022 1 Reply Last reply Reply Quote 0
                        • Damrak2022
                          Damrak2022 @Skarpain last edited by

                          @skarpain Ja, das habe ich auch, aber nochmal die Frage: Warum sind meine Werte von "heute" und "dieser Woche" identisch. Das kann ja irgendwie nicht stimmen und die Screenshots habe ich Dir oben gepostet. Hast Du dazu eine Idee?

                          S 1 Reply Last reply Reply Quote 0
                          • S
                            SpacerX @Damrak2022 last edited by

                            @damrak2022 in Grafana beginnt die Woche am Donnerstag. Das müsst ihr berücksichtigen. Wie in meinem Query zur Berechnung des Verbrauches über die Woche.

                            Damrak2022 3 Replies Last reply Reply Quote 0
                            • Damrak2022
                              Damrak2022 @SpacerX last edited by Damrak2022

                              @spacerx In beiden Panels steht bei mir unter dataview nur das heutige Datum drin. Aber meine Codes, bzw. relative Time sind doch unterschiedlich. Deswegen kapiere ich das nicht. Das mit dem Offset habe ich gelesen, sollte aber zumindest für den "Stromverbrauch heute" irrelevant sein.
                              Bildschirm­foto 2023-02-24 um 15.11.14.png

                              1 Reply Last reply Reply Quote 0
                              • Damrak2022
                                Damrak2022 @SpacerX last edited by Damrak2022

                                @spacerx geändert

                                1 Reply Last reply Reply Quote 0
                                • Damrak2022
                                  Damrak2022 @SpacerX last edited by Damrak2022

                                  @spacerx In beiden Panels steht bei mir unter tableview nur das heutige Datum drin. Aber meine Codes, bzw. relative Time sind doch unterschiedlich. Deswegen kapiere ich das nicht. Das mit dem Offset habe ich gelesen, sollte aber zumindest für den "Stromverbrauch heute" irrelevant sein.

                                  1 Reply Last reply Reply Quote 0
                                  • Damrak2022
                                    Damrak2022 @Skarpain last edited by

                                    @skarpain So, ich versuche das nochmal haarklein darzustellen.

                                    Das ist das Board vom "Stromverbrauch heute"
                                    In den query options ist nichts eingetragen
                                    Bildschirm­foto 2023-02-24 um 17.31.18.png
                                    Der Code sieht so aus:

                                    import "timezone" // import wegen der Berechnung um 02:00:00
                                    option location = timezone.location(name: "Europe/Berlin")
                                    from(bucket: "DBANDY1")
                                      |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                                      |> filter(fn: (r) => r["_measurement"] == "Drucker_gesamt" or r["_measurement"] == "FeFoTV_gesamt" or r["_measurement"] == "Imac_gesamt" or r["_measurement"] == "Kühlschrank_gesamt" or r["_measurement"] == "Router_gesamt" or r["_measurement"] == "Ventilator_gesamt" or r["_measurement"] == "Smart_Kettle_Pro_gesamt")
                                      |> filter(fn: (r) => r["_field"] == "value")
                                      |> difference()
                                      |> aggregateWindow(every: 24h, fn: sum,createEmpty: true)
                                    
                                    

                                    Das ist das Board vom "Stromverbrauch diese Woche".
                                    In den query options ist bei relative Time now/w eingetragen
                                    Bildschirm­foto 2023-02-24 um 17.35.44.png
                                    Der Code sieht so aus:

                                    import "timezone" // import wegen der Berechnung um 02:00:00
                                    option location = timezone.location(name: "Europe/Berlin")
                                    from(bucket: "DBANDY1")
                                      |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                                      |> filter(fn: (r) => r["_measurement"] == "Drucker_gesamt" or r["_measurement"] == "FeFoTV_gesamt" or r["_measurement"] == "Imac_gesamt" or r["_measurement"] == "Kühlschrank_gesamt" or r["_measurement"] == "Router_gesamt" or r["_measurement"] == "Ventilator_gesamt" or r["_measurement"] == "Smart_Kettle_Pro_gesamt")
                                      |> filter(fn: (r) => r["_field"] == "value")
                                      |> difference()
                                      |> aggregateWindow(every: 1d, fn: sum,createEmpty: true)
                                    

                                    Das ist das Board vom "Stromverbrauch dieser Monat".
                                    In den query options ist bei relative Time now/M eingetragen
                                    Der Code hier sieht so aus:

                                    import "timezone" // import wegen der Berechnung um 02:00:00
                                    option location = timezone.location(name: "Europe/Berlin")
                                    from(bucket: "DBANDY1")
                                      |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                                      |> filter(fn: (r) => r["_measurement"] == "Drucker_gesamt" or r["_measurement"] == "FeFoTV_gesamt" or r["_measurement"] == "Imac_gesamt" or r["_measurement"] == "Kühlschrank_gesamt" or r["_measurement"] == "Router_gesamt" or r["_measurement"] == "Ventilator_gesamt" or r["_measurement"] == "Smart_Kettle_Pro_gesamt")
                                      |> filter(fn: (r) => r["_field"] == "value")
                                      |> difference()
                                      |> aggregateWindow(every: 1mo, fn: sum,createEmpty: true)
                                    
                                    

                                    Das ist die Ansicht mit den obergenannten Einstellungen:
                                    Bildschirm­foto 2023-02-24 um 17.42.54.png

                                    Wen ich nun bei bei "Stromverbrauch heute" in den query options bei relative Time now/d eintrage verändert sich die Ansicht und es sieht so aus:
                                    Bildschirm­foto 2023-02-24 um 17.45.26.png

                                    Die Table View bei "Stromverbrauch diese Woche ist korrekt.
                                    Bildschirm­foto 2023-02-24 um 17.47.31.png

                                    Die Table view bei "Stromverbrauch dieser Monat ist falsch:
                                    Bildschirm­foto 2023-02-24 um 17.49.18.png

                                    Hier muss ich, glaube ich noch den Offset eintragen, da Grafana ja immer ab Donnerstag rechnet: Gut das bekomme ich hin.

                                    Aber warum kann ich bei "Stromverbrauch heute" bei relative Time nicht now/d eintragen?

                                    S 1 Reply Last reply Reply Quote 0
                                    • S
                                      SpacerX @Damrak2022 last edited by SpacerX

                                      @damrak2022 ist now/d nicht heute 0:00. Uhr?
                                      Noch eine Frage. Warum macht ihr beim aggregierten immer ein fn:sum? Wenn ich von _start und _ stop die difference habe habe ich das was ich will oder doch nicht.?

                                      Damrak2022 1 Reply Last reply Reply Quote 0
                                      • Damrak2022
                                        Damrak2022 @SpacerX last edited by Damrak2022

                                        @spacerx Wenn ich das richtig verstanden habe müsste doch now/d heute ab 00:00 Uhr bis jetzt bedeuten.
                                        Zu dem anderen kann ich Dir nur sagen das ich das aus den Videos von Eddy habe, da ich noch nicht so fit bin, schon mal garnicht bei Code.

                                        S 1 Reply Last reply Reply Quote 0
                                        • S
                                          SpacerX @Damrak2022 last edited by

                                          @damrak2022 lass das mit den Optionen mal weg und versuche meine Query mal. Ich kann dir im Moment nicht sehr behilflich sein komm nicht an meinen Rechner weil ich im Krankenhaus verweile.

                                          Damrak2022 1 Reply Last reply Reply Quote 0
                                          • Damrak2022
                                            Damrak2022 @SpacerX last edited by

                                            @spacerx Okay, dann zuerst mal gute Besserung. Du meinst die query options weglassen

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            806
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            4
                                            25
                                            1094
                                            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