Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Off Topic
  4. Grafana & FLUX - count() every day

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    15
    1
    823

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.9k

Grafana & FLUX - count() every day

Geplant Angeheftet Gesperrt Verschoben Off Topic
20 Beiträge 5 Kommentatoren 2.2k Aufrufe 7 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • SegwayS Offline
    SegwayS Offline
    Segway
    schrieb am zuletzt editiert von
    #3

    @meister-mopper sagte in Grafana & FLUX - count() every day:

    |> difference()
    |> aggregateWindow(every: 1d, fn: sum, timeSrc: "_start")```

    Ah sooooo, erst difference und dann aggregate
    Oh man ey.....das sieht gut aus

    Gruß Dirk
    Intel Proxmox Cluster (3x NUC) mit Debian & Proxmox / IoB als VM unter Debian / 60+ Adapter installiert

    1 Antwort Letzte Antwort
    0
    • Meister MopperM Meister Mopper

      @segway

      Hier ein Beispiel für anwachsende Werte:

      import "timezone"
      option location = timezone.location(name: "Europe/Berlin")
      
      from(bucket: "iobroker")
        |> range(start: -30d, stop: v.timeRangeStop)
        |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Energie.PV.Tagesverbrauch" and r["_field"] == "value")
        |> difference()
        |> aggregateWindow(every: 1d, fn: sum, timeSrc: "_start")
      

      114453b3-bc9e-4594-87b5-d5f23489e059-grafik.png

      SegwayS Offline
      SegwayS Offline
      Segway
      schrieb am zuletzt editiert von
      #4

      @meister-mopper
      Der Wert für den aktuellen Tag stimmt aber nicht. Da steht 21 aber ich habe schon 23 Werte drin:

      from(bucket: "iobroker")
        |> range(start: -7d, stop: now())
        |> filter(fn: (r) => r["_measurement"] == "meinDP")
        |> filter(fn: (r) => r["_field"] == "value")
        |> difference()
        |> aggregateWindow(every: 1d, fn: count, timeSrc: "_start")
      
      

      Gruß Dirk
      Intel Proxmox Cluster (3x NUC) mit Debian & Proxmox / IoB als VM unter Debian / 60+ Adapter installiert

      Marc BergM 1 Antwort Letzte Antwort
      0
      • SegwayS Segway

        @meister-mopper
        Der Wert für den aktuellen Tag stimmt aber nicht. Da steht 21 aber ich habe schon 23 Werte drin:

        from(bucket: "iobroker")
          |> range(start: -7d, stop: now())
          |> filter(fn: (r) => r["_measurement"] == "meinDP")
          |> filter(fn: (r) => r["_field"] == "value")
          |> difference()
          |> aggregateWindow(every: 1d, fn: count, timeSrc: "_start")
        
        
        Marc BergM Offline
        Marc BergM Offline
        Marc Berg
        Most Active
        schrieb am zuletzt editiert von Marc Berg
        #5

        @segway Das dürfte ein Zeitzonenproblem sein, guck doch mal bei @Meister-Mopper

        Ansonsten wird UTC als Grundlage genommen und damit die Summe zeitlich verschoben.

        NUC10I3+Ubuntu+Docker+ioBroker+influxDB2+Node Red+EMQX+Grafana

        Pi-hole, Traefik, Checkmk, Conbee II+Zigbee2MQTT, ESPSomfy-RTS, LoRaWAN, Arduino, KiCad

        Benutzt das Voting im Beitrag, wenn er euch geholfen hat.

        SegwayS 1 Antwort Letzte Antwort
        0
        • Marc BergM Marc Berg

          @segway Das dürfte ein Zeitzonenproblem sein, guck doch mal bei @Meister-Mopper

          Ansonsten wird UTC als Grundlage genommen und damit die Summe zeitlich verschoben.

          SegwayS Offline
          SegwayS Offline
          Segway
          schrieb am zuletzt editiert von
          #6

          @marc-berg
          Yup, war ein timezone Problem. Nun passt es !

          Gruß Dirk
          Intel Proxmox Cluster (3x NUC) mit Debian & Proxmox / IoB als VM unter Debian / 60+ Adapter installiert

          1 Antwort Letzte Antwort
          0
          • OstfrieseUnterwegsO Offline
            OstfrieseUnterwegsO Offline
            OstfrieseUnterwegs
            schrieb am zuletzt editiert von
            #7

            mMn kannst du dir difference() sparen. Du berechnest damit die Differenz der einzelnen values, aber machst damit später nichts sondern zählst einfach nur, und zwar jeweils über ein Zeitfenster von einem Tag. Lass also mal difference weg und schau, ob das gleiche rauskommt.

            Eigentlich ist flux genial, wenn man mal begriffen hat, wie es funktioniert - ich bin da auch noch gaaanz am Anfang.

            SegwayS Meister MopperM 2 Antworten Letzte Antwort
            0
            • OstfrieseUnterwegsO OstfrieseUnterwegs

              mMn kannst du dir difference() sparen. Du berechnest damit die Differenz der einzelnen values, aber machst damit später nichts sondern zählst einfach nur, und zwar jeweils über ein Zeitfenster von einem Tag. Lass also mal difference weg und schau, ob das gleiche rauskommt.

              Eigentlich ist flux genial, wenn man mal begriffen hat, wie es funktioniert - ich bin da auch noch gaaanz am Anfang.

              SegwayS Offline
              SegwayS Offline
              Segway
              schrieb am zuletzt editiert von
              #8

              @ostfrieseunterwegs sagte in Grafana & FLUX - count() every day:

              mMn kannst du dir difference() sparen. Du berechnest damit die Differenz der einzelnen values, aber machst damit später nichts sondern zählst einfach nur, und zwar jeweils über ein Zeitfenster von einem Tag. Lass also mal difference weg und schau, ob das gleiche rauskommt.

              Habe ich mal weggelassen.
              Für den laufenden Tag bleibt es gleich ABER für die vorherigen kommt ein Datenpunkt weniger raus mhhhh

              Eigentlich ist flux genial, wenn man mal begriffen hat, wie es funktioniert - ich bin da auch noch gaaanz am Anfang.

              Ja FLUX ist richtig mächtig, aber man muss es erstmal verstehen. Da bin ich noch vor dem Anfang

              Gruß Dirk
              Intel Proxmox Cluster (3x NUC) mit Debian & Proxmox / IoB als VM unter Debian / 60+ Adapter installiert

              1 Antwort Letzte Antwort
              0
              • OstfrieseUnterwegsO OstfrieseUnterwegs

                mMn kannst du dir difference() sparen. Du berechnest damit die Differenz der einzelnen values, aber machst damit später nichts sondern zählst einfach nur, und zwar jeweils über ein Zeitfenster von einem Tag. Lass also mal difference weg und schau, ob das gleiche rauskommt.

                Eigentlich ist flux genial, wenn man mal begriffen hat, wie es funktioniert - ich bin da auch noch gaaanz am Anfang.

                Meister MopperM Offline
                Meister MopperM Offline
                Meister Mopper
                schrieb am zuletzt editiert von
                #9

                @ostfrieseunterwegs sagte in Grafana & FLUX - count() every day:

                mMn kannst du dir difference() sparen.

                Dann kommen bei mir komplett andere Werte.

                Proxmox und HA

                OstfrieseUnterwegsO 1 Antwort Letzte Antwort
                0
                • Meister MopperM Meister Mopper

                  @ostfrieseunterwegs sagte in Grafana & FLUX - count() every day:

                  mMn kannst du dir difference() sparen.

                  Dann kommen bei mir komplett andere Werte.

                  OstfrieseUnterwegsO Offline
                  OstfrieseUnterwegsO Offline
                  OstfrieseUnterwegs
                  schrieb am zuletzt editiert von
                  #10

                  @meister-mopper Ja bei Dir schon, du summierst ja auch auf, Da brauchst du Difference. Aber @Segway will ja wohl nur zählen und nicht rechnen (summieren)

                  SegwayS 1 Antwort Letzte Antwort
                  1
                  • OstfrieseUnterwegsO OstfrieseUnterwegs

                    @meister-mopper Ja bei Dir schon, du summierst ja auch auf, Da brauchst du Difference. Aber @Segway will ja wohl nur zählen und nicht rechnen (summieren)

                    SegwayS Offline
                    SegwayS Offline
                    Segway
                    schrieb am zuletzt editiert von
                    #11

                    @ostfrieseunterwegs
                    Jo ich will einfach nur wissen wieviel Datenpunkt pro Tag in dem Datenpunkt drin sind.

                    Gruß Dirk
                    Intel Proxmox Cluster (3x NUC) mit Debian & Proxmox / IoB als VM unter Debian / 60+ Adapter installiert

                    1 Antwort Letzte Antwort
                    0
                    • OstfrieseUnterwegsO Offline
                      OstfrieseUnterwegsO Offline
                      OstfrieseUnterwegs
                      schrieb am zuletzt editiert von OstfrieseUnterwegs
                      #12

                      Wahrscheinlich wisst ihr das, aber ich mache mir das mit flux immer folgendermaßen klar

                      from(bucket: "iobroker")
                      --> Schau mal in den Datentopf iobroker, zapfe ihn an und liefere mir mal alles was

                      |> range(start: -30d, stop: v.timeRangeStop)
                      --> in dem Zeitfenster von -30 Tage bis jetzt liegt

                      |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Energie.PV.Tagesverbrauch" and r["_field"] == "value")
                      --> aber doch nicht alles sondern nur die Datensätze, die dem Kriterium _measurement == "0_userdata.Energie.PV.Tagesverbrauch" entsprechen. Und da auch nicht alle Werte, sondern nur die, die im Feld 'value' stehen

                      Nun habe ich einen stream, der nur noch aus den Paaren Zeitstempel, Wert besteht. Der wird nun weitergereicht an

                      |> difference()
                      --> Berechnet jeweils die Differenz aus zwei aufeinanderfolgenden Werten. Daher nun ein Stream aus Zeitstempel, Differenz-zum-Vorgänger-Wert.
                      Das schieben wir nun in die Aggregate Funktion

                      |> aggregateWindow(every: 1d, fn: sum, timeSrc: "_start")
                      --> die teilt das Ganze in Blöcke auf, die jeweils die Differenzwerte für einen Tag enthalten. Fängt dabei bei _start (das kommt aus dem Range von ganz oben) an. Und innerhalb dieser Blöcke summiere alles auf. Bei @Segway entsprechen fn: count. Weil da nur gezählt wird, ist egal was im Wert steht, da ist nur wichtig, dass irgendwas drin steht.

                      SegwayS 1 Antwort Letzte Antwort
                      2
                      • OstfrieseUnterwegsO OstfrieseUnterwegs

                        Wahrscheinlich wisst ihr das, aber ich mache mir das mit flux immer folgendermaßen klar

                        from(bucket: "iobroker")
                        --> Schau mal in den Datentopf iobroker, zapfe ihn an und liefere mir mal alles was

                        |> range(start: -30d, stop: v.timeRangeStop)
                        --> in dem Zeitfenster von -30 Tage bis jetzt liegt

                        |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Energie.PV.Tagesverbrauch" and r["_field"] == "value")
                        --> aber doch nicht alles sondern nur die Datensätze, die dem Kriterium _measurement == "0_userdata.Energie.PV.Tagesverbrauch" entsprechen. Und da auch nicht alle Werte, sondern nur die, die im Feld 'value' stehen

                        Nun habe ich einen stream, der nur noch aus den Paaren Zeitstempel, Wert besteht. Der wird nun weitergereicht an

                        |> difference()
                        --> Berechnet jeweils die Differenz aus zwei aufeinanderfolgenden Werten. Daher nun ein Stream aus Zeitstempel, Differenz-zum-Vorgänger-Wert.
                        Das schieben wir nun in die Aggregate Funktion

                        |> aggregateWindow(every: 1d, fn: sum, timeSrc: "_start")
                        --> die teilt das Ganze in Blöcke auf, die jeweils die Differenzwerte für einen Tag enthalten. Fängt dabei bei _start (das kommt aus dem Range von ganz oben) an. Und innerhalb dieser Blöcke summiere alles auf. Bei @Segway entsprechen fn: count. Weil da nur gezählt wird, ist egal was im Wert steht, da ist nur wichtig, dass irgendwas drin steht.

                        SegwayS Offline
                        SegwayS Offline
                        Segway
                        schrieb am zuletzt editiert von
                        #13

                        @ostfrieseunterwegs
                        Sehr gute Erklärung !!! TOP

                        Frage:
                        ich habe immer wieder das Problem, dass die Beschriftung der Datenpunkte nicht passt und ich dann per Override arbeiten muss.
                        Kriegt ich das nicht irgendwie "automatisierter" hin ???

                        Gruß Dirk
                        Intel Proxmox Cluster (3x NUC) mit Debian & Proxmox / IoB als VM unter Debian / 60+ Adapter installiert

                        Meister MopperM OstfrieseUnterwegsO GlasfaserG 3 Antworten Letzte Antwort
                        0
                        • SegwayS Segway

                          @ostfrieseunterwegs
                          Sehr gute Erklärung !!! TOP

                          Frage:
                          ich habe immer wieder das Problem, dass die Beschriftung der Datenpunkte nicht passt und ich dann per Override arbeiten muss.
                          Kriegt ich das nicht irgendwie "automatisierter" hin ???

                          Meister MopperM Offline
                          Meister MopperM Offline
                          Meister Mopper
                          schrieb am zuletzt editiert von
                          #14

                          @segway sagte in Grafana & FLUX - count() every day:

                          Kriegt ich das nicht irgendwie "automatisierter" hin ???

                          Ist mir noch nicht gelungen, ich arbeite auch mit overrides.

                          Proxmox und HA

                          GlasfaserG 1 Antwort Letzte Antwort
                          0
                          • SegwayS Segway

                            @ostfrieseunterwegs
                            Sehr gute Erklärung !!! TOP

                            Frage:
                            ich habe immer wieder das Problem, dass die Beschriftung der Datenpunkte nicht passt und ich dann per Override arbeiten muss.
                            Kriegt ich das nicht irgendwie "automatisierter" hin ???

                            OstfrieseUnterwegsO Offline
                            OstfrieseUnterwegsO Offline
                            OstfrieseUnterwegs
                            schrieb am zuletzt editiert von
                            #15

                            @segway Jain... in flux funktioniert leider yield nicht mehr, damit konnte man früher den Namen der Ausgabe setzen, Das geht nun nur noch in Grafana per Override.
                            Aber eine Andere Möglichkeit ist, bei den Einstellungen zum Datenpunkt, einen Alias zu benutzen. Statt dem ellenlangen Namen (oben) kommt es geschmeidig mit dem Alias (unten) in influx an. Da müssten sogar Blanks etc funktionieren, da der Wert ja in das Feld _measurement in der influxdb geschrieben wird.

                            65b46b73-05b6-4d99-bd62-a3f0286877b6-image.png

                            1 Antwort Letzte Antwort
                            0
                            • Meister MopperM Meister Mopper

                              @segway sagte in Grafana & FLUX - count() every day:

                              Kriegt ich das nicht irgendwie "automatisierter" hin ???

                              Ist mir noch nicht gelungen, ich arbeite auch mit overrides.

                              GlasfaserG Offline
                              GlasfaserG Offline
                              Glasfaser
                              schrieb am zuletzt editiert von
                              #16

                              @meister-mopper sagte in Grafana & FLUX - count() every day:

                              Ist mir noch nicht gelungen, ich arbeite auch mit overrides.

                              Ab 28:50 erklärt , mit Value Mapping REGEX

                              https://www.youtube.com/watch?v=fbbmhhgyIn4

                              Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                              OstfrieseUnterwegsO 1 Antwort Letzte Antwort
                              1
                              • GlasfaserG Glasfaser

                                @meister-mopper sagte in Grafana & FLUX - count() every day:

                                Ist mir noch nicht gelungen, ich arbeite auch mit overrides.

                                Ab 28:50 erklärt , mit Value Mapping REGEX

                                https://www.youtube.com/watch?v=fbbmhhgyIn4

                                OstfrieseUnterwegsO Offline
                                OstfrieseUnterwegsO Offline
                                OstfrieseUnterwegs
                                schrieb am zuletzt editiert von
                                #17

                                @glasfaser Stimmt, damit kann man Value mappen. Das geht auch schon in flux. Unten hab ich aus den Werten das % rausgelöscht, weil ich das im Dashboard nicht brauchen konnte. Das import "strings" in der ersten Zeile ist wichtig
                                Außerdem gibt es auch im tab transformation die Möglichkeit, das zu tun. Wie immer gilt: man sollte sich auf eine Art festlegen, sonst sucht man später ewig, wenn mal was nicht funktioniert (also ich: IMMER)

                                import "strings"
                                from(bucket: "iobroker")
                                  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                                  |> filter(fn: (r) => r["_measurement"] == "Device-Status")
                                  |> filter(fn: (r) => r["_field"] == "value")
                                  |> aggregateWindow(every: 12h, fn: last, createEmpty: false)
                                  |> map(fn: (r) => ({r with _value: strings.replaceAll(v: r._value, t: "%", u: "")}))
                                
                                1 Antwort Letzte Antwort
                                1
                                • SegwayS Segway

                                  @ostfrieseunterwegs
                                  Sehr gute Erklärung !!! TOP

                                  Frage:
                                  ich habe immer wieder das Problem, dass die Beschriftung der Datenpunkte nicht passt und ich dann per Override arbeiten muss.
                                  Kriegt ich das nicht irgendwie "automatisierter" hin ???

                                  GlasfaserG Offline
                                  GlasfaserG Offline
                                  Glasfaser
                                  schrieb am zuletzt editiert von Glasfaser
                                  #18

                                  @segway

                                  Die Video´s von diesem YouTuber würde ich dir empfehlen ... bin auch gerade bei 1.8 > 2. am wechseln .

                                  Habe aber die Datenbankabfrage schon in Grafana mit diesem API HTTP hinbekommen , so das ich noch die alte Influx Sprache nutzen kann .

                                  Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                                  1 Antwort Letzte Antwort
                                  0
                                  • Marc BergM Offline
                                    Marc BergM Offline
                                    Marc Berg
                                    Most Active
                                    schrieb am zuletzt editiert von Marc Berg
                                    #19

                                    Ein Umbenennen geht auch einfacher mit der Funktion:

                                    |> rename(columns: {_value: "test"})

                                    Ich weiß nicht, ob das euren Anwendungsfall erschlägt?

                                    Ansonsten arbeite ich gern mit dem "Data Explorer" der Datenbank, damit kann man sich seine Querys schön zusammenklicken und hat auch eine Hilfe bzgl. zusätzlicher Funktionen. Die Query kann man dann nach Grafana kopieren.

                                    a476c59f-4994-45ac-82b1-c4752801365e-grafik.png

                                    e00a1d9f-45ce-49b1-944d-d3065ec266d2-grafik.png

                                    c75be685-3f97-4ec5-ba1f-92328b9dc634-grafik.png

                                    NUC10I3+Ubuntu+Docker+ioBroker+influxDB2+Node Red+EMQX+Grafana

                                    Pi-hole, Traefik, Checkmk, Conbee II+Zigbee2MQTT, ESPSomfy-RTS, LoRaWAN, Arduino, KiCad

                                    Benutzt das Voting im Beitrag, wenn er euch geholfen hat.

                                    OstfrieseUnterwegsO 1 Antwort Letzte Antwort
                                    1
                                    • Marc BergM Marc Berg

                                      Ein Umbenennen geht auch einfacher mit der Funktion:

                                      |> rename(columns: {_value: "test"})

                                      Ich weiß nicht, ob das euren Anwendungsfall erschlägt?

                                      Ansonsten arbeite ich gern mit dem "Data Explorer" der Datenbank, damit kann man sich seine Querys schön zusammenklicken und hat auch eine Hilfe bzgl. zusätzlicher Funktionen. Die Query kann man dann nach Grafana kopieren.

                                      a476c59f-4994-45ac-82b1-c4752801365e-grafik.png

                                      e00a1d9f-45ce-49b1-944d-d3065ec266d2-grafik.png

                                      c75be685-3f97-4ec5-ba1f-92328b9dc634-grafik.png

                                      OstfrieseUnterwegsO Offline
                                      OstfrieseUnterwegsO Offline
                                      OstfrieseUnterwegs
                                      schrieb am zuletzt editiert von
                                      #20

                                      @marc-berg sagte in Grafana & FLUX - count() every day:

                                      |> rename(columns: {_value: "test"})

                                      Jau, wieder was gelernt. :+1:

                                      1 Antwort Letzte Antwort
                                      0
                                      Antworten
                                      • In einem neuen Thema antworten
                                      Anmelden zum Antworten
                                      • Älteste zuerst
                                      • Neuste zuerst
                                      • Meiste Stimmen


                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      390

                                      Online

                                      32.6k

                                      Benutzer

                                      81.9k

                                      Themen

                                      1.3m

                                      Beiträge
                                      Community
                                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                      ioBroker Community 2014-2025
                                      logo
                                      • Anmelden

                                      • Du hast noch kein Konto? Registrieren

                                      • Anmelden oder registrieren, um zu suchen
                                      • Erster Beitrag
                                        Letzter Beitrag
                                      0
                                      • Home
                                      • Aktuell
                                      • Tags
                                      • Ungelesen 0
                                      • Kategorien
                                      • Unreplied
                                      • Beliebt
                                      • GitHub
                                      • Docu
                                      • Hilfe