NEWS
Test Adapter Zendure Solarflow
-
@Freaknet Was ist das für eine Struktur auf dem Screenshot? Die habe ich so noch nie gesehen.
@nograx sagte in Test Adapter Zendure Solarflow:
Was ist das für eine Struktur auf dem Screenshot?
Die Struktur kommt von dem JS (zenSDK) von @maxclaudi, also nicht von Deinem Adapter.
-
@Freaknet sagte in Test Adapter Zendure Solarflow:
... Was ist der SmartMode genau? Klingt bisschen nach KI wie in der App von Zendur :-)
Der smartMode sorgt dafür, dass Befehle im RAM statt im Flash gespeichert werden.
Das ist von Zendure so vorgesehen.Wenn Du eine eigene Steuerung implementierst, solltest Du sicherstellen, dass smartMode: 1 gesetzt ist, damit nicht unnötig Flash-Schreibzugriffe entstehen.
Am besten den Datenpunkt überwachen lassen und ihn automatisch (z. B. per Blockly/Script) wieder auf smartMode: 1 setzen, falls er sich ändert.
Ist HEMS aktiviert, wird der smartMode abgeschaltet. In diesem Fall funktioniert eine eigene Steuerung nicht oder nur eingeschränkt.
Wenn bei aktivem HEMS zusätzlich eine Überwachung des Datenpunkts aktiv ist, kann es zu einem permanenten Umschalten des smartMode kommen, oder der Wert bleibt dauerhaft auf smartMode: 0.
Edit:
Hab´s gecheckt was der Smart Modus bewirkt. Rest muss ich mir mal zu Gemüte führen und in ein Blockly einbauen was bewirkt was ich möchte ;-)
Aber mit welchem Wert Regel ich den Input in den Akku bei z.B. -300W Einspeisung ins Netz?
Beim Zendur-Adapter nutzt man ja "setDeviceAutomationInOutLimit" glaub ich.Einen Datenpunkt "setDeviceAutomationInOutLimit" gibt es bei Zendure selbst nicht.
Dieser wird vom entsprechenden Adapter bereitgestellt.Bei Zendure gilt grundsätzlich:
Laden und Entladen gleichzeitig ist nicht möglich.Batterien laden (z. B. bei PV-Überschuss):
- acMode: 1 setzen mit setAcMode
- gewünschte Ladeleistung mit setInputLimit festlegen (in Watt)
Energie ins Haus einspeisen:
- acMode: 2 setzen mit setAcMode
- gewünschte Ausgangsleistung mit setOutputLimit festlegen (in Watt)
Ein setDeviceAutomationInOutLimit existiert im Zendure-Protokoll selbst nicht.
Zum Flash-Speichern:
Ein Wechsel des acMode wird sehr wahrscheinlich immer im Flash gespeichert.
Alle Geräte, die ich bisher analysiert habe, schreiben den acMode unabhängig von möglichen Workarounds dauerhaft in den Flash.inputLimit und outputLimit werden bei smartMode: 1 nicht in den Flash geschrieben, sondern nur im RAM gespeichert.
Der acMode sollte daher nicht zu oft gewechselt werden.
@maxclaudi
Danke für Deine Ausführliche Erklärung.@maxclaudi sagte in Test Adapter Zendure Solarflow:
Bei Zendure gilt grundsätzlich:
Laden und Entladen gleichzeitig ist nicht möglich.Das war mir klar. Ich setzte das Laden (acMode: 1) immer zum Sonnenaufgang und switche nach Sonnenuntergang auf acMode: 2. Quasi schreibe ich dann 2x täglich in den Flash. Denke das wird er abkönnen.
@maxclaudi sagte in Test Adapter Zendure Solarflow:
Batterien laden (z. B. bei PV-Überschuss):
acMode: 1 setzen mit setAcMode
gewünschte Ladeleistung mit setInputLimit festlegen (in Watt)
Energie ins Haus einspeisen:acMode: 2 setzen mit setAcMode
gewünschte Ausgangsleistung mit setOutputLimit festlegen (in Watt)Das wollte ich wissen ;-)
Damit kann ich jetzt dann mein Script/Blockly, weiß noch nicht genau was ich verwende betreiben.Kannst Du mir noch kurz sagen, wie schnell die Reaktionszeit ist bei Änderungen von z.B. setInputLimit?
In deinem Script habe ich was von "nicht <30s" gelesen, die man nicht unterschreiten sollte. Ist das "nur" auf den GET-Befehl von SmartMode zurückzuführen oder gilt dies Zeit dann auch für die xxxxLimit Befehle?
Leider weiß ich nicht, wie schnell der SF800 Plus ist und wie lange das verarbeiten dann intern im Akku dauert. In der App geht das scheinbar recht schnell.Danke bis dahin!
-
Bei mir ähnlich, Betrieb allerdings offline ohne Cloud.
acMode steht dauerhaft auf 0 (nothing)
autoModel steht bei mir dauerhaft auf Smart Matching Mode (8)Umschalten tue ich da nichts, Standby Verbrauch interessiert mich bei 1 Hyper nicht.
Smart Mode sehe ich beim Hyper nicht, allerdings bin ich nach meinen Versuchen mit Trixie wieder auf Bookworm mit Adapter Version 2.04 zurück. Läuft einfach perfekt.
-
Getestet mit einem 2400AC bei einem bekannten. Bei meinen Hypern kann ich das mit autoModel nachvollziehen, damit besteht das gleiche Problem. Davon habe ich 4 Stück, solange keine große Last anliegt sind 3 im idle und 1 speist ein.
Wenn smartmode = 0 und autoModel = 0 kann man auch beobachten das es ca. 7-8 Sekunden dauert bis die Leistung abgegeben (oder bezogen) wird. Wenn smartMode = 1 reagiert das gerät deutlich schneller (vermutlich weil dann erstmal der Wechselrichter zugeschaltet werden muss).
@nograx sagte in Test Adapter Zendure Solarflow:
Getestet mit einem 2400AC bei einem bekannten. Bei meinen Hypern kann ich das mit autoModel nachvollziehen, damit besteht das gleiche Problem. Davon habe ich 4 Stück, solange keine große Last anliegt sind 3 im idle und 1 speist ein.
Wenn smartmode = 0 und autoModel = 0 kann man auch beobachten das es ca. 7-8 Sekunden dauert bis die Leistung abgegeben (oder bezogen) wird. Wenn smartMode = 1 reagiert das gerät deutlich schneller (vermutlich weil dann erstmal der Wechselrichter zugeschaltet werden muss).
Ok, aber was ist dann mit "autoModel" gemeint?
-
@maxclaudi
Danke für Deine Ausführliche Erklärung.@maxclaudi sagte in Test Adapter Zendure Solarflow:
Bei Zendure gilt grundsätzlich:
Laden und Entladen gleichzeitig ist nicht möglich.Das war mir klar. Ich setzte das Laden (acMode: 1) immer zum Sonnenaufgang und switche nach Sonnenuntergang auf acMode: 2. Quasi schreibe ich dann 2x täglich in den Flash. Denke das wird er abkönnen.
@maxclaudi sagte in Test Adapter Zendure Solarflow:
Batterien laden (z. B. bei PV-Überschuss):
acMode: 1 setzen mit setAcMode
gewünschte Ladeleistung mit setInputLimit festlegen (in Watt)
Energie ins Haus einspeisen:acMode: 2 setzen mit setAcMode
gewünschte Ausgangsleistung mit setOutputLimit festlegen (in Watt)Das wollte ich wissen ;-)
Damit kann ich jetzt dann mein Script/Blockly, weiß noch nicht genau was ich verwende betreiben.Kannst Du mir noch kurz sagen, wie schnell die Reaktionszeit ist bei Änderungen von z.B. setInputLimit?
In deinem Script habe ich was von "nicht <30s" gelesen, die man nicht unterschreiten sollte. Ist das "nur" auf den GET-Befehl von SmartMode zurückzuführen oder gilt dies Zeit dann auch für die xxxxLimit Befehle?
Leider weiß ich nicht, wie schnell der SF800 Plus ist und wie lange das verarbeiten dann intern im Akku dauert. In der App geht das scheinbar recht schnell.Danke bis dahin!
@Freaknet sagte in [Test Adapter Zendure Solarflow]
Kannst Du mir noch kurz sagen, wie schnell die Reaktionszeit ist bei Änderungen von z.B. setInputLimit?
Sehr schnell, quasi sofort.
In deinem Script habe ich was von "nicht <30s" gelesen, die man nicht unterschreiten sollte. Ist das "nur" auf den GET-Befehl von SmartMode zurückzuführen oder gilt dies Zeit dann auch für die xxxxLimit Befehle?
Das ist nur das Pollen für die State-Abfrage.
Commands unter control gehen sofort raus.Bei nur einem Gerät kannst Du das Pollen deutlich verkürzen – je nach Verbindungsqualität zum Zendure-Gerät und Stabilität deines Netzwerks.
Commands sind normalerweise schneller, als die App aktualisiert.
Die App aktualisiert i. d. R. alle 5 Sekunden.Vielleicht weitere Fragen eher im Thread zum Script stellen.
Dann antworten/helfen wahrscheinlich auch andere, die das Script nutzen. -
@nograx sagte in Test Adapter Zendure Solarflow:
Getestet mit einem 2400AC bei einem bekannten. Bei meinen Hypern kann ich das mit autoModel nachvollziehen, damit besteht das gleiche Problem. Davon habe ich 4 Stück, solange keine große Last anliegt sind 3 im idle und 1 speist ein.
Wenn smartmode = 0 und autoModel = 0 kann man auch beobachten das es ca. 7-8 Sekunden dauert bis die Leistung abgegeben (oder bezogen) wird. Wenn smartMode = 1 reagiert das gerät deutlich schneller (vermutlich weil dann erstmal der Wechselrichter zugeschaltet werden muss).
Ok, aber was ist dann mit "autoModel" gemeint?
-
Moin,
hat irgendwer von euch die Anbindung über mqtt zusammen mit evcc am laufen? Oder eine Idee wie das gehen könnte? Evcc biete ja auch die Möglichkeit der mqtt Anbindung. Bevor ich aus der Cloud rausgehe würde ich das gerne wissen ob und wie das geht. In evcc muss man aktuell beim Hyper die Email-Adresse und Seriennummer eingeben. -
@nograx Ich habe mal die Version 3.6.0 installiert. Seit dem kommen ständig Meldungen im Log:
2026-03-13 09:06:08.393 - warn: zendure-solarflow.0 (3666) Operation mode (autoModel) is not set to '0', we can't set the output limit!Außerdem wird der Adapter ständig gelb. Bis Version 3.4.0 tritt der Fehler bei mir nicht auf. Hab zwei Hyper.
Die Meldungen im Log sind weg. Der Adapter wird aber weiterhin kurz gelb und dann wieder grün. Fehlermeldungen im Log sind nicht zu sehen.

