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

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

Vorheriges Thema - Nächstes Thema

ch.eick

Zitat von: trupf am 19 Juli 2022, 22:07:18
5. ich habe noch einige Fehlermldungen im log (z.B. zu localtime) was muss ich tun um das zu lösen? Ein Hinweis dazu: alles mit WR2habe ich in FHEM disabled, ich hoffe das ist ok.

Hallo Tobias,

wie im letzten Post bereits geschrieben, kann die Steuerung nicht funkltionieren, solange da ein Problem besteht, denn dadurch wird keine Zeit beachtet und alle Berechnungen sind falsch.
Zu dem Thema localtime solltest Du schon mal im FHEM Forum suchen, denn das ist eine basis Funktion, auf die ich auch keinen Einfluss habe.
Natürlich schaue ich mir noch die Logs an, aber alle anderen Fragen brauchen wir nicht zu analysieren, da die Grundlage in Deiner FHEM Installation anscheinend das localtime nicht bereitstellt.

Die Beschränkungen sind alle Zeitabhängig, siede dazu oben (localtime).

Ich versuche mir dann noch mal Gedanken zur Berechnung der Ladestärke zu machen, denn das finde ich auch nicht so schön. (siehe Bild)
Bisher habe ich noch keine Idee für eine mathematische Funktion :-(

Der Wert für DayBefore wird abends nochmals bestimmt, denn es kann vorkommen, dass der Speicher am Nachmittag, z.B. durch die Heizung, teilweise entleert wurde und dann nicht mehr nachgeladen werden kann. Somit geht man mit weniger in die Nacht, was morgens wieder berücksichtigt werden muss.

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

trupf

Danke für die Antwort, aber mit der Fehlerbehebung habe ich Schwierigkeiten. Localtime habe ich z.B. in 99_myUtils.pm als als "use Time::Local" mit inkludiert, aber das hilft offenbar nicht für den uiTable, sondern nur für die Funktionen die in 99_myUtils.pm enthalten sind. Und dazu finde ich mit Google keine Lösung.
Und bei den übrigen Fehlermeldungen habe ich noch weniger Plan. Mir fällt es schon schwer die Stelle im Code zu finden wo sie herkommen (welche Stelle ist c10 im Code? Da steht dann was von cmd_7, das hilft etwas, aber ab welcher Zeile muss ich jetzt mit der Zählung der Zeilen beginnen? Wie kann ich herausfinden welcher der Werte "uninitialized" war?  Wie soll ich wissen welcher Wert nicht numerisch war und warum? Dazu müsste ich mir die Variablen zumindest mal anzeigen lassen können um herauszufinden welche Variable jetzt eigentlich den Fehler erzeugt - deshalb auch meine Frage, wie ich mir die aktuellen Werte in FHEM anzeigen lassen kann. Vielleicht kannst Du mir diese noch beantworten oder einen Hinweis geben, wo ich die Antwort finde.  Google hat mich leider auch hier nicht weitergebracht.

ch.eick

Zitat von: trupf am 20 Juli 2022, 16:57:52
Danke für die Antwort, aber mit der Fehlerbehebung habe ich Schwierigkeiten. Localtime habe ich z.B. in 99_myUtils.pm als als "use Time::Local" mit inkludiert, aber das hilft offenbar nicht für den uiTable, sondern nur für die Funktionen die in 99_myUtils.pm enthalten sind. Und dazu finde ich mit Google keine Lösung.
In der 99_my_Utils habe ich das nicht drin.
Meine Vermutung ist, dass Dein DOIF so alt ist, dass Du die Änderung mit dem eigenen Runtime Environment noch nicht drin hast.
Da hat sich vor geraumer Zeit mal etwas geändert.

Ich mache bei mir häufiger mal ein FHEM update, damit ich nicht alle Aktualisierungen verschlafe ;-)

Zitat
Und bei den übrigen Fehlermeldungen habe ich noch weniger Plan. Mir fällt es schon schwer die Stelle im Code zu finden wo sie herkommen (welche Stelle ist c10 im Code? Da steht dann was von cmd_7, das hilft etwas, aber ab welcher Zeile muss ich jetzt mit der Zählung der Zeilen beginnen? Wie kann ich herausfinden welcher der Werte "uninitialized" war?  Wie soll ich wissen welcher Wert nicht numerisch war und warum? Dazu müsste ich mir die Variablen zumindest mal anzeigen lassen können um herauszufinden welche Variable jetzt eigentlich den Fehler erzeugt - deshalb auch meine Frage, wie ich mir die aktuellen Werte in FHEM anzeigen lassen kann. Vielleicht kannst Du mir diese noch beantworten oder einen Hinweis geben, wo ich die Antwort finde.  Google hat mich leider auch hier nicht weitergebracht.
Ich habe Dir noch eine Mail geschrieben. Arbeite die schon mal durch, dann schauen wir nach den verbleibenden Log Meldungen und erst, wenn die durch sind schauen wir nach der Speicher Steuerung.
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

trupf

Nach dem FHEM update habe ich jetzt einige neue Fehlermeldung dieser Art:
PERL WARNING: Use of uninitialized value $2 in concatenation (.) or string at ./FHEM/98_HTTPMOD.pm line 507, <$fh> line 306.

Die hatte ich vorherr nicht und sie kommen von Device Plenticore_WR1_api. Irgendwas muss in FHEM geändert worden sein, was den Fehler bewirkt. Hat jemand eine Ahnung was geändert werden muss?

ch.eick

Zitat von: trupf am 22 Juli 2022, 19:49:26
Nach dem FHEM update habe ich jetzt einige neue Fehlermeldung dieser Art:
PERL WARNING: Use of uninitialized value $2 in concatenation (.) or string at ./FHEM/98_HTTPMOD.pm line 507, <$fh> line 306.

Die hatte ich vorherr nicht und sie kommen von Device Plenticore_WR1_api. Irgendwas muss in FHEM geändert worden sein, was den Fehler bewirkt. Hat jemand eine Ahnung was geändert werden muss?
Das hat vor geraumer Zeit mit einem Update von HTTPMOD begonne, ich konnte jedoch nicht feststellen, ob es durch einen falschen Aufruf, oder durch das Modul entsatanden ist. Meine Vermutung liegt aber beim Modul :-( und das übersteigt meine Perl Kenntnisse.
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

ch.eick

Hallo zusammen,

ich überarbeite gerade die Solar_forecast() Funktion um bessere Prognosewerte und noch zusätzlich einen Prognose_max Wert mit Uhrzeit zu bekommen.
Hier schon mal einige Ausgabewerte, wobei mir schon jetzt aufgefallen ist, dass der Prognose_day Wert nicht wirklich falsch gewesen ist.
Der Unterschied ist in den restlichen Werten, wodurch man dann genauer planen kann.

Das ist die bisherige Berechnung:

2022.08.03 18:27:21.131 3: Prognose_4h                  : 10146
2022.08.03 18:27:21.131 3: Prognose_rest                : 10146
2022.08.03 18:27:21.131 3: Prognose_morning             : 38949
2022.08.03 18:27:21.132 3: Prognose_afternoon           : 69343
2022.08.03 18:27:21.132 3: Prognose_day                 : 108292

Das wäre dann als reading neu:

2022.08.03 18:27:21.132 3: Prognose_max                 : 13357
2022.08.03 18:27:21.132 3: Prognose_max_time            : 14:00

Diese Werte ergeben sich aus der Summierung über die Interpolation und würden die bisherige Prognose ersetzen.
Die bisherigen reading Namen bleiben jedoch erhalten.

2022.08.03 18:27:21.132 3: Interpolation_4h             : 7056
2022.08.03 18:27:21.132 3: Interpolation_rest           : 7056
2022.08.03 18:27:21.132 3: Interpolation_morning        : 45541
2022.08.03 18:27:21.132 3: Interpolation_afternoon      : 62753
2022.08.03 18:27:21.132 3: Interpolation_day            : 108294

Prognose_day und Interpolation_day sind bis auf 2 W gleich :-)

Für eine Darstellung im Grafana Diagramm macht es jedoch keinen Unterschied, wenn man es als Linie Darstellt. deshalb werde ich die interpolierten Werte nicht in die Datenbank schreiben, sondern nur für die Summierungen verwenden.

Über die Werte von *_morning und *_afternoon kann man auch erkennen, ob der Vormittag oder der Nachmittag in der Leistung stärker sein wird. Wir hatten ja noch immer das Problem, dass es am Nachmittag mal regnen könnte und dann der Speicher nicht richtig voll wäre.
Da könnte ich eventuell noch etwas in der WR_1_Speicher_1_ExternControl einbauen ???
Meine anderen Untersuchungen bezüglich Regen haben noch nichts hervorgebracht :-(

Gibt es bei dieser Gelegenheit noch weitere Wünsche, die in der Prognose berechnet werden könnten?

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

ch.eick

Moin,
nachdem ich mit dem Upgrade vom KSEM auf 2.0 nun das Wochenende noch gewartet habe, ist es nun vollbracht :-)
Bisher gab es mit zwei Wechselrichtern noch kein Problem, jedoch wird der Hausverbrauch im Schwarm leider noch nicht zum Plenticore Master übermittelt. Da denke ich wird es sicher bald noch einen Plenticore Update geben.
Die eventuell zusätzlichen KSEM Modbus Register habe ich auch noch nicht gefunden.
Dann schauen wir mal, wann Kostal mit dem Umbau fertig ist, bevor ist die FHEM Devices anfassen werde.

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

ch.eick

Hallo nochmal,

ich habe jetzt auch eine kontinuierlichere Ladung des Speichers hin bekommen, zumindest nach dem ersten Test :-)
Bisher ist das Laden ja immer zum Ende hin spitz zugelaufen und somit wurde zu Begin stark und zum Ende langsamer geladen. Das ist für die 70% Regelung natürlich nicht so schön und einige von Euch haben dann einen Festen Wert eingestellt. Da das Mittagshoch jedoch unterschiedlich lang sein kann verwende ich die dynamische Ladeberechnung.
In der Grafik sieht man jetzt recht schön den gleichmäßigeren Verlauf, bis auf die kleine Stufe :-) , da habe ich dann nochmal etwas verändert, wodurch es dann morgen fertig sein sollte.

Der Hintergrund mit dem spitzen Zulaufen hatte wohl zwei Gründe:
1. Die Funktion für die Berechnung hat immer auf die restliche Lademenge reagiert.
2. Die Ladefunktion eines Speichers schein zum Ende hin langsam abzuflachen.

Lange Rede kurzer Sinn, jetzt sieht es schon wesendlich gleichmäßiger aus.

Fortsetzung folgt...

EDIT:
2022.08.09 Leider habe ich mich zu früh gefreut :-( es sieht immer noch wie ein Flugzeugflügel aus.

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

ch.eick

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

ch.eick

Moin,
falls Euch mal im WR_1_API Device die init Zählerstände verloren gegangen sind was Ihr z.B. an merkwürdigen Werten in der Tages- oder Monatsspalte merkt, dann könnt Ihr das wie folgt wieder herstellen.

In der Datenbank müsstet Ihr die Werte für Active_energy+ und Active_energy- vom Vormonat suchen.
Beim Jahreswechsel ist das auch der Wert für den Jahresanfang.

select TIMESTAMP,READING,VALUE from history
  where DEVICE='WR_0_KSEM' and READING='Active_energy-'
    and TIMESTAMP > last_day(date_sub(now(),interval 1 month))+ interval 1 day - interval 1 month
    and TIMESTAMP < last_day(date_sub(now(),interval 1 month))+ interval 1 day
  order by TIMESTAMP desc
  limit 1;
+---------------------+----------------+-------+
| TIMESTAMP           | READING        | VALUE |
+---------------------+----------------+-------+
| 2022-07-31 19:31:41 | Active_energy- | 25537 |
+---------------------+----------------+-------+


select TIMESTAMP,READING,VALUE from history
  where DEVICE='WR_0_KSEM' and READING='Active_energy+'
    and TIMESTAMP > last_day(date_sub(now(),interval 1 month))+ interval 1 day - interval 1 month
    and TIMESTAMP < last_day(date_sub(now(),interval 1 month))+ interval 1 day
  order by TIMESTAMP desc
  limit 1;
+---------------------+----------------+-------+
| TIMESTAMP           | READING        | VALUE |
+---------------------+----------------+-------+
| 2022-07-31 18:08:40 | Active_energy+ | 7468  |
+---------------------+----------------+-------+


In der FHEM Kommandozeile z.B. für den Monat

setreading WR_1_API SW_Meter_init_FeedInGrid_Month 25537
setreading WR_1_API SW_Meter_init_Grid_Month 7468


Das ganze wird im normalfall im PV_Schedule Device jeden Tag/Monat/Jahr automatisch gemacht.

Der Tageswert fällt oft gar nicht auf, da er ja am nächsten Tag dann schon wieder richtig gesetzt wurde.
Solltet Ihr das jedoch erst spät bemerken könntet Ihr alle davon abhängigen Werte auch in der Datenbank, mit etwas Rechenaufwand, manuell wieder korrigieren.

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

ch.eick

Moin zusammen,
die Wetterlage lässt es gerade zu, weshalb ich mal wieder am Regen bin.
Ein virtueller Regensensor mit wetter.com und HTTPMOD
Das greift auf das Wetter RADAR zu und liefert sehr aktuell im 5 Minuten Raster Informationen zu Regenwolken :-)

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

ch.eick

Hey,
2023, was ändert sich?
ich wollte mal wissen, wie oft die 70% Regelung bei meiner Anlage zuschlägt.

Dabei schaue ich mir jedoch zwei Werte an, da die Anlage ja auch noch eine Regelungs Hysterese hat.
Das Start Datum und die 70% als Leistung müsst Ihr natürlich noch selber ändern.

select * from history
  where  DEVICE='WR_1'
      and (   READING='Total_Active_P_EM' and VALUE < -13400
           or READING='P_limit_from_EVU' and VALUE < 100)
      and TIMESTAMP > '2022-07-01'
      and TIMESTAMP < '2022-08-01'
      and hour(TIMESTAMP) > 9
      and hour(TIMESTAMP) < 15
  order by TIMESTAMP;

select count('P_limit_from_EVU') AS Anzahl from history
  where  DEVICE='WR_1'
      and READING='P_limit_from_EVU'
      and VALUE < 100
      and TIMESTAMP > '2022-07-01'
      and TIMESTAMP < '2022-08-01'
      and hour(TIMESTAMP) > 9
      and hour(TIMESTAMP) < 15;
+--------+
| Anzahl |
+--------+
|     69 |
+--------+

Hierbei war der 26.07.2022 besonders auffällig, was an dem sehr wechselhaften Wetter gelegen haben muss. Trotz der Optimierung der Starkverbraucher und auch des Hausspeicherladens  in der Mittagszeit kam es an dem Tag von 11:30 bis 15:00 Uhr zu Abregelungen. Ab 14:00 Uhr war der Hausspeicher bereits voll.
Damit ist aber bald Schluss, dann geht es eher um "Peak Shaving", aber das verwendet ja die gleichen Mechanismen :-)

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

ch.eick

Hey Leute,
der Urlaub ist rum.
Ladet Eure BEVs, denn das Wetter wird schlechter :-)

VG, an alle die noch mitlesen
      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

ch.eick

Puh, das ist ja mal super gelaufen :-)

- BEV auf 100%
- Wärmepumpe fertig
- Wirlpool auf 38 °C
- Die Heizung meldet sich auch kurz um 10:00 Uhr zu Wort :-(

und heute war am Übergang von der Speicher- zur PV-Leistung, um 7:43 noch genau 7 % SOC übrig.
Der Eigenverbrauch war gestern bei 95 %.

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

zwölfgang

Hi Christian,
Urlaub vorbei und alles läuft gut. Auch mein go-eCharger ladet den Niro schön mit Überschuss sofern es welchen gibt, wird jetzt halt immer weniger.
Wollte damit nur sagen dass ich immer noch schön dabei bin und für neues immer gerne bereit zum testen.
Super Arbeit von dir.  :)

VG
Wolfgang