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 - Legendentext aus einem Datenpunkt einer Gruppe

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Grafana - Legendentext aus einem Datenpunkt einer Gruppe

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

      Hallo, ich habe mir das Skript zum Auslesen der Fritzbox-Werte aus diesem Thread geschnappt, und ein wenig angepasst, da ich eine 6591 habe ...

      https://forum.iobroker.net/topic/38443/pegelwerte-fritzbox-6490-cable-auslesen/109?_=1695053945064

      Ein Kanal hat folgenden Datenpunkte:

      19c94b81-dd8e-4e13-ae0e-9477baa89648-grafik.png

      In die influx Datenbank gehen nur die drei Datenpunkte mit den nicht ausgegrauten Zahnrädern.

      Gibt es irgendeine Möglichkeit, die untenstehehende Legendenbeschriftung automatisch zu generieren?

      Ich habe da ziemlich aufwändig die bereits als Datenpunkt für den Kanal im Iobroker vorhandene "Frequency" in Grafana von Hand als "Override" eingetippt

      2e077970-7559-4675-9937-229bdbf4b2d5-grafik.png

      Diesen Override für "Display Name" musste ich für jeden der 30 Kanäle von Hand eintippen...

      ff2fef62-94ff-4bc8-922b-38ceffbaa19d-grafik.png

      Wenn man da im Bulk eine individuelle Beschriftung aus dem Datenpunkt mit der Kanalfrequenz erzeugen könnte, würde das schon Arbeit sparen.

      Hat da jemand eine Idee?

      arteck 1 Reply Last reply Reply Quote 0
      • arteck
        arteck Developer Most Active @MartinP last edited by

        @martinp zeigmal den sql

        MartinP 1 Reply Last reply Reply Quote 0
        • MartinP
          MartinP @arteck last edited by

          @arteck

          from(bucket: "iobroker")
            |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
            |> filter(fn: (r) => r["_measurement"] == "javascript.0.Internet.Docsis.DS.C01.UncorrectableErrorsPerMinute" or r["_measurement"] == "javascript.0.Internet.Docsis.DS.C02.UncorrectableErrorsPerMinute" or r["_measurement"] == "javascript.0.Internet.Docsis.DS.C03.UncorrectableErrorsPerMinute" or r["_measurement"] == "javascript.0.Internet.Docsis.DS.C04.UncorrectableErrorsPerMinute" or r["_measurement"] == "javascript.0.Internet.Docsis.DS.C05.UncorrectableErrorsPerMinute" or r["_measurement"] == "javascript.0.Internet.Docsis.DS.C06.UncorrectableErrorsPerMinute" or r["_measurement"] == "javascript.0.Internet.Docsis.DS.C07.UncorrectableErrorsPerMinute" or r["_measurement"] == "javascript.0.Internet.Docsis.DS.C08.UncorrectableErrorsPerMinute" or r["_measurement"] == "javascript.0.Internet.Docsis.DS.C30.UncorrectableErrorsPerMinute" or r["_measurement"] == "javascript.0.Internet.Docsis.DS.C29.UncorrectableErrorsPerMinute" or r["_measurement"] == "javascript.0.Internet.Docsis.DS.C28.UncorrectableErrorsPerMinute" or r["_measurement"] == "javascript.0.Internet.Docsis.DS.C27.UncorrectableErrorsPerMinute" or r["_measurement"] == "javascript.0.Internet.Docsis.DS.C26.UncorrectableErrorsPerMinute" or r["_measurement"] == "javascript.0.Internet.Docsis.DS.C25.UncorrectableErrorsPerMinute" or r["_measurement"] == "javascript.0.Internet.Docsis.DS.C24.UncorrectableErrorsPerMinute" or r["_measurement"] == "javascript.0.Internet.Docsis.DS.C23.UncorrectableErrorsPerMinute" or r["_measurement"] == "javascript.0.Internet.Docsis.DS.C22.UncorrectableErrorsPerMinute" or r["_measurement"] == "javascript.0.Internet.Docsis.DS.C21.UncorrectableErrorsPerMinute" or r["_measurement"] == "javascript.0.Internet.Docsis.DS.C20.UncorrectableErrorsPerMinute" or r["_measurement"] == "javascript.0.Internet.Docsis.DS.C19.UncorrectableErrorsPerMinute" or r["_measurement"] == "javascript.0.Internet.Docsis.DS.C18.UncorrectableErrorsPerMinute" or r["_measurement"] == "javascript.0.Internet.Docsis.DS.C17.UncorrectableErrorsPerMinute" or r["_measurement"] == "javascript.0.Internet.Docsis.DS.C16.UncorrectableErrorsPerMinute" or r["_measurement"] == "javascript.0.Internet.Docsis.DS.C15.UncorrectableErrorsPerMinute" or r["_measurement"] == "javascript.0.Internet.Docsis.DS.C14.UncorrectableErrorsPerMinute" or r["_measurement"] == "javascript.0.Internet.Docsis.DS.C13.UncorrectableErrorsPerMinute" or r["_measurement"] == "javascript.0.Internet.Docsis.DS.C12.UncorrectableErrorsPerMinute" or r["_measurement"] == "javascript.0.Internet.Docsis.DS.C11.UncorrectableErrorsPerMinute" or r["_measurement"] == "javascript.0.Internet.Docsis.DS.C10.UncorrectableErrorsPerMinute" or r["_measurement"] == "javascript.0.Internet.Docsis.DS.C09.UncorrectableErrorsPerMinute")
            |> filter(fn: (r) => r["_field"] == "value")
            |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)
            |> yield(name: "last")
          
          Marc Berg 1 Reply Last reply Reply Quote 0
          • arteck
            arteck Developer Most Active last edited by

            @martinp
            https://forum.iobroker.net/topic/53354/grafana-query-name-der-werte-in-der-legende-ändern/6

            MartinP 1 Reply Last reply Reply Quote 0
            • MartinP
              MartinP @arteck last edited by

              @arteck Auch da ist es eine Konstante, die da als Feldbeschriftung gesetzt wird.

               set(key: "_field", value: "Stromverbrauch in kWh")
              

              so etwas ähnliches schwebte mir vor

              set(key: "_field", value:"javascript.0.Internet.Docsis.DS.C01.Frequency" )
              
              1 Reply Last reply Reply Quote 0
              • Marc Berg
                Marc Berg Most Active @MartinP last edited by Marc Berg

                @martinp sagte in Grafana - Legendentext aus einem Datenpunkt einer Gruppe:

                set(key: "_field", value:"javascript.0.Internet.Docsis.DS.C01.Frequency" )

                Da die Frequenz in einem separaten Measurement vorliegt, bekommst du das so einfach nicht zusammengestrickt.

                Entweder du machst ein manuelles Mapping innerhalb der Query, das würde dann schnell zusammengeschrieben so aussehen (und muss natürlich angepasst/erweitert werden):

                import "strings"
                from(bucket: "iobroker")
                  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                  |> filter(fn: (r) => r["_measurement"] == "javascript.0.Internet.Docsis.DS.C01.UncorrectableErrorsPerMinute" or r["_measurement"] == "javascript.0.Internet.Docsis.DS.C02.UncorrectableErrorsPerMinute" or r["_measurement"] == "javascript.0.Internet.Docsis.DS.C03.UncorrectableErrorsPerMinute")
                  |> filter(fn: (r) => r["_field"] == "value")
                  |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)
                  |> map(fn: (r) => ({r with _measurement: 
                    if strings.substring(v: r["_measurement"], start: 32, end: 35) == "C01" then "474MHz" 
                    else if strings.substring(v: r["_measurement"], start: 32, end: 35) == "C02" then "480MHz" 
                    else if strings.substring(v: r["_measurement"], start: 32, end: 35) == "C03" then "490MHz" 
                    else "000"
                    }))
                  |> keep(columns: ["_time","_measurement", "_value"]) 
                

                Wenn man es ganz richtig machen wollte, dann würde man per Skript/Node Red/Blockly ein eigenes Measurement "UncorrectableErrorsPerMinute" schreiben und als zusätzliches "Tag" an jeden Datensatz die Frequenz dranschreiben. Dann wäre die Query auch ganz easy und ohne das Mapping machbar. Das Wegschreiben per Influx-Adapter könnte dann entfallen. Aber ich glaube kaum, dass der Aufwand gerechtfertigt wäre.

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

                  @marc-berg Danke, ich glaube, dass ich dann bei der Lösung mit dem Grafana "Override" bleibe. Da ist die Tipparbeit schon erledigt 😉

                  Muss mal schauen, wie sich ein Neustart der Fritzbox auswirkt. Wenn man da jedes Mal die Overrides editieren muss, damit die Frequenzen wieder stimmen (Weil die Fritzbox womöglich dann die Zuordnung Kanalnummer-Frequenz anders anlegt), ist das vielleicht auf die Dauer doch zu mühsam, und ich muss noch einmal nachdenken ...

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

                    @martinp sagte in Grafana - Legendentext aus einem Datenpunkt einer Gruppe:

                    (Weil die Fritzbox womöglich dann die Zuordnung Kanalnummer-Frequenz anders anlegt)

                    Na wenn das wirklich so wäre, dann kommst du um die zweite Variante nicht herum.

                    MartinP 1 Reply Last reply Reply Quote 1
                    • MartinP
                      MartinP @Marc Berg last edited by

                      Wenn ich es nicht darauf anlege, läuft die Fritzbox Monatelang durch ...
                      Ich komme aber aus dem Kabelgebiet von ehemals Unitymedia. Da will Vodafone eine Harmonisierung durchführen, dass die Frequenzen in allen Kabelnetzen (Ehemals Kabel Deutschland, Unitymedia NRW, Unitymedia Hessen, Unitymedia BaWü) identisch den Nutzungen (Kabelfernsehen, Video-On-Demand, Internet usw) zugeordnet werden. Die Umstellung ist bereits im Gange, aber hier noch nicht "durch"...

                      Danach werde ich wohl definitiv noch einmal korrigieren müssen ...

                      MartinP 1 Reply Last reply Reply Quote 0
                      • MartinP
                        MartinP @MartinP last edited by MartinP

                        Die Änderung ist wohl deutlich umfangreicher ...

                        Hier ein bereits umgestelltes Segment

                        https://helpdesk.vodafonekabelforum.de/sendb/belegung-791.html
                        24 x DOCSIS3.0 Down Andere Frequenzen und Kanalbreiten für 2xDOCSIS 3.1 down

                        Und hier mein noch nicht umgestelltes Segment
                        https://helpdesk.vodafonekabelforum.de/sendb/belegung-731.html
                        30 x DOCSIS 3.0 Down 2xDOCSIS3.1 Down

                        Anfang November soll wohl die Umstellung hier in Dortmund erfolgen ...
                        https://helpdesk.vodafonekabelforum.de/wiki/Umstellungstermine_bei_der_Senderumbelegung_2022_/_2023#Nordrhein-Westfalen
                        Hauptsache die Fritzbox kommt mit den neuen Gegebenheiten genau so gut klar, wie bisher, und der Anschluss läuft weiter Stabil...

                        Eigentlich kann man da dann Datenpunkte für die wegfallenden sechs Kanäle löschen...

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        1.1k
                        Online

                        31.7k
                        Users

                        79.7k
                        Topics

                        1.3m
                        Posts

                        3
                        10
                        337
                        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