v0.5.0 â Erstes Stable Release / First Stable Release
https://github.com/basecubedev/ems-solarflow-api-control/releases/tag/v0.5.0
Deutsch
v0.5.0 â Erstes Stable Release
Dieses Release ist ein wichtiger Meilenstein fĂŒr das Projekt: v0.5.0 ist das erste Stable Release.
Die Software wird nicht mehr als experimentell eingeordnet. Die Regelung lÀuft inzwischen stabil im echten Betrieb und wurde durch viele Tests, SonderfÀlle und reale AnlagenzustÀnde weiter verbessert.
Trotzdem gilt: Jede Installation ist anders. Die Defaults sind ein sinnvoller Startpunkt, aber keine Garantie, dass das System ohne PrĂŒfung zu jeder Anlage passt. Wer dieses EMS nutzt, bleibt selbst verantwortlich fĂŒr Konfiguration, Betrieb und Ăberwachung der eigenen Installation.
Feature-Ăbersicht
Kurz zusammengefasst bietet das EMS aktuell unter anderem:
- Regelung mehrerer Zendure-GerĂ€te ĂŒber eine gemeinsame Hauslast
- Lastverteilung nach tatsĂ€chlicher Akku- und PV-GröĂe
- gleichmĂ€Ăigeres Laden und Entladen unterschiedlich groĂer Akkus
- PV-Verteilung fĂŒr unterschiedlich groĂe PV-FlĂ€chen
pv_priority_factor fĂŒr Ost-/SĂŒd-/West-/Nord-Ausrichtungen
- CLI-Steuerung fĂŒr Live-Anpassungen ohne Ănderung der
config.json
- dynamische GerÀteaktivierung und Leistungsgrenzen
- bessere PV-Nutzung, wenn einzelne Akkus voll sind
- Winter SOC Mode fĂŒr dunklere Monate und Reserveverhalten
- Shelly-basierte Hauslastmessung
- optionale Home Assistant Integration
- Sicherheits- und Schutzfunktionen ĂŒber konfigurierbare Limits
- Runtime-State fĂŒr temporĂ€re Overrides und externe Automationen
Highlights
Regelung nach echten Akku- und PV-GröĂen
Das zentrale Feature dieses Releases ist die verbesserte Regelung auf Basis der tatsĂ€chlichen HardwaregröĂen.
Das EMS behandelt GerÀte nicht einfach pauschal gleich, sondern bildet besser ab, wie die Anlage wirklich aufgebaut ist:
- unterschiedliche AkkugröĂen
- unterschiedliche PV-GröĂen
- unterschiedliche Wechselrichterlimits
- verschiedene Modulausrichtungen
- dynamische Hauslast
Wenn ein Akku gröĂer ist als ein anderer, kann er entsprechend stĂ€rker an Lade- und Entladeleistung beteiligt werden. Kleinere Akkus werden dadurch nicht unnötig stark belastet, wĂ€hrend gröĂere Speicher besser genutzt werden können.
GleichmĂ€Ăigeres Laden und Entladen
Die Regelung versucht, die Akkus sinnvoll zusammenzufĂŒhren, ohne hart oder hektisch einzugreifen.
Ziel ist nicht, jeden Akku dauerhaft exakt auf demselben SOC zu halten. Stattdessen soll die Verteilung ruhig und nachvollziehbar bleiben. Wenn Akkus auseinanderlaufen, kann die Regelung sanft gegensteuern.
Gerade bei mehreren GerĂ€ten mit unterschiedlichen AkkugröĂen ist das eines der wichtigsten Features.
PV-Verteilung passend zur Anlage
Auch die PV-Seite wird intelligenter berĂŒcksichtigt.
Wenn ein GerÀt mehr PV-Leistung angeschlossen hat als ein anderes, kann die Regelung diese Unterschiede einbeziehen. Dadurch lassen sich Setups mit mehreren Zendure-GerÀten deutlich besser betreiben als mit einer einfachen Gleichverteilung.
Das ist besonders hilfreich, wenn nicht jeder Wechselrichter gleich viel PV angeschlossen hat.
PV Priority Factor fĂŒr unterschiedliche Modulausrichtungen
Den pv_priority_factor gibt es schon lĂ€nger. Er ist dafĂŒr gedacht, unterschiedliche PV-Modulausrichtungen besser abzubilden.
Je nach Ausrichtung erzeugen Module zu unterschiedlichen Tageszeiten unterschiedlich viel Leistung:
- Ost-Module liefern eher morgens
- SĂŒd-Module liefern stark um die Mittagszeit
- West-Module liefern eher nachmittags und abends
- Nord-Module liefern meist weniger, teilweise aber gleichmĂ€Ăiger
Mit dem pv_priority_factor kann beeinflusst werden, welches GerÀt bevorzugt PV-Leistung ins Haus abgeben soll. Dadurch kann das EMS besser zur realen Anlage passen, statt alle PV-EingÀnge gleich zu behandeln.
Neu bzw. deutlich praktischer ist, dass der Faktor jetzt auch ĂŒber die CLI gesetzt werden kann. Damit muss er nicht nur statisch in der Konfiguration stehen, sondern kann auch dynamisch angepasst werden.
Beispiele:
python3 emsctl.py device WR1 pv-priority-factor 1.2
python3 emsctl.py device WR2 pv-priority-factor 0.8
Damit sind auch externe Trigger möglich, zum Beispiel:
- zeitabhÀngige Anpassung morgens, mittags oder abends
- andere Faktoren je nach Sonnenstand
- Anpassung durch eigene Skripte
- Ănderung bei bestimmten AnlagenzustĂ€nden
- saisonale oder wetterabhÀngige Logik
Das macht den Faktor deutlich flexibler, ohne die Grundregelung komplizierter zu machen.
Bessere PV-Nutzung bei vollem Akku
Wenn ein Akku sein maximales SOC erreicht hat, kann die Regelung die verfĂŒgbare Solarleistung dieses GerĂ€ts besser nutzen.
Dadurch können andere GerĂ€te ihre Akkus weiter laden, wĂ€hrend das volle GerĂ€t bevorzugt seine aktuelle PV-Leistung ins Haus abgibt. Das ist besonders nĂŒtzlich bei Setups mit mehreren GerĂ€ten und unterschiedlichen Akku-SOC-StĂ€nden.
Winter SOC Mode
Der Winter SOC Mode bleibt ein wichtiges Feature.
Er hilft dabei, in dunkleren Monaten bewusster mit Akkustand und Reserveverhalten umzugehen. Gerade bei wenig PV-Ertrag ist es sinnvoll, wenn das EMS nicht einfach blind normales Sommerverhalten beibehÀlt.
CLI fĂŒr Live-Anpassungen
Die CLI ist inzwischen deutlich nĂŒtzlicher geworden, um das System im Betrieb feinzujustieren.
Werte wie GerĂ€teaktivierung, Leistungsgrenzen und pv_priority_factor können zur Laufzeit angepasst werden, ohne direkt die config.json Ă€ndern zu mĂŒssen.
Das ist praktisch fĂŒr Tests, Automationen und externe Steuerlogik.
Warum dieses Release wichtig ist
Viele Steuerungen verteilen Leistung eher einfach oder behandeln GerÀte weitgehend gleich.
Dieses Projekt geht inzwischen einen Schritt weiter: Es versucht, mehrere Zendure-GerÀte passend zu ihrer echten Hardware zu regeln.
Das ist besonders interessant fĂŒr Setups mit:
- unterschiedlich groĂen Akkus
- unterschiedlich groĂen PV-FlĂ€chen
- Ost-/SĂŒd-/West-/Nord-Modulausrichtung
- mehreren Wechselrichtern
- dynamischer Hauslast
- Wunsch nach ruhigem und stabilem Regelverhalten
Genau darin liegt die StÀrke dieses Releases.
Stable, aber weiterhin deine Verantwortung
Auch wenn dies das erste Stable Release ist, bleibt es ein Open-Source-Projekt, das echte EnergiegerÀte steuert.
Bitte prĂŒfe deine Konfiguration sorgfĂ€ltig, beobachte das Systemverhalten nach Ănderungen und nutze nur Werte, die zu deiner eigenen Anlage passen.
Die Defaults sollen den Einstieg erleichtern. Sie ersetzen aber nicht das VerstÀndnis der eigenen Installation.
English
v0.5.0 â First Stable Release
This release is an important milestone for the project: v0.5.0 is the first stable release.
The software is no longer considered experimental. The control logic has become stable in real-world operation and has improved through many tests, edge cases, and actual system behavior.
That said, every installation is different. The defaults are a useful starting point, but they are not a guarantee that the system will fit every setup without review. Anyone using this EMS remains responsible for configuring, operating, and monitoring their own installation.
Feature Overview
In short, the EMS currently provides:
- control of multiple Zendure devices based on a shared home load
- power distribution based on actual battery and PV size
- more balanced charging and discharging of differently sized batteries
- PV distribution for differently sized PV arrays
pv_priority_factor for east/south/west
orth module orientations
- CLI control for live adjustments without changing
config.json
- dynamic device activation and power limits
- better PV usage when individual batteries are full
- Winter SOC Mode for darker months and reserve behavior
- Shelly-based home load measurement
- optional Home Assistant integration
- safety and protection features through configurable limits
- runtime state for temporary overrides and external automation
Highlights
Control Based on Real Battery and PV Sizes
The main feature of this release is the improved control logic based on the actual hardware size of the system.
The EMS does not simply treat all devices equally anymore. Instead, it better reflects how the installation is actually built:
- different battery sizes
- different PV sizes
- different inverter limits
- different module orientations
- dynamic home load
If one battery is larger than another, it can take a larger share of charge and discharge power. Smaller batteries are not pushed unnecessarily hard, while larger batteries can be used more appropriately.
More Balanced Charging and Discharging
The control logic tries to bring batteries together in a sensible way without reacting too aggressively.
The goal is not to keep every battery at exactly the same SOC all the time. Instead, the EMS aims for a calm and understandable distribution. If batteries drift apart, the control logic can gently compensate.
This is one of the key features for setups with multiple devices and different battery sizes.
PV Distribution That Matches the Installation
The PV side is also handled more intelligently.
If one device has more PV connected than another, the control logic can take this into account. This makes multi-device Zendure setups much easier to operate than with a simple equal distribution.
This is especially useful when not every inverter has the same amount of PV connected.
PV Priority Factor for Different Module Orientations
The pv_priority_factor has existed for a while. It is intended to better represent different PV module orientations.
Depending on the orientation, modules produce power at different times of the day:
- east-facing modules produce more in the morning
- south-facing modules produce strongly around midday
- west-facing modules produce more in the afternoon and evening
- north-facing modules usually produce less, but sometimes more evenly
With the pv_priority_factor, you can influence which device should preferably provide PV power to the home. This allows the EMS to better match the real installation instead of treating all PV inputs the same.
What is new, or at least much more convenient now, is that the factor can also be set through the CLI. This means it no longer has to be only a static configuration value, but can also be adjusted dynamically.
Examples:
python3 emsctl.py device WR1 pv-priority-factor 1.2
python3 emsctl.py device WR2 pv-priority-factor 0.8
This also enables external triggers, for example:
- time-based adjustments in the morning, at midday, or in the evening
- different factors depending on sun position
- adjustments from custom scripts
- changes based on specific system states
- seasonal or weather-based logic
This makes the factor much more flexible without making the basic control logic more complicated.
Better Use of PV When a Battery Is Full
When a battery reaches its maximum SOC, the control logic can make better use of the available solar power from that device.
This allows other devices to continue charging their batteries, while the full device preferably supplies its current PV power to the home. This is especially useful in setups with multiple devices and different battery SOC levels.
Winter SOC Mode
The Winter SOC Mode remains an important feature.
It helps handle battery level and reserve behavior more consciously during darker months. Especially when PV yield is low, it makes sense for the EMS not to blindly keep using normal summer behavior.
CLI for Live Adjustments
The CLI has become much more useful for fine-tuning the system during operation.
Values such as device activation, power limits, and pv_priority_factor can be adjusted at runtime without directly changing the config.json.
This is useful for testing, automation, and external control logic.
Why This Release Matters
Many controllers distribute power in a rather simple way or treat devices mostly the same.
This project now goes one step further: It tries to control multiple Zendure devices according to their actual hardware.
This is especially useful for setups with:
- different battery sizes
- different PV sizes
- east/south/west
orth module orientations
- multiple inverters
- dynamic home load
- a preference for calm and stable control behavior
That is exactly where this release is strongest.
Stable, But Still Your Responsibility
Even though this is the first stable release, it remains an open-source project that controls real energy devices.
Please review your configuration carefully, observe the system behavior after changes, and only use values that match your own installation.
The defaults are meant to make getting started easier. They do not replace understanding your own system.