Photovoltaik Eigenverbrauch,Bilanz,Prognose (Kostal Plenticore; KSEM; BYD HV)

Begonnen von ch.eick, 07 Oktober 2020, 16:09:12

Vorheriges Thema - Nächstes Thema

u.stemler

Noch eine Frage zu https://wiki.fhem.de/wiki/Kostal_Plenticore_10_Plus

Den täglichen PV-Ertrag kann ich tageweise aufsummiert mit Daily_yield abfragen. D.h. am Abend sehe ich den Tagesertrag.
Gibt es eine solche Funktion auch für den Strom, den ich aus dem Netz beziehe. ich hatte mal irgendwo etwas gelesen, dass abends um 22.00 Uhr (besser wäre 24.00 Uhr) der Tagesnetzbezug erfasst wird. ich würde mir gerne ein Balkendiagramm erstellen, aus dem hervor geht, wieviel Strom ich täglich aus dem Netz bezogen habe. (WR_1_API, WR_0_KSEM und WR_1 sind in betrieb).

Über möglliche Ansatzpunkte würde ich mich freuen.

vg
udo

ch.eick

Zitat von: u.stemler am 06 Februar 2023, 23:33:12
Noch eine Frage zu https://wiki.fhem.de/wiki/Kostal_Plenticore_10_Plus

Den täglichen PV-Ertrag kann ich tageweise aufsummiert mit Daily_yield abfragen. D.h. am Abend sehe ich den Tagesertrag.
Gibt es eine solche Funktion auch für den Strom, den ich aus dem Netz beziehe. ich hatte mal irgendwo etwas gelesen, dass abends um 22.00 Uhr (besser wäre 24.00 Uhr) der Tagesnetzbezug erfasst wird. ich würde mir gerne ein Balkendiagramm erstellen, aus dem hervor geht, wieviel Strom ich täglich aus dem Netz bezogen habe. (WR_1_API, WR_0_KSEM und WR_1 sind in betrieb).

Über möglliche Ansatzpunkte würde ich mich freuen.
Hallo Udo,
das ist ein userReading im WR_1_API

SW_Statistic_EnergyHomeGrid_Day

Dieser Wert wächst über den Tag hinweg und der letzte Eintrag ist dann der Wert, den Du suchst. Für ein Diagramm wäre es somit der Maximum Wert.
VG  Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

kaiman

Hallo Christian,

mal eine Frage: Meine DB wächst und wächst und ich würde gerne nicht benötigte Daten entfernen.

Werden die alten WR_1 MODBUSATTR Einträge alle benotigt, oder könnten die gefahrlos entfernt werden?


Beispiel:
2021-12-15 11:53:00
WR_1
MODBUSATTR
Total_DC_P: 1166.70
Total_DC_P
1166.70
2021-12-15 11:53:01
WR_1
MODBUSATTR
Home_own_consumption_from_PV: 674.00
Home_own_consumption_from_PV
674.00
2021-12-15 11:53:01
WR_1
MODBUSATTR
Total_AC_Active_P: 1094.00
Total_AC_Active_P
1094.00
2021-12-15 11:53:01
WR_1
MODBUSATTR
Total_AC_Reactive_P: 289.20
Total_AC_Reactive_P
289.20
2021-12-15 11:53:01
WR_1
MODBUSATTR
Total_AC_Apparent_P: 1138.07
Total_AC_Apparent_P
1138.07
2021-12-15 11:53:02
WR_1
MODBUSATTR
Total_Active_P_EM: -431.80
Total_Active_P_EM
-431.80
2021-12-15 11:53:02
WR_1
MODBUSATTR
Total_Reactive_P_EM: -470.10
Total_Reactive_P_EM
-470.10
2021-12-15 11:53:02
WR_1
MODBUSATTR
Total_Apparent_P_EM: -655.20
Total_Apparent_P_EM
-655.20
2021-12-15 11:53:02
WR_1
MODBUSATTR
P_DC1: 718.92
P_DC1
718.92
2021-12-15 11:53:03
WR_1
MODBUSATTR
P_DC2: 449.29
P_DC2
449.29
2021-12-15 11:53:04
WR_1
MODBUSATTR
Inverter_Generation_P_Actual: 1095.00
Inverter_Generation_P_Actual
1095.00
2021-12-15 11:53:06
WR_1
MODBUSATTR
Total_DC_P_sumOfAllPVInputs: 1169.57
Total_DC_P_sumOfAllPVInputs
1169.57


LG

ch.eick

Zitat von: kaiman am 08 Februar 2023, 06:33:49
mal eine Frage: Meine DB wächst und wächst und ich würde gerne nicht benötigte Daten entfernen.

Werden die alten WR_1 MODBUSATTR Einträge alle benotigt, oder könnten die gefahrlos entfernt werden?
Das hängt einzig davon ab, was Du z.B. in Grafane auswerten möchtest und wie lange Du zurück möchtest.
Generell würde ich die MODBUSATTR drin lassen, und nur das Logging reduzieren. Einige Attribute dienen ja auch als Basis für userReadings und müssen deshalb einen Event auslösen.
Wenn Du den Wechsel zu den SW_* readings mit gemacht hast, könnten die äqivalente aus dem Logging entfernt werden. Das hat aber nicht jeder gemacht.
Wichtig wäre natürlich dann auch den Umzug der readings in der Datenbank für den Zeitraum davor vorher noch zu machen. Eine Beschreibung für das Prinzip ist im Wiki zu finden.
Zusätzlich habe ich noch mit dem DbRep einzelne Werte ausgedünnt, da z.B. ein über den Tag steigender Wert von *_Day, *_Month, *_Year nach ablauf des Zeitraums eventuell keinen Sinn mehr macht, es sei denn man möchte daraus noch andere Zwischenwerte berechnen. Da Statistiken und Diagramme immer nur sehr selten angefasst werden bin ich da etwas zurückhaltend und Platz auf der SSD habe ich auch noch genug.
Das Backup der DB mache ich mit SQLBackupAndFTP vom Windows aus, da kann man beim SQLDump auch Monats Jobs ( mit Zeitfilter) definieren. Das wäre dann wie ein Incrementel Dump und ich finde die Daten für einen Restore einfacher, falls ich mal ausversehen zuviel gelöscht habe. Ein Incrementel wäre dann bei mir ca 5,1 MB komprimiert.


mysql>
SELECT table_schema "DB Name",
     Round(Sum(data_length + index_length) / 1024 / 1024, 1) "DB Size in MB"
FROM  information_schema.tables
GROUP BY table_schema;
+--------------------+---------------+
| DB Name            | DB Size in MB |
+--------------------+---------------+
| fhem               |       10457.0 |
| information_schema |           0.0 |
+--------------------+---------------+
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Mumpitz

Zitat von: ch.eick am 08 Februar 2023, 08:06:14
Zusätzlich habe ich noch mit dem DbRep einzelne Werte ausgedünnt, da z.B. ein über den Tag steigender Wert von *_Day, *_Month, *_Year nach ablauf des Zeitraums eventuell keinen Sinn mehr macht, es sei denn man möchte daraus noch andere Zwischenwerte berechnen. Da Statistiken und Diagramme immer nur sehr selten angefasst werden bin ich da etwas zurückhaltend und Platz auf der SSD habe ich auch noch genug.


kannst du uns das mal zeigen?

ch.eick

Zitat von: Mumpitz am 09 Februar 2023, 16:27:22
kannst du uns das mal zeigen?
Moin,
ich habe folgende DbRep eingerichtet, um etwas auszudünnen, bzw einige Werte für Diagramme vorzubereiten.
Falls Ihr noch mehr habt, könntet Ihr mir die bitte schicken.

Diese DbRep erzeugen noch zusätzliche Datenbank Einträge, die man dann in Diagrammen direkt darstellen kann ohne mit SQL wieder zu filtern.

LogDBRep_Statistic_EnergyFeedInGrid_Year_diff_Week
LogDBRep_Statistic_EnergyHomePvSum_Year_diff_Week
LogDBRep_Statistic_EnergyHomePvSum_Year_max_Month
LogDBRep_Statistic_Yield_Month_max_Month
LogDBRep_Statistic_Yield_Year_diff_Week

Hierbei wird folgendes gemacht:

- EnergyFeedInGrid_EnergyHomePvSum_Year_diff_Week   Bildet noch zusätzlich Wochen Summen

2023-01-01_00-57-03__Statistic_EnergyFeedInGrid_Week__week_52 0.0000
2023-01-02_00-57-03__Statistic_EnergyFeedInGrid_Week__week_01 0.0000
2023-01-13_16-57-03__Statistic_EnergyFeedInGrid_Week__week_02 14000
2023-01-20_14-57-03__Statistic_EnergyFeedInGrid_Week__week_03 7000
2023-01-29_16-57-03__Statistic_EnergyFeedInGrid_Week__week_04 15000
2023-02-04_16-57-03__Statistic_EnergyFeedInGrid_Week__week_05 9000


- EnergyHomePvSum_Year_max_Month   Dieser Wert ist die gesamte Dc Lieferung der PV Anlage inklusive Batterie im Monat.

2023-01-31_23-57-03__WR_1_API__SW_Statistic_EnergyHomePvSum_Month__MAX__2023-01 269854


- Yield_Month_max_Month   Dieser Wert gibt den gesamten Ertrag der PV Anlage im Monat an.

2023-01-31_23-57-03__WR_1_API__SW_Statistic_Yield_Month__MAX__2023-01 308854


- Yield_Year_diff_Week Dieser Wert gibt den gesamten Ertrag der PV Anlage pro Woche an.

2023-01-01_18-57-03__Statistic_Yield_Week__week_52 9942
2023-01-08_16-57-03__Statistic_Yield_Week__week_01 51725
2023-01-15_23-57-03__Statistic_Yield_Week__week_02 68039
2023-01-22_15-57-03__Statistic_Yield_Week__week_03 92407
2023-01-29_23-57-03__Statistic_Yield_Week__week_04 61645
2023-02-05_17-57-03__Statistic_Yield_Week__week_05 94445


Und hier wären dann noch DbRep zum löschen.

LogDBRep_delete_Statistic_EnergyHomeBat_Day_max_Day
LogDBRep_delete_Statistic_EnergyHomePvSum_Day_max_Day
LogDBRep_delete_Statistic_TotalConsumption_Day_max_Day


- EnergyHomeBat_Day_max_Day   Löschen aller SW_Statistic_EnergyHomeBat_Day Werte, bis auf den maximal Wert des Tages.
                                            Der aktuelle Tag bleibt noch erhalten. Aufruf mit: maxValue deleteOther

- EnergyHomePvSum_Day_max_Day   Löschen aller SW_Statistic_EnergyHomePvSum_Day Werte, bis auf den maximal Wert des Tages.
                                            Der aktuelle Tag bleibt noch erhalten. Aufruf mit: maxValue deleteOther

- TotalConsumption_Day_max_Day    Löschen aller SW_Statistic_TotalConsumption_Day_max_Day Werte, bis auf den maximal Wert des Tages.
                                            Der aktuelle Tag bleibt noch erhalten. Aufruf mit: maxValue deleteOther

VG   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

u.stemler

Problem mit https://wiki.fhem.de/wiki/Kostal_Plenticore_10_Plus, WR_1_API

Ich habe bei der Kopie der attr usw aus o.g. Wiki folgende Fehlermeldung:
Unrecognized character \xC2; marked by <-- HERE after ne "null")<-- HERE near column 235 at (eval 119431) line 6.
Ich habe schon Block umd Block gelöscht. Ab Stateformat kommt diese Fehlermeldung. Ein Steuerzeichen mit Hilfe eines Editors konnte ich auch nicht finden.
Die Fehlermeldung wird bei Internals , State auch angezeigt.
Oder hat das etwas mit "null" zu tun?

Viele Grüße
udo

ch.eick

Zitat von: u.stemler am 11 Februar 2023, 01:06:07
Problem mit https://wiki.fhem.de/wiki/Kostal_Plenticore_10_Plus, WR_1_API

Ich habe bei der Kopie der attr usw aus o.g. Wiki folgende Fehlermeldung:
Unrecognized character \xC2; marked by <-- HERE after ne "null")<-- HERE near column 235 at (eval 119431) line 6.
Ich habe schon Block umd Block gelöscht. Ab Stateformat kommt diese Fehlermeldung. Ein Steuerzeichen mit Hilfe eines Editors konnte ich auch nicht finden.
Die Fehlermeldung wird bei Internals , State auch angezeigt.
Oder hat das etwas mit "null" zu tun?
Hallo Udo,
da scheint etwas mit dem Copy/Paste nicht richtig zu laufen.
In meinem stateFormat und auch im Wiki sind mehr Zeilen enthalten, die in Deinem Snapshot fehlen.
Ich habe mal zwei Fenster zusammen im Snapshot abgebildet.

VG  Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

u.stemler

Hallo Christian,
vielen Dank.
Ich hatte das Skript schon mehrfach über Firefox eingelesen und die Fehlermeldung kam immer wieder. Vorhin hatte ich das Skript dann über Chromium eingelesen, dann war die Fehlermeldung weg.
vg
udo

ch.eick

Zitat von: u.stemler am 11 Februar 2023, 09:41:44
Ich hatte das Skript schon mehrfach über Firefox eingelesen und die Fehlermeldung kam immer wieder. Vorhin hatte ich das Skript dann über Chromium eingelesen, dann war die Fehlermeldung weg.
Manchmal hilf auch ein normaler Editor zum zwischen speichern.
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

u.stemler

Irgendwie kommt keine Verbindung vom WR_1-API zu KSEM zustande. Der KSEM steht auf Slave. Wenn ich ein AUT_me oder was auch immer aufrufe, kommt immer die meldung: watch reading -  nach meinem Verständnis müsste FHEM die Informationen auf dem KSEM einlesen, Oder?

u.stemler

OK - jetzt habe ich verstanden. Es gibt eine Master- und eine Slave-variante des WR_1_API-Skripts. Ich hatte die Slavevariante und die war falsch.  Jetzt habe ich die Mastervariante, jetzt siehts wesentlich besser aus.
udo

ch.eick

Zitat von: u.stemler am 12 Februar 2023, 01:48:48
OK - jetzt habe ich verstanden. Es gibt eine Master- und eine Slave-variante des WR_1_API-Skripts. Ich hatte die Slavevariante und die war falsch.  Jetzt habe ich die Mastervariante, jetzt siehts wesentlich besser aus.
udo
Die Slave Variante ist nur für zusätzliche Wechselrichter. Man muss erst mal einen Master haben, egal ob mit oder ohne Speicher.

Achtung, bei zu vielen Fehlversuchen, kann es sein, dass der Plenticore den Zugang sperrt. Dann muss man über das GUI das Passwort neu setzen.
Bei mir ist das Passwort gleich dem Key auf dem Aufkleber vom Plenticore.
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

misux

Hey Leute!

Habt ihr das etwa nicht? Habe seit ein paar taen, keine ahnung wie lange das phänomen das sich mein modbus ständig connected und wieder disconnented... im Sekundentakt.

Hat das niemand?

https://forum.fhem.de/index.php/topic,132242.0.html

ch.eick

Zitat von: misux am 17 Februar 2023, 19:43:10
Hey Leute!

Habt ihr das etwa nicht? Habe seit ein paar taen, keine ahnung wie lange das phänomen das sich mein modbus ständig connected und wieder disconnented... im Sekundentakt.

Hat das niemand?

https://forum.fhem.de/index.php/topic,132242.0.html
Nee, alles stabil.
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick