NEWS
Test Adapter Zendure Solarflow
-
@murphy-0
Ja richtig, beim Hyper ist aber der Fehler drin das entweder der "Smart Matching Mode" funktioniert oder der "AC Mode"
Aktuell funktioniert nur der "Smart Matching Mode"
@nograx
Es gibt da noch in diesem Bereich ein Problem bei negativen Werten (wenn this.maxInputLimit = positiv) :
if (limit < 0) {
if (limit < this.maxInputLimit) {
limit = this.maxInputLimit;
}
} else {
if (limit > this.maxOutputLimit) {
limit = this.maxOutputLimit;
}
}Im "Smart Matching Mode" wird beim Hyper aus z.B. -200 dann limit=1200
Ich hab dann hier bei "this.maxInputLimit * -1" eingetragen.
Und dann funktionieren wieder beide Methoden.
Das bedeutet aber das bei den anderen Geräten das wohl auch nicht richtig ist? -
@surfing.micha
Habe den Fehler auch....
Das ist wieder was für @nograx
Datei:
"Hyper2000.js"
Zeile:
this.maxInputLimit = -1200;
Korrektur:
this.maxInputLimit = 1200;P.S.:
Dann gibt es allerdings Probleme mit dem "Smart Matching Mode"
Also ist das so noch nicht die LösungDanke dir!
Habe bei mir das Minus weggenommen und jetzt wird mein Wert nicht gleich mit 1200 überschrieben.
Sieht man auch in den logs.
Allerdings habe ich immer noch das Problem, dass nach dem Setzen von SetInputLimit der Datenpunkt mit 1200 überschrieben wird.
Dabei taucht allerdings keine Meldung in den Logs auf. Wenn ich dann meinen alten Wert (z.B. 200) drüber schreibe geht das Spiel nochmal 1 bis 2 mal, dann wird meine 200 genommen und auch eingestellt.
Das passiert allerdings immer wieder wenn ich einen neuen Sollwert vorgebe.
Sieht aus, als ob die 1200 von einer anderen Quelle kommt.
Ich habe aber in der App keinen Modus aktiv und ich bin in der App abgemeldet.

