Grafana: Tagessumme Einspeisung/Verbrauch und Autarkiegrad

Alles was mit der Solaranzeige Image Installation und Betrieb zu tun hat. Einfache Konfiguration mit einem Gerät.

Moderator: Ulrich

diet99
Beiträge: 23
Registriert: Mo 10. Apr 2023, 09:24

Re: Grafana: Tagessumme Einspeisung/Verbrauch und Autarkiegrad

Beitrag von diet99 »

mdkeil hat geschrieben:
Di 25. Apr 2023, 12:39
Anbei mal ein Beispiel einer stündlichen Anzeige.. Du musst natürlich deine entsprechenden Bezeichnungen verwenden, die Anpassung sollte aber nicht schwer sein:

PS: das kann man dann auch relativ einfach auf "Live" oder "Tagesanzeige" anpassen.
Cool - danke! Das schau ich mir mal genauer an.

diet99
Beiträge: 23
Registriert: Mo 10. Apr 2023, 09:24

Re: Grafana: Tagessumme Einspeisung/Verbrauch und Autarkiegrad

Beitrag von diet99 »

Mir scheint, es scheitert bei mir schon an den Basics.

Also ...
Ich habe folgende Daten in der Datenbank:

Einspeisung,uuid=1
Verbrauch,uuid=0
Wirkleistung,uuid=2
mqtt_consumer,host=strom,topic=solar/114184847551/0/frequency
mqtt_consumer,host=strom,topic=solar/114184847551/0/power
mqtt_consumer,host=strom,topic=solar/114184847551/0/temperature
mqtt_consumer,host=strom,topic=solar/114184847551/0/yieldday
mqtt_consumer,host=strom,topic=solar/114184847551/0/yieldtotal
mqtt_consumer,host=strom,topic=solar/114184847551/1/power
mqtt_consumer,host=strom,topic=solar/114184847551/1/yieldday
mqtt_consumer,host=strom,topic=solar/114184847551/1/yieldtotal
mqtt_consumer,host=strom,topic=solar/114184847551/2/power
mqtt_consumer,host=strom,topic=solar/114184847551/2/yieldday
mqtt_consumer,host=strom,topic=solar/114184847551/2/yieldtotal

Einspeisung und Verbrauch sind die Stände des Stromzählers in Wh. Die Wirkleistung wird in W ausgegeben.

die mtt_consumer-Datenfelder kommen vom Hoymiles-Wechselrichter. Da verwende ich bisher den 0/yieldday, um meinen Tagesverbrauch darzustellen. Hier dürfte ich dann 0/power (aktuelle Gesamtleistung) benötigen.

Jetzt meine (wahrscheinlich blöde Anfänger-)Frage:
wie setze ich diese Werte korrekt in die obigen SELECT-Statements ein. Insbesondere bei "FROM Meter" habe ich ein großes Fragezeichen. Der Rest erscheint mir halbwegs logisch..

Die AS-Statements erzeugen dann offenbar Variablen mit dem Inhalt der aus der Datenbank ausgelesenen Daten?

Ich hatte mir das Ganze für meine bisherigen Abfragen im Panel einfach zusammengeklickt gehabt und noch nie mit SELECT-Statements gearbeitet. Daher steh ich da gerade ziemlich auf dem Schlauch.

Danke!

Benutzeravatar
mdkeil
Beiträge: 436
Registriert: So 12. Sep 2021, 20:40
Hat sich bedankt: 15 Mal
Danksagung erhalten: 28 Mal

Re: Grafana: Tagessumme Einspeisung/Verbrauch und Autarkiegrad

Beitrag von mdkeil »

Ich versuche mal die 3 SELECT-Statements mit deinen Daten zu bauen--

1.

Code: Alles auswählen

SELECT integral(value,1h) AS Netzbezug FROM "Wirkleistung" WHERE value > 0 AND $timeFilter GROUP BY time(1h) tz('Europe/Berlin')
2.

Code: Alles auswählen

SELECT integral(value,1h) *(-1) AS Einspeisung FROM "Wirkleistung" WHERE value < 0 AND $timeFilter GROUP BY time(1h) tz('Europe/Berlin')
3.

Code: Alles auswählen

SELECT integral(value,1h) AS Solarleistung FROM "mqtt_consumer" WHERE "topic" = 'solar/114184847551/0/power' AND $timeFilter GROUP BY time(1h) tz('Europe/Berlin')
Die AS-Statements erzeugen dann offenbar Variablen mit dem Inhalt der aus der Datenbank ausgelesenen Daten?
Kann man als Variablen-Bezeichnungen bzw. field-names verstehen.
IBN: 07/2021
Fronius Symo : 13.2kWp S 45° + 3.96 kWp S 15°
Fronius Primo : 2.97 kWp N 15°
Speicher: 14,3 kWh LiFePO4 (EEL) + Seplos BMS @ Victron MP-II 48/5000
Wallbox: 11kW echarge Hardy Barth Cpμ2 Pro
######
Tibber-Invite (100% Öko-Strom + 50€ Bonus)

