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

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

Vorheriges Thema - Nächstes Thema

plin

FHEM1 (Main) Raspi4 mit CUL, Homematic, SDUINO 433/OOK, zentrale Steuerung
FHEM2 (Keller) x86 mit CUL/hmland, IP-basierte Module
FHEM3 (Erdgeschoss) Raspi2 mit SDUINO 868/GFSK
FHEM4 (Hausanschlussraum), USV und OBIS-Modul
FHEM5 (Docker) mit FHEM2FHEM, InfluxDB

ch.eick

Zitat von: plin am 11 Januar 2021, 16:06:26
Bei uns war mehr angekündigt ...
Macht es da Sinn, auch den Ertrag zu reduzieren, oder liegt dann wirklich schon Schnee auf den Modulen und es kommt gar nichts mehr?
Ich bräuchte mehr Informationen, ab wann der Ertrag leidet.
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

plin

Zitat von: ch.eick am 11 Januar 2021, 17:11:12
Macht es da Sinn, auch den Ertrag zu reduzieren, oder liegt dann wirklich schon Schnee auf den Modulen und es kommt gar nichts mehr?
Ich bräuchte mehr Informationen, ab wann der Ertrag leidet.
Dazu müsste der Schnee bei uns erst mal liegen bleiben. Das nächste Mal gehe ich raus und werfe einen Blick auf's Dach. Auf dem Rasen lagen vielleicht 2 cm.
Bei der Dicke kann man beim Effekt wahrscheinlich noch nicht zwischen Bewölkung und Schnee unterscheiden.
FHEM1 (Main) Raspi4 mit CUL, Homematic, SDUINO 433/OOK, zentrale Steuerung
FHEM2 (Keller) x86 mit CUL/hmland, IP-basierte Module
FHEM3 (Erdgeschoss) Raspi2 mit SDUINO 868/GFSK
FHEM4 (Hausanschlussraum), USV und OBIS-Modul
FHEM5 (Docker) mit FHEM2FHEM, InfluxDB

ch.eick

Zitat von: plin am 11 Januar 2021, 18:45:13
Dazu müsste der Schnee bei uns erst mal liegen bleiben. Das nächste Mal gehe ich raus und werfe einen Blick auf's Dach. Auf dem Rasen lagen vielleicht 2 cm.
Bei der Dicke kann man beim Effekt wahrscheinlich noch nicht zwischen Bewölkung und Schnee unterscheiden.
Heute Morgen sind bei mir auch Werte für RRS1c gekommen und auch tatsächlich etwas Schnee.
Gleichzeitig ist die Bewölkung und die Regenwahrscheinlichkeit auch gestiegen, sowie die Rad1h Werte sehr niedrig. Die berechneten Solar_Calculation Werte sind so grottig niedrig, das eine weitere Senkung wegen. Schnee nicht notwendig wäre.

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 zusammen,
ich habe mir ein Herz genommen und mal wieder etwas Copy/Past gemacht. Nach einer Stunde Arbeit ist nun über das Device PV_Anlage_1_API die externe Batterie Steuerung verfügbar, bisher war nur eine Abfrage möglich.
Leider habe ich noch keine praktische Erfahrung mit der externen Batterie Steuerung.
Nach Aussage aus einem anderen Forum werden hierdurch jedoch einzelne interne Werte, für eine Zeit von 3 Minuten überschrieben. Dies hat den Hintergrund, das die externe Steuerung regelmäßig die Werte setzen muss, um den Zustand zu erhalten. Es soll verhindert werden, dass sich die externe Steuerung eventuell aufgehängt hat und somit die Kontrolle über die Batterie verloren geht.

Ein Szenario wäre z.B. die Begrenzung der Batterieladung auf MaxSoc 80%

- Bei meiner Anlage bin ich im Sommer mit ca 40% Batterieladung aus der Nacht gekommen.
- in Phasen von langem Top Wetter konnte die Batterie niemals einen Wert von z.B. MinSoc 10% erreichen.

- Es könnte eine Langfristige Speicherung verhindert werden
- Bei einer schlechten Prognose für den nächsten Tag soll die Batterie auf Soc 100% geladen werden
- Bei sehr guter Prognose soll die Batterie am Abend z.B. nur 70% geladen sein. Das hängt natürlich vom jeweiligen Haushalt und der Batteriegröße ab.
- Die Ladezeit soll natürlich im dynamischen 70% Bereich liegen, damit es keine Abriegelung gibt.

Vorteile:
- weniger Stress für den Speicher
- geringfügig mehr Einspeisung am Morgen und Nachmittag
- Der Plenticore bekommt eine externe Prognose und trifft für die Ladezeit besser das Maximum.
- Die Speicherladung kann besser auf den Haushalt angepasst werden.


Damit Ihr kein komplett Update des Devices machen müsst habe ich hier mal die delta Befehle aufgelistet. Bitte prüft das jedoch nochmal, bevor Ihr das Löschen durchführt.