-
@nograx Ich habe mal die Version 3.6.0 installiert. Seit dem kommen ständig Meldungen im Log:
2026-03-13 09:06:08.393 - warn: zendure-solarflow.0 (3666) Operation mode (autoModel) is not set to '0', we can't set the output limit!Außerdem wird der Adapter ständig gelb. Bis Version 3.4.0 tritt der Fehler bei mir nicht auf. Hab zwei Hyper.
Die Meldungen im Log sind weg. Der Adapter wird aber weiterhin kurz gelb und dann wieder grün. Fehlermeldungen im Log sind nicht zu sehen.

-
Moin,
hat irgendwer von euch die Anbindung über mqtt zusammen mit evcc am laufen? Oder eine Idee wie das gehen könnte? Evcc biete ja auch die Möglichkeit der mqtt Anbindung. Bevor ich aus der Cloud rausgehe würde ich das gerne wissen ob und wie das geht. In evcc muss man aktuell beim Hyper die Email-Adresse und Seriennummer eingeben. -
@nograx
Die "autoModel" Meldung ist jetzt weg. Der Adapter wird aber immer noch gelb. Unter 3.6.0 erscheinen immer wieder diese Meldungen im Log wenn er gelb wird:zendure-solarflow.0 2026-03-14 10:31:52.077 info [onConnected] Connected with MQTT! zendure-solarflow.0 2026-03-14 10:31:52.030 info [onReconnected] Reconnected to MQTT! zendure-solarflow.0 2026-03-14 10:31:51.029 info [onDisconnected] Disconnected from MQTT!Meine Verbindung läuft noch über die Cloud. Ich hab dir mal das Log geschickt.
Mit 3.4.0 kommt nur diese Meldung:
zendure-solarflow.0 2026-03-14 10:45:55.550 info [onConnected] Connected with MQTT! -
Der AC2400 ist ganz normal im iobroker über MQTT angebunden und wird mit nem Script gesteuert...
im EVCC habe ich ihn dann so integriert (nicht über die Zendure Integration sondern "manuell"

- name: my_battery type: custom power: source: mqtt topic: 0_userdata/0/PV-Anlage/Batterieleistung scale: -1 soc: source: mqtt topic: zendure-solarflow/0/XXXXXX/XXXXX/electricLevel maxchargepower: 2400 # Maximale Ladeleistung (W), Für erzwungenes Laden des Speichers. (optional) maxdischargepower: 2400 # Maximale Entladeleistung (W), Maximale Entladeleistung des Speichers. (optional) capacity: 8.640 minsoc: 5 # Minimaler Ladestand (%), Untere Grenze beim Entladen der Batterie im normalen Betrieb (optional) maxsoc: 100 # Maximaler Ladestand (%), Oberes Limit beim Laden der Batterie aus dem Netz (optional) batterymode: source: switch switch: - case: 1 # normal set: source: sequence set: - source: const value: 1 set: source: mqtt topic: 0_userdata/0/zendure/EVCC_Modus - case: 2 # hold set: source: sequence set: - source: const value: 2 set: source: mqtt topic: 0_userdata/0/zendure/EVCC_Modus - case: 3 # charge set: source: sequence set: - source: const value: 3 set: source: mqtt topic: 0_userdata/0/zendure/EVCC_ModusDadurch kann der Akku von EVCC gesteuert werden und ich kann auf die änderungen mit meinem Script reagieren
Der SOC gibt über MQTT ein typen Fehler aus da wird string geliefert aber boealen erwartet (oder andersherum oder was anderes, aber jedenfalls in der art). Das geht am besten über den Adapter... Der ja auch funktioniert obwohl man über MQTT steuert.
Ich hoffe das bringt dich weiter :-)
-
Dazu musst du in den Adapter Einstellungen den "Cloud Auth Key" Modus nutzen und setzt den Haken bei "lokalen MQTT". Dann MQTT eintragen und den Haken bei "Weiterleiten" setzen.
Dazu muss aber die aktuelle Prerelease installiert sein, das geht nur gezielt per npm.
@nograx sagte in Test Adapter Zendure Solarflow:
Prerelease
Hab ich in der Version 4.0.0-alpha.4+2b15bc8 installiert und scheint zu funktionieren. Somit ist die App wieder mit Daten gefüllt. Steuerung geht aber (hoffentlich) wie bisher lokal?
-
Der AC2400 ist ganz normal im iobroker über MQTT angebunden und wird mit nem Script gesteuert...
im EVCC habe ich ihn dann so integriert (nicht über die Zendure Integration sondern "manuell"

- name: my_battery type: custom power: source: mqtt topic: 0_userdata/0/PV-Anlage/Batterieleistung scale: -1 soc: source: mqtt topic: zendure-solarflow/0/XXXXXX/XXXXX/electricLevel maxchargepower: 2400 # Maximale Ladeleistung (W), Für erzwungenes Laden des Speichers. (optional) maxdischargepower: 2400 # Maximale Entladeleistung (W), Maximale Entladeleistung des Speichers. (optional) capacity: 8.640 minsoc: 5 # Minimaler Ladestand (%), Untere Grenze beim Entladen der Batterie im normalen Betrieb (optional) maxsoc: 100 # Maximaler Ladestand (%), Oberes Limit beim Laden der Batterie aus dem Netz (optional) batterymode: source: switch switch: - case: 1 # normal set: source: sequence set: - source: const value: 1 set: source: mqtt topic: 0_userdata/0/zendure/EVCC_Modus - case: 2 # hold set: source: sequence set: - source: const value: 2 set: source: mqtt topic: 0_userdata/0/zendure/EVCC_Modus - case: 3 # charge set: source: sequence set: - source: const value: 3 set: source: mqtt topic: 0_userdata/0/zendure/EVCC_ModusDadurch kann der Akku von EVCC gesteuert werden und ich kann auf die änderungen mit meinem Script reagieren
Der SOC gibt über MQTT ein typen Fehler aus da wird string geliefert aber boealen erwartet (oder andersherum oder was anderes, aber jedenfalls in der art). Das geht am besten über den Adapter... Der ja auch funktioniert obwohl man über MQTT steuert.
Ich hoffe das bringt dich weiter :-)
@Schimi sagte in Test Adapter Zendure Solarflow:
Der AC2400 ist ganz normal im iobroker über MQTT angebunden und wird mit nem Script gesteuert...
im EVCC habe ich ihn dann so integriert (nicht über die Zendure Integration sondern "manuell"

- name: my_battery type: custom power: source: mqtt topic: 0_userdata/0/PV-Anlage/Batterieleistung scale: -1 soc: source: mqtt topic: zendure-solarflow/0/XXXXXX/XXXXX/electricLevel maxchargepower: 2400 # Maximale Ladeleistung (W), Für erzwungenes Laden des Speichers. (optional) maxdischargepower: 2400 # Maximale Entladeleistung (W), Maximale Entladeleistung des Speichers. (optional) capacity: 8.640 minsoc: 5 # Minimaler Ladestand (%), Untere Grenze beim Entladen der Batterie im normalen Betrieb (optional) maxsoc: 100 # Maximaler Ladestand (%), Oberes Limit beim Laden der Batterie aus dem Netz (optional) batterymode: source: switch switch: - case: 1 # normal set: source: sequence set: - source: const value: 1 set: source: mqtt topic: 0_userdata/0/zendure/EVCC_Modus - case: 2 # hold set: source: sequence set: - source: const value: 2 set: source: mqtt topic: 0_userdata/0/zendure/EVCC_Modus - case: 3 # charge set: source: sequence set: - source: const value: 3 set: source: mqtt topic: 0_userdata/0/zendure/EVCC_ModusDadurch kann der Akku von EVCC gesteuert werden und ich kann auf die änderungen mit meinem Script reagieren
Der SOC gibt über MQTT ein typen Fehler aus da wird string geliefert aber boealen erwartet (oder andersherum oder was anderes, aber jedenfalls in der art). Das geht am besten über den Adapter... Der ja auch funktioniert obwohl man über MQTT steuert.
Ich hoffe das bringt dich weiter :-)
Alles klar danke. Schaue ich mir mal an. Aktuell warte ich noch auf meinen SolarFlow 1600 AC. Mal schauen wie ich den dann zusammen mit dem Hyper zum Laufen bekomme.
-
@nograx sagte in Test Adapter Zendure Solarflow:
Prerelease
Hab ich in der Version 4.0.0-alpha.4+2b15bc8 installiert und scheint zu funktionieren. Somit ist die App wieder mit Daten gefüllt. Steuerung geht aber (hoffentlich) wie bisher lokal?