diet99
Beiträge: 23
Registriert: Mo 10. Apr 2023, 09:24

Re: Grafana: Tagessumme Einspeisung/Verbrauch und Autarkiegrad

Beitrag von diet99 »

Aaah - so langsam wirds klarer ... danke!!

Ich glaube, ich hab das Prinzip verstanden. Vielleicht sollte ich mal nen SQL-Grundlagenkurs buchen :roll:

Ich versuche mein Glück und werde wieder berichten.

diet99
Beiträge: 23
Registriert: Mo 10. Apr 2023, 09:24

Re: Grafana: Tagessumme Einspeisung/Verbrauch und Autarkiegrad

Beitrag von diet99 »

Aaalso ...
Die Queries hab ich jetzt mal drin
einspeisung_queries.png
allerdings tauchen die field-names irgendwie unten bei "Organize fields" bis auf "Time" nicht auf. Hab ich da irgendwo ein Häkchen vergessen?
einspeisung_transform.png
So kann ich die ja gar nicht für die Darstellung auswählen.

Benutzeravatar
mdkeil
Beiträge: 436
Registriert: So 12. Sep 2021, 20:40
Hat sich bedankt: 15 Mal
Danksagung erhalten: 28 Mal

Re: Grafana: Tagessumme Einspeisung/Verbrauch und Autarkiegrad

Beitrag von mdkeil »

hast du wahrscheinlich in meinen Screeny übersehen.. du must unter Transform als erstes ein "Merge" einfügen.

Edit: als visualisierungs-plugin würde ich statt "Table" "Time Series" auswählen. (rechts oben)
IBN: 07/2021
Fronius Symo : 13.2kWp S 45° + 3.96 kWp S 15°
Fronius Primo : 2.97 kWp N 15°
Speicher: 14,3 kWh LiFePO4 (EEL) + Seplos BMS @ Victron MP-II 48/5000
Wallbox: 11kW echarge Hardy Barth Cpμ2 Pro
######
Tibber-Invite (100% Öko-Strom + 50€ Bonus)

diet99
Beiträge: 23
Registriert: Mo 10. Apr 2023, 09:24

Re: Grafana: Tagessumme Einspeisung/Verbrauch und Autarkiegrad

Beitrag von diet99 »

Ah - super! Wieder was gelernt.
Vermutlich muß ich jetzt nochmal von vorne anfangen? Merge scheint sich nachträglich nicht einfügen zu lassen. Da kommt dann die rote Meldung "Merge has no effect when applied on a single frame."

Und in dem Panel sagt er jetzt "Data is missing a number field" :?:

Benutzeravatar
mdkeil
Beiträge: 436
Registriert: So 12. Sep 2021, 20:40
Hat sich bedankt: 15 Mal
Danksagung erhalten: 28 Mal

Re: Grafana: Tagessumme Einspeisung/Verbrauch und Autarkiegrad

Beitrag von mdkeil »

Du kannst die einzelnen Transforms auch verschieben (über das Symbol mit den 6 Punkten).. einfach mit der Maus verschieben.. Merge muss ganz nach vorne.
IBN: 07/2021
Fronius Symo : 13.2kWp S 45° + 3.96 kWp S 15°
Fronius Primo : 2.97 kWp N 15°
Speicher: 14,3 kWh LiFePO4 (EEL) + Seplos BMS @ Victron MP-II 48/5000
Wallbox: 11kW echarge Hardy Barth Cpμ2 Pro
######
Tibber-Invite (100% Öko-Strom + 50€ Bonus)

diet99
Beiträge: 23
Registriert: Mo 10. Apr 2023, 09:24

Re: Grafana: Tagessumme Einspeisung/Verbrauch und Autarkiegrad

Beitrag von diet99 »

mdkeil hat geschrieben:
Do 27. Apr 2023, 06:53
Du kannst die einzelnen Transforms auch verschieben (über das Symbol mit den 6 Punkten).. einfach mit der Maus verschieben.. Merge muss ganz nach vorne.
Danke! Das hatte ich auch gefunden, aber der Fehler bestand irgendwie weiterhin. Irgendwie hab ich ihn dann doch wegbekommen.