-
Ach so eine Frage noch zum "Smart Matching Mode". Da habe ich mir auch schon die Zähne ausgebissen.
Wenn ich "setDeviceAutomationInOutLimit" setze (z.B. auf 100) wird der Wert gesetzt.
AutoModle bleibt aber auf 0.
Wenn ich dann einen neuen Wert setze (z.B. 0 oder dann -100) passiert nichts.
Der alte Wert bleibt gesetzt (ich meine den tatsächlichen Entladewert "outputHomePower" und nicht den Control)
AutoModel bleibt auch immer 0.
Schreibe ich einen neuen Wert in "setDeviceAutomationInOutLimit" wird AutoModel wieder "0".
Ich dachte "AutoModel" wir automatisch beim setzen von "setDeviceAutomationInOutLimit" auf 8 gesetzt und bleibt da.
Ich bekomme das nur weg, wenn icg den ACMode aktiv setze. -
@surfing.micha
Benutze die Version 2.04. Funktioniert beim Hyper perfekt.
acMode auf 0 setzen.
autoModel auf 8 (smart matching mode) setzen.
So lange du nun setDeviceAutomationInOutLimit mit + oder - Werten benutzt sollten diese beiden Einstellung unverändert bleiben.
Wenn so etwas dazwischen funkt ist es die App. Bedenke, dass zweitweise die Zendure Cloud spinnt und die Einstellungen in der App oder im Adapter nicht aktualisiert werden.Deswegen hatte ich mir zur Kontrolle einen Shelly em am Hyper in den Stromanschluß installiert.
Seit ich offline bin gibt es dieses Problem nicht mehr. -
@surfing.micha
Benutze die Version 2.04. Funktioniert beim Hyper perfekt.
acMode auf 0 setzen.
autoModel auf 8 (smart matching mode) setzen.
So lange du nun setDeviceAutomationInOutLimit mit + oder - Werten benutzt sollten diese beiden Einstellung unverändert bleiben.
Wenn so etwas dazwischen funkt ist es die App. Bedenke, dass zweitweise die Zendure Cloud spinnt und die Einstellungen in der App oder im Adapter nicht aktualisiert werden.Deswegen hatte ich mir zur Kontrolle einen Shelly em am Hyper in den Stromanschluß installiert.
Seit ich offline bin gibt es dieses Problem nicht mehr.Dann muss ich das Thema "Cloud Disconnect" nochmal angehen.
Hat halt leider bisher nicht funktioniert.Gibt es eine Möglichkeit zu "sehe" ob der das Zendure-Gerät (in dem Fall Hyper2000) auch wirklich die url für den MQTT-Server von Zendure-Cloud auf local gesetzt hat?
Ich habe es mit dem ZendureCloudDisconnector.exe tool versucht.
Er findet meinen Hyper und wenn ich "Get Telemetry" klicke kommt auch ein O.K. bei Paired, BLE Service und GATT Characteristics.
Dann trage ich die Daten meines lokalen MQTT-Servers ein.
Nach Klicken auf Connect to (local) MQTT wird das auch erfolgreich quittiert.
Wenn ich dann am Hyper den Knopf 10s drücke für den Reset bekomme ich auch im IO-Broker keine Daten mehr und der Zeitstempel vom Alive bleibt stehen.
Wenn ich mit dem MQTT-Explorer meine MQTT-Server-Instanz prüfe, tauchen die Zendure properties aber nicht auf.
Als MQTT-Server verwende ich den IO-Broker-MQTT-Adapter -
Dann muss ich das Thema "Cloud Disconnect" nochmal angehen.
Hat halt leider bisher nicht funktioniert.Gibt es eine Möglichkeit zu "sehe" ob der das Zendure-Gerät (in dem Fall Hyper2000) auch wirklich die url für den MQTT-Server von Zendure-Cloud auf local gesetzt hat?
Ich habe es mit dem ZendureCloudDisconnector.exe tool versucht.
Er findet meinen Hyper und wenn ich "Get Telemetry" klicke kommt auch ein O.K. bei Paired, BLE Service und GATT Characteristics.
Dann trage ich die Daten meines lokalen MQTT-Servers ein.
Nach Klicken auf Connect to (local) MQTT wird das auch erfolgreich quittiert.
Wenn ich dann am Hyper den Knopf 10s drücke für den Reset bekomme ich auch im IO-Broker keine Daten mehr und der Zeitstempel vom Alive bleibt stehen.
Wenn ich mit dem MQTT-Explorer meine MQTT-Server-Instanz prüfe, tauchen die Zendure properties aber nicht auf.
Als MQTT-Server verwende ich den IO-Broker-MQTT-AdapterWichtig dabei ist, dass der Broker also dein IoBroker Adapter hierfür den Standardport also 1883 und kein Auth verwendet, dann sollte es eigentlich klappen. Ggf mal die Einstellungen vom Broker checken. Wenn du es nur mal probieren möchtest, empfehle ich das per DNS Umschreibung zu machen. Ich hatte die Geräte Monate lang per Disconnector hart getrennt aber habe es mittlerweile wieder auf DNS Umschreibung geändert. Der Vorteil ist, dass man aus der Ferne mal schnell wechseln kann, wenn es nötig ist. Nutze hierfür AdGuard als Dienst und als Broker läuft bei mir EMQX als dedizierte Instanz.
-
Nach Ausführen des Cloud Disconnectors habe ich bei mir die Taste am Hyper 6 sec. gedrückt zum ausschalten.
Danach habe ich den Netzstecker gezogen und den Hyper paar Minuten vom Akku getrennt.
Dann in umgekehrter Reihenfolge wieder zusammen bauen.
Als letztes 2 Sec die Taste für einschalten gedrückt.So hat es bei mir nur Sekunden gedauert bis am Mosquitto die ersten Daten kamen. Benutzer und PW habe ich am Mosquitto nicht gesetzt.
Mit 10 Sec Taste drücken hatte ich es auch versucht, auch ohne Erfolg.
Danach musste ich dann mit der App den Hyper wieder am Zendure Server anmelden.Wenn du Online über den Zendure Server die Verbindung herstellen willst brauchst du mit der Vers. 2.04 einen 2.Account bei Zendure.
Den schaltest du in der App dann frei. Diesen Account benutzt du dann für die App. Hatten wir hier vor einiger Zeit als erfolgreiche Lösung. -
Nach Ausführen des Cloud Disconnectors habe ich bei mir die Taste am Hyper 6 sec. gedrückt zum ausschalten.
Danach habe ich den Netzstecker gezogen und den Hyper paar Minuten vom Akku getrennt.
Dann in umgekehrter Reihenfolge wieder zusammen bauen.
Als letztes 2 Sec die Taste für einschalten gedrückt.So hat es bei mir nur Sekunden gedauert bis am Mosquitto die ersten Daten kamen. Benutzer und PW habe ich am Mosquitto nicht gesetzt.
Mit 10 Sec Taste drücken hatte ich es auch versucht, auch ohne Erfolg.
Danach musste ich dann mit der App den Hyper wieder am Zendure Server anmelden.Wenn du Online über den Zendure Server die Verbindung herstellen willst brauchst du mit der Vers. 2.04 einen 2.Account bei Zendure.
Den schaltest du in der App dann frei. Diesen Account benutzt du dann für die App. Hatten wir hier vor einiger Zeit als erfolgreiche Lösung.Danke für den Tip.
Scheinbar funktioniert der (soft) Reset mit 10s nicht wirklich.
Jetzt kommen die Topics auf dem IO-Broker MQTT-Adapter rein.

Und es scheint sich auch der Zendure-Adapter auf die Topics zu connecten

Allerdings werden die Datenpunkte nicht aktualisiert.
Die Neu gesetzten sind rot und der Zeitstempel ist von bevor ich von der Cloud auf lokal umgestellt habe:

Muss ich hier noch was setzen oder anders konfigurieren?
-
Verbinde dich mal mit einem mptt Browser auf deinen mqtt Server.
Auf ipad benutze ich dafür den mqttAnalyzer. Auf dem PC gibts den mqtt Explorer.
Schau ob dort Daten vom Hyper ankommen.Stelle autoModel auf 8.
Dann gib mal bei setDeviceAutomationInOutLimit einen -Wert ein und schau was passiert!Ach ja, den Adapter hast du auf Lokal umgestellt? Das habe ich mal vergessen und ne Stunde lang gesucht was los ist 😩
-
@surfing.micha
Wenn du im Adapter im Controlbereich z.B. dischargeLimit änderst muss das im mqtt Browser ankommen -
Ich verstehe es nicht mehr.
Im MQTT Explorer sehe ich die Topics vom Zendure nicht.
Also siht man natürlich auch keine Wertänderung die ich an einem Datenpunkt vornehme.
Aber wenn ich die Logs vom MQTT-Broker-Adapter anschaue sehe ich doch zyklisch die Daten vom Zendure:

Den zendure-Adapter habe ich auf local umgestellt:

-
Ich verstehe es nicht mehr.
Im MQTT Explorer sehe ich die Topics vom Zendure nicht.
Also siht man natürlich auch keine Wertänderung die ich an einem Datenpunkt vornehme.
Aber wenn ich die Logs vom MQTT-Broker-Adapter anschaue sehe ich doch zyklisch die Daten vom Zendure:

Den zendure-Adapter habe ich auf local umgestellt:

Hast du denn im MQTT Explorer auch die richtigen Topics abonniert? /ProductID/# z.B. oder /iot/# dann solltest du was sehen.
-
-
@surfing.micha
Am mqtt Explorer gebe ich dann folgendes Topic an:zendure-solarflow/0/#
Versuche es so mit dem Mosquitto.
Ich bin mit Ferndiagnose am Ende meiner Weisheit wenn es so nicht funktioniert. -
Hallo, versuche mich auch gerade an der Integration zweier Zendure Solarflow 2400AC's...
Dort kann man ja inzwischen unter MQTT den Broker, port, user und passwort eingeben.
Das habe ich für meine beiden gemacht und der Adapter erzeugt auch brav 2 devices

Ich nehme an das der channel name die Device ID ist die man sonst per tool rausfinden muss (was bei mir leider nicht funktioniert, aber das ist ein anderes Thema).
Ich habe also die beiden DeviceIDs dort eingetragen und sehe im mqtt log nun auch jede Menge Meldungen, aber leider auch Fehler: Client [ioBroker.zendure-solarflow.0] has invalid password(undefined) or username(undefined).


Die Objekte sind dann auch weitestgehend leer (keine Ahnung warum er bei solar Input was reingeschrieben hat).

Nachdem die Anleitungen ja nicht mehr ganz aktuell sind (da man ja mqtt jetzt konfigurieren kann) die Frage was ich hier falsch mache?
Danke:) -
so habe ich es und es funzt einwandfrei (2400 AC)
MQTT-Adapter:



solaflow-Adapter (den ich nur "zum schauen" benutze, da ich alles über MQTT mache.)

In der Zendure APP
"Zum HEMS hinzufügen" deaktivieren
in der App, MQTT entsprechend einrichten
voila, es funktioniert....
Nute ich hier schon seit Wochen:
https://forum.iobroker.net/topic/82723/zendure-solarflow2400-ac-evcc-tibber-und-pv-forecastund eine (ich bin etwas stolz) MEGA-Erweiterung ist noch im BETA-Test
-
Danke - hab die MQTT settings geändert aber macht keinen Unterschied (war auch nicht viel).
Ich hab natürlich nicht den Cloud Mode an sondern den local MQTT weil ich alles offline möchte wenns irgends geht.
Geht das Script ohne den Adapter? Am Ende brauche ich den ja auch nicht um Nulleinspeisung zu basteln...


