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 BarChart

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Grafana BarChart

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

      Hallo. Baue mir gerade einige Dasboards. Nun möchte ich in folgendem Beispiel meinen Stromverbrauch in € inkl Grundgebühr anzeigen. Den Verbrauch errechne ich mir wie folgt:
      import "timezone"
      option location = timezone.location(name: "Europe/Berlin")
      from(bucket: "smarthome")
      |> range(start: -1mo)
      |> filter(fn: (r) => r._measurement == "strom")
      |> filter(fn: (r) => r["_field"] == "priceIn" or r["_field"] == "Zaehler28Gesamt")
      |> pivot(rowKey: ["_time"], columnKey: ["_field"], valueColumn: "_value")
      |> difference(columns: ["Zaehler18Gesamt"])
      |> map(fn: (r) => ({r with _value: r.Zaehler18Gesamt}))
      |> aggregateWindow(every: 24h, fn: sum, timeSrc: "_start")

      Nun möchte ich den Strompreis errechnen. Ich möchte dies aber nicht über einen festen Wert oder in Transformation erstellen sondern den wert nehmen der immer mit dem ändern des Zählerstands mitkommt. ( PriceTag) Wie mache ich das ? Die Grundgebühr pro Tag hab ich als Datenpunkt bzw in Influx DB. Ich weiß nur nicht wie ich es anzeigen , berechnen soll. Wie muss das Query aussehen?

      import "timezone"
      option location = timezone.location(name: "Europe/Berlin")
      from(bucket: "smarthome")
      |> range(start: -1mo)
      |> filter(fn: (r) => r._measurement == "strom")
      |> filter(fn: (r) => r["_field"] == "priceIn" or r["_field"] == "Zaehler18Gesamt")
      |> pivot(rowKey: ["_time"], columnKey: ["_field"], valueColumn: "_value")
      |> difference(columns: ["Zaehler18Gesamt"])
      |> map(fn: (r) => ({r with _value: r.Zaehler18Gesamt * r.priceIn}))
      |> aggregateWindow(every: 24h, fn: sum, timeSrc: "_start")

      priceTag wäre der Datenpunkt.

      GrüßeGrafana.png

      Habs mal so gemacht.
      Grafana2.png

      aber warum steht der 03.06 jetzt 2 mal drin ?

      habs jetzt so geändert.
      import "timezone"
      option location = timezone.location(name: "Europe/Berlin")
      from(bucket: "smarthome")
      |> range(start: -1mo)
      |> filter(fn: (r) => r["_measurement"] == "strom")
      |> filter(fn: (r) => r["_field"] == "priceTag")
      |> aggregateWindow(every: 24h, fn: mean, timeSrc: "_start")
      |> yield(name: "mean")Grafana3.png

      mickemup 1 Reply Last reply Reply Quote 0
      • mickemup
        mickemup @emely2312 last edited by

        @emely2312
        Was ist jetzt am Schluss genau deine Frage?

        Im letzten Plot hast du den 3.5 doppelt.
        Um dies zu verhindern müsste man noch etwas am Timerange schreiben. ich nehme an der erste DP ist nicht genau gleichzeitig.
        Das kannst du checken wenn du in die "Table" view gehst...

        E 1 Reply Last reply Reply Quote 0
        • E
          emely2312 @mickemup last edited by

          @mickemup ok. Danke. Muss mir die Werte mal anschauen. Passt momentan noch nicht ganz.

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

          Support us

          ioBroker
          Community Adapters
          Donate

          924
          Online

          31.7k
          Users

          79.7k
          Topics

          1.3m
          Posts

          2
          3
          50
          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