Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Off Topic
    4. Grafana
    5. Grafana + Influx 2 + Flux + Bar Gauge

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Grafana + Influx 2 + Flux + Bar Gauge

    This topic has been deleted. Only users with topic management privileges can see it.
    • L
      Laser @Marc Berg last edited by Laser

      @marc-berg So ist es OK!
      from(bucket: "iobroker")
      |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
      |> filter(fn: (r) => r["_measurement"] == "sourceanalytix.0.alias__0__OpenDTU-Gesamptproduktion__yieldtotal.currentYear.delivered.currentWeek.01_Monday")
      |> filter(fn: (r) => r["_field"] == "value")
      |> keep(columns: ["_value"])
      |> rename(columns: {_value:"Montag"})
      c4a761a8-4116-449a-b0d1-49807b6e4888-image.png

      Und:
      4da8e477-e526-4e56-b950-350413dbd530-image.png

      Das ist für mich absolutes Neuland. Da muß ich mich erst einarbeiten.

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

        @Marc-Berg
        Die Unterschrift wird geändert. Jedoch ändert sich auch der angezeigte Zahlenwert. 1,54 werden angezeigt, 1,97 müssten es sein.
        def07b60-bb3d-42f8-b448-7a1489aa10eb-image.png

        1 Reply Last reply Reply Quote 0
        • Marc Berg
          Marc Berg Most Active last edited by

          @laser sagte in Grafana + Influx 2 + Flux + Bar Gauge:

          @Marc-Berg
          Die Unterschrift wird geändert. Jedoch ändert sich auch der angezeigte Zahlenwert. 1,54 werden angezeigt, 1,97 müssten es sein.

          Verstehe gerade Null, was du meinst. Außerdem wurden doch oben in deinem Beispiel für Montag vorher und nach den Änderungen jeweils 2.59kWh angezeigt!?

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

            @marc-berg Ja, es wird etwas angezeigt. Aber bei genauer Kontrolle, zum Beispiel am Sonntag (aktueller Tag), habe ich den Wert in den Objekten mit dem angezeigten Wert nach der Korrektur der Unterschrift verglichen. Die beiden Werte stimmen nicht überein. Ohne die Korrektur schon. In der Datenbank steht auch der richtige Wert. ( Bildschirmausdruck).

            Marc Berg 1 Reply Last reply Reply Quote 0
            • Marc Berg
              Marc Berg Most Active @Laser last edited by Marc Berg

              @laser
              Wenn ich es richtig verstehe, soll doch der Wert, der in diesem Datenpunkt steht:

              3dc8c3c0-d27e-4700-9372-52d6c1851409-grafik.png

              1:1 angezeigt werden, oder? Das wäre dann der letzte Wert, der in die Datenbank geloggt wurde.
              Vor diesem Hintergrund ergibt es für mich keinen Sinn, mit einem Mittelwert über die Funktion "aggregateWindow (mean)" zu arbeiten. Stattdessen wirst du mit |> last() den jüngsten Wert erhalten.

              Vielleicht zeigst du einfach mal den Inhalt des Datenpunkts und die letzten geloggten Werte in der Influxdb. Villeicht lässt es sich das Problem damit besser auflösen.

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

                @marc-berg der Sonntag mit den Problemwerten ist ja nun vorbei. Hier der Wert des Objektes (nun "vergangene Woche")
                4dc7b80f-8bf9-4956-95a9-22674f54dbd3-image.png
                angezeigt wurde das in meinem vorherigen Beitrag gezeigte.
                Eine Befehlsrefernz , wo z.B. "mean" und "last" erklärt wird, suche ich noch. Das "mean" könnte der Fehler sein.
                Diese Befehlsfolge wurde automatisch erstellt, ich habe da nichts dazu getan.
                Aber das kommt ja in der abgewandelten Form in Grafana gar nicht mehr vor?

                from(bucket: "iobroker")
                  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                  |> filter(fn: (r) => r["_measurement"] == "sourceanalytix.0.alias__0__Panel power V-Ladegerät__PPV.currentYear.delivered.currentWeek.01_Monday")
                  |> filter(fn: (r) => r["_field"] == "value")
                  |> keep(columns: ["_value"])
                  |> rename(columns: {_value:"Montag"})
                

                Nur in der Datenbank selber:

                from(bucket: "iobroker")
                  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                  |> filter(fn: (r) => r["_measurement"] == "sourceanalytix.0.alias__0__Panel power V-Ladegerät__PPV.currentYear.delivered.currentWeek.01_Monday")
                  |> filter(fn: (r) => r["_field"] == "value")
                  |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
                  |> yield(name: "mean")
                
                Marc Berg 1 Reply Last reply Reply Quote 0
                • Marc Berg
                  Marc Berg Most Active @Laser last edited by Marc Berg

                  @laser sagte in Grafana + Influx 2 + Flux + Bar Gauge:

                  Diese Befehlsfolge wurde automatisch erstellt, ich habe da nichts dazu getan.

                  Genau das ist das Problem. In der Gui der Influxdb wird standardmäßig die "aggregateWindow" Funktion ergänzt. Je nach ausgewählten Zeitraum werden dann z.B. Mittelwerte (mean) berechnet. Wenn du die Zeile entfernst und dafür

                  |> last()
                  

                  einfügst, wird der letzte im "Range" Zeitraum selektierte Wert geliefert.

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

                    @marc-berg so? (scheint den richtigen Wert anzuzeigen)
                    from(bucket: "iobroker")
                    |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                    |> filter(fn: (r) => r["_measurement"] == "sourceanalytix.0.alias__0__Panel power V-Ladegerät__PPV.currentYear.delivered.currentWeek.01_Monday")
                    |> filter(fn: (r) => r["_field"] == "value")
                    |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)
                    |> keep(columns: ["_value"])
                    |> rename(columns: {_value:"Montag"})

                    06fb7f93-8b2f-4f16-8a51-d9f5348e6663-image.png

                    ? Marc Berg 2 Replies Last reply Reply Quote 0
                    • ?
                      A Former User @Laser last edited by

                      @laser sagte in Grafana + Influx 2 + Flux + Bar Gauge:

                      from(bucket: "iobroker")
                      |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                      |> filter(fn: (r) => r["_measurement"] == "sourceanalytix.0.alias__0__Panel power V-Ladegerät__PPV.currentYear.delivered.currentWeek.01_Monday")
                      |> filter(fn: (r) => r["_field"] == "value")
                      |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)
                      |> keep(columns: ["_value"])
                      |> rename(columns: {_value:"Montag"})

                      Moin,

                      wie @Marc-Berg schon sagte, das aggregateWindow brauchst Du nicht, da Du ja nur den letzten Wert vom Tag brauchst.

                      from(bucket: "iobroker")
                      |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                      |> filter(fn: (r) => r["_measurement"] == "sourceanalytix.0.alias__0__Panel power V-Ladegerät__PPV.currentYear.delivered.currentWeek.01_Monday")
                      |> filter(fn: (r) => r["_field"] == "value")
                      |> keep(columns: ["_value"])
                      |> rename(columns: {_value:"Montag"})
                      |> last ()
                      

                      VG
                      Bernd

                      1 Reply Last reply Reply Quote 0
                      • Marc Berg
                        Marc Berg Most Active @Laser last edited by

                        @laser sagte in Grafana + Influx 2 + Flux + Bar Gauge:

                        from(bucket: "iobroker")
                        |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                        |> filter(fn: (r) => r["_measurement"] == "sourceanalytix.0.alias__0__Panel power V-Ladegerät__PPV.currentYear.delivered.currentWeek.01_Monday")
                        |> filter(fn: (r) => r["_field"] == "value")
                        |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)
                        |> keep(columns: ["_value"])
                        |> rename(columns: {_value:"Montag"})

                        das geht auch, aber

                        from(bucket: "iobroker")
                        |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                        |> filter(fn: (r) => r["_measurement"] == "sourceanalytix.0.alias__0__Panel power V-Ladegerät__PPV.currentYear.delivered.currentWeek.01_Monday")
                        |> filter(fn: (r) => r["_field"] == "value")
                        |> last()
                        |> keep(columns: ["_value"])
                        |> rename(columns: {_value:"Montag"})
                        

                        ist für dein Anwendungsfall die bessere Variante. "aggregateWindow" benutzt du vor allem, wenn du Zeiträume in Kurven darstellen willst, und beispielsweise den Maximal-/Mittel-/Mindest-Wert in einem 5m Minuten Intervall ermitteln möchtest.

                        In dem hier geplanten Szenario benötigst du ja GENAU EINEN Wert. Und das ist hier mit der "last()" Funktion der letzte/jüngste Wert im "Range".

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

                          @marc-berg , @dp20eic
                          Danke! So klappt das. Bin noch auf der Suche nach etwas, wo diese Dinge erklärt werden (Befehlsreferenz o.ä.)

                          Marc Berg 1 Reply Last reply Reply Quote 0
                          • Marc Berg
                            Marc Berg Most Active @Laser last edited by Marc Berg

                            @laser sagte in Grafana + Influx 2 + Flux + Bar Gauge:

                            @marc-berg , @dp20eic
                            Danke! So klappt das. Bin noch auf der Suche nach etwas, wo diese Dinge erklärt werden (Befehlsreferenz o.ä.)

                            https://docs.influxdata.com/influxdb/v2.7/query-data/get-started/query-influxdb/

                            ?

                            Und das Youtube Video von @haus-automatisierung für den Einstieg.

                            L 1 Reply Last reply Reply Quote 2
                            • L
                              Laser @Marc Berg last edited by

                              @marc-berg Werde mich durch die docs.influxdata.com durchkämpfen. Bisher fehlt mir noch der Anfang. Wenn man z.B. nichts von der Existenz "mean" oder "last" weiß, wird es schwierig. Aber sicher nicht unmöglich...

                              1 Reply Last reply Reply Quote 0
                              • ?
                                A Former User last edited by

                                @laser sagte in Grafana + Influx 2 + Flux + Bar Gauge:

                                @marc-berg Werde mich durch die docs.influxdata.com durchkämpfen. Bisher fehlt mir noch der Anfang. Wenn man z.B. nichts von der Existenz "mean" oder "last" weiß, wird es schwierig. Aber sicher nicht unmöglich...

                                Moin,

                                Du hast in der influxDB Web-UI die Möglichkeit jede Funktion, die es gibt, mit einer Kurzbeschreibung anzuschauen.

                                Einfach mal in das Feld z.B. mean oder last eingeben, dann mit der Maus auf den Befehl und Du bekommst eine Beschreibung und einen Link zur ausführlichen Beschreibung bei influxDB.

                                22fa55c3-783d-4d4d-a6f4-9793cea25ee2-grafik.png

                                VG
                                Bernd

                                L 1 Reply Last reply Reply Quote 2
                                • L
                                  Laser @Guest last edited by Laser

                                  @dp20eic Ich versuche mich daran...
                                  z.B. das:

                                  from(bucket: "iobroker")
                                      |> range(start: -2d, stop: -2m)
                                      |> filter(fn: (r) => r._measurement == "sourceanalytix.0.alias__0__Panel power V-Ladegerät__PPV.currentYear.delivered.previousWeek.01_Monday")
                                      |> filter(fn: (r) => r["_field"] == "value")
                                      |> last()
                                      |> keep(columns: ["_value"])
                                      |> rename(columns: {_value:"Montag"})
                                  

                                  suche ich noch, warum die Unterschrift nicht erscheint (Montag)
                                  Auch ohne "rename" steht da nichts...
                                  Wenn ich noch eine Query / Säule daneben bringe, steht der Text da.

                                  ? 1 Reply Last reply Reply Quote 0
                                  • ?
                                    A Former User @Laser last edited by

                                    @laser

                                    Moin,

                                    ich kenne Dein Bucket nicht, aber kannst Du einmal bitte Folgendes posten?

                                    243c3f9c-c6a4-46a4-9f89-daf1e78d82d3-grafik.png

                                    Natürlich mit Deinen Daten 🙂

                                    VG
                                    Bernd

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

                                      @dp20eic Diese Eingaben habe ich ja manuell gemacht. Die 2. Säule aus der Datenbank gewonnen. Damit habe ich die Unterschrift. 2. Säule: (mean gegen last getauscht)

                                      from(bucket: "iobroker")
                                        |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                                        |> filter(fn: (r) => r["_measurement"] == "sourceanalytix.0.alias__0__Panel power V-Ladegerät__PPV.currentYear.delivered.currentWeek.01_Monday")
                                        |> filter(fn: (r) => r["_field"] == "value")
                                        |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
                                        |> yield(name: "mean")
                                      

                                      b233b05d-e16c-44b5-9a84-9d13636fcedb-image.png
                                      Edit: muß jetzt erst mal weg!

                                      ? 1 Reply Last reply Reply Quote 0
                                      • ?
                                        A Former User @Laser last edited by

                                        @laser sagte in Grafana + Influx 2 + Flux + Bar Gauge:

                                        @dp20eic Diese Eingaben habe ich ja manuell gemacht. Die 2. Säule aus der Datenbank gewonnen. Damit habe ich die Unterschrift. 2. Säule: (mean gegen last getauscht)

                                        from(bucket: "iobroker")
                                          |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                                          |> filter(fn: (r) => r["_measurement"] == "sourceanalytix.0.alias__0__Panel power V-Ladegerät__PPV.currentYear.delivered.currentWeek.01_Monday")
                                          |> filter(fn: (r) => r["_field"] == "value")
                                          |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
                                          |> yield(name: "mean")
                                        

                                        Moin,

                                        sorry, kann gerade nicht folgen, ich wollte eigentlich im letzten Post von mir nur mal die Ausgangsdaten sehen, denn ich denke, Du versuchst die falsche Spalte umzubenennen.

                                        Wenn Du hier etwas anderes meinst, dann verstehe ich es nicht 😞

                                        VG
                                        Bernd

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

                                          @dp20eic ich hatte zuerst nur einen Bar angelegt, zum Testen. Den, wo jetzt "Montag" druntersteht.
                                          7ca82980-b77c-47ff-b9de-bc5c3e9ce3fd-image.png
                                          Da stand nichts. Erst, als ich den zweiten Bar angelegt hatte, original, wie vom Browser des Influx angelegt, erschien ein Text drunter. Das mit dem Wert hat sich jetzt geklärt. Obwohl sich der Wert Stunden später immer noch auf dem alten Wert befindet. Müßte so wie auf dem rechten Balken sein. Zu dem Zeitpunkt der Erstellung hat es gepasst.

                                          4e87d51b-a025-4de9-85d8-84f129a7b4d6-image.png

                                          a79c4ef9-57c7-43f8-b979-274c14421de6-image.png

                                          ? 1 Reply Last reply Reply Quote 0
                                          • ?
                                            A Former User @Laser last edited by A Former User

                                            @laser

                                            Moin,

                                            ich versuche jetzt mal mit meinen Worten zu beschreiben.

                                            Aus meiner Sicht ist da ein Fehler, denn ich denke, dass Du ja das Anpassen möchtest

                                            a638c51d-c624-4d35-82ed-ce5429981c86-grafik.png

                                            Das solltest Du aber nicht mit rename in der Abfrage machen, sondern in Grafana unter Mapping, in meinem Beispiel würde 0 - 6 stehen, ich ändere das so, dass 0 = Sonntag ist
                                            1633dffa-7386-40d5-a519-3690fd509aaf-grafik.png

                                            Deswegen solltest Du Dir ja die Ausgangsdaten in Deinem Bucket anschauen

                                            Original:
                                            6e596096-1f6e-423b-a471-043a95d452a1-grafik.png

                                            Und das bewirkt das Rename
                                            61d1ec43-585f-4d08-b395-85b975ee420e-grafik.png

                                            Wenn ich etwas versuche, umzubenennen, dass nicht da ist, passiert da nichts
                                            2026ae17-2b5e-4b5a-9fbf-1efcbd0441a7-grafik.png

                                            Mit dem Rename kannst Du nur die Überschriften der Spalten verändern, aber nicht den Inhalt.

                                            Wenn Du z.B.

                                            sonoff.0.DVES_8AA766.SENSOR.SML.total_kwh
                                            

                                            in

                                            teletabby
                                            

                                            Das kannst Du auf zwei Arten machen, entweder alias beim Schreiben in die Datenbank
                                            651c008c-46cf-43cc-bdcc-d693d7db88f8-grafik.png
                                            Oder
                                            28b22fb7-c34c-49ef-a4fa-6ba1ddeeeca0-grafik.png

                                            Dann kannst Du das neue Feld Weekday als Balken Unterschrift nutzen.

                                            So ich hoffe, ich habe jetzt alles richtig verstanden, ansonsten schon mal sorry.

                                            VG
                                            Bernd

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            722
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            6
                                            51
                                            1963
                                            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