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 Stromerzeugung / verschwendung summieren

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Grafana Stromerzeugung / verschwendung summieren

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

      Hallo zusammen.

      Ich versuche gerade mir in Grafana eine Anzeige zu bauen, die mir die Tagessumme an erzeugten kWh anzeigt, sowie dann den Strom in kWh den ich verschenkt habe.
      Ich habe ein Smartmeter am Stormzähler, sowie einen Shelly Plug S welches mir alle 30sekunden einen Watt wert in die InfluxDB schreibt.

      hat jemand eine lösung für mich?
      das habe ich bisher:

      from(bucket: "iobroker")
        |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
        |> filter(fn: (r) => r["_measurement"] == "shelly.0.SHPLG-S#DD4CA5#1.Relay0.Power" or r["_measurement"] == "sonoff.0.Stromzähler.SML_curr_w")
        |> filter(fn: (r) => r["_field"] == "value")
        |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
        |> yield(name: "mean")
      

      Screenshot 2024-04-06 205824.png

      Danke! 🙂

      B A 2 Replies Last reply Reply Quote 0
      • B
        Blechbixn @Blechbixn last edited by

        hat keiner einen Tipp für mich?

        1 Reply Last reply Reply Quote 0
        • A
          astrakid @Blechbixn last edited by

          @blechbixn der wattwer des shelly hilft dir nihct. du brauchst einen aktuellen verbrauchswert des letzten zeitraums in kWh. sonst musst du ja aggregieren, das setzt aber voraus, dass der 30s-wert der durchschnittswert der letzten 30s ist, damit du daraus die Summe in kWh errechnen kannst.

          wenn du die absoluten verbrauchsstände hast, kannst die einfach herausholen:
          ...
          |> filter(fn: (r) => r["aggregate"] == "last")
          |> aggregateWindow(every: 1d, fn: first, timeSrc: "_start")
          |> difference()

          gruß,
          andre

          B 1 Reply Last reply Reply Quote 0
          • B
            Blechbixn @astrakid last edited by Blechbixn

            @astrakid danke für deinen Beitrag!
            Problem ist nur, das der Shelly auf Mqtt läuft & damit nicht in der Cloud ist.
            Der Wattwert ist das einzigste was er mir liefert 😕

            25708eca-83d2-4984-abc6-1b154fcfebfe-grafik.png

            Also abschreiben, weils nicht anders funktioniert?
            Cloud möchte ich ungern aktivieren.

            Grüße

            mickym A 2 Replies Last reply Reply Quote 0
            • mickym
              mickym Most Active @Blechbixn last edited by

              @blechbixn Du hast doch die Wh im Energy Datenpunkt. Die sollten hochzählen und wenn Du die in der Influx speicherst musst Du halt die Differenzen der Zählerstände berechnen. Alternativ habe ich gerade einen Node für NodeRed - für sowas gebastelt: https://forum.iobroker.net/topic/73952/tageszähler-stromverbrauch

              Da ist auch ein Blockly von @paul53 - falls Dir das lieber ist.

              1 Reply Last reply Reply Quote 0
              • A
                astrakid @Blechbixn last edited by

                @blechbixn der muss nicht in der cloud sein. weiß nicht, warum shelly den energy-wert nicht hochzählt. mal auf dem shelly direkt geschaut, ob es dafür eine option gibt?

                B 1 Reply Last reply Reply Quote 0
                • B
                  Blechbixn @astrakid last edited by Blechbixn

                  @astrakid hab da beim shelly nichts gefunden...
                  habs jetzt über sourceanalytics gemacht, weiß aber noch nicht wo genau ich deinen code einfügen muss.
                  So wie ichs aktuell gemacht habe funktionierts leider nicht

                  from(bucket: "iobroker")
                    |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                    |> filter(fn: (r) => r["_measurement"] == "sourceanalytix.0.shelly__0__SHPLG-S#DD4CA5#1__Relay0__Power.2024.readingCumulative")
                    |> filter(fn: (r) => r["_field"] == "value")
                    |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
                    |> yield(name: "mean")
                  
                    |> filter(fn: (r) => r["aggregate"] == "last")
                  |> aggregateWindow(every: 1d, fn: first, timeSrc: "_start")
                  |> difference()
                  

                  edit:
                  Versuch 2 der mir logisch gewesen wäre funktioniert auch nicht
                  12f0f506-819b-4fb6-aec0-5ceb034970d2-grafik.png

                  A 1 Reply Last reply Reply Quote 0
                  • A
                    astrakid @Blechbixn last edited by

                    @blechbixn die voraussetzung für meinen codeschnipsel sind abolute zählerwerte - davon wird aus den aggregationsintervall der jeweils letzte wert genommen und die differenz ausgegeben.
                    was steht in der tabelle von sourceanalytix?

                    B 1 Reply Last reply Reply Quote 0
                    • B
                      Blechbixn @astrakid last edited by Blechbixn

                      @astrakid der kumuliert die kWh fürs ganze Jahr, leider gibts da kein Objekt welches die Tageseinspeisung anzeigt.

                      f29586c0-64b7-4176-8023-155e78094233-grafik.png

                      die 12,1kwh zeigt er mir auch an.. Es fehlt eigentlich nur die Rechnung aktueller wert - wert des vortags in der Nacht

                      1369b4a5-0fc5-4361-9c2b-2900e98d1201-grafik.png

                      A 1 Reply Last reply Reply Quote 0
                      • A
                        astrakid @Blechbixn last edited by

                        @blechbixn du musst einen anderen graphen auswählen. du hast stat ausgewählt, der zeigt nr einen wert an. nimm am besten timeseries fürs erste und als zeitraum dann irgendwas größer 2 tage, um auch zwei werte zu sehen.

                        A 1 Reply Last reply Reply Quote 0
                        • A
                          astrakid @astrakid last edited by

                          @astrakid nachtrag: du musst die werte regelmäßig in deine influxdb schreiben, je nachdem wie granular das haben willst. ich schreibe alle 10s einen wert in die DBen und aggregiere später. für die tagesanzeige gehe ich auf minuten-intervalle, für wochen und monats ansichten auf 6h intervalle.

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          839
                          Online

                          31.7k
                          Users

                          79.7k
                          Topics

                          1.3m
                          Posts

                          3
                          11
                          622
                          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