PV Monatsübersicht PV Ertrag pro Tag

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
torfkop
Beiträge: 38
Registriert: 3. Jun 2020 07:51
Answers: 1

PV Monatsübersicht PV Ertrag pro Tag

Beitrag von torfkop »

Moin zusammen,

hat schon mal einer von euch eine Übersicht gebaut für einen ganzen Monat wo man auf täglicher Basis den Ertrag sehen kann?
Ich überlege gerade wie das vernünftig machbar ist. Die Werte habe ich.

Viele Grüße
Steffen

nw378
Beiträge: 296
Registriert: 22. Sep 2018 10:38
Answers: 5

Re: PV Monatsübersicht PV Ertrag pro Tag

Beitrag von nw378 »

Moin!

Sowas?
WhatsApp Bild 2024-09-06 um 15.07.31_59468543.jpg
WhatsApp Bild 2024-09-06 um 15.07.31_79ca0a3b.jpg
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
openHAB 4.3.3 @ RPi 4 / SSD - InfluxDB2 und Grafana @ Synology Docker - KNX

torfkop
Beiträge: 38
Registriert: 3. Jun 2020 07:51
Answers: 1

Re: PV Monatsübersicht PV Ertrag pro Tag

Beitrag von torfkop »

ja genau. Sowas suche ich. Wie hast du das gebaut?

nw378
Beiträge: 296
Registriert: 22. Sep 2018 10:38
Answers: 5

Re: PV Monatsübersicht PV Ertrag pro Tag

Beitrag von nw378 »

Mit Influx und Grafana.

Wichtig: Ich habe Influx 2. Zum einen, weil Influx 2.x gegenüber 1.x "Flux" hat (data scripting language), die auch Monate als Zeitraum kennt. Unter Influx 1 konnte man Daten nur für 30 oder 31 Tage aufsummieren. Geht auch, ist aber etwas ungenau.
Zum anderen habe ich in Influx Tasks erstellt, die die Daten von einem "Bucket" (Datenbank) in einen anderen Bucket downsampeln. Also zum Bsp. nur einen Datenpunkt pro Stunde speichern. Das reduziert den Rechenaufwand deutlich.

Beides (Grafana und Influx) laufen bei mir auf einer NAS im Docker. Kann man aber bspw. auch auf dem gleichen Raspi wie openHAB installieren.

So eine Downsampling-Task (wie gesagt, nicht zwingend erforderlich) sieht dann so aus:

Code: Alles auswählen

import "date"

option task = {name: "PV Ertrag", every: 1h0m0s}

fullHourTime = date.truncate(t: now(), unit: 1h)
startTime = date.sub(from: fullHourTime, d: 1h)

from(bucket: "openHAB")
    |> range(start: startTime, stop: fullHourTime)
    |> filter(fn: (r) => r["_measurement"] == "PVtotal")
    |> filter(fn: (r) => r._field == "value")
    |> difference()
    |> aggregateWindow(every: 1h, fn: sum, createEmpty: false)
    |> to(bucket: "openHAB_history", fieldFn: (r) => ({"PV_Ertrag": r._value}))
und der Abruf in Grafana als Bar chart dann so:

Code: Alles auswählen

import "timezone"
option location = timezone.location(name: "Europe/Berlin")
from(bucket: "openHAB_history")
 |> range(start: -365d)
 |> filter(fn: (r) => r["_measurement"] == "PVtotal")
 |> filter(fn: (r) => r._field == "value")
|> difference()
 |> aggregateWindow(every: 1mo, fn: sum, timeSrc: "_start")
grafana.png
Am Anfang sehr fummelig das ganze; aber wenn man einmal den Bogen heraus hat, lässt es sich per STRG-C STRV-V sehr schnell auf alle anderen Daten adaptieren.

Die Tortendiagramme sind eben "Pie charts":

Code: Alles auswählen

from(bucket: "openHAB")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["_measurement"] == "Bezug_xTage" or r["_measurement"] == "Eigenverbrauch_xTage")
  |> filter(fn: (r) => r["_field"] == "value")
  |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)
  |> yield(name: "last")
Und zuletzt der Aufruf in der Sitemap (die Adresse hierzu stellt Grafana bereit):

Code: Alles auswählen

Switch item=gChartIntervall2 label="[]" icon="deadline" mappings=[1="aktuell",2="Woche",3="Jahr"] 
Webview icon=energy url="http://192.168.178.26:3000/d-solo/-4Py1lWgk/energie-aktuell?orgId=1&from=now-24h&panelId=4" height=6 visibility=[gChartIntervall2 == 1, gChartIntervall2 == NULL]
Webview icon=energy url="http://192.168.178.26:3000/d-solo/0L9FYfiRz/heizung?orgId=1&panelId=4&tab=axes&from=now-7d" height=6 visibility=[gChartIntervall2 == 2]
Webview icon=energy url="http://192.168.178.26:3000/d-solo/0L9FYfiRz/heizung?orgId=1&panelId=12&tab=axes&from=now-365d" height=6 visibility=[gChartIntervall2 == 3]
Text item=SolarGesamt
Interessant sind dann auch z.B. Einbindung des Sonnenstandes. Oder Vergleich der Monatswerte mit dem Vorjahr:
grafana2.png
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
openHAB 4.3.3 @ RPi 4 / SSD - InfluxDB2 und Grafana @ Synology Docker - KNX

SRX
Beiträge: 60
Registriert: 15. Okt 2019 19:50
Answers: 0

Re: PV Monatsübersicht PV Ertrag pro Tag

Beitrag von SRX »

Eine Übersicht bekommst Du auch mit den Bordmitteln aus OH hin
Screenshot 2024-09-08 182949.png

Code: Alles auswählen

config:
  chartType: year
  label: Stromverbrauch
  order: "7"
  sidebar: true
slots:
  grid:
    - component: oh-chart-grid
      config: {}
  legend:
    - component: oh-chart-legend
      config:
        orient: horizontal
        show: true
  series:
    - component: oh-aggregate-series
      config:
        aggregationFunction: last
        dimension1: month
        gridIndex: 0
        item: Strom_LastMonth
        name: Strombezug
        stack: one
        type: bar
        xAxisIndex: 0
        yAxisIndex: 0
    - component: oh-aggregate-series
      config:
        aggregationFunction: last
        dimension1: month
        gridIndex: 0
        item: WR_LastMonat
        name: Wechselrichter
        stack: one
        type: bar
        xAxisIndex: 0
        yAxisIndex: 0
  title:
    - component: oh-chart-title
      config:
        show: true
        text: Stromverbrauch
  toolbox:
    - component: oh-chart-toolbox
      config:
        bottom: "0"
        left: "15"
        presetFeatures:
          - saveAsImage
          - dataView
          - magicType
        show: true
  tooltip:
    - component: oh-chart-tooltip
      config:
        orient: vertical
        show: true
  xAxis:
    - component: oh-category-axis
      config:
        categoryType: year
        gridIndex: 0
        monthFormat: default
        weekdayFormat: default
  yAxis:
    - component: oh-value-axis
      config:
        gridIndex: 0
        name: kWh
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

torfkop
Beiträge: 38
Registriert: 3. Jun 2020 07:51
Answers: 1

Re: PV Monatsübersicht PV Ertrag pro Tag

Beitrag von torfkop »

Influx und Grafana läuft bei mir auch. Werde mir das heute Abend ansehen. Vielen Dank fürs Teilen!

EmptySoft
Beiträge: 247
Registriert: 7. Jan 2020 14:45
Answers: 2
Kontaktdaten:

Re: PV Monatsübersicht PV Ertrag pro Tag

Beitrag von EmptySoft »

SRX hat geschrieben: 8. Sep 2024 18:32 Eine Übersicht bekommst Du auch mit den Bordmitteln aus OH hin
Kannst Du ein wenig erklären, wo Du was eingestellt hast? Der Code, von was ist der?

Danke, Harald
BYe
Harald

SRX
Beiträge: 60
Registriert: 15. Okt 2019 19:50
Answers: 0

Re: PV Monatsübersicht PV Ertrag pro Tag

Beitrag von SRX »

Hallo Harald
sorry, war einige Tage nicht im Form
Ich habe bei mir einige Item angelegt, welche ich entsprechend fülle
Für dieses Chart habe ich die beiden Item
Strom_LastMonth und WR_LastMonth angelegt.
Diese fülle ich über eine Regel indem ich diese aus dem Gesamtergebnis / Gesamtverbrauch extrahiere
Den Ertrag meldet mir ein Shelly und den Verbrauch eben vom Stromzähler (Smartmeter Binding).
Ich mache das auch für den Monat und den Tag, das habe ich aber weggelassen.
Dadurch das man quasi am Anfang des Monats wieder bei Null anfängt funktioniert das mit der Grafik

Evtl. hilft es Dir weiter

Code: Alles auswählen

rule "BKW Ertrag"

when 
   
    Time cron "1 2/5 * * * ?"
then 

var regel_startzeit = now()
val Number MonatsVal = regel_startzeit.getMonthValue()

var  ZonedDateTime   start_of_month = zdt.withDayOfMonth(1).toLocalDate().atStartOfDay(zdt.getZone())

var  monat = Solargrid_MPPT_YIELD_SINCE_RESET.deltaSince(start_of_month) as Number

 BKW_LastMonth.postUpdate(monat)

//Wechselrichter berechnen

var  WRmonat = Shelly1PMBKW_Gesamtverbrauch.deltaSince(start_of_month) as Number

 WR_LastMonat.postUpdate(WRmonat)

//Strom berechnen
var  Strommonat = Smartmeter_18.deltaSince(start_of_month) as Number
 Strom_LastMonth.postUpdate(Strommonat)
 
 end
Nachtrag:
Wenn sich die Frage auf den Chart bezog, nimm einmal den Code und und kopiere das bei einer neuen Chartpage in die Code Ansicht

EmptySoft
Beiträge: 247
Registriert: 7. Jan 2020 14:45
Answers: 2
Kontaktdaten:

Re: PV Monatsübersicht PV Ertrag pro Tag

Beitrag von EmptySoft »

Danke
BYe
Harald

Antworten