Skip to content

Conversation


class SolaredgeBatConfiguration:
def __init__(self, modbus_id: int = 1):
def __init__(self, modbus_id: int = 1, battery_index: int = 1):
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bei bestehenden SolarEdge-Speichern fehlt die Einstellung battery_index, diese muss in der Konfiguration noch ergänzt werden. Analog zu hier:

def upgrade_datastore_68(self) -> None:

Außerdem in Z. 54 die DATASTORE_VERSION um eins hochzählen und deine Funktion ans Ende der Datei setzen und die Versionszahlen analog zu den anderen Funktionen hochzählen. Beim Starten wird die DATASTORE_VERSION geprüft und wenn diese nicht aktuell ist, die Funktionen ausgeführt und so die Konfiguration geupdatet.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Es fehlt noch eine neue Methode in der update_config.py, die bei bestehenden Speichern den battery_index ergänzt.

@LKuemmel LKuemmel added this to the 2.1.8 Step 2 milestone Mar 13, 2025
@cr0i
Copy link
Contributor

cr0i commented Mar 13, 2025

Ich baue gerade an der Speichersteuerung für SolarEdge (#2258).
Da die auch in der bat.py liegt müssten wir, falls die so OK ist, die beiden Änderungen am besten danach zusammenführen.
Ich habe bei den Variablen extra Werte für Battery1 hinterlegt, die einfach nur für Battery2 erweitert werden könnten, dann muss nur an einer Stelle eine Bedingung rein (Wenn Index == 2, dann lese Battery2 Variablen ein) und dann wäre das kombinierbar.
Ich habe es nur noch nicht eingebaut, da ich nicht weiß, in welcher Reihenfolge die PRs bearbeitet werden, kann aber den Teil ohne set_power_limit gerne mal zusammenbauen.
Natürlich kannst Du auch gerne die Speichersteuerung übernehmen, welche Register in welcher Reihenfolge beschrieben werden müssen, können wir gerne diskutieren.

@snoerenberg
Copy link
Contributor Author

Ich habe bei den Variablen extra Werte für Battery1 hinterlegt, die einfach nur für Battery2 erweitert werden könnten, dann muss nur an einer Stelle eine Bedingung rein (Wenn Index == 2, dann lese Battery2 Variablen ein) und dann wäre das kombinierbar.

Hi @cr0i,

deine Erweiterung habe ich bereits gesehen und bin auch sehr interessiert dies mal auszuprobieren.
Aktuell weiß ich nicht wie es gehandelt werden soll, wenn auch mehrere Wechselrichter und Batterien zur Verfügung stehen.

Im einfachsten Fall ist nur ein Wechselrichter und eine Batterie vorhanden -> Set PowerLimit wird wie berechnet gesetzt.
Wenn 2 Batterien an einem Wechselrichter hängen (bei mir der Fall) -> Set PowerLimit einfach auf beide Register schreiben (Battery1 und Battery2) da ja eh immer nur eine Batterie entladen oder geladen wird.
Wenn jeweils eine Batterien an 2 Wechselrichtern hängt?
-> Ebenfalls alle mit selben Wert speisen? Eigentlich nicht da ggf. Hausverbrauch höher ist als die Entladeleistung von einer einzelnen Batterie

Vielleicht lässt man den letzten Case erstmal außenvor aber man sollte drüber nachdenken :)

@cr0i
Copy link
Contributor

cr0i commented Mar 14, 2025

deine Erweiterung habe ich bereits gesehen und bin auch sehr interessiert dies mal auszuprobieren. Aktuell weiß ich nicht wie es gehandelt werden soll, wenn auch mehrere Wechselrichter und Batterien zur Verfügung stehen.

Im einfachsten Fall ist nur ein Wechselrichter und eine Batterie vorhanden -> Set PowerLimit wird wie berechnet gesetzt. Wenn 2 Batterien an einem Wechselrichter hängen (bei mir der Fall) -> Set PowerLimit einfach auf beide Register schreiben (Battery1 und Battery2) da ja eh immer nur eine Batterie entladen oder geladen wird. Wenn jeweils eine Batterien an 2 Wechselrichtern hängt? -> Ebenfalls alle mit selben Wert speisen? Eigentlich nicht da ggf. Hausverbrauch höher ist als die Entladeleistung von einer einzelnen Batterie

Vielleicht lässt man den letzten Case erstmal außenvor aber man sollte drüber nachdenken :)

Das DischargeLimit bzw. der "Sperrmodus" im Wechselrichter ist unabhängig von Battery1 oder 2.
Es sollte also kein großes Problem sein, wenn der Prozess in beiden Batterien läuft, da sie ja auf identische Werte zurückgreifen.
Ich hatte mir überlegt, das DischargeLimit nur zu Schreiben, wenn es um mehr als 10W vom aktuellen Wert abweicht, dann würde je nach Timing auch nur einmal geschrieben werden.
Voraussetzung ist aber, dass das Problem des mehrfachen Auslesens der Register gelöst ist:
https://forum.openwb.de/viewtopic.php?p=125089#p125089
Ich warte mit der Rückfrage im Feedbackthread aber noch, bis der Beginn des Alpha Release ausgerufen wird, da das ja erst dort behoben werden kann.
Die Anpassung für den Battery Index habe ich schon vorbereitet, das sollte kein Problem darstellen.

@snoerenberg snoerenberg requested a review from LKuemmel March 17, 2025 12:41
@benderl benderl added enhancement New feature or request ui depends on changes in ui repository labels Mar 18, 2025
@benderl benderl marked this pull request as draft April 8, 2025 07:32
@LKuemmel LKuemmel marked this pull request as ready for review June 2, 2025 07:07
Copy link
Contributor

@LKuemmel LKuemmel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Kannst Du bitte ein Rebase auf den Master machen?

@snoerenberg
Copy link
Contributor Author

@LKuemmel rebase wurde durchgeführt und die "update_config.py" nochmal angepasst.

@LKuemmel LKuemmel merged commit 8ddb00d into openWB:master Jun 4, 2025
1 check passed
@cr0i
Copy link
Contributor

cr0i commented Jun 10, 2025

Hallo @snoerenberg ,

ich habe in einer SolarEdge HA Integration gesehen, dass dort sogar 3 Batterien möglich wären, ob das stimmt, kann ich natürlich nicht sagen:
https://github.com/binsentsu/home-assistant-solaredge-modbus/blob/37b1d503fc6339fbeed0ea2a1f5b2ff17deaa5c0/custom_components/solaredge_modbus/__init__.py#L935

In der info.md sieht es wiederum nicht so aus:
https://github.com/binsentsu/home-assistant-solaredge-modbus/blob/37b1d503fc6339fbeed0ea2a1f5b2ff17deaa5c0/info.md?plain=1#L14

@snoerenberg
Copy link
Contributor Author

@cr0i die Dokumentation von SolarEdge selber, enthält auch nur Batterie 1 und 2.

grafik

https://forum.iobroker.net/assets/uploads/files/1709136209375-decimal-power-control-open-protocol-for-solaredge-inverters.pdf

Ich denke, da handelt es sich um eine falsche Implemenetierung bei HA.
Gruß Stephan

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request ui depends on changes in ui repository

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants