NEWS
[Adapter] cloudfreie Auslesung von Deye-Invertern
-
@rene55
So ganz rund läuft das Schreiben bei mir doch nicht.
Teilweise ist das was ich in Power_Set eingeben erst nach ca. 5 Minuten in Power_Reg zu sehen, teilweise erfolgt gar kein Schreiben wie es aussieht.Parallel dazu kontrolliere ich die Werte mit dem Tool deye-logger-at-cmd/main.exe
In der Wartezeit ist der Wert, auch wenn ich mit main.exe lese, unverändert - also insofern stimmt der angezeigte Wert von Power_RegWenn ich das via main.exe in das Register 28 schreibe, bekomme ich in Power_Reg auch innerhalb 1 Minute den neuen Wert aktualisiert das funktioniert also recht zeitnah.
z.b. f. 50%: main -t <ip of the logger>:48899 -xmbw 00280001020032Was allerdings auch hier vorkommt ist das ich den Werte schreibe aber danach immer noch der alte Wert gelesen wird.
Ich muss das dann mitunter mehrfach wiederholen bis es klappt.Evt. muss man im Adapter beim Schreiben ebenfalls eine Write->Check->Retry Loop einbauen ?
-
@rene55
So ganz rund läuft das Schreiben bei mir doch nicht.
Teilweise ist das was ich in Power_Set eingeben erst nach ca. 5 Minuten in Power_Reg zu sehen, teilweise erfolgt gar kein Schreiben wie es aussieht.Parallel dazu kontrolliere ich die Werte mit dem Tool deye-logger-at-cmd/main.exe
In der Wartezeit ist der Wert, auch wenn ich mit main.exe lese, unverändert - also insofern stimmt der angezeigte Wert von Power_RegWenn ich das via main.exe in das Register 28 schreibe, bekomme ich in Power_Reg auch innerhalb 1 Minute den neuen Wert aktualisiert das funktioniert also recht zeitnah.
z.b. f. 50%: main -t <ip of the logger>:48899 -xmbw 00280001020032Was allerdings auch hier vorkommt ist das ich den Werte schreibe aber danach immer noch der alte Wert gelesen wird.
Ich muss das dann mitunter mehrfach wiederholen bis es klappt.Evt. muss man im Adapter beim Schreiben ebenfalls eine Write->Check->Retry Loop einbauen ?
@sigi-0 Das ist kein Wunder! Der Deye ist doch so träge, dass der nach meiner Erkenntnis ca. 3-5 Minuten brauch, um neue Daten zu generieren. Bitte das mal Beobachten, wie oft neue Daten vom WR gesendet werden.
Die Aktion mit der main: hat die immer sofort Erfolg oder war das eher Zufall?
EDIT: gerade erst richtig gelesen: Ich muss das dann mitunter mehrfach wiederholen bis es klappt -
@elektrofix-ol Zur Zeit wird das Ergebnis aus (low_word + high_word * 65536) gebildet. Ich glaube, bisher hat keiner die Rule 3 oder 4 im Einsatz. Daher wäre es ja möglich, eine Rule anzupassen oder zu erweitern, wenn ich dann weiß, was gebraucht wird. Daher wünsche ich mir mal geprüfte Werte.
@rene55 Ich habe jetzt die Register für eine Deye Sun-12K-SG04LP3-EU die Werte liefern. Leider bekomme ich das nicht hin die Register als json zu exportieren. Hier daher die Screenshots:



-
@rene55 Ich habe jetzt die Register für eine Deye Sun-12K-SG04LP3-EU die Werte liefern. Leider bekomme ich das nicht hin die Register als json zu exportieren. Hier daher die Screenshots:



zum Exportieren einfach auf den Pfeil im Adapter klicken, damit sicherst du die kompletten Settings vom Adapter.
Das geht auch bei vielen anderen Adaptern so.

-
zum Exportieren einfach auf den Pfeil im Adapter klicken, damit sicherst du die kompletten Settings vom Adapter.
Das geht auch bei vielen anderen Adaptern so.

-
@rene55 Schön, das zu hören, ich hatte an mich schon gezweifelt.
-
Welche Version habt ihr?
Die aktuelle Beta 6.17.14 funktioniert…. -
Welche Version habt ihr?
Die aktuelle Beta 6.17.14 funktioniert…. -
@ilovegym Produktiv habe ich die 6.13.16 im Einsatz. Mit der gehts bei einigen Adptern nicht (so auch DeyeIDC), andere gehen. Bug ist bekannt und wahrscheinlich in der 6.17.14 dann gefixt.
Hallo,
habe mal ne Frage: Kann man die Daten "SmartLoad-Einrichtung" beim Deye 12K-SGO$lP3-EU auch auslesen bzw ändern über iobroker?
Ich habe einen Senec mit 7,5kWh Batterie un 9,5 kWp Platten und diesen Deye mit 12,5 kWh Batterie und 3 kWp Platten.
Unter "SmartLoad-Einrichtung" -> habe ich "Micinv Input" eingestellt, um den Überschuss in die Deye Batterie zu laden. Funktioniert auch tadellos.
Doch wenn die Sonne weg ist und der Senec die Energie aus der Batterie nimmt, dann lädt auch der Deye seine Batterie vom Senec.
Wenn ich also zeitlich "SmartLoad-Einrichtung" -> auf zB. "Generator Input" umstellen könnte, wäre das Problem gelöst.
Wie kann man noch andere Register auslesen mit dem Adapter Deyeidc?Vielen Dank im Voraus
Meintre
-
Hallo,
habe mal ne Frage: Kann man die Daten "SmartLoad-Einrichtung" beim Deye 12K-SGO$lP3-EU auch auslesen bzw ändern über iobroker?
Ich habe einen Senec mit 7,5kWh Batterie un 9,5 kWp Platten und diesen Deye mit 12,5 kWh Batterie und 3 kWp Platten.
Unter "SmartLoad-Einrichtung" -> habe ich "Micinv Input" eingestellt, um den Überschuss in die Deye Batterie zu laden. Funktioniert auch tadellos.
Doch wenn die Sonne weg ist und der Senec die Energie aus der Batterie nimmt, dann lädt auch der Deye seine Batterie vom Senec.
Wenn ich also zeitlich "SmartLoad-Einrichtung" -> auf zB. "Generator Input" umstellen könnte, wäre das Problem gelöst.
Wie kann man noch andere Register auslesen mit dem Adapter Deyeidc?Vielen Dank im Voraus
Meintre
@meintre-0 Sorry, keine Ahnung. Vllt. jemand anderes.
-
Guten Morgen,
ich habe einen Eintrag geändert. Das Speichern (und schließen) kein Problem, aber beim Anzeigen der Objekte erscheint folgendes im Log als Warnung:
deyeidc has an invalid jsonConfig: [{"instancePath":"/items/_coils/items/coils/items/1","schemaPath":"#/items/allOf/17/then/additionalProperties","keyword":"additionalProperties","params":{"additionalProperty":"trim"},"message":"must NOT have additional properties"},{"instancePath":"/items/_coils/items/coils","schemaPath":"#/patternProperties/%5E.%2B/allOf/25/if","keyword":"if","params":{"failingKeyword":"then"},"message":"must match \"then\" schema"},{"instancePath":"/items/_coils","schemaPath":"#/properties/items/patternProperties/%5E.%2B/allOf/8/if","keyword":"if","params":{"failingKeyword":"then"},"message":"must match \"then\" schema"},{"instancePath":"","schemaPath":"#/if","keyword":"if","params":{"failingKeyword":"then"},"message":"must match \"then\" schema"}]
-
Guten Morgen,
ich habe einen Eintrag geändert. Das Speichern (und schließen) kein Problem, aber beim Anzeigen der Objekte erscheint folgendes im Log als Warnung:
deyeidc has an invalid jsonConfig: [{"instancePath":"/items/_coils/items/coils/items/1","schemaPath":"#/items/allOf/17/then/additionalProperties","keyword":"additionalProperties","params":{"additionalProperty":"trim"},"message":"must NOT have additional properties"},{"instancePath":"/items/_coils/items/coils","schemaPath":"#/patternProperties/%5E.%2B/allOf/25/if","keyword":"if","params":{"failingKeyword":"then"},"message":"must match \"then\" schema"},{"instancePath":"/items/_coils","schemaPath":"#/properties/items/patternProperties/%5E.%2B/allOf/8/if","keyword":"if","params":{"failingKeyword":"then"},"message":"must match \"then\" schema"},{"instancePath":"","schemaPath":"#/if","keyword":"if","params":{"failingKeyword":"then"},"message":"must match \"then\" schema"}]
-
das ist aktuell, und welche Version von Admin und js-controller?
-
@gukerl
A) Du kannst die Info mal ignorieren. Funktion ist dadurch nicht beeinflusst.B) Die Meldung stammt von einem Fehler im Adapter jsonConfig.json. Die ist auf Githubvdefiniziv schon behoben und sollte vom zeitlichen Ablauf her auch in 0.0.14 schon drinnen sein.
Ich oder der Dev werden das zeitnahe mal prüfen. Wenn du magst erstell bitte ein Issue beim Adapter.
-
@gukerl
A) Du kannst die Info mal ignorieren. Funktion ist dadurch nicht beeinflusst.B) Die Meldung stammt von einem Fehler im Adapter jsonConfig.json. Die ist auf Githubvdefiniziv schon behoben und sollte vom zeitlichen Ablauf her auch in 0.0.14 schon drinnen sein.
Ich oder der Dev werden das zeitnahe mal prüfen. Wenn du magst erstell bitte ein Issue beim Adapter.
I registered a issue at adapter repo
-
Guten Morgen,
ich habe einen Eintrag geändert. Das Speichern (und schließen) kein Problem, aber beim Anzeigen der Objekte erscheint folgendes im Log als Warnung:
deyeidc has an invalid jsonConfig: [{"instancePath":"/items/_coils/items/coils/items/1","schemaPath":"#/items/allOf/17/then/additionalProperties","keyword":"additionalProperties","params":{"additionalProperty":"trim"},"message":"must NOT have additional properties"},{"instancePath":"/items/_coils/items/coils","schemaPath":"#/patternProperties/%5E.%2B/allOf/25/if","keyword":"if","params":{"failingKeyword":"then"},"message":"must match \"then\" schema"},{"instancePath":"/items/_coils","schemaPath":"#/properties/items/patternProperties/%5E.%2B/allOf/8/if","keyword":"if","params":{"failingKeyword":"then"},"message":"must match \"then\" schema"},{"instancePath":"","schemaPath":"#/if","keyword":"if","params":{"failingKeyword":"then"},"message":"must match \"then\" schema"}]
-
ok, kann ich unter Admin 7.0.17 und js-controller 6.0.9 nicht nachvollziehen. Daher dachte ich, es liegt auch evt. daran..?
-
ok, kann ich unter Admin 7.0.17 und js-controller 6.0.9 nicht nachvollziehen. Daher dachte ich, es liegt auch evt. daran..?
@ilovegym said in [Adapter] cloudfreie Auslesung von Deye-Invertern:
ok, kann ich unter Admin 7.0.17 und js-controller 6.0.9 nicht nachvollziehen. Daher dachte ich, es liegt auch evt. daran..?
Wundert mich eigentlich. Der Fehler ist in der offiziellen (npm) Version definitiv drinnen. In der GH Version ist's schon korrigiert.. Der Fehler tritt nur auf, wenn du das Admin UI öffnest.
Aber im Kern kümmert sich Rene eh schon drum. Ist also alles im grünen Bereich. DANKE fürs mithelfen bzw fürs Fixen
-
Aktuelle Version 0.1.0. Veröffentlichungsdatum 14.03.2023 Github Link https://github.com/raschy/ioBroker.deyeidc Neuer Adapter für cloudfreie Auslesung von Mikro-Wechselrichtern aus dem Hause Deye
Dieser Adapter ermöglicht es, Daten aus einem Wechselrichter im lokalen Netzwerk auszulesen. Diese Daten werden über die bekannten Modbus-Ports abgerufen und in den Datenpunkten gespeichert. Dies wurde an einem "Deye-kompatiblen" Mikro-Wechselrichter entwickelt und getestet. Die abzufragenden Register können daher bei anderen Modellen abweichen. Hierfür muss lediglich die IP des Wechselrichters und die Seriennummer des Loggers eingegeben werden. Falls der Port vom Standardwert abweicht, kann dieser ebenfalls angepasst werden. Als praktikabler Wert für die Abtastrate sind 60 Sekunden voreingestellt. Dieser Adapter soll all den jenigen entgegen kommen, die mit der SolarmanPV App nicht oder nur ungerne (China-Cloud) arbeiten wollen.
Was muss gemacht werden: unter Einstellungen mindestens die lokale IP des Inverters und die Seriennummer des Loggers (fängt meistens mit 4xxxx an) eintragen.
Im nachfolgenden Tab Register das erste und letzte Register eintragen, welches abgefragt werden soll. Hier sind mehrere Zeilen möglich, um die nicht benötigten oder unsinnigen Register zu überspringen. Voreingestellt sind hier die Register 59 - 90.
In einem weiteren Tab Spulen werden die tatsächlichen Register eingestellt. Hier ist beispielhaft das Register 86 voreingestellt. In diesem Register befindet sich der 'Total AC Output Power (Active)' der im Datenpunkt 'Apo_t1' abgelegt wird. Um diesen richtig auszulesen wird die Regel 3 angewandt, die Einheit soll 'W' sein und der Faktor ist 1. Weitere Register zähle ich später noch auf (für Einsteiger, die die Register nicht kennen, gibt es auf github https://github.com/raschy/ioBroker.deyeidc/blob/main/deyeidc.MI600.json ein Beispiel) .
Im letzten Tab Berechnen können die Werte berechnet werden, die der Wechselrichter selbst nicht liefert.
Beispielsweise ist hier ein Muster vorgegeben, welches die Modulleistung eines Inverter-MPPTs berechnet.
Hierzu wird das Produkt aus der Spannung und dem Strom berechnet, und dann im entsprechenden Datenpunkt abgelegt. (Funktioniert natürlich nur, wenn man zuvor die Daten für DV1 und DC1 abgeholt hat).
Seit Version 0.0.5 müssen die Compute-Vorgaben überarbeitet werden. Waren hier in den älteren Versionen zwei Felder für eine Multiplikation vorgesehen, müssen jetzt die beiden Werte, aus denen etwas errechnet werden soll in einem Feld stehen mit der passenden Berechnungsvorschrift. Das heißt, wenn man wie bisher die Leistung eines Moduls aus Spannung und Strom berechnen möchte, schreibt man in das Feld Value "DV1*DC1" rein. Alles andere ist unverändert. Als Feature kann man jetzt den Spannungsunterschied zwischen den zwei Modulen berechnen "DV1-DV2" (Nur für den, den es interessiert).Seit dem 25.08.2023 ist der Adapter nun in der Version 0.0.9 in das ioBroker-Repository aufgenommen worden. Anschließend wurde noch etwas bereinigt und für die Aufnahme ins stable vorbereitet. In diesem Stadium bekam ich den Hinweis, dass wohl die 32-bit-Werte falsch berechnet würden. Das hab ich dann (leider ohne viel zu prüfen) in die Version 0.0.10 übernommen. Schnell musste ich feststellen, dass alle damit berechneten 32-bit-Werte falsch waren. Also, zur 'Schadensminimierung', die aktuelle Version 0.0.11 hinterhergeschoben.
Zwischenzeitlich wurde ja auch das Relais von Deye ausgeliefert und bei einigen schon integriert. Danach gab es einige Telegramme mehr, die hier ausgetauscht wurden. Das wurde dann in den Versionen 0.0.12 bis 0.0.14 angepasst.Ab der Version 0.0.15, wurde das Rechenmodul etwas überarbeitet. Es prüft jetzt die Eingaben ab, ob der in der Berechnung verwendete Datenpunkt überhaupt existiert. Wenn nicht gibt es eine Warnung. Gelegentlich Verbindungsprobelme sollten in der jetzt aktuellen Version 0.1.0 auch gefixt sein.
Der Adapter ist jetzt in einer Phase, die gerne von Euch weiter getestet und kommentiert werden darf/soll. Auch soll es wohl möglich sein, große und Hybridwechselrichter über diesen Adapter auszulesen. Hier müssen halt nur die richtigen Register ausgewählt werden. Daher wäre es schön, wenn Rückmeldungen auch hierzu kämen.
Viel Spaß.
Hi,
habe heute Version 0.0.15 installiert, leider hat die Probleme mit den Registern, habe 5 Instanzen, bei allen das gleiche, der Adapter startet, und wenn er Daten holen moechte, kommt das:2024-07-29 18:04:13.167 - error: deyeidc.1 (15766) TypeError: Cannot read properties of undefined (reading 'register') | TypeError: Cannot read properties of undefined (reading 'register') at Deyeidc.onData (/opt/iobroker/node_modules/iobroker.deyeidc/main.js:166:11) at Socket.<anonymous> (/opt/iobroker/node_modules/iobroker.deyeidc/main.js:152:10) at Socket.emit (node:events:520:28) at addChunk (node:internal/streams/readable:559:12) at readableAddChunkPushByteMode (node:internal/streams/readable:510:3) at Readable.push (node:internal/streams/readable:390:5) at TCP.onStreamRead (node:internal/stream_base_commons:191:23) 2024-07-29 18:04:17.245 - info: host.iobroker "system.adapter.deyeidc.4" disabled 2024-07-29 18:04:17.245 - info: host.iobroker stopInstance system.adapter.deyeidc.4 (force=false, process=true) 2024-07-29 18:04:17.251 - info: host.iobroker stopInstance system.adapter.deyeidc.4 send kill signal 2024-07-29 18:04:17.251 - info: deyeidc.4 (15848) Got terminate signal TERMINATE_YOURSELF 2024-07-29 18:04:17.253 - info: deyeidc.4 (15848) terminating 2024-07-29 18:04:17.254 - info: deyeidc.4 (15848) Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason 2024-07-29 18:04:17.755 - info: deyeidc.4 (15848) terminating 2024-07-29 18:04:17.807 - info: host.iobroker instance system.adapter.deyeidc.4 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION)Zurueck auf 0.0.14 und alles ist gut...
System: Buanet Docker 10.0.0.1-Node22 - js-controller 6.0.9 - Admin 7.0.21