Ich kriege aber immer noch die Meldung "Data is missing a number field", wobei es im Query Inspector nach meinem Gefühl eigentlich ganz gut aussieht. Leider fehlt hier mein Wissen, um dort einen Fehler zu erkennen:

Code: Alles auswählen

{
  "request": {
    "url": "api/ds/query",
    "method": "POST",
    "data": {
      "queries": [
        {
          "alias": "Netzbezug",
          "datasource": {
            "type": "influxdb",
            "uid": "HeC258Zgz"
          },
          "query": "SELECT integral(value,1h) AS Netzbezug FROM \"Wirkleistung\" WHERE value > 0 AND $timeFilter GROUP BY time(1h) tz('Europe/Berlin')\n",
          "rawQuery": true,
          "refId": "A",
          "resultFormat": "table",
          "adhocFilters": [],
          "limit": "",
          "measurement": "",
          "policy": "",
          "slimit": "",
          "tz": "",
          "datasourceId": 4,
          "intervalMs": 120000,
          "maxDataPoints": 901
        },
        {
          "alias": "Einspeisung",
          "datasource": {
            "type": "influxdb",
            "uid": "HeC258Zgz"
          },
          "hide": false,
          "query": "SELECT integral(value,1h) *(-1) AS Einspeisung FROM \"Wirkleistung\" WHERE value < 0 AND $timeFilter GROUP BY time(1h) tz('Europe/Berlin')\n",
          "rawQuery": true,
          "refId": "B",
          "resultFormat": "table",
          "adhocFilters": [],
          "limit": "",
          "measurement": "",
          "policy": "",
          "slimit": "",
          "tz": "",
          "datasourceId": 4,
          "intervalMs": 120000,
          "maxDataPoints": 901
        },
        {
          "alias": "Solarleistung",
          "datasource": {
            "type": "influxdb",
            "uid": "HeC258Zgz"
          },
          "hide": false,
          "query": "SELECT integral(value,1h) AS Solarleistung FROM \"mqtt_consumer\" WHERE \"topic\" = 'solar/114184847551/0/power' AND $timeFilter GROUP BY time(1h) tz('Europe/Berlin')\n",
          "rawQuery": true,
          "refId": "C",
          "resultFormat": "table",
          "adhocFilters": [],
          "limit": "",
          "measurement": "",
          "policy": "",
          "slimit": "",
          "tz": "",
          "datasourceId": 4,
          "intervalMs": 120000,
          "maxDataPoints": 901
        }
      ],
      "range": {
        "from": "2023-04-26T05:48:24.618Z",
        "to": "2023-04-27T05:48:24.618Z",
        "raw": {
          "from": "now-24h",
          "to": "now"
        }
      },
      "from": "1682488104618",
      "to": "1682574504618"
    },
    "hideFromInspector": false
  },
  "response": {
    "results": {
      "A": {
        "status": 200,
        "frames": [
          {
            "schema": {
              "name": "Netzbezug",
              "refId": "A",
              "meta": {
                "executedQueryString": "SELECT integral(value,1h) AS Netzbezug FROM \"Wirkleistung\" WHERE value > 0 AND time >= 1682488104618ms and time <= 1682574504618ms GROUP BY time(1h) tz('Europe/Berlin')\n"
              },
              "fields": [
                {
                  "name": "time",
                  "type": "time",
                  "typeInfo": {
                    "frame": "time.Time"
                  }
                },
                {
                  "name": "value",
                  "type": "number",
                  "typeInfo": {
                    "frame": "float64",
                    "nullable": true
                  },
                  "config": {
                    "displayNameFromDS": "Netzbezug"
                  }
                }
              ]
            },
            "data": {
              "values": [
                [
                  1682485200000,
                  1682488800000,
                  1682492400000,
                  1682496000000,
                  1682499600000,
                  1682503200000,
                  1682506800000,
                  1682510400000,
                  1682514000000,
                  1682517600000,
                  1682521200000,
                  1682524800000,
                  1682528400000,
                  1682532000000,
                  1682535600000,
                  1682539200000,
                  1682542800000,
                  1682546400000,
                  1682550000000,
                  1682553600000,
                  1682557200000,
                  1682560800000,
                  1682564400000,
                  1682568000000,
                  1682571600000
                ],
                [
                  14.663110138888898,
                  106.75617742229352,
                  116.01125823309978,
                  308.7796310801482,
                  746.8460074860279,
                  893.4753872800023,
                  987.2784157304354,
                  1657.3736298620586,
                  1152.5773108616763,
                  1489.0363668533219,
                  730.7774142659871,
                  271.52535051678063,
                  778.3897761560437,
                  297.43610425212665,
                  291.3117873048895,
                  218.71438545689878,
                  214.16371831505114,
                  163.25285878051562,
                  165.00983633623187,
                  171.18451989414058,
                  157.35777073325661,
                  219.02438471820182,
                  201.60438460946008,
                  499.0586685698154,
                  357.5604169482007
                ]
              ]
            }
          }
        ],
        "refId": "A"
      },
      "B": {
        "status": 200,
        "frames": [
          {
            "schema": {
              "name": "Einspeisung",
              "refId": "B",
              "meta": {
                "executedQueryString": "SELECT integral(value,1h) *(-1) AS Einspeisung FROM \"Wirkleistung\" WHERE value < 0 AND time >= 1682488104618ms and time <= 1682574504618ms GROUP BY time(1h) tz('Europe/Berlin')\n"
              },
              "fields": [
                {
                  "name": "time",
                  "type": "time",
                  "typeInfo": {
                    "frame": "time.Time"
                  }
                },
                {
                  "name": "value",
                  "type": "number",
                  "typeInfo": {
                    "frame": "float64",
                    "nullable": true
                  },
                  "config": {
                    "displayNameFromDS": "Einspeisung"
                  }
                }
              ]
            },
            "data": {
              "values": [
                [
                  1682488800000,
                  1682492400000,
                  1682496000000,
                  1682499600000,
                  1682503200000,
                  1682506800000,
                  1682510400000,
                  1682514000000,
                  1682517600000,
                  1682521200000,
                  1682524800000
                ],
                [
                  2.223483331303099,
                  161.98592971770526,
                  214.35867808851881,
                  149.55739892970897,
                  256.1311165884085,
                  165.2504151706266,
                  321.9596717493173,
                  248.29312143513928,
                  160.85058128690014,
                  79.34906826885603,
                  1.6104254335173955
                ]
              ]
            }
          }
        ],
        "refId": "B"
      },
      "C": {
        "status": 200,
        "frames": [
          {
            "schema": {
              "name": "Solarleistung",
              "refId": "C",
              "meta": {
                "executedQueryString": "SELECT integral(value,1h) AS Solarleistung FROM \"mqtt_consumer\" WHERE \"topic\" = 'solar/114184847551/0/power' AND time >= 1682488104618ms and time <= 1682574504618ms GROUP BY time(1h) tz('Europe/Berlin')\n"
              },
              "fields": [
                {
                  "name": "time",
                  "type": "time",
                  "typeInfo": {
                    "frame": "time.Time"
                  }
                },
                {
                  "name": "value",
                  "type": "number",
                  "typeInfo": {
                    "frame": "float64",
                    "nullable": true
                  },
                  "config": {
                    "displayNameFromDS": "Solarleistung"
                  }
                }
              ]
            },
            "data": {
              "values": [
                [
                  1682485200000,
                  1682488800000,
                  1682492400000,
                  1682496000000,
                  1682499600000,
                  1682503200000,
                  1682506800000,
                  1682510400000,
                  1682514000000,
                  1682517600000,
                  1682521200000,
                  1682524800000,
                  1682528400000,
                  1682532000000,
                  1682568000000,
                  1682571600000
                ],
                [
                  15.027685871801598,
                  121.61020903469574,
                  374.8583726376131,
                  437.35254717865416,
                  402.61658874582207,
                  470.878927573666,
                  389.18060211549107,
                  560.9809037050751,
                  470.85880978689215,
                  332.1623257942818,
                  257.0666418790481,
                  98.10904656578019,
                  30.519035193846072,
                  2.730261208911082,
                  7.498925664396776,
                  42.25339060173489
                ]
              ]
            }
          }
        ],
        "refId": "C"
      }
    }
  }
}
Eigentlich sehen die Daten doch plausibel aus, oder?

Was mich irritiert ist die Tatsache, daß unten bei "Organize Fields" nur "Time" auftaucht.
2023-04-27 07_59_16-Edit panel - Energiebilanz - Dashboards - Grafana – Mozilla Firefox.png

diet99
Beiträge: 23
Registriert: Mo 10. Apr 2023, 09:24

Re: Grafana: Tagessumme Einspeisung/Verbrauch und Autarkiegrad

Beitrag von diet99 »

Aaah - man muß bei den Select-Statements natürlich auch "Time Series" wählen für die Formatierung und schon klappts ...

Wobei da meines Erachtens immer noch komische Fehler drin sind - siehe z.B. der markierte Peak "Einspeisung" früh morgens um 8 Uhr.
2023-04-27 08_26_23-Energiebilanz - Dashboards - Grafana – Mozilla Firefox.png
Da muß ich noch forschen, was da passiert.

Antworten

Zurück zu „Image Installation [ Single-Regler Version ]“