attr PV_Anlage_1_API comment Version 2021.01.12 12:30\
Passworte für die Abfrage des PV_Anlage_1_API werden im storeKeyValue abgelegt:\
   {KeyValue("[read|store]","PW_<Device Name>_<Benutzer Name>","<passwort>")}\
   {KeyValue("store","PW_PV_Anlage_1_API_user","<passwort>")}

###################################################################################################
## An dieser Stelle werden alte Attribute entfernt, die dann später mit einer zweistelligen Nummerierung neu erstellt werden.
##
deleteattr PV_Anlage_1_API set221Data
deleteattr PV_Anlage_1_API set221Header01
deleteattr PV_Anlage_1_API set221Header02
deleteattr PV_Anlage_1_API set221Hint
deleteattr PV_Anlage_1_API set221Method
deleteattr PV_Anlage_1_API set221Name
deleteattr PV_Anlage_1_API set221URL
deleteattr PV_Anlage_1_API set223Data
deleteattr PV_Anlage_1_API set223Header01
deleteattr PV_Anlage_1_API set223Header02
deleteattr PV_Anlage_1_API set223Hint
deleteattr PV_Anlage_1_API set223Method
deleteattr PV_Anlage_1_API set223Name
deleteattr PV_Anlage_1_API set223URL
deleteattr PV_Anlage_1_API set224Data
deleteattr PV_Anlage_1_API set224Header01
deleteattr PV_Anlage_1_API set224Header02
deleteattr PV_Anlage_1_API set224Hint
deleteattr PV_Anlage_1_API set224Method
deleteattr PV_Anlage_1_API set224Name
deleteattr PV_Anlage_1_API set224URL
deleteattr PV_Anlage_1_API set225Data
deleteattr PV_Anlage_1_API set225Header01
deleteattr PV_Anlage_1_API set225Header02
deleteattr PV_Anlage_1_API set225Hint
deleteattr PV_Anlage_1_API set225Method
deleteattr PV_Anlage_1_API set225Name
deleteattr PV_Anlage_1_API set225URL
deleteattr PV_Anlage_1_API set226Data
deleteattr PV_Anlage_1_API set226Header01
deleteattr PV_Anlage_1_API set226Header02
deleteattr PV_Anlage_1_API set226Hint
deleteattr PV_Anlage_1_API set226Method
deleteattr PV_Anlage_1_API set226Name
deleteattr PV_Anlage_1_API set226URL
deleteattr PV_Anlage_1_API set227Data
deleteattr PV_Anlage_1_API set227Header01
deleteattr PV_Anlage_1_API set227Header02
deleteattr PV_Anlage_1_API set227Hint
deleteattr PV_Anlage_1_API set227Method
deleteattr PV_Anlage_1_API set227Name
deleteattr PV_Anlage_1_API set227URL

###################################################################################################
##  Hier kommen die neuen Set Attribute für die zweistellige Nummerierung
##
attr PV_Anlage_1_API set2201Data [{"moduleid":"devices:local","settings":[{"id":"Battery:DynamicSoc:Enable","value":"$val"}]}]
attr PV_Anlage_1_API set2201Header01 authorization: Session %auth_sessionId%
attr PV_Anlage_1_API set2201Header02 Content-type:application/json, Accept:application/json, Connection:keep-alive
attr PV_Anlage_1_API set2201Hint 0,1
attr PV_Anlage_1_API set2201Method PUT
attr PV_Anlage_1_API set2201Name 22_01_Battery_DynamicSoc_Enable
attr PV_Anlage_1_API set2201URL http://%IP-Address_Plenticore%/api/v1/settings
attr PV_Anlage_1_API set2203Data [{"moduleid":"devices:local","settings":[{"id":"Battery:MinHomeComsumption","value":"$val"}]}]
attr PV_Anlage_1_API set2203Header01 authorization: Session %auth_sessionId%
attr PV_Anlage_1_API set2203Header02 Content-type:application/json, Accept:application/json, Connection:keep-alive
attr PV_Anlage_1_API set2203Hint slider,50,50,8000
attr PV_Anlage_1_API set2203Method PUT
attr PV_Anlage_1_API set2203Name 22_03_Battery_MinHomeConsumption
attr PV_Anlage_1_API set2203URL http://%IP-Address_Plenticore%/api/v1/settings
attr PV_Anlage_1_API set2204Data [{"moduleid":"devices:local","settings":[{"id":"Battery:MinSoc","value":"$val"}]}]
attr PV_Anlage_1_API set2204Header01 authorization: Session %auth_sessionId%
attr PV_Anlage_1_API set2204Header02 Content-type:application/json, Accept:application/json, Connection:keep-alive
attr PV_Anlage_1_API set2204Hint slider,10,5,100
attr PV_Anlage_1_API set2204Method PUT
attr PV_Anlage_1_API set2204Name 22_04_Battery_MinSoc
attr PV_Anlage_1_API set2204URL http://%IP-Address_Plenticore%/api/v1/settings
attr PV_Anlage_1_API set2205Data [{"moduleid":"devices:local","settings":[{"id":"Battery:SmartBatteryControl:Enable","value":"$val"}]}]
attr PV_Anlage_1_API set2205Header01 authorization: Session %auth_sessionId%
attr PV_Anlage_1_API set2205Header02 Content-type:application/json, Accept:application/json, Connection:keep-alive
attr PV_Anlage_1_API set2205Hint 0,1
attr PV_Anlage_1_API set2205Method PUT
attr PV_Anlage_1_API set2205Name 22_05_Battery_SmartBatteryControl_Enable
attr PV_Anlage_1_API set2205URL http://%IP-Address_Plenticore%/api/v1/settings
attr PV_Anlage_1_API set2206Data [{"moduleid":"devices:local","settings":[{"id":"Battery:Strategy","value":"$val"}]}]
attr PV_Anlage_1_API set2206Header01 authorization: Session %auth_sessionId%
attr PV_Anlage_1_API set2206Header02 Content-type:application/json, Accept:application/json, Connection:keep-alive
attr PV_Anlage_1_API set2206Hint 1,2
attr PV_Anlage_1_API set2206Method PUT
attr PV_Anlage_1_API set2206Name 22_06_Battery_Strategy
attr PV_Anlage_1_API set2206URL http://%IP-Address_Plenticore%/api/v1/settings
attr PV_Anlage_1_API set2207Data [{"moduleid":"devices:local","settings":[{"id":"Battery:Type","value":"$val"}]}]
attr PV_Anlage_1_API set2207Header01 authorization: Session %auth_sessionId%
attr PV_Anlage_1_API set2207Header02 Content-type:application/json, Accept:application/json, Connection:keep-alive
attr PV_Anlage_1_API set2207Hint 0,4
attr PV_Anlage_1_API set2207Method PUT
attr PV_Anlage_1_API set2207Name 22_07_Battery_Type
attr PV_Anlage_1_API set2207URL http://%IP-Address_Plenticore%/api/v1/settings

###################################################################################################
## Diese Set Attribute sind neu für die "Battery:ExternControl"
## Nach dem setzen eines Wertes ist das Ergebnis mit "get 23_Battery:_ExternControl" erneut abzufragen, um die Readings zu aktualisieren.
attr PV_Anlage_1_API set2300Data [{"moduleid":"devices:local","settings":[{"id":"Battery:ExternControl","value":"$val"}]}]
attr PV_Anlage_1_API set2300Header01 authorization: Session %auth_sessionId%
attr PV_Anlage_1_API set2300Header02 Content-type:application/json, Accept:application/json, Connection:keep-alive
attr PV_Anlage_1_API set2300Hint 0,1
attr PV_Anlage_1_API set2300Method PUT
attr PV_Anlage_1_API set2300Name 23_00_Battery_ExternControl
attr PV_Anlage_1_API set2300URL http://%IP-Address_Plenticore%/api/v1/settings
attr PV_Anlage_1_API set2301Data [{"moduleid":"devices:local","settings":[{"id":"Battery:ExternControl:AcPowerAbs","value":"$val"}]}]
attr PV_Anlage_1_API set2301Header01 authorization: Session %auth_sessionId%
attr PV_Anlage_1_API set2301Header02 Content-type:application/json, Accept:application/json, Connection:keep-alive
attr PV_Anlage_1_API set2301Method PUT
attr PV_Anlage_1_API set2301Name 23_01_Battery_ExternControl_AcPowerAbs
attr PV_Anlage_1_API set2301URL http://%IP-Address_Plenticore%/api/v1/settings
attr PV_Anlage_1_API set2302Data [{"moduleid":"devices:local","settings":[{"id":"Battery:ExternControl:AcPowerRel","value":"$val"}]}]
attr PV_Anlage_1_API set2302Header01 authorization: Session %auth_sessionId%
attr PV_Anlage_1_API set2302Header02 Content-type:application/json, Accept:application/json, Connection:keep-alive
attr PV_Anlage_1_API set2302Method PUT
attr PV_Anlage_1_API set2302Name 23_02_Battery_ExternControl_AcPowerRel
attr PV_Anlage_1_API set2302URL http://%IP-Address_Plenticore%/api/v1/settings
attr PV_Anlage_1_API set2303Data [{"moduleid":"devices:local","settings":[{"id":"Battery:ExternControl:DcCurrentAbs","value":"$val"}]}]
attr PV_Anlage_1_API set2303Header01 authorization: Session %auth_sessionId%
attr PV_Anlage_1_API set2303Header02 Content-type:application/json, Accept:application/json, Connection:keep-alive
attr PV_Anlage_1_API set2303Method PUT
attr PV_Anlage_1_API set2303Name 23_03_Battery_ExternControl_DcCurrentAbs
attr PV_Anlage_1_API set2303URL http://%IP-Address_Plenticore%/api/v1/settings
attr PV_Anlage_1_API set2304Data [{"moduleid":"devices:local","settings":[{"id":"Battery:ExternControl:DcCurrentRel","value":"$val"}]}]
attr PV_Anlage_1_API set2304Header01 authorization: Session %auth_sessionId%
attr PV_Anlage_1_API set2304Header02 Content-type:application/json, Accept:application/json, Connection:keep-alive
attr PV_Anlage_1_API set2304Method PUT
attr PV_Anlage_1_API set2304Name 23_04_Battery_ExternControl_DcCurrentRel
attr PV_Anlage_1_API set2304URL http://%IP-Address_Plenticore%/api/v1/settings
attr PV_Anlage_1_API set2305Data [{"moduleid":"devices:local","settings":[{"id":"Battery:ExternControl:DcPowerAbs","value":"$val"}]}]
attr PV_Anlage_1_API set2305Header01 authorization: Session %auth_sessionId%
attr PV_Anlage_1_API set2305Header02 Content-type:application/json, Accept:application/json, Connection:keep-alive
attr PV_Anlage_1_API set2305Method PUT
attr PV_Anlage_1_API set2305Name 23_05_Battery_ExternControl_DcPowerAbs
attr PV_Anlage_1_API set2305URL http://%IP-Address_Plenticore%/api/v1/settings
attr PV_Anlage_1_API set2306Data [{"moduleid":"devices:local","settings":[{"id":"Battery:ExternControl:DcPowerRel","value":"$val"}]}]
attr PV_Anlage_1_API set2306Header01 authorization: Session %auth_sessionId%
attr PV_Anlage_1_API set2306Header02 Content-type:application/json, Accept:application/json, Connection:keep-alive
attr PV_Anlage_1_API set2306Method PUT
attr PV_Anlage_1_API set2306Name 23_06_Battery_ExternControl_DcPowerRel
attr PV_Anlage_1_API set2306URL http://%IP-Address_Plenticore%/api/v1/settings
attr PV_Anlage_1_API set2307Data [{"moduleid":"devices:local","settings":[{"id":"Battery:ExternControl:MaxChargePowerAbs","value":"$val"}]}]
attr PV_Anlage_1_API set2307Header01 authorization: Session %auth_sessionId%
attr PV_Anlage_1_API set2307Header02 Content-type:application/json, Accept:application/json, Connection:keep-alive
attr PV_Anlage_1_API set2307Method PUT
attr PV_Anlage_1_API set2307Name 23_07_Battery_ExternControl_MaxChargePowerAbs
attr PV_Anlage_1_API set2307URL http://%IP-Address_Plenticore%/api/v1/settings
attr PV_Anlage_1_API set2308Data [{"moduleid":"devices:local","settings":[{"id":"Battery:ExternControl:MaxDischargePowerAbs","value":"$val"}]}]
attr PV_Anlage_1_API set2308Header01 authorization: Session %auth_sessionId%
attr PV_Anlage_1_API set2308Header02 Content-type:application/json, Accept:application/json, Connection:keep-alive
attr PV_Anlage_1_API set2308Method PUT
attr PV_Anlage_1_API set2308Name 23_08_Battery_ExternControl_MaxDischargePowerAbs
attr PV_Anlage_1_API set2308URL http://%IP-Address_Plenticore%/api/v1/settings
attr PV_Anlage_1_API set2309Data [{"moduleid":"devices:local","settings":[{"id":"Battery:ExternControl:MaxSocRel","value":"$val"}]}]
attr PV_Anlage_1_API set2309Header01 authorization: Session %auth_sessionId%
attr PV_Anlage_1_API set2309Header02 Content-type:application/json, Accept:application/json, Connection:keep-alive
attr PV_Anlage_1_API set2309Hint slide,30,5,100
attr PV_Anlage_1_API set2309Method PUT
attr PV_Anlage_1_API set2309Name 23_09_Battery_ExternControl_MaxSocRel
attr PV_Anlage_1_API set2309URL http://%IP-Address_Plenticore%/api/v1/settings
attr PV_Anlage_1_API set2310Data [{"moduleid":"devices:local","settings":[{"id":"Battery:ExternControl:MinSocRel","value":"$val"}]}]
attr PV_Anlage_1_API set2310Header01 authorization: Session %auth_sessionId%
attr PV_Anlage_1_API set2310Header02 Content-type:application/json, Accept:application/json, Connection:keep-alive
attr PV_Anlage_1_API set2310Hint slider,5,5,30
attr PV_Anlage_1_API set2310Method PUT
attr PV_Anlage_1_API set2310Name 23_10_Battery_ExternControl_MinSocRel
attr PV_Anlage_1_API set2310URL http://%IP-Address_Plenticore%/api/v1/settings


