PV Monatsübersicht PV Ertrag pro Tag
-
- Beiträge: 38
- Registriert: 3. Jun 2020 07:51
PV Monatsübersicht PV Ertrag pro Tag
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
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
-
- Beiträge: 296
- Registriert: 22. Sep 2018 10:38
Re: PV Monatsübersicht PV Ertrag pro Tag
Moin!
Sowas?
Sowas?
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
-
- Beiträge: 38
- Registriert: 3. Jun 2020 07:51
Re: PV Monatsübersicht PV Ertrag pro Tag
ja genau. Sowas suche ich. Wie hast du das gebaut?
-
- Beiträge: 296
- Registriert: 22. Sep 2018 10:38
Re: PV Monatsübersicht PV Ertrag pro Tag
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:
und der Abruf in Grafana als Bar chart dann so:
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":
Und zuletzt der Aufruf in der Sitemap (die Adresse hierzu stellt Grafana bereit):
Interessant sind dann auch z.B. Einbindung des Sonnenstandes. Oder Vergleich der Monatswerte mit dem Vorjahr:
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}))
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")
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")
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
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
-
- Beiträge: 60
- Registriert: 15. Okt 2019 19:50
Re: PV Monatsübersicht PV Ertrag pro Tag
Eine Übersicht bekommst Du auch mit den Bordmitteln aus OH hin
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.
-
- Beiträge: 38
- Registriert: 3. Jun 2020 07:51
Re: PV Monatsübersicht PV Ertrag pro Tag
Influx und Grafana läuft bei mir auch. Werde mir das heute Abend ansehen. Vielen Dank fürs Teilen!
-
- Beiträge: 247
- Registriert: 7. Jan 2020 14:45
- Kontaktdaten:
Re: PV Monatsübersicht PV Ertrag pro Tag
Kannst Du ein wenig erklären, wo Du was eingestellt hast? Der Code, von was ist der?
Danke, Harald
BYe
Harald
Harald
-
- Beiträge: 60
- Registriert: 15. Okt 2019 19:50
Re: PV Monatsübersicht PV Ertrag pro Tag
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
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
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
Wenn sich die Frage auf den Chart bezog, nimm einmal den Code und und kopiere das bei einer neuen Chartpage in die Code Ansicht
-
- Beiträge: 247
- Registriert: 7. Jan 2020 14:45
- Kontaktdaten: