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
  5. Grafana Zeitstempel für bar anpassen

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.7k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.1k

Grafana Zeitstempel für bar anpassen

Geplant Angeheftet Gesperrt Verschoben Grafana
9 Beiträge 2 Kommentatoren 700 Aufrufe 2 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.
  • G Offline
    G Offline
    Gaunt
    schrieb am zuletzt editiert von
    #1

    Hallo Zusammen,

    ich bin mir nicht sicher ob das Topic passt. Wenn es ein bessere gibt, bitte verschieben.
    Ich bau mir gerade ein Grafana bar charts zusammen, in dem mir die 3 verschiedene Daten angezeigt werden sollen:

    1. Strom aus dem Netz (gelb)
    2. Aus der Solaranlage verwendeter Strom (grün)
    3. Von der Solaranlage ins Netz eingespeist (blau)
      Alle Farben werden noch überarbeitet ;-)

    Für die abgelaufenen Monate funktioniert das stacking wunderbar. Für den aktuell laufenden Monitor funktioniert es leider nicht. Ursache ist (nach meiner Vermutung) der Zeitstempel in der InfluxDB. Dieser liegt bei den abgelaufenen Monaten beim auf dem letzten Tag im Monat um 21:00 (Z? UTC?).
    Hat jemand ne Idee wie ich die 3 einzelnen Bars stacken kann?
    mir würde dazu einfallen den Zeitstempel dieses Messpunktes zu manipulieren (Uhrzeit abschneiden).
    Gibt es noch andere Möglichkeiten und weis jemand wie ich das durchführen kann?

    a59f216b-4d9f-4cc7-afc7-39ee28aaa5ca-image.png
    dd05e890-38c7-4b8c-8148-521a9a5ac591-image.png

    Ich freue mich über antworten, werde allerdings erst morgen Abend zum Antworten kommen.

    Marc BergM 1 Antwort Letzte Antwort
    0
    • G Gaunt

      Hallo Zusammen,

      ich bin mir nicht sicher ob das Topic passt. Wenn es ein bessere gibt, bitte verschieben.
      Ich bau mir gerade ein Grafana bar charts zusammen, in dem mir die 3 verschiedene Daten angezeigt werden sollen:

      1. Strom aus dem Netz (gelb)
      2. Aus der Solaranlage verwendeter Strom (grün)
      3. Von der Solaranlage ins Netz eingespeist (blau)
        Alle Farben werden noch überarbeitet ;-)

      Für die abgelaufenen Monate funktioniert das stacking wunderbar. Für den aktuell laufenden Monitor funktioniert es leider nicht. Ursache ist (nach meiner Vermutung) der Zeitstempel in der InfluxDB. Dieser liegt bei den abgelaufenen Monaten beim auf dem letzten Tag im Monat um 21:00 (Z? UTC?).
      Hat jemand ne Idee wie ich die 3 einzelnen Bars stacken kann?
      mir würde dazu einfallen den Zeitstempel dieses Messpunktes zu manipulieren (Uhrzeit abschneiden).
      Gibt es noch andere Möglichkeiten und weis jemand wie ich das durchführen kann?

      a59f216b-4d9f-4cc7-afc7-39ee28aaa5ca-image.png
      dd05e890-38c7-4b8c-8148-521a9a5ac591-image.png

      Ich freue mich über antworten, werde allerdings erst morgen Abend zum Antworten kommen.

      Marc BergM Offline
      Marc BergM Offline
      Marc Berg
      Most Active
      schrieb am zuletzt editiert von
      #2

      @gaunt sagte in Grafana Zeitstempel für bar anpassen:

      Gibt es noch andere Möglichkeiten und weis jemand wie ich das durchführen kann?

      Zeig mal bitte die Flux-Queries.

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

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

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

      1 Antwort Letzte Antwort
      0
      • G Offline
        G Offline
        Gaunt
        schrieb am zuletzt editiert von
        #3

        @marc-berg said in Grafana Zeitstempel für bar anpassen:

        Zeig mal bitte die Flux-Queries.

        Hier die Querie von der Solarerzeugung:

        import "timezone"
        option location = timezone.location(name: "Europe/Berlin")
        from(bucket: "IOBroker")
          |> range(start: -10mo, stop: now())
          |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Energie.Strom.Historie.AktuellerMonat.StromSolarVerwendet")
          |> filter(fn: (r) => r["_field"] == "value")
          |> aggregateWindow(every: 1mo, offset: -10s, fn: last, createEmpty: false)
          |> yield(name: "Solar")
        

        Hier ist die vom Netzbezug:

        import "timezone"
        option location = timezone.location(name: "Europe/Berlin")
        from(bucket: "IOBroker")
          |> range(start: -10mo, stop: now())
          |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Energie.Strom.Historie.AktuellerMonat.StromBezug")
          |> filter(fn: (r) => r["_field"] == "value")
          |> aggregateWindow(every: 1mo, offset: -10s, fn: last, createEmpty: false)
          |> yield(name: "bezug")
        

        Und hier von der Einspeisung aus der Solaranlage ins Netz:

        import "timezone"
        option location = timezone.location(name: "Europe/Berlin")
        from(bucket: "IOBroker")
          |> range(start: -10mo, stop: now())
          |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Energie.Strom.Historie.AktuellerMonat.StromEingespeist")
          |> filter(fn: (r) => r["_field"] == "value")
          |> aggregateWindow(every: 1mo, offset: -10s, fn: last, createEmpty: false)
            |> map(fn: (r) => ({ r with _value: r._value * -1.0 }))
          |> yield(name: "Eingespeist")
        

        Alle Datenpunkte werden im IOBroker geschrieben wenn sich der Wert (z.B. Netzbezug) erhöht und vom IOBroker wird alle 10min in die InfluxDB geschrieben.

        Marc BergM 1 Antwort Letzte Antwort
        0
        • G Gaunt

          @marc-berg said in Grafana Zeitstempel für bar anpassen:

          Zeig mal bitte die Flux-Queries.

          Hier die Querie von der Solarerzeugung:

          import "timezone"
          option location = timezone.location(name: "Europe/Berlin")
          from(bucket: "IOBroker")
            |> range(start: -10mo, stop: now())
            |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Energie.Strom.Historie.AktuellerMonat.StromSolarVerwendet")
            |> filter(fn: (r) => r["_field"] == "value")
            |> aggregateWindow(every: 1mo, offset: -10s, fn: last, createEmpty: false)
            |> yield(name: "Solar")
          

          Hier ist die vom Netzbezug:

          import "timezone"
          option location = timezone.location(name: "Europe/Berlin")
          from(bucket: "IOBroker")
            |> range(start: -10mo, stop: now())
            |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Energie.Strom.Historie.AktuellerMonat.StromBezug")
            |> filter(fn: (r) => r["_field"] == "value")
            |> aggregateWindow(every: 1mo, offset: -10s, fn: last, createEmpty: false)
            |> yield(name: "bezug")
          

          Und hier von der Einspeisung aus der Solaranlage ins Netz:

          import "timezone"
          option location = timezone.location(name: "Europe/Berlin")
          from(bucket: "IOBroker")
            |> range(start: -10mo, stop: now())
            |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Energie.Strom.Historie.AktuellerMonat.StromEingespeist")
            |> filter(fn: (r) => r["_field"] == "value")
            |> aggregateWindow(every: 1mo, offset: -10s, fn: last, createEmpty: false)
              |> map(fn: (r) => ({ r with _value: r._value * -1.0 }))
            |> yield(name: "Eingespeist")
          

          Alle Datenpunkte werden im IOBroker geschrieben wenn sich der Wert (z.B. Netzbezug) erhöht und vom IOBroker wird alle 10min in die InfluxDB geschrieben.

          Marc BergM Offline
          Marc BergM Offline
          Marc Berg
          Most Active
          schrieb am zuletzt editiert von
          #4

          @gaunt sagte in Grafana Zeitstempel für bar anpassen:

          |> aggregateWindow(every: 1mo, offset: -10s, fn: last, createEmpty: false)

          Ich bin kein Fan von Offsets in den Queries, was soll damit erreicht werden?

          Versuche mal die drei Zeilen

          |> aggregateWindow(every: 1mo, offset: -10s, fn: last, createEmpty: false)
          

          auszutauschen durch

          |> aggregateWindow(every: 1mo, fn: last, createEmpty: false, timeSrc: "_start")
          

          Ohne die Quelldaten ist es natürlich etwas schwierig.

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

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

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

          G 1 Antwort Letzte Antwort
          0
          • Marc BergM Marc Berg

            @gaunt sagte in Grafana Zeitstempel für bar anpassen:

            |> aggregateWindow(every: 1mo, offset: -10s, fn: last, createEmpty: false)

            Ich bin kein Fan von Offsets in den Queries, was soll damit erreicht werden?

            Versuche mal die drei Zeilen

            |> aggregateWindow(every: 1mo, offset: -10s, fn: last, createEmpty: false)
            

            auszutauschen durch

            |> aggregateWindow(every: 1mo, fn: last, createEmpty: false, timeSrc: "_start")
            

            Ohne die Quelldaten ist es natürlich etwas schwierig.

            G Offline
            G Offline
            Gaunt
            schrieb am zuletzt editiert von
            #5

            @marc-berg

            Super cool.
            das hat funktioniert. Der Wert der im November steht, ist zwar der falsche. Aber der gleiche falsche Wert steht auch in der Datenbank. Daher funktioniert es genau so wie es sollte.

            Kannst du mir noch sagen was der Code der das Offset ersetzt hat macht?

            timeSrc: "_start"
            

            aca72d85-e26f-49f1-ad51-274631a1ce2d-image.png

            Marc BergM 1 Antwort Letzte Antwort
            0
            • G Gaunt

              @marc-berg

              Super cool.
              das hat funktioniert. Der Wert der im November steht, ist zwar der falsche. Aber der gleiche falsche Wert steht auch in der Datenbank. Daher funktioniert es genau so wie es sollte.

              Kannst du mir noch sagen was der Code der das Offset ersetzt hat macht?

              timeSrc: "_start"
              

              aca72d85-e26f-49f1-ad51-274631a1ce2d-image.png

              Marc BergM Offline
              Marc BergM Offline
              Marc Berg
              Most Active
              schrieb am zuletzt editiert von Marc Berg
              #6

              @gaunt sagte in Grafana Zeitstempel für bar anpassen:

              Kannst du mir noch sagen was der Code der das Offset ersetzt hat macht?

              Mit der aggregateWindow Funktion werden ja eine Reihe von Werten (in deinem Fall von einem Monat) zusammengefasst und durch EINEN Wert ersetzt. Mit den "fn" Attribut wird festgelegt, was mit den einzelnen Werten passiert ("sum" für Summe, "mean" für Mittelwert etc.)
              Jedenfalls wird mit dem "timeSrc" Parameter festgelegt, welchen Zeitstempel der resultierende Wert bekommt. Im Standard wird das ENDE des Zeitfensters angenommen, das mit "aggregateWindow" gebildet wird. Mit "_start" wird dagegen der Anfang des Zeitfensters genommen, also 0 Uhr des ersten des Monats.
              Für den aktuellen Monat ist das Ende des jeweiligen Zeitfensters gleich dem letzten aufgezeichneten Wert. Und wenn nicht alle drei Werte in der selben Mikrosekunde aufgezeichnet wurden, kann nicht gestapelt werden.

              Schwierig zu erklären (ohne was dabei aufzumalen). Ich hoffe, ich konnte es ein wenig klarstellen.

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

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

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

              G 1 Antwort Letzte Antwort
              0
              • Marc BergM Marc Berg

                @gaunt sagte in Grafana Zeitstempel für bar anpassen:

                Kannst du mir noch sagen was der Code der das Offset ersetzt hat macht?

                Mit der aggregateWindow Funktion werden ja eine Reihe von Werten (in deinem Fall von einem Monat) zusammengefasst und durch EINEN Wert ersetzt. Mit den "fn" Attribut wird festgelegt, was mit den einzelnen Werten passiert ("sum" für Summe, "mean" für Mittelwert etc.)
                Jedenfalls wird mit dem "timeSrc" Parameter festgelegt, welchen Zeitstempel der resultierende Wert bekommt. Im Standard wird das ENDE des Zeitfensters angenommen, das mit "aggregateWindow" gebildet wird. Mit "_start" wird dagegen der Anfang des Zeitfensters genommen, also 0 Uhr des ersten des Monats.
                Für den aktuellen Monat ist das Ende des jeweiligen Zeitfensters gleich dem letzten aufgezeichneten Wert. Und wenn nicht alle drei Werte in der selben Mikrosekunde aufgezeichnet wurden, kann nicht gestapelt werden.

                Schwierig zu erklären (ohne was dabei aufzumalen). Ich hoffe, ich konnte es ein wenig klarstellen.

                G Offline
                G Offline
                Gaunt
                schrieb am zuletzt editiert von
                #7

                @marc-berg

                Doch perfekt erklärt. Zu mindestens habe ich es verstanden.

                Was ich eben in meiner Freude Übersehen habe, ist das sich der "Versatz" jetzt auf den Anfang der Datenreihe verschoben hat.
                0a459aa7-a8ca-4f83-bd3a-9320215567a1-image.png

                Die von Grafana aus der DB ausgelesenen Daten sehen so aus:
                ecd2269f-9d03-4c7a-85a9-f3d7713d8384-image.png
                b1faa1e4-64b4-4997-a8fe-184b8e3d53ee-image.png
                1e427364-a640-4112-b931-1e6ce80231bb-image.png
                Das sind die Daten die für diesen Monat in der Datenbank vorliegen (Normalerweise liegen jedoch mehrere Daten für einen Monat vor).
                7ab477be-00de-4efc-b512-043d2a0487fb-image.png

                Marc BergM 1 Antwort Letzte Antwort
                0
                • G Gaunt

                  @marc-berg

                  Doch perfekt erklärt. Zu mindestens habe ich es verstanden.

                  Was ich eben in meiner Freude Übersehen habe, ist das sich der "Versatz" jetzt auf den Anfang der Datenreihe verschoben hat.
                  0a459aa7-a8ca-4f83-bd3a-9320215567a1-image.png

                  Die von Grafana aus der DB ausgelesenen Daten sehen so aus:
                  ecd2269f-9d03-4c7a-85a9-f3d7713d8384-image.png
                  b1faa1e4-64b4-4997-a8fe-184b8e3d53ee-image.png
                  1e427364-a640-4112-b931-1e6ce80231bb-image.png
                  Das sind die Daten die für diesen Monat in der Datenbank vorliegen (Normalerweise liegen jedoch mehrere Daten für einen Monat vor).
                  7ab477be-00de-4efc-b512-043d2a0487fb-image.png

                  Marc BergM Offline
                  Marc BergM Offline
                  Marc Berg
                  Most Active
                  schrieb am zuletzt editiert von Marc Berg
                  #8

                  @gaunt sagte in Grafana Zeitstempel für bar anpassen:

                  "Versatz" jetzt auf den Anfang der Datenreihe verschoben hat.

                  Je nachdem, welchen Zeitraum man anzeigen lässt kann das natürlich passieren. Das kann man verhindern, indem man immer den Anfang des (bei dir) Monats nimmt. Das geht mit der truncate Funktion. Also die "range" Zeilen noch austauschen und "date" importieren.

                  import "date"
                  |> range(start: date.truncate(t:-10mo, unit:1mo))
                  

                  "stop: now()" kann man weglassen, da sowieso der Defaultwert

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

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

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

                  G 1 Antwort Letzte Antwort
                  0
                  • Marc BergM Marc Berg

                    @gaunt sagte in Grafana Zeitstempel für bar anpassen:

                    "Versatz" jetzt auf den Anfang der Datenreihe verschoben hat.

                    Je nachdem, welchen Zeitraum man anzeigen lässt kann das natürlich passieren. Das kann man verhindern, indem man immer den Anfang des (bei dir) Monats nimmt. Das geht mit der truncate Funktion. Also die "range" Zeilen noch austauschen und "date" importieren.

                    import "date"
                    |> range(start: date.truncate(t:-10mo, unit:1mo))
                    

                    "stop: now()" kann man weglassen, da sowieso der Defaultwert

                    G Offline
                    G Offline
                    Gaunt
                    schrieb am zuletzt editiert von
                    #9

                    @marc-berg said in Grafana Zeitstempel für bar anpassen:

                    geht mit der truncate Funktion

                    Genau das hat funktioniert.
                    Vielen Dank nochmal. Das hat mir unglaublich viel geholfen und viele viele Stunden des testen, lesen und Suchens erspart.
                    Zu mindestens wenn das was ich bereits getan habe missachtet.

                    Vielen Dank nochmal :-)

                    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

                    990

                    Online

                    32.4k

                    Benutzer

                    81.5k

                    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