Für die unter Euch, die bereits in die Batteriesteuerung eingegriffen haben ist dann auch eine Änderung im PV_Schedule notwendig, um die Namensänderung nachzuvollziehen.
Es geht um diese Zeilen "set PV_Anlage_1_API 22_3_Battery* " , wo aus der "3" eine "03" wird.

################################################################################################################
## 6 Wenn die Ladung im Herbst/Winter unter MinSoc geht allen PV Überschuss in die Batterie laden
##
DOELSEIF
(([Astro:ObsSeason] eq "Herbst" or [Astro:ObsSeason] eq "Winter") and
  [PV_Anlage_1_API:Battery_Info_SoC] <= [PV_Anlage_1_API:Battery_InternControl_MinSoc])

  (get BYD_Status BatteryInformation)
  (set PV_Anlage_1_API 22_03_Battery_MinHomeConsumption [PV_Anlage_1_API:Battery_Info_WorkCapacity])
  (get PV_Anlage_1_API 22_Battery_InternControl, {Log 2, "PV_Schedule cmd_6 : PV Überschuss wird in Batterie geladen. Keine Entladung"})

################################################################################################################
## 7 Beim erreichen von 90% Soc die Entladung wieder frei geben
##
DOELSEIF
(([Astro:ObsSeason] eq "Herbst" or [Astro:ObsSeason] eq "Winter") and
  [PV_Anlage_1_API:Battery_Info_SoC] >= 90)

  (set PV_Anlage_1_API 22_03_Battery_MinHomeConsumption 50)
  (get PV_Anlage_1_API 22_Battery_InternControl, {Log 2, "PV_Schedule cmd_7 : Batterie über 90%, Entlademodus freigegeben"})
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 12 Januar 2021, 13:15:44
Hallo zusammen,
ich habe mir ein Herz genommen und mal wieder etwas Copy/Past gemacht. Nach einer Stunde Arbeit ist nun über das Device PV_Anlage_1_API die externe Batterie Steuerung verfügbar, bisher war nur eine Abfrage möglich.

Auch jetzt wieder besten Dank. Kurze Verständnisfrage: Muss dafür die externe Batteriesteuerung durch den Installateur freigegeben werden?

ch.eick

EDIT: Der Beitrag wurde überarbeitet.

Zitat von: Mumpitz am 12 Januar 2021, 13:22:38
Auch jetzt wieder besten Dank. Kurze Verständnisfrage: Muss dafür die externe Batteriesteuerung durch den Installateur freigegeben werden?
Das wäre noch zu testen. Ich verwende die v1.16 auf dem Plenticore.
Bei mir konnte ich "23_02_Battery_ExternControl"  setzen und es wurde nach einem Browser Refresh in der Oberfläche angezeigt.
Bitte nicht vergessen, den Wert anschließend wieder zu lesen, damit das Reading gesetzt wird.

Was ich noch vergessen hatte. Das reading von "Battery_ExternControl" ist als "Battery_Control" im Device eingetragen.
Hierbei bedeutet:

0 intern
1 extern über Digital I/O
2 extern über Protokoll (Modbus / TCP)

Wenn die externe Steuerung aktiviert ist, kann man in der Web Oberfläche auch als Anlagenbetreiber einen Timeout setzen, das ist dann eine Art Totmannschalter für die externe Steuerung.
Aktualisiert wird es mit "get 22_Battery_InternControl" und mit "get 23_Battery_ExternControl" , da es ja auch zwischen den beiden hin und her schaltet.

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

Mumpitz

Zitat von: ch.eick am 12 Januar 2021, 13:15:44

Es geht um diese Zeilen "set PV_Anlage_1_API 22_3_Battery* " , wo aus der "3" eine "03" wird.

################################################################################################################
## 6 Wenn die Ladung im Herbst/Winter unter MinSoc geht allen PV Überschuss in die Batterie laden
##
DOELSEIF
(([Astro:ObsSeason] eq "Herbst" or [Astro:ObsSeason] eq "Winter") and
  [PV_Anlage_1_API:Battery_Info_SoC] <= [PV_Anlage_1_API:Battery_InternControl_MinSoc])
## and
##  [$SELF:cmd_nr] ne "6" )     ## wurde dieser Zweig bereits ausgeführt ?

  (get BYD_Status BatteryInformation)
  (set PV_Anlage_1_API 22_03_Battery_MinHomeConsumption [PV_Anlage_1_API:Battery_Info_WorkCapacity])
  (get PV_Anlage_1_API 22_Battery_InternControl, {Log 2, "PV_Schedule cmd_6 : PV Überschuss wird in Batterie geladen. Keine Entladung"})



Ich habe alle deine Änderungen bei mir aktualisiert. Eine Frage habe ich zum obigen PV_Schedule:
Du hast die Prüfung ob der gleiche Zweig schon ausgeführt wurde maskiert. Absichtlich oder ein Copy Paste Fehler? Oder anders gefragt, machst du diese Prüfung
## and
##  [$SELF:cmd_nr] ne "6" )     ## wurde dieser Zweig bereits ausgeführt ?


bei dir?

ch.eick

Zitat von: Mumpitz am 12 Januar 2021, 20:03:02
Du hast die Prüfung ob der gleiche Zweig schon ausgeführt wurde maskiert. Absichtlich oder ein Copy Paste Fehler? Oder anders gefragt, machst du diese Prüfung
Moin,
das ist ein Rest von dem Test, als der Loop mit der Batterie noch drin war. Bitte lösch die Zeile.
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 zusammen,
wie das so ist hat sich vor lauter Begeisterung der Fehlerteufel beim Copy/Paste eingeschlichen.

