-
-
Notifications
You must be signed in to change notification settings - Fork 91
BatteryPrioritizeCharge — Beende morgens einen Entladezyklus, um die Batterie bevorzugt wieder aufzuladen #1956
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: development
Are you sure you want to change the base?
Conversation
…at sunrise, similar to BatteryDischargeAtNight
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR implements a new configuration option that stops a discharge cycle at sunrise when the battery has not reached its start threshold, thereby prioritizing battery charging during the day. Key changes include:
- Adding a new configuration flag (battery_prioritize_charge) in both frontend and backend.
- Introducing logic in the PowerLimiter loop to end discharge cycles at sunrise if the flag is set.
- Updating localization files, serialization/deserialization routines, and default configurations to support the new functionality.
Reviewed Changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 2 comments.
Show a summary per file
File | Description |
---|---|
webapp/src/views/PowerLimiterAdminView.vue | Added a new input element for the battery_prioritize_charge configuration. |
webapp/src/types/PowerLimiterConfig.ts | Introduced the battery_prioritize_charge field to the config schema. |
webapp/src/locales/{de, en, fr}.json | Updated locale files with new keys and hints for battery_prioritize_charge. |
src/PowerLimiter.cpp | Integrated new logic to end discharge cycles at sunrise when appropriate. |
src/Configuration.cpp | Modified config serialization and deserialization to include the new flag. |
include/{defaults.h, PowerLimiter.h, Configuration.h} | Added default values and declared new configuration properties. |
Comments suppressed due to low confidence (1)
src/PowerLimiter.cpp:258
- [nitpick] The verbose log message could be clearer by distinguishing between the battery being sufficiently charged and the prioritized charging behavior. Consider using distinct messages to improve debugging clarity.
isStartThresholdReached() ? "battery is charged enough" : "charge is prioritized"
"BatteryDischargeAtNight": "Batterie nachts sogar teilweise geladen nutzen", | ||
"BatteryDischargeAtNightHint": "Ermöglicht das Entladen der Batterie in der Nacht, auch wenn der Start-Schwellwert nicht erreicht wurde. Das Entladen stoppt bei Sonnenaufgang, oder sobald der Stop-Schwellwert erreicht wurde.", | ||
"BatteryPrioritizeCharge": "Bei Sonnenaufgang ggf. Entladezyklus beenden", | ||
"BatteryPrioritizeChargeHint": "Sollte der Start-Schwellwert bei Sonnenaufgang unterschritten sein, wird ein Entladezyklus beendet. Das Entladen wird wieder aufgenommen, solabd der Start-Schwellwert erreicht wurde.", |
Copilot
AI
May 12, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Typo in the German locale: 'solabd' should be corrected to 'sobald'.
"BatteryPrioritizeChargeHint": "Sollte der Start-Schwellwert bei Sonnenaufgang unterschritten sein, wird ein Entladezyklus beendet. Das Entladen wird wieder aufgenommen, solabd der Start-Schwellwert erreicht wurde.", | |
"BatteryPrioritizeChargeHint": "Sollte der Start-Schwellwert bei Sonnenaufgang unterschritten sein, wird ein Entladezyklus beendet. Das Entladen wird wieder aufgenommen, sobald der Start-Schwellwert erreicht wurde.", |
Copilot uses AI. Check for mistakes.
"ConductionLossesInfo": "Conduction losses are to be expected when transferring energy from the solar charge controller or from the battery to the inverter. These losses are taken into account to calculate better suited inverter limits.", | ||
"BatteryDischargeAtNight": "Use battery at night even if only partially charged", | ||
"BatteryDischargeAtNightHint": "Allows the battery to be discharged at night even if it hasn't reached the Start Threshold. Discharging continues until sunrise or until the Stop Threshold is reached.", | ||
"BatteryPrioritizeCharge": "Prioritize charging of the battery at day", |
Copilot
AI
May 12, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nitpick] Consider rephrasing the English label to "Prioritize battery charging during the day" for clearer communication of the intended functionality.
"BatteryPrioritizeCharge": "Prioritize charging of the battery at day", | |
"BatteryPrioritizeCharge": "Prioritize battery charging during the day", |
Copilot uses AI. Check for mistakes.
|
This pull-request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
This pull-request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
Ich schreib's mal auf deutsch, das macht Erläuterungen (mir) einfacher ...
Worum geht's: Ich habe initial nicht verstanden, daß eine nicht ausreichend geladene Batterie nachts entladen werden kann und dann die Entladung wieder stoppt, eine einmal volle jedoch solange entladen wird, bis sie leer ist (siehe Bugreport #1940).
Nun, in meinem Setup ist es wünschenswert, die Batterie tagsüber priorsitisiert wieder zu laden, damit die nächtliche Stützung wieder möglich ist. Das ist mit Bordmitteln bislang nicht möglich, dieser Patch liefert diese Funktion nach:
Somit kann man nun
Wozu braucht man das?
Wer (d/m/w) ›nur‹ ein (größeres) Balkonkraftwerk hat, wer also keine Einspeisevergütung erhält, hat am meisten von seiner Stromernte, wenn er seinen Verbrauch zu Zeiten durch Einspeisung reduziert, wenn der Strom teuer ist. Das gilt bei einem dynamischen Stromtarif monetär, bei statischem Tarif hilft es dem Netz. Gerade bei dynamischen Stromtarifen ist im »Sommerhalbjahr« der Strom tagsüber günstiger als nachts: exemplarisch für den 11.05.2025 sind es zwischen 00:00 und 06:00 sowie 18:00 bis 24:00 im Schnitt 0,3067 €/kWh, zwischen 06:00 und 18:00 0,1167 €/kWh.
Wer also einen dynamischen Stromtarif hat, der präferiert ggf. das Laden der Batterie, während die Sonne scheint und der Strom günstig ist — und hebt sich das Entladen für wenn voll oder die Abendstunden auf. Bei festem Tarif hilft es zumindest noch dem Netz, wenn man im Sommer, wo oft Wind- und Solarenergieüberschuß tagsüber herrscht, die eigene Solarenergie, ja, verlustbehaftet, speichert und zeitversetzt verbraucht.
An bewölkten Tagen, wo die eigene PV mit Ach und Krach die Batterie über den Tag voll bekommt, können die Stunden zwischen Sonnenaufgang bis nach dem Mittagspeak die sein, die abends in der Batterieladung fehlen, wenn tagsüber Laden nicht priorisiert wird.
Sonstige Überlegungen
Die Nützlichkeit hängt sicher von einigen Faktoren ab, wie kWh der Batterie vs. kWp der Solaranlage, dynamischer vs. statischer Strompreis, ... Aber aus meiner Sicht schließt der Patch auch eine ›Logiklücke‹: warum kann ich nur Nachts entladen (Start-Schwellwert utopisch hoch), nicht aber auch mit dem Entladen vor Sonnenuntergang, nämlich wenn der (realistische) Start-Schwellwert erreicht ist, beginnen und bei Sonnenaufgang hört die Entladung wieder auf?
Fazit
Aus meiner Sicht ist das ein kleine, logische Funktonserweiterung, die manchen Nutzern helfen kann, mit OpenDTU-OnBattery die eigenen Bedürfnisse besser abzudecken.