NEWS
Test Adapter Zendure Solarflow
-
@muppibaer Vielen Dank für die Rückmeldung !
Ich teste jetzt nochmal die Module 5 und 6 an eine Anker Solix anzuschließen, so dass von dort nur eine kleine/feste von 100 Watt zum Wandler kommt. und schließe den Anker Solix an Port 3 und 4 beim Hoymiles an.
An Port 1 und 2 ist der Hub 2000 angeschlossen.
Wenn das nicht richtig klappt werde ich den Hoymiles 1800 4T für kleines Geld bei eBay verkaufen und einen kleineren mit vier Eingängen und zwei MPPT nehmen.
Wenn gewünscht werde ich berichten.
-
@nograx Hi nograx! First thanks for your project and time on Zendure.
Need precision please: I'm having x3 Three Solarflow HUB1200 connected (need lot of energy! :), using currently the official MQTT Zendure MQTT data through Home Assistant. I can then collect ONLY data (NO control with setOutputLimit)
Then I discovered and installed your project. Using ioBroker environment and your latest tool release, I can collect data from my three Solarflow hubs. Everything is fine. I can manually control the setOutputLimit through ioBroken it's working.
Question:
But how to control from outside from ioBroker??How to control this "setOutputLimit" object from a remote system ? Using MQTT?
Because I've checked and MQTT inside your project is fixed to 127.0.0.1 so I can't connect from remote server using MQTT. How to edit this parameter? How to collect ZENDURE values (inside ioBroker data objects) thanks to remote system?
(I'm using Home Assistant and already MQTT for official Zendure connection but without any control available)Any help please? How to push those MQTT data to remote system? And to force setOutputLimit outside ioBroker GUI?
Thanks for your time and explanation! Have a nice week-end!
------------------ As it's a German forum section, here is the transcription:
@nograx Hallo nograx! Zuerst danke für dein Projekt und deine Zeit mit Zendure.Ich benötige eine Präzisierung bitte: Ich habe drei Solarflow HUB1200 verbunden (brauche viel Energie! :), und verwende derzeit die offizielle Zendure MQTT-Datenübertragung über Home Assistant. Damit kann ich NUR Daten sammeln (KEINE Steuerung mit setOutputLimit).
Dann habe ich dein Projekt entdeckt und installiert. Mit der ioBroker-Umgebung und deinem neuesten Tool-Release kann ich Daten von meinen drei Solarflow-Hubs sammeln. Alles funktioniert einwandfrei. Ich kann manuell das setOutputLimit über ioBroker steuern, es funktioniert.
Frage:
Aber wie kann ich von außerhalb von ioBroker steuern??Wie steuere ich dieses "setOutputLimit"-Objekt von einem entfernten System aus? Über MQTT?
Weil ich überprüft habe und MQTT in deinem Projekt auf 127.0.0.1 festgelegt ist, sodass ich nicht von einem entfernten Server aus über MQTT verbinden kann. Wie ändere ich diesen Parameter? Wie sammle ich ZENDURE-Werte (in ioBroker-Datenobjekten) dank eines entfernten Systems?
(Ich benutze Home Assistant und bereits MQTT für die offizielle Zendure-Verbindung, aber ohne verfügbare Steuerung)Kannst du mir bitte helfen? Wie kann ich diese MQTT-Daten an ein entferntes System senden? Und wie kann ich setOutputLimit außerhalb der ioBroker-Oberfläche erzwingen?
Danke für deine Zeit und Erklärung! Schönes Wochenende!
-
@bennobaer Das ist echt hochinteressant mit dem 1800er...Habe den 1500er und mich bisher über die 2 MPPTs geärgert, da ich zeitweise Leistung "verschenke" mit meinen ebenfalls 6 Modulen (4 an Zendure, 2 direkt an den Hoymiles). War knapp davor, zu wechseln. Deine Info spart mir Zeit und Geld. Danke!
-
Ich nutzen den Adapter seit ~2 Wochen in der Version 1.6.4
Über ein Blockly Script will ich den Wert "minSoc" von 10 auf 50 setzen. Das funktioniert auch soweit ich das sehen kann. Öffne ich allerdings die App und prüfe dort den Wert für die Entladegrenze wird der Wert mit 10 angezeigt und auch im Datenpunkt steht wieder 10.
Ich habe bereits die Option "Bestätigt" probiert aber keine Änderung. Ich muss dazu sagen das dies mein erstes Blockly Script ist und ich eventuell auch einfach was falsch mache.
<xml xmlns="https://developers.google.com/blockly/xml"> <block type="schedule" id="BWktR#:+NRaQ%Yxf!|{;" x="38" y="112"> <field name="SCHEDULE">00 04 * * *</field> <statement name="STATEMENT"> <block type="update" id=")k[Tms16Z5EAR8h[p)RR"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">zendure-solarflow.0.A8yh63.2T8b4PkK.minSoc</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="/Gs6iAM++fI[RbBzp15]"> <field name="NUM">50</field> </block> </value> </block> </statement> </block> </xml>
-
@romestylez Wenn ich den Adapter richtig verstanden habe, müsstes du dazu einen Datenpunkt aus der Sektion 'control' verwenden. Ich denke, hier
zendure-solarflow.0.73bkTV.YpbX6abcd.control.dischargeLimit
bist du mit 'steuere' eher richtig.
-
@nograx Guten Abend,
vielen Dank für das Update.
Ich wollte aber nochmal kurz zu meinem Status mit dem HMS 1800 4T berichten.
Nachdem ich gestern die Anker Solix 1600 für das 5te und 6te PV Modul angeschlossen habe, musste ich auch feststellen, dass auch hier das gleiche Problem mit Leistungen unter 100W gibt. Erst nachdem ich die Anker Solix auf nur einem statt auf zwei Beinen mit den Hoymiles 1800 4T verbunden habe klappt dies hier einwandfrei.
Also erster funktionale Zwischenschritt ist den PV HUB 2000 sowie die Anker Solix auf je einem Bein bei der Hoymiles 1800 4T. Wehrmutstropfen bleibt die maximale Leistung von 475W pro Eingang des Hoymiles.
Nachdem ich jetzt die Zendure Lösung und die von Anker gleichzeitig verwende (PV Modul 1-4 auf Zendure und 5-6 auf Anker) gefällt mir die Lösung von Zendure deutlich besser. Wenn gewünscht kann ich gerne mehr Infos zu den Unterschieden posten.
Was ich bei der Kombination Zendure <-> Hoymiles als unglücklich empfinde ist die Trägheit bei einer Änderung. Wenn ich die Leistung von z.B. 150W auf 450 StAnpasse dauert das zwischen ca. 45 Sekunden. Gleiches bei der Reduzierung. Weiß einer von Euch ob das am Hoymiles liegt und wenn dies der Grund ist, welcher WR ist schneller ?
Herzliche Grüße
Bernd -
@rene55 said in Test Adapter Zendure Solarflow:
@romestylez Wenn ich den Adapter richtig verstanden habe, müsstes du dazu einen Datenpunkt aus der Sektion 'control' verwenden. Ich denke, hier
zendure-solarflow.0.73bkTV.YpbX6abcd.control.dischargeLimit
bist du mit 'steuere' eher richtig.
Die Control Werte hatte ich gar nicht gesehen Ich habe jetzt mal den Control DP auf 50% gesetzt über mein Script. Sobald ich aber die App öffne und nachschaue springt der DP auf 10% oder welcher Wert auch immer vorher eingestellt war.
-
Moin,
ich habe seit einiger Zeit immer mal wieder diese Meldungen hier im Log:zendure-solarflow.0 2024-06-17 06:53:36.380 error Subscription to MQTT failed! Error: Error: Connection closed zendure-solarflow.0 2024-06-17 06:53:36.380 error Subscription to MQTT failed! Error: Error: Connection closed zendure-solarflow.0 2024-06-17 06:53:36.379 error Subscription to MQTT failed! Error: Error: Connection closed zendure-solarflow.0 2024-06-17 06:53:36.379 error Subscription to MQTT failed! Error: Error: Connection closed zendure-solarflow.0 2024-06-17 06:53:36.261 error Connection to MQTT failed! Error: ErrorWithReasonCode: Connection refused: Client Identifier not valid zendure-solarflow.0 2024-06-17 03:53:36.057 error Subscription to MQTT failed! Error: Error: Connection closed zendure-solarflow.0 2024-06-17 03:53:36.057 error Subscription to MQTT failed! Error: Error: Connection closed zendure-solarflow.0 2024-06-17 03:53:36.044 error Subscription to MQTT failed! Error: Error: Connection closed zendure-solarflow.0 2024-06-17 03:53:36.043 error Subscription to MQTT failed! Error: Error: Connection closed zendure-solarflow.0 2024-06-17 03:53:36.039 error Connection to MQTT failed! Error: ErrorWithReasonCode: Connection refused: Client Identifier not valid zendure-solarflow.0 2024-06-17 03:53:36.038 error Connection to MQTT failed! Error: ErrorWithReasonCode: Connection refused: Client Identifier not valid zendure-solarflow.0 2024-06-17 02:39:50.364 error Connection to MQTT failed! Error: Error: read ECONNRESET zendure-solarflow.0 2024-06-17 00:53:35.734 error Subscription to MQTT failed! Error: Error: Connection closed zendure-solarflow.0 2024-06-17 00:53:35.731 error Subscription to MQTT failed! Error: Error: Connection closed
Was kann der Grund dafür sein? Der Adapter bleibt aber grün.
Bin auf Version 1.6.4 -
@lesiflo said in Test Adapter Zendure Solarflow:
Moin,
ich habe seit einiger Zeit immer mal wieder diese Meldungen hier im Log:zendure-solarflow.0 2024-06-17 06:53:36.380 error Subscription to MQTT failed! Error: Error: Connection closed zendure-solarflow.0 2024-06-17 06:53:36.380 error Subscription to MQTT failed! Error: Error: Connection closed zendure-solarflow.0 2024-06-17 06:53:36.379 error Subscription to MQTT failed! Error: Error: Connection closed zendure-solarflow.0 2024-06-17 06:53:36.379 error Subscription to MQTT failed! Error: Error: Connection closed zendure-solarflow.0 2024-06-17 06:53:36.261 error Connection to MQTT failed! Error: ErrorWithReasonCode: Connection refused: Client Identifier not valid zendure-solarflow.0 2024-06-17 03:53:36.057 error Subscription to MQTT failed! Error: Error: Connection closed zendure-solarflow.0 2024-06-17 03:53:36.057 error Subscription to MQTT failed! Error: Error: Connection closed zendure-solarflow.0 2024-06-17 03:53:36.044 error Subscription to MQTT failed! Error: Error: Connection closed zendure-solarflow.0 2024-06-17 03:53:36.043 error Subscription to MQTT failed! Error: Error: Connection closed zendure-solarflow.0 2024-06-17 03:53:36.039 error Connection to MQTT failed! Error: ErrorWithReasonCode: Connection refused: Client Identifier not valid zendure-solarflow.0 2024-06-17 03:53:36.038 error Connection to MQTT failed! Error: ErrorWithReasonCode: Connection refused: Client Identifier not valid zendure-solarflow.0 2024-06-17 02:39:50.364 error Connection to MQTT failed! Error: Error: read ECONNRESET zendure-solarflow.0 2024-06-17 00:53:35.734 error Subscription to MQTT failed! Error: Error: Connection closed zendure-solarflow.0 2024-06-17 00:53:35.731 error Subscription to MQTT failed! Error: Error: Connection closed
Was kann der Grund dafür sein? Der Adapter bleibt aber grün.
Bin auf Version 1.6.4Die Fehler habe ich seit 3-4 Tagen ebenfalls relativ regelmäßig im Log. Dachte schon ist was auf meiner Seite.
-
Hallo,
ich nutze diesen Adapter seid der latest Version 1.6.2. Erstmal Danke für die klasse Arbeit!Nachdem Wechsel auf die neuste stable 1.6.4 kamen auch die Fehlermeldungen wie bei beiden Vor-Postern.
Heute gab es allerdings noch einen Adapter-Crash obendrauf.host.SER1010 2024-06-17 19:06:23.576 info instance system.adapter.zendure-solarflow.0 started with pid 103823 host.SER1010 2024-06-17 19:05:53.385 info Restart adapter system.adapter.zendure-solarflow.0 because enabled host.SER1010 2024-06-17 19:05:53.385 info instance system.adapter.zendure-solarflow.0 terminated with code null () host.SER1010 2024-06-17 19:05:53.385 warn instance system.adapter.zendure-solarflow.0 terminated due to SIGABRT host.SER1010 2024-06-17 19:05:53.385 error Caught by controller[9]: 16: 0x17126f9 [io.zendure-solarflow.0] host.SER1010 2024-06-17 19:05:53.385 error Caught by controller[8]: 15: 0xdeef37 v8::internal::Builtin_DateConstructor(int, unsigned long*, v8::internal::Isolate*) [io.zendure-solarflow.0] host.SER1010 2024-06-17 19:05:53.385 error Caught by controller[7]: 14: 0x115edf5 v8::internal::JSDate::New(v8::internal::Handle<v8::internal::JSFunction>, v8::internal::Handle<v8::internal::JSReceiver>, double) [io.zendure-solarflow.0] host.SER1010 2024-06-17 19:05:53.385 error Caught by controller[6]: 13: 0xf18ce5 v8::internal::Handle<v8::internal::HeapNumber> v8::internal::FactoryBase<v8::internal::Factory>::NewHeapNumber<(v8::internal::AllocationType)0>() [io.zendure-solarflow.0] host.SER1010 2024-06-17 19:05:53.385 error Caught by controller[5]: 12: 0xf17554 v8::internal::FactoryBase<v8::internal::Factory>::AllocateRawWithImmortalMap(int, v8::internal::AllocationType, v8::internal::Map, v8::internal::AllocationAlignment) [io.zendure-solarflow.0] host.SER1010 2024-06-17 19:05:53.385 error Caught by controller[4]: 11: 0xf1fae0 v8::internal::Factory::AllocateRaw(int, v8::internal::AllocationType, v8::internal::AllocationAlignment) [io.zendure-solarflow.0] host.SER1010 2024-06-17 19:05:53.385 error Caught by controller[3]: 10: 0xf3f567 v8::internal::HeapAllocator::AllocateRawWithRetryOrFailSlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [io.zendure-solarflow.0] host.SER1010 2024-06-17 19:05:53.385 error Caught by controller[3]: 9: 0xf3e19e v8::internal::HeapAllocator::AllocateRawWithLightRetrySlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [io.zendure-solarflow.0] host.SER1010 2024-06-17 19:05:53.385 error Caught by controller[3]: 8: 0xf63848 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [io.zendure-solarflow.0] host.SER1010 2024-06-17 19:05:53.385 error Caught by controller[3]: 7: 0xf629d3 [io.zendure-solarflow.0] host.SER1010 2024-06-17 19:05:53.384 error Caught by controller[3]: 6: 0xf524d8 v8::internal::Heap::RecomputeLimits(v8::internal::GarbageCollector) [io.zendure-solarflow.0] host.SER1010 2024-06-17 19:05:53.384 error Caught by controller[3]: 5: 0xf515d5 [io.zendure-solarflow.0] host.SER1010 2024-06-17 19:05:53.384 error Caught by controller[3]: 4: 0xd74257 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [io.zendure-solarflow.0] host.SER1010 2024-06-17 19:05:53.384 error Caught by controller[2]: 3: 0xd73eb0 v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [io.zendure-solarflow.0] host.SER1010 2024-06-17 19:05:53.384 error Caught by controller[1]: 2: 0xaa27ee [io.zendure-solarflow.0] host.SER1010 2024-06-17 19:05:53.384 error Caught by controller[1]: 1: 0xb9c310 node::Abort() [io.zendure-solarflow.0] host.SER1010 2024-06-17 19:05:53.384 error Caught by controller[0]: FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory host.SER1010 2024-06-17 19:05:53.384 error Caught by controller[0]: <--- JS stacktrace ---> host.SER1010 2024-06-17 19:05:53.384 error Caught by controller[0]: [92878:0x6c698b0] 205613926 ms: Mark-sweep 2004.3 (2082.3) -> 1988.5 (2082.8) MB, 3604.7 / 0.0 ms (average mu = 0.121, current mu = 0.067) allocation failure; scavenge might not succeed host.SER1010 2024-06-17 19:05:53.384 error Caught by controller[0]: [92878:0x6c698b0] 205610063 ms: Mark-sweep 2003.8 (2081.8) -> 1988.0 (2082.3) MB, 3465.9 / 0.0 ms (average mu = 0.173, current mu = 0.086) allocation failure; scavenge might not succeed host.SER1010 2024-06-17 19:05:53.383 error Caught by controller[0]: <--- Last few GCs ---> zendure-solarflow.0 2024-06-17 19:02:54.246 info [startRefreshAccessTokenTimerJob] Refreshing accessToken! zendure-solarflow.0 2024-06-17 19:02:54.245 info [startRefreshAccessTokenTimerJob] Refreshing accessToken!
Nach unzähligen Einträgen "Refreshing accessToken" davor, dann der Crash ab 19:05:53
Bin erstmal zurück auf die 1.6.2 und beobachte weiter.
Gruß
Nordstern -
@nordstern19_72 Habe gerade mal bei mir geschaut, da gibt’s diese Access Token Errors in Massen:
Deine Meldungen kann ich so auf Anhieb nicht nachvollziehen.
Habe ebenfalls kürzlich auf 1.6.4 aktualisiert. -
Same here...Fehler ohne Ende...
-
Ich habe in der letzten Version einen Check mit eingebaut der die Verbindung neu aufbaut wenn vom Zendure MQTT keine Daten mehr kommen. Beim Neuaufbau der Verbindung erscheinen dann diese Meldungen, vermutlich weil die "tote" Verbindung dann gekappt wird - der Adapter liefert zu dem Zeitpunkt aber wieder Daten. Zumindest ist das bei mir so.
Das ist halt leider auch etwas was ich schlecht debuggen und testen kann - ich muss ja beim testen darauf hoffen das der MQTT von Zendure wieder spinnt
-
@stormy27 The MQTT connection from the ioBroker Adapter is Client only - so you can't connect to it. I think you have to build you own solution to control things. Like setting up an mqtt host on your ioBroker instance and connect to it from your HA instance - and then use some logic to set the parameters on the adapter.
-
@nograx kannst du hier eventuell helfen ?
Ich nutzen den Adapter seit ~2 Wochen in der Version 1.6.4
Über ein Blockly Script will ich den Wert "zendure-solarflow.0.A8yh63.2T8b4PkK.minSoc" von 10 auf 50 setzen. Das funktioniert auch soweit ich das sehen kann. Öffne ich allerdings die App und prüfe dort den Wert für die Entladegrenze wird der Wert mit 10 angezeigt und auch im Datenpunkt steht wieder 10.
Ich habe bereits die Option "Bestätigt" probiert aber keine Änderung. Ich muss dazu sagen das dies mein erstes Blockly Script ist und ich eventuell auch einfach was falsch mache.
<xml xmlns="https://developers.google.com/blockly/xml"> <block type="schedule" id="BWktR#:+NRaQ%Yxf!|{;" x="38" y="112"> <field name="SCHEDULE">00 04 * * *</field> <statement name="STATEMENT"> <block type="update" id=")k[Tms16Z5EAR8h[p)RR"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">zendure-solarflow.0.A8yh63.2T8b4PkK.minSoc</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="/Gs6iAM++fI[RbBzp15]"> <field name="NUM">50</field> </block> </value> </block> </statement> </block> </xml>
Ich habe auch bereits den Wert in "zendure-solarflow.0.73bkTV.YpbX6abcd.control.dischargeLimit" angepasst das Problem bleibt bestehen. Sobald ich die App öffne wird der Wert überschrieben wie kann ich also über den Adapter den das Entladelimit steuern ?
-
@romestylez zuerst würde ich mal versuchen die Entladegrenze manuell im Datenpunk zu setzen, um Probleme mit dem Blockly auszuschließen.
Ich habe das jetzt bei mir mal getestet und auch festgestellt das der Wert in der App (iPhone) bestehen bleibt. Ich habe manuell im Datenpunkt unter "control" vom Adapter von 6% auf 5% geändert - in der App steht weiterhin 6%. Die Daten der Api sagen aber 5%. !! Wenn ich jetzt die App manuell schließe und neu öffne steht da der korrekte Wert 5%! Für mich sieht das so aus als wäre das ein Anzeigefehler der App...
-
@nograx ich habe den Wert bereits manuell gesetzt z.B. von 10% auf 45% ich öffne dann meine App gehe dort auf die Entladegrenze und sehe dann dort aber wieder 10% auch im Datenpunkt sehe ich wieder 10%
-
@nograx ich habe jetzt noch mal getestet (die App hat ja heute/gestern) ein Update bekommen. Und nun geht es ohne jegliche Probleme der Wert aktualisiert sich sogar in Echtzeit in meiner App Ich schaue dann jetzt mal das ich es im Blockly auch umgesetzt bekomme denn da wird der Wert mit dem Wert aus der App überschrieben.
Vielen Dank dir für den coolen Adapter !
-
@romestylez ja, die haben offenbar das Echtzeitverhalten der App massiv optimiert. Bisher mußt man immer auf dem Startbildschirm einen Refresh machen (runterziehen), um Aktualisierungen auf den folgenden Screens zu bekommen. Auch die Energiefluß-Anzeige ist jetzt viel schneller da und aktuell.
Auch von meiner Seite ein großes Dankeschön an @nograx für die prompten Antworten auf Anfragen. Hier läuft der Adapter ebenfalls super.
-
@diet99 said in Test Adapter Zendure Solarflow:
@romestylez ja, die haben offenbar das Echtzeitverhalten der App massiv optimiert. Bisher mußt man immer auf dem Startbildschirm einen Refresh machen (runterziehen), um Aktualisierungen auf den folgenden Screens zu bekommen. Auch die Energiefluß-Anzeige ist jetzt viel schneller da und aktuell.
Auch von meiner Seite ein großes Dankeschön an @nograx für die prompten Antworten auf Anfragen. Hier läuft der Adapter ebenfalls super.
Ja da wurde auf jeden Fall etwas optimiert. Folgendes Blockly verwende ich nun um das Entladelimit auf 50% zu setzen. Mein Ziel ist einfach das wenn der Speicher morgens sehr leer ist er erst mal geladen wird. Ich werde das Blockly noch erweitern damit wenn der Wert der Batterie 50% erreicht hat er das Entladelimit wieder auf 10% setzt. So kann ich zumindest etwas den Akku Prioritätsmodus simulieren und trotzdem mein Shelly 3EM Pro nutzen.
<block xmlns="https://developers.google.com/blockly/xml" type="schedule" id="BWktR#:+NRaQ%Yxf!|{;" x="-662" y="-212"> <field name="SCHEDULE">0 4 * * *</field> <statement name="STATEMENT"> <block type="control" id="LX;tUWce2j,@LQz4JSJ5"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">zendure-solarflow.0.A8yh63.2T8b4PkK.control.dischargeLimit</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="/Gs6iAM++fI[RbBzp15]"> <field name="NUM">50</field> </block> </value> </block> </statement> </block>