Bei diesen Attributen war bei der ID ein "_" anstelle eines ":" , ich bitte um Entschuldigung.

attr PV_Anlage_1_API set2302Data [{"moduleid":"devices:local","settings":[{"id":"Battery:ExternControl:AcPowerRel","value":"$val"}]}]
attr PV_Anlage_1_API set2303Data [{"moduleid":"devices:local","settings":[{"id":"Battery:ExternControl:DcCurrentAbs","value":"$val"}]}]
attr PV_Anlage_1_API set2304Data [{"moduleid":"devices:local","settings":[{"id":"Battery:ExternControl:DcCurrentRel","value":"$val"}]}]
attr PV_Anlage_1_API set2305Data [{"moduleid":"devices:local","settings":[{"id":"Battery:ExternControl:DcPowerAbs","value":"$val"}]}]
attr PV_Anlage_1_API set2306Data [{"moduleid":"devices:local","settings":[{"id":"Battery:ExternControl:DcPowerRel","value":"$val"}]}]
attr PV_Anlage_1_API set2307Data [{"moduleid":"devices:local","settings":[{"id":"Battery:ExternControl:MaxChargePowerAbs","value":"$val"}]}]
attr PV_Anlage_1_API set2308Data [{"moduleid":"devices:local","settings":[{"id":"Battery:ExternControl:MaxDischargePowerAbs","value":"$val"}]}]
attr PV_Anlage_1_API set2309Data [{"moduleid":"devices:local","settings":[{"id":"Battery:ExternControl:MaxSocRel","value":"$val"}]}]
attr PV_Anlage_1_API set2310Data [{"moduleid":"devices:local","settings":[{"id":"Battery:ExternControl:MinSocRel","value":"$val"}]}]

EDIT:  Das Wiki ist auch bereits korrigiert

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

Damit wir nicht alles doppelt machen...

Ich habe gerade mit den ersten Tests für die Begrenzung der Speicherladung begonnen.
Das Ziel ist im Frühjahr/Sommer den Speicher zu begrenzen, damit er am Morgen in der Nähe von MinSoc aus der Nacht kommt.
Dies war bei meinem Speicher im letzten Sommer nicht der Fall, wodurch er Monate lang nicht unter 40% gekommen ist.

Wenn Ihr noch Ideen für Steuerungsparameter habt, dann könnt Ihr die jetzt kund tun :-)

- ASTRO Frühlahr/Sommer
- Uhrzeit zwischen 7:00 und 20:00 Uhr (In der Nacht kommt ja eh kein PV)
- Timeout für die Externe Steuerung 180 Sekunden (default im Plenticore)

PV_Anlage_1_config zum konfigurieren von
- MaxSoc
- Schwellwert für Prognose vom nächsten Tag


Erste Testergebnisse mit Plenticore v1.16

- Battery:ExternControl lässt sich als Anlagenbetreiber über die API setzen.
- Für die Steuerung muss der Wert zwei (2 = extern über Protokoll (Modbus / TCP) ) gesetzt werden
- Die bisherige Regelung des Speichers scheint bis hierher nicht beeinflusst zu werden

- Der Wert Battery:ExternControl:MaxSocRel muss innerhalb des Timeouts immer wieder holt werden, ansonsten wird der Default 100% wieder gesetzt

- Nach dem setzen und wiederholen von MaxSocRel auf einen Wert kleiner Battery_Info_SoC wurde das Laden unterbrochen und der Überschuss ging ins Netz


Gruß
   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

Mumpitz

Zitat von: ch.eick am 14 Januar 2021, 13:14:33

Wenn Ihr noch Ideen für Steuerungsparameter habt, dann könnt Ihr die jetzt kund tun :-)

- ASTRO Frühlahr/Sommer
- Uhrzeit zwischen 7:00 und 20:00 Uhr (In der Nacht kommt ja eh kein PV)
- Timeout für die Externe Steuerung 180 Sekunden (default im Plenticore)


Ich habe mir diese Frage auch schon gestellt, siehe den entsprechenden Beitrag. Das wären genau die Punkte welche ich gerne umsetzen würden. Allerdings hat es mich ein bisschen verunsichert, dass du geschrieben hast:

Mit diesem Eingriff übernimmt man jedoch auch die Verantwortung für die Batterieladung! Vergisst man die Batterie wieder zu aktivieren kann es z.B. zu einer Tiefentladung kommen.

Kann man das irgendwie absichern das das sicher nicht passieren kann? Ich meine wir reden hier von einer Steuerung, dessen Erfolg wir allenfalls in ca. 15 Jahren zu sehen bekommen. Nur, was ist in 15 Jahren? Bis dann sieht unser BYD Speicher aus wie in etwa das erste mobile Telefon!

Daher hat für mich die erste Priorität, dass es aufgrund der Übernahme der Steuerung durch fhem nicht zu einer Tiefenentladung kommen kann (z.B. Ausfall von fhem oder ähnlich)....

Was mir allenfalls noch einfällt ist, dass wir die Steuerung nicht von den Jahreszeiten abhängig machen sollten, sondern nur von der prognostizierten PV Leistung. Wenn ich Rückblickend schaue wären im letzten Jahr noch ca. 10 Tage besser gewesen die Steuerung beim WR zu lassen als unsere aktuelle Config mit nur Laden und Entladen. Daher sollte das Flexibel sein..

Ansonsten fällt mir nicht mehr viel mehr ein!

Gruss vom tief verschneiten Bodensee

ch.eick

Zitat von: Mumpitz am 14 Januar 2021, 20:51:17
Ich habe mir diese Frage auch schon gestellt, siehe den entsprechenden Beitrag. Das wären genau die Punkte welche ich gerne umsetzen würden. Allerdings hat es mich ein bisschen verunsichert, dass du geschrieben hast:
Mit diesem Eingriff übernimmt man jedoch auch die Verantwortung für die Batterieladung! Vergisst man die Batterie wieder zu aktivieren kann es z.B. zu einer Tiefentladung kommen.
Das hat sich darauf bezogen den Speicher im WR weg zu konfigurieren, das wird beim jetzigen Ansatz nicht gemacht!
Die Entwicklung geht selbst bei Kostal weiter :-) :-) Mit den jetzigen Möglichkeiten kann man den MaxSocRel Wert setzen und somit das Laden gezielt anhalten, Selbst wenn Fhem aussteigen sollte, setzt der WR nach 180 Sekunden einfach wieder den Maximalen Wert. Im vergleich zur ersten Idee ist somit keine Tiefentladung möglich. Die anderen Parameter habe ich bei dieser Aussage natürlich noch nicht mit berücksichtigt.

Das was wir zwei bereits machen, macht nur im Herbst/Winter Sinn und die Ladungsbegrenzung nur im Frühling/Sommer, aber das hängt alles noch zusätzlich vom eigenen Haushalt und der Speichergröße ab. Es ist also noch fine tuning notwendig und Erfahrungen sammeln. Eventuell werde ich die Jahreszeiten noch gegen exaktere Monatsangaben ersetzen, das war ja nur der erste Schuss.

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

Mumpitz

Hallo Christian

Ich habe noch einen Fehler gefunden:

attr PV_Anlage_1_API comment Version 2021.01.12 12:30\
Passworte für die Abfrage des PV_Anlage_1_API werden im storeKeyValue abgelegt:\
   {KeyValue("[read|store]","PW_<Device Name>_<Benutzer Name>","<passwort>")}\
   {KeyValue("store","PW_PV_Anlage_1_API_user","<passwort>")}

###################################################################################################
## An dieser Stelle werden alte Attribute entfernt, die dann später mit einer zweistelligen Nummerierung neu erstellt werden.
##
deleteattr PV_Anlage_1_API set221Data
deleteattr PV_Anlage_1_API set221Header01
deleteattr PV_Anlage_1_API set221Header02
deleteattr PV_Anlage_1_API set221Hint
deleteattr PV_Anlage_1_API set221Method
deleteattr PV_Anlage_1_API set221Name
deleteattr PV_Anlage_1_API set221URL
deleteattr PV_Anlage_1_API set223Data
deleteattr PV_Anlage_1_API set223Header01
deleteattr PV_Anlage_1_API set223Header02
deleteattr PV_Anlage_1_API set223Hint
deleteattr PV_Anlage_1_API set223Method
deleteattr PV_Anlage_1_API set223Name
deleteattr PV_Anlage_1_API set223URL
deleteattr PV_Anlage_1_API set224Data
deleteattr PV_Anlage_1_API set224Header01
deleteattr PV_Anlage_1_API set224Header02
deleteattr PV_Anlage_1_API set224Hint
deleteattr PV_Anlage_1_API set224Method
deleteattr PV_Anlage_1_API set224Name
deleteattr PV_Anlage_1_API set224URL
deleteattr PV_Anlage_1_API set225Data
deleteattr PV_Anlage_1_API set225Header01
deleteattr PV_Anlage_1_API set225Header02
deleteattr PV_Anlage_1_API set225Hint
deleteattr PV_Anlage_1_API set225Method
deleteattr PV_Anlage_1_API set225Name
deleteattr PV_Anlage_1_API set225URL
deleteattr PV_Anlage_1_API set226Data
deleteattr PV_Anlage_1_API set226Header01
deleteattr PV_Anlage_1_API set226Header02
deleteattr PV_Anlage_1_API set226Hint
deleteattr PV_Anlage_1_API set226Method
deleteattr PV_Anlage_1_API set226Name
deleteattr PV_Anlage_1_API set226URL
deleteattr PV_Anlage_1_API set227Data
deleteattr PV_Anlage_1_API set227Header01
deleteattr PV_Anlage_1_API set227Header02
deleteattr PV_Anlage_1_API set227Hint
deleteattr PV_Anlage_1_API set227Method
deleteattr PV_Anlage_1_API set227Name
deleteattr PV_Anlage_1_API set227URL

###################################################################################################
##  Hier kommen die neuen Set Attribute für die zweistellige Nummerierung
##
attr PV_Anlage_1_API set2201Data [{"moduleid":"devices:local","settings":[{"id":"Battery:DynamicSoc:Enable","value":"$val"}]}]
attr PV_Anlage_1_API set2201Header01 authorization: Session %auth_sessionId%
attr PV_Anlage_1_API set2201Header02 Content-type:application/json, Accept:application/json, Connection:keep-alive
attr PV_Anlage_1_API set2201Hint 0,1
attr PV_Anlage_1_API set2201Method PUT
attr PV_Anlage_1_API set2201Name 22_01_Battery_DynamicSoc_Enable
attr PV_Anlage_1_API set2201URL http://%IP-Address_Plenticore%/api/v1/settings
attr PV_Anlage_1_API set2203Data [{"moduleid":"devices:local","settings":[{"id":"Battery:MinHomeComsumption","value":"$val"}]}]
attr PV_Anlage_1_API set2203Header01 authorization: Session %auth_sessionId%
attr PV_Anlage_1_API set2203Header02 Content-type:application/json, Accept:application/json, Connection:keep-alive
attr PV_Anlage_1_API set2203Hint slider,50,50,8000
attr PV_Anlage_1_API set2203Method PUT
attr PV_Anlage_1_API set2203Name 22_30_Battery_MinHomeConsumption
attr PV_Anlage_1_API set2203URL http://%IP-Address_Plenticore%/api/v1/settings
attr PV_Anlage_1_API set2204Data [{"moduleid":"devices:local","settings":[{"id":"Battery:MinSoc","value":"$val"}]}]
attr PV_Anlage_1_API set2204Header01 authorization: Session %auth_sessionId%
attr PV_Anlage_1_API set2204Header02 Content-type:application/json, Accept:application/json, Connection:keep-alive
attr PV_Anlage_1_API set2204Hint slider,10,5,100
attr PV_Anlage_1_API set2204Method PUT
attr PV_Anlage_1_API set2204Name 22_04_Battery_MinSoc
attr PV_Anlage_1_API set2204URL http://%IP-Address_Plenticore%/api/v1/settings
attr PV_Anlage_1_API set2205Data [{"moduleid":"devices:local","settings":[{"id":"Battery:SmartBatteryControl:Enable","value":"$val"}]}]
attr PV_Anlage_1_API set2205Header01 authorization: Session %auth_sessionId%
attr PV_Anlage_1_API set2205Header02 Content-type:application/json, Accept:application/json, Connection:keep-alive
attr PV_Anlage_1_API set2205Hint 0,1
attr PV_Anlage_1_API set2205Method PUT
attr PV_Anlage_1_API set2205Name 22_05_Battery_SmartBatteryControl_Enable
attr PV_Anlage_1_API set2205URL http://%IP-Address_Plenticore%/api/v1/settings
attr PV_Anlage_1_API set2206Data [{"moduleid":"devices:local","settings":[{"id":"Battery:Strategy","value":"$val"}]}]
attr PV_Anlage_1_API set2206Header01 authorization: Session %auth_sessionId%
attr PV_Anlage_1_API set2206Header02 Content-type:application/json, Accept:application/json, Connection:keep-alive
attr PV_Anlage_1_API set2206Hint 1,2
attr PV_Anlage_1_API set2206Method PUT
attr PV_Anlage_1_API set2206Name 22_06_Battery_Strategy
attr PV_Anlage_1_API set2206URL http://%IP-Address_Plenticore%/api/v1/settings
attr PV_Anlage_1_API set2207Data [{"moduleid":"devices:local","settings":[{"id":"Battery:Type","value":"$val"}]}]
attr PV_Anlage_1_API set2207Header01 authorization: Session %auth_sessionId%
attr PV_Anlage_1_API set2207Header02 Content-type:application/json, Accept:application/json, Connection:keep-alive
attr PV_Anlage_1_API set2207Hint 0,4
attr PV_Anlage_1_API set2207Method PUT
attr PV_Anlage_1_API set2207Name 22_07_Battery_Type
attr PV_Anlage_1_API set2207URL http://%IP-Address_Plenticore%/api/v1/settings



Zeile
attr PV_Anlage_1_API set2203Name 22_30_Battery_MinHomeConsumption
müsste durch
attr PV_Anlage_1_API set2203Name 22_03_Battery_MinHomeConsumption

ersetzt werden!

Gruss

ch.eick

Zitat von: Mumpitz am 15 Januar 2021, 08:24:16
Zeile
attr PV_Anlage_1_API set2203Name 22_30_Battery_MinHomeConsumption
müsste durch
attr PV_Anlage_1_API set2203Name 22_03_Battery_MinHomeConsumption
ersetzt werden!
Danke, ist im Post und Wiki erledigt.
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