NEWS
Zendure SmartMode:1 SolarFlow2400 AC SolarFlow800 ( u. Pro)
-
Ich habe heute auf die letzte Version upgedated.
Beide AC2400 werden sauber erkannt und haben jeder sein eigenes java-script.So weit ich das aktuell sagen kann, laufen beide auf Smartmode 1, HEMS ist noch an und ich lese und protokolliere die Daten per mqtt. Sieht alles soweit gut aus.
Ohne eigenes Testgerät (oder derer 2) und somit quasi blind ein funktionierendes script hinzustellen finde ich respektabel und auch beeindruckend.
Danke @maxclaudi

Nachtrag:

EV ist heute den ganzen auf prio, brauche die Tage Meter (jedes Watt hilft).
Zendure-Akkus laden und entladen fleissig je nachdem wie die Sonne rauskommt, peppeln sich langsam hoch über die Zeit, heute morgen waren beide bei MinSOC.
Leider reicht es nur für eine Klima im EG zum Heizen..... ich brauche mehr PV-Module....
-
keine ahnu g ob ich hier richtig bin oder im "anderen Theard" besser aufgehoben
(https://forum.iobroker.net/topic/69579/test-adapter-zendure-solarflow/1926?_=1761498948616)Habe mal selber ein, zwei Skripte zusammengeschustert, ChatGPT was erstellen lassen, bzw. dieses für den 2400AC umgebaut:
https://forum.iobroker.net/topic/80764/script-zum-laden-entladen-von-zendure-solarflow?_=1761498948619irgendwie bin ich aber mit der Performance nicht zufrieden...
Wenn mein 2400AC über "die Cloud" im HEMS (egal ob Zenki oder CT) regelt er viel feiner und gefühlt im Sek takt (Quelle ist ein alter Shelly 3EM (dann auch über Cloud)).
Spitzen werden schnell ausgeregelt (ohne "gegenschwingung") und es schwank +-10 Watt um den 0 (Bezug/Einspeisung)wenn ich es "selber versuche" egal ob, das JavaScript von @maxclaudi, das offizielle MQTT oder ein per DNS umgebogenes MQTT (und damit Deaktivierung der Zendure Cloud)... entweder schwingt es "extrem hin und her, reagiert irgendwie "zäh" (und kommt damit in eine gegenschwigung) oder schaltet sehr oft den acMode zwischen 1 und 2....
Besser kann ich es nicht erklären
Ich könnte es ja einfach im HEMs laufen lassen, aber hätte doch eine gerne Möglichkeit der Steuerung um z.B. die Entladung zu verhindern wenn das Auto geladen wird oder eine Beladung zu erzwingen wenn der Strompreis günstig ist...
Hat jemand irgend einen Tipp? Oder das (für mich fluffige) "Zendure Script aus der Cloud"
? -
@schimi
Ich habe bei meinen Test ähnliche Erfahrungen gemacht.VORAB: Ob und wie schnell man mit dem Zendure regelt bitte nicht hier diskutieren bzw. kommentieren, da findet jeder seinen eigenen Weg denke ich.
Ich ermittle 2x über 30 Sekunden mein Delta der Wirkleistung (aus [Wirkleistung+] minus [Wirkleistung-]) oder Netzbezug minus Einspeisung mit einem zeitlichen Versatz von 15 Sekunden s.u.
Ich regele alle 30 Sekunden pro AC2400, mit einem zeitlichen Versatz von 15 Sekunden auf den 2. AC2400.
Damit bekomme ich eine schöne gedämpfte Regelung hin fast ohne Relaisklackern, Schaltspitzen stören die Steuerung auch relativ wenig.
Ich optimiere derzeit noch daran, pulsierende Geräte wie moderne Haartrockner und Heißluftfriteuse zu erkennen...das braucht aber noch.Sollten wir hiermit nicht eventuell in einen eigenen thread umziehen ??
-
@mabbi ich bin da eher im 1-2sek Bereich wenn ich mir zur Kontrolle z.B. die tibber (oder Zendure) App anschaue....
Da sind die Änderungen "sofort" sichtbar. Auch der Shelly bestätigt die schnelle Regelung des HEMS...Entweder werde ich da irgendwie "veräppelt" oder das ding (2400AC) reagiert schneller wenn er vom HEMS gesteuert wird (bessere Logik, etc?)
Klar, könne wir einen eigene Theard erstellen, vielleicht kann die Posts ja jemand dahin verschieben...

-
Ohne aktive Kühlung regelt der AC2400 ab plus 65°
Sensor/hyperTmpdie Ladeleistung runter, habe hier schon Werte bis zu 15% Ladeleistungs-Reduktion gesehen. Der Kühlkörper wird dann schon ziemlich heiß und die Wärme zieht an der Aussenhaut spürbar bis in den ersten Akkublock unter dem Wechselrichter runter.
Da dies langfristig für die Elektronik Temperaturen sind, die ich als nicht lebensdauerförderlich ansehe, habe ich an den gesteuerten Lüfter-Ausgangsstecker direkt am Wechselrichter einen Lüfter angeschlossen.
Nun hält der Wechselrichter grob die 40-41° maximal ein.
Das der Sensorwert wahrscheinlich nur punktuell irgendwo im Wechselrichter gemessen wird ist mir klar, aber besser irgendwie Kühlen als stumpf Abkochen denke ich.Frage:
Besteht die MöglichkeitelectricFanStatenoch mit in die mqtt Datenpunkte (Sensor) aufzunehmen ?
Dann könnte ich anhand von dem Wert und noch zu erwartender Solarleistung (Schätzung) eventuell die Ladeleistung des Akkus reduzieren, wenn der Tag noch genug Sonne bringt.
Und eine Visualisierung wäre damit auch einfacher machbar. -


Der augsang ist Temp geregelt und fängt ab 40°C Spannung auszugeben... Hatte im Sommer (als es so heiss war) die Möglichkeit viel zu testen...
"Einfach" 3 alte (ich meine es sind 80ger) PC Lüfter Parallel angeschlossen (Wago)... funktioniert super
-
@mabbi sagte in Zendure SmartMode:1 SolarFlow2400 AC SolarFlow800 ( u. Pro):
Ohne aktive Kühlung regelt der AC2400 ab plus 65°
Sensor/hyperTmpdie Ladeleistung runter, habe hier schon Werte bis zu 15% Ladeleistungs-Reduktion gesehen. Der Kühlkörper wird dann schon ziemlich heiß und die Wärme zieht an der Aussenhaut spürbar bis in den ersten Akkublock unter dem Wechselrichter runter.
Da dies langfristig für die Elektronik Temperaturen sind, die ich als nicht lebensdauerförderlich ansehe, habe ich an den gesteuerten Lüfter-Ausgangsstecker direkt am Wechselrichter einen Lüfter angeschlossen.
Nun hält der Wechselrichter grob die 40-41° maximal ein.
Das der Sensorwert wahrscheinlich nur punktuell irgendwo im Wechselrichter gemessen wird ist mir klar, aber besser irgendwie Kühlen als stumpf Abkochen denke ich.Frage:
Besteht die MöglichkeitelectricFanStatenoch mit in die mqtt Datenpunkte (Sensor) aufzunehmen ?
Dann könnte ich anhand von dem Wert und noch zu erwartender Solarleistung (Schätzung) eventuell die Ladeleistung des Akkus reduzieren, wenn der Tag noch genug Sonne bringt.
Und eine Visualisierung wäre damit auch einfacher machbar.In dem mir gesendetem Log des SF2400AC ist kein Datenpunkt
electricFanState enthalten:LOG SF2400AC : { "timestamp": 17601XXXXX, "messageId": 4, "sn": "HOXXXXXXXXXXXXX", "version": 2, "product": "solarFlow2400AC", "properties": { "heatState": 0, "packInputPower": 351, "outputPackPower": 0, "outputHomePower": 351, "remainOutTime": 490, "packState": 2, "electricLevel": 38, "gridInputPower": 0, "solarInputPower": 0, "solarPower1": 0, "solarPower2": 0, "solarPower3": 0, "solarPower4": 0, "solarPower5": 0, "solarPower6": 0, "pass": 0, "reverseState": 0, "socStatus": 0, "hyperTmp": 3131, "gridOffPower": 0, "dcStatus": 1, "pvStatus": 0, "acStatus": 1, "dataReady": 1, "gridState": 1, "BatVolt": 4911, "socLimit": 0, "writeRsp": 0, "acMode": 2, "inputLimit": 0, "outputLimit": 351, "socSet": 1000, "minSoc": 100, "gridStandard": 0, "gridReverse": 2, "inverseMaxPower": 2400, "lampSwitch": 1, "gridOffMode": 2, "IOTState": 2, "fanSwitch": 1, "fanSpeed": 0, "bindstate": 0, "VoltWakeup": 0, "OldMode": 0, "OTAState": 0, "LCNState": 0, "factoryModeState": 0, "ts": 1760198737, "tsZone": 14, "smartMode": 1, "chargeMaxLimit": 2400, "phaseSwitch": 1, "packNum": 3, "rssi": -49, "is_error": 0 }, "packData": [ { "sn": "FO4XXXXXXXXXXXXX3", "packType": 5, "socLevel": 38, "state": 2, "power": 127, "maxTemp": 3051, "totalVol": 4910, "batcur": 65510, "maxVol": 327, "minVol": 327, "softVersion": 4103, "heatState": 0 }, { "sn": "FO4XXXXXXXXXXXXXX", "packType": 5, "socLevel": 38, "state": 2, "power": 157, "maxTemp": 2991, "totalVol": 4920, "batcur": 65504, "maxVol": 328, "minVol": 328, "softVersion": 4103, "heatState": 0 }, { "sn": "FO4XXXXXXXXXXXXXX", "packType": 5, "socLevel": 38, "state": 2, "power": 176, "maxTemp": 3011, "totalVol": 4910, "batcur": 65500, "maxVol": 327, "minVol": 327, "softVersion": 4103, "heatState": 0 } ] }Das sind die relevanten Werte für den Lüfter beim SF2400AC
"fanSwitch": 1, "fanSpeed": 0,und müssten schon automatisch angelegt worden sein unter:
0_userdata.0.zendure.HOXXXXXXXXXXXXX.solarFlow2400AC.propertiesBei anderen Modellen wie dem SF800(Pro) heißen sie leicht anders:
Fanmode und Fanspeed.
Diese Werte werden – sofern vom Gerät korrekt übertragen – automatisch unter properties angelegt und regelmäßig aktualisiert.
Wenn sie sich aber nicht verändern oder falsche Werte liefern, liegt das Problem in der Firmware des Geräts oder daran, dass diese Parameter dort (noch) nicht unterstützt werden.
Das kann man über ioBroker oder das Script nicht beeinflussen.
Bekannte Werte:
- fanSwitch / Fanmode: vermutlich 0 = aus, 1 = an
- fanSpeed / Fanspeed: evtl. Drehzahl oder Stufe (muss man selbst beobachten)
Am einfachsten:
Datenpunkte loggen und prüfen, wann und ob sich Werte ändern.
In den meisten Fällen steht 0 für "aus".
Zur MQTT-Frage:
Die Daten kommen nicht über MQTT, sondern über HTTP (zenSDK).
Dein Wunsch, die Werte zusätzlich in den MQTT-Datenpunkten sichtbar zu machen, ist grundsätzlich möglich – aber nur kosmetisch sinnvoll.
Man könnte sie zwar per Script zusätzlich publishen, aber das würde die klare Trennung zwischen HTTP- und MQTT-Kommunikation verwischen.
Wenn du MQTT brauchst, lieber ein kleines Zusatzscript oder Blockly verwenden, das bei Änderungen von fanSwitch oder fanSpeed einen MQTT-Topic publisht.
Dann bleibt die Struktur sauber.
Wobei ich denke, dass die 2 states auch über mqtt published werden (?).
Hinweis:
Die Aktualisierung dieser Lüfter-Datenpunkte scheint ohnehin nicht zuverlässig zu funktionieren.
Siehe z. B. das offizielle Issue:
"fanSwitch":1,"fanSpeed":0 not working #21
Ob das so ist und/oder gefixt wurde, weiß ich nicht.
Workaround:
Wenn du unabhängig von Zendure die Temperatur-bedingte Lüfter- und Leistungssteuerung realisieren willst, bietet sich ein einfacher ESP mit Relais (z. B. Tasmota) an:- hyperTmp per Script auswerten
- ab z. B. ≥ x °C Lüfter einschalten
- ggf. Ladeleistung reduzieren
- unter x °C Lüfter wieder ausschalten / Leistung freigeben
So bist du nicht auf Zendure-Werte angewiesen.
-
@maxclaudi sie werden über (das offizielle) MQTT nicht ausgegeben
-
@schimi
Ok.
Aber unter properties über mein script muss es vorhanden sein(?).edit/PS: ich würde dennoch das über ein script mit Tasmota+Relais realisieren oder so wie Du über den Ausgang für den Lüfter.
Bei mir laufen die Lüfter im Sommer astronomisch mit Zeitversatz auf volle Leistung bis zum Sonnenuntergang.
Im Winter gar nicht, außer Temp ist zu hoch.
Temp kann man vom Datenpunkt nehmen und selbst eine Hysterese zum ein-/ausschalten bestimmen.
Regeln der Drehzahl ist für mich nicht wichtig. Volle Leistung. Lieber zu kühl als zu warm. -
ohne viel zu basteln ist das ganze schnell und günstig umgesetzt.
Beispiel:
-
Smarte Steckdose Shelly oder Tasmota geflasht
gibt's auch fertig z. B. Tasmota Steckdose NOUS A1T -
Netzteil DC 12V oder 5V je nach Lüfter >= 2A
damit man für Lüftererweiterungen gerüstet ist.
Netzteil sollte dauerhaft auch nicht mit >= 80% der maximal Leistung belastet werden.
z. B. 12V DC Netzteil mit 3A
oder 5V DC 3A
beide Netzteile haben gleich einen Schraubklemmen-Adapter dabei um nur noch (+) und GND (-) mit den Lüftern zu verbinden. -
passende Lüfter dazu je nachdem für 5V oder 12V.
z.B. 12V DC: Wathai 120mm x 25mm 12V
oder 5V DC: Wathai 2 in 1 USB Lüfter 120 mm Doppelter 5V PC Ventilator
Steckdose über webui mqtt einrichten. Fertig.
Danach ein Blockly oder script.
Das ganze dauert nicht mal 30min
-
-
@maxclaudi ja... über dein Skript werden die werte angezeigt
-
Bin echt froh das du das Script entwickelt hast. Mein solarflow800Pro schaltet öfter mal am Tag auf smartMode 0 um. Ich habe noch nicht herausgefunden warum und was das auslöst. Aber dank Überwachung schaltet er ja wieder auf 1.
Habe ihn vor ein paar Tagen den Zugang zum Internet gesperrt. Eventuell zickt er Da rum wenn er nicht mehr mit der cloud verbunden ist.
-
@daniel-8
Das wird vermutlich nur abhängig sein, welche(n) Mode du benutzt.
Leider kann ich das nicht analysieren, weißt ja - kein neues Gerät vorhanden. -
... bin vor einiger Zeit schon den 1-click-way gegangen, da waren die Teile gerade mal stark reduziert:

-
@maxclaudi sagte in Zendure SmartMode:1 SolarFlow2400 AC SolarFlow800 ( u. Pro):
@daniel-8
Das wird vermutlich nur abhängig sein, welche(n) Mode du benutzt.
Leider kann ich das nicht analysieren, weißt ja - kein neues Gerät vorhanden.Was meinst du mit welchen Mode? Ich wüsste nicht wo ich einen Mode verstellen kann.
-
@daniel-8
Das sind die verschiedenen Energy Plan (Energiepläne), die es in der App zur Auswahl gibt, wie- Smart CT Mode
- Scheduled/Timer Mode
- Smart Matching Mode
usw.