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 - Stromzähler nachbauen

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Grafana - Stromzähler nachbauen

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

      @lesiflo im Prinzip ja, aber ich habe nur den aktuellen Wert, keine Summe an kWh.

      L 1 Reply Last reply Reply Quote 0
      • L
        lesiflo Most Active @Humidor last edited by lesiflo

        @humidor

        Den kWh Wert aus der Leistung kannst so z.B. berechnen:

        350852cd-9ddf-4d53-bda3-c1b5bd20944d-image.png

        1 Reply Last reply Reply Quote 1
        • Meister Mopper
          Meister Mopper @Humidor last edited by

          @humidor

          Hier nutze ich meine Smartmeter-Daten, die kommen fortlaufend von meinem Stromzähler.

          87234478-4a4a-48ba-8ad2-df50c3629b99-grafik.png

          Humidor 1 Reply Last reply Reply Quote 1
          • Humidor
            Humidor @Meister Mopper last edited by

            @meister-mopper welcher Wert kommt da ins Grafana, der pos. Watt-Wert?

            Meister Mopper 1 Reply Last reply Reply Quote 0
            • Meister Mopper
              Meister Mopper @Humidor last edited by

              @humidor sagte in Grafana - Stromzähler nachbauen:

              @meister-mopper welcher Wert kommt da ins Grafana, der pos. Watt-Wert?

              Jap

              Humidor 1 Reply Last reply Reply Quote 0
              • Humidor
                Humidor @Meister Mopper last edited by

                @meister-mopper kannst mir bitte den code einstellen, sonst müsste ich ihne mühsam abtipseln 🙂

                Meister Mopper 1 Reply Last reply Reply Quote 0
                • Meister Mopper
                  Meister Mopper @Humidor last edited by Meister Mopper

                  @humidor

                  Hier das json zum importieren, da sind dann auch alle Formatierungen und overrides mit drin:

                  {
                   "datasource": {
                     "type": "influxdb",
                     "uid": "000000001"
                   },
                   "description": "",
                   "fieldConfig": {
                     "defaults": {
                       "custom": {
                         "lineWidth": 1,
                         "fillOpacity": 80,
                         "gradientMode": "none",
                         "axisPlacement": "auto",
                         "axisLabel": "",
                         "axisColorMode": "text",
                         "axisBorderShow": false,
                         "scaleDistribution": {
                           "type": "linear"
                         },
                         "axisCenteredZero": false,
                         "hideFrom": {
                           "tooltip": false,
                           "viz": false,
                           "legend": false
                         },
                         "thresholdsStyle": {
                           "mode": "off"
                         }
                       },
                       "color": {
                         "mode": "fixed",
                         "fixedColor": "red"
                       },
                       "mappings": [],
                       "thresholds": {
                         "mode": "absolute",
                         "steps": [
                           {
                             "color": "green",
                             "value": null
                           },
                           {
                             "color": "red",
                             "value": 80
                           }
                         ]
                       },
                       "links": [],
                       "min": 0,
                       "unit": "kwatth"
                     },
                     "overrides": [
                       {
                         "matcher": {
                           "id": "byName",
                           "options": "Time"
                         },
                         "properties": [
                           {
                             "id": "unit",
                             "value": "time: D dd"
                           }
                         ]
                       }
                     ]
                   },
                   "gridPos": {
                     "h": 7,
                     "w": 12,
                     "x": 12,
                     "y": 27
                   },
                   "hideTimeOverride": true,
                   "id": 98,
                   "interval": "1d",
                   "options": {
                     "orientation": "auto",
                     "xTickLabelRotation": -90,
                     "xTickLabelSpacing": 0,
                     "showValue": "always",
                     "stacking": "none",
                     "groupWidth": 0.7,
                     "barWidth": 0.7,
                     "barRadius": 0,
                     "fullHighlight": false,
                     "tooltip": {
                       "mode": "single",
                       "sort": "none"
                     },
                     "legend": {
                       "showLegend": false,
                       "displayMode": "list",
                       "placement": "bottom",
                       "calcs": []
                     }
                   },
                   "pluginVersion": "8.5.1",
                   "targets": [
                     {
                       "datasource": {
                         "type": "influxdb",
                         "uid": "000000001"
                       },
                       "groupBy": [
                         {
                           "params": [
                             "$__interval"
                           ],
                           "type": "time"
                         },
                         {
                           "params": [
                             "null"
                           ],
                           "type": "fill"
                         }
                       ],
                       "measurement": "0_userdata.0.Energie.PV.Netzbezug",
                       "orderByTime": "ASC",
                       "policy": "default",
                       "query": "import \"timezone\"\r\noption location = timezone.location(name: \"Europe/Berlin\")\r\n\r\nfrom(bucket: \"iobroker\")\r\n  |> range(start: -1mo, stop: v.timeRangeStop)\r\n  |> filter(fn: (r) => r[\"_measurement\"] == \"smartmeter.0.1-0:1_8_0__255.value\" and r[\"_field\"] == \"value\")\r\n  |> difference()\r\n  |> aggregateWindow(every: 1d, fn: sum, timeSrc: \"_start\")",
                       "refId": "A",
                       "resultFormat": "time_series",
                       "select": [
                         [
                           {
                             "params": [
                               "value"
                             ],
                             "type": "field"
                           },
                           {
                             "params": [],
                             "type": "max"
                           }
                         ]
                       ],
                       "tags": []
                     },
                     {
                       "alias": "Direct self-use",
                       "datasource": {
                         "type": "influxdb",
                         "uid": "000000001"
                       },
                       "groupBy": [
                         {
                           "params": [
                             "$__interval"
                           ],
                           "type": "time"
                         },
                         {
                           "params": [
                             "null"
                           ],
                           "type": "fill"
                         }
                       ],
                       "hide": false,
                       "measurement": "kWh",
                       "orderByTime": "ASC",
                       "policy": "default",
                       "refId": "B",
                       "resultFormat": "time_series",
                       "select": [
                         [
                           {
                             "params": [
                               "value"
                             ],
                             "type": "field"
                           },
                           {
                             "params": [],
                             "type": "max"
                           }
                         ]
                       ],
                       "tags": [
                         {
                           "key": "entity_id",
                           "operator": "=",
                           "value": "selfuse_energy_daily"
                         }
                       ]
                     }
                   ],
                   "timeFrom": "1h",
                   "title": "Tagesbezug (Monat)",
                   "type": "barchart"
                  }
                  

                  Hier influx

                  import "timezone"
                  option location = timezone.location(name: "Europe/Berlin")
                  
                  from(bucket: "iobroker")
                    |> range(start: -1mo, stop: v.timeRangeStop)
                    |> filter(fn: (r) => r["_measurement"] == "smartmeter.0.1-0:1_8_0__255.value" and r["_field"] == "value")
                    |> difference()
                    |> aggregateWindow(every: 1d, fn: sum, timeSrc: "_start")
                  
                  Humidor 1 Reply Last reply Reply Quote 1
                  • Humidor
                    Humidor @Meister Mopper last edited by

                    @meister-mopper sagte in Grafana - Stromzähler nachbauen:

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

                    OK, das kapier ich noch nicht
                    woher stammt der "Spoiler"? iobroker oder grafana?
                    wenn ich deine Influx Text (geändert auf meine Werte) eingebe, kommt mal nix
                    Bildschirmfoto 2024-10-14 um 16.56.15.png

                    Meister Mopper 1 Reply Last reply Reply Quote 0
                    • Meister Mopper
                      Meister Mopper @Humidor last edited by Meister Mopper

                      @humidor sagte in Grafana - Stromzähler nachbauen:

                      woher stammt der "Spoiler"? iobroker oder grafana?

                      Das ist das json des dashboard von Grafana und kann in Grafana eingelesen werden.

                      Humidor 1 Reply Last reply Reply Quote 0
                      • Humidor
                        Humidor @Meister Mopper last edited by Humidor

                        @meister-mopper etwas weiter bin ich gekommen, habe dein dashboard eingelesen, darin ein panel geöffnet mit das query eingetragen
                        (ist das richtig ein Panel zu öffnen, das ist auf std. Einstellungen)

                        nun sehe ich diese Information
                        Bildschirmfoto 2024-10-15 um 06.32.50.png
                        Bildschirmfoto 2024-10-15 um 06.33.59.png
                        Bildschirmfoto 2024-10-15 um 06.36.51.png

                        1 Reply Last reply Reply Quote 0
                        • Meister Mopper
                          Meister Mopper last edited by

                          Schau mal hier.

                          Damit habe ich es hinbekommen.

                          Humidor 1 Reply Last reply Reply Quote 1
                          • Humidor
                            Humidor @Meister Mopper last edited by Humidor

                            @meister-mopper super, danke, habs soweit kapiert

                            jetzt habe ich ein Problem mit den Daten
                            Alias - aus einem Mqtt Wert wird der aktuelle Wert (Leistung) entnommen
                            Alias - aus einem Mqtt Wert nur der Neg. Wert
                            Alias - aus einem Mqtt Wert nur der Pos. Wert

                            alle werden in die Influx eingetragen

                            wenn ich mir im ioBroker den Verlauf ansehe, sehe ich die jeweiligen Werte zBsp. bezogen auf 1 Tag

                            im Grafana mit der Summen Funktion, kommt dann irgendwas raus, auch Minuswerte??
                            Bildschirmfoto 2024-10-15 um 16.08.40.png

                            Bildschirmfoto 2024-10-15 um 16.08.22.png

                            Bildschirmfoto 2024-10-15 um 16.08.15.png

                            Meister Mopper 1 Reply Last reply Reply Quote 0
                            • Meister Mopper
                              Meister Mopper @Humidor last edited by

                              @humidor sagte in Grafana - Stromzähler nachbauen:

                              @meister-mopper super, danke, habs soweit kapiert

                              jetzt habe ich ein Problem mit den Daten
                              Alias - aus einem Mqtt Wert wird der aktuelle Wert (Leistung) entnommen
                              Alias - aus einem Mqtt Wert nur der Neg. Wert
                              Alias - aus einem Mqtt Wert nur der Pos. Wert

                              alle werden in die Influx eingetragen

                              wenn ich mir im ioBroker den Verlauf ansehe, sehe ich die jeweiligen Werte zBsp. bezogen auf 1 Tag

                              im Grafana mit der Summen Funktion, kommt dann irgendwas raus, auch Minuswerte??
                              Bildschirmfoto 2024-10-15 um 16.08.40.png

                              Bildschirmfoto 2024-10-15 um 16.08.22.png

                              Bildschirmfoto 2024-10-15 um 16.08.15.png

                              Tatsächlich kann ich nicht nachvollziehen, was du hier sagen möchtest. Meinst mit negativen Werten die Einspeisung?

                              Ich rechne alle Negativdaten in positive Werte um. Mit diesen Daten arbeite ich in Grafana,

                              b2198f49-ea63-41fa-b40d-5972b22a8990-grafik.png

                              Humidor 1 Reply Last reply Reply Quote 0
                              • Humidor
                                Humidor @Meister Mopper last edited by Humidor

                                @meister-mopper mache ich genauso, dh die neg. Werte werden in pos. Werte umgerechnet, es geht mir um die Summen wieviel Bezug bzw. Lieferung stattgefunden hat.
                                Aus pos. Werte wird im Grafana ein Minuswert erzeugt, völliger quatsch. Aber wo liegt der Fehler?

                                du siehst am Graph vom ioBroker die pos. Werte, da müsste im Grafana dann die Summe berechnet werden. Soweit klar, raus kommt aber unsinnige Werte und auch Minus.

                                Meister Mopper 1 Reply Last reply Reply Quote 0
                                • Meister Mopper
                                  Meister Mopper @Humidor last edited by

                                  @humidor sagte in Grafana - Stromzähler nachbauen:

                                  Aber wo liegt der Fehler?

                                  Okay, das sind zwei verschiedene Ausgangslagen und ein Missverständnis.

                                  Ich visualisiere bei dem täglichen Verbrauch im letzten Monat sowohl für den Tagesbezug als auch den Tagesverbrauch anwachsende Datenpunkte (Stromzähler und selbst berechneter Verbrauchszähler).

                                  Humidor 1 Reply Last reply Reply Quote 0
                                  • Humidor
                                    Humidor @Meister Mopper last edited by

                                    @meister-mopper hmm

                                    range(start: -1mo, stop: v.timeRangeStop)
                                    

                                    das ist dann das -1mo, wie sage ich ihm von 0:00 - 23:59? also 1 Tag?
                                    und das summiert wird, ist aber

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

                                    fn: sum oder nicht?
                                    welche Rolle spielt das difference?

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

                                      hätte ev. jemand die richtigen Settings um die den Wert im Grafana zu summieren?

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

                                        @humidor
                                        Habe da einiges bei mir gemacht um solche Sachen darzustellen.
                                        Um dir helfen zu können, muss man aber wissen wie (und wie oft du dir Rohdaten loggst.)
                                        Sind es Leistungen oder Zählerstände?

                                        Wenn du Leistungen aufsummieren willst, kommt es darauf an, wie oft du die loggst

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

                                        Das hier macht nur Sinn, wenn du "Zählerstände loggst....

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

                                          @mickemup danke dir!
                                          das sind Werte die per Mqtt einlese
                                          mW ist Mqtt Event gesteuert, dh keine fixe Abfragezeit, der Timestamp könnte da eine Auskunft geben

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

                                            @humidor
                                            OK das heisst es sind Leistungswerte?
                                            Um Energie zu erhalten, muss man das Integrieren.
                                            Das kann man "grob" im Grafana machen.

                                            Die saubere Lösung wurde aber schon hier beschrieben.

                                            @lesiflo hat das im Post von 13.Okt als Blockly aufgezeigt...

                                            Kannst du sagen wie oft die Werte in Influx geloggt werden und loggst du nur Veränderungen oder jeden mqtt Wert?
                                            evtl Printscrren?

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            961
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            5
                                            36
                                            1879
                                            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