NEWS
[Adapter] cloudfreie Auslesung von Deye-Invertern
-
@edrivede Na, ne dumme Frage ist das nicht. Grundsätzlich verpackt der Deye seine Modbusdaten noch in einen Frame mit allerlei Informationen, inclusive Prüfsummen.
Ich hab auch keinen Schimmer, wie ich die Daten vom Inverter ohne Kabel in den ioBroker-Modbus-Adapter kriegen könnte. (Sonst hätte ich auch keinen Adapter gebaut ) -
@rene55 Irgendwas stimmt aber nun mit 0.0.5 nicht mehr mit der Berechnung.
32,8V * 0,1A (DV1 * DC1 = DP1) sollte 3,28W ergeben...in DP1 steht aber 0,03W drin.
30,3V * 0,2A (DV2 * DC2 = DP2) sollte 6,06W ergeben...in DP1 steht aber 0,06W drin.
Apo_t1 hat 13W... -
@msauer sagte in [neuer Adapter] cloudfreie Auslesung von Deye-Invertern:
@rene55 Irgendwas stimmt aber nun mit 0.0.5 nicht mehr mit der Berechnung.
@Rene55
kann ich bestaetigen, hab gestern auf die 0.0.5 geupdated, selbes Problem. Was ist der Faktor, wenn ich da 100 eingebe, passt es auch nicht.. ??
Auch nicht richtig mitDV1*DC1*100
... hmm ?
-
@msauer Das ist Richtig: Der Faktor muss '0' sein. Sorry.
-
@ilovegym Du überforderst die Rechenkünste! Der Adapter kann nur eine Rechenoperation pro Zeile.
-
@rene55 Danke!
ah ok, gut zu wissen, jetzt stimmts ja auch.. lag am Faktor.. -
@rene55 danke für den tollen Adapter, den ich seit heute im Einsatz habe.
Es wäre wirklich eine tolle Sache, mehr Dokumentation über diesen Adapter und seine Einstellmöglichkeiten zu haben, gerade auf Bezug der Coils.
Prima wäre es außerdem, wenn alle Momentwerte bei einem Disconnect zum Inverter genullt werden. Summen könnten ja stehen bleiben, oder zumindest das OPC Item auf BAD geht.
Mir ist auch aufgefallen, dass gleichheissende IDs noch nicht abgefangen werden.
Mein eingesetzter Inverter lautet SUN1600G3-EU-230.
Grüße Chris
-
@christianblenk Hallo Chris, ich habe auch nur eine Übersicht von einigen Registern für den Deye.
Welche Werte sollen denn bei einem Disconnect genullt werden? Welches ist das OPC-Item?Warum sollte ich gleichheißende Items abfangen? Wenn der Benutzer das so eingibt, wird er sich was dabei gedacht haben, oder?
LG -
@rene55 ich meine den Qualitätscode. Der steht immer auf 0x00 good, sollte vielleicht auf 0x42 device not connected gehen.
Der Hintergrund ist der, dass man auf dieser Basis die Daten in der Datenbank (INFLUX, etc) anders bewerten kann.
Auf Grund der Flexibilität deines Adapters könnte man vieleicht ein boolean Flag in der Konfig setzen, welche Werte genullt werden sollen, wenn das Device auf diconnect geht. Spannung, Strom, Leistung.
Das Problem bei den Kisten ist, dass wenn die keinen Saft mehr über die PV bekommen, aus gehen und dann die Werte einfach stehen bleiben und ggf. weiter geloggt werden.
Theoretisch kann ich das auch über Blockly selber bauen. Im Adapter wäre das schicker.
Grüße
Chris -
@christianblenk sagte in [neuer Adapter] cloudfreie Auslesung von Deye-Invertern:
Qualitätscode
Hab ich irgendwie auch im Hinterkopf, weiß nur noch nich genau, woran ich das festmachen soll.
@christianblenk sagte in [neuer Adapter] cloudfreie Auslesung von Deye-Invertern:
Device auf diconnect
Ist nicht ganz so einfach: Ich hab da gerade im Winter überraschungen erlebt, dass auch tagsüber disconected wurde.
@christianblenk sagte in [neuer Adapter] cloudfreie Auslesung von Deye-Invertern:
keinen Saft mehr über die PV
Genau. Auch bei WLAN-Ausfall, warum auch immer, aber Gerät produziert weiter. Daher ist hier ein 0-stellen nicht so prickelnd. Aber ja, wenn man das konfigurieren kann, kann der der es so haben will ja einschalten.
-
@rene55 Kann ich bestätigen. Ich pinge den Deye regelmäßig an und bekomme regelmäßig den Hinweis das das Gerät per Ping nicht erreichbar ist. Die Pingabfrage erfolgt alle 10 Minuten und meist ist es bei der nächsten Abfrage wieder erreichbar. Produziert wird dabei durchgehend. WLAN ist im Garten sehr gut. Inverter ist auch nur 2 meter - eher weniger vom WLan entfernt. Die Chinesen können den Inverter ja auch neu starten und die Firmware aktualisieren.
-
@cash ja das kann schon sein. Ich würde es halt so machen.
Ich komme aus der Branche Prozessautomatiesierung und Bigdata. Da ist das Standard.
Wenn eine Abfrage auf eine Maschine keine Daten liefert, dann bleiben die alten Daten erhalten und der Qualitycode geht auf Bad, uncertain oder halt Device not connected (0x42). Kommt immer auf den Hersteller an. 0x00 Good ist aber in jedem Fall falsch.
Grüße
Chris -
@christianblenk sagte in [neuer Adapter] cloudfreie Auslesung von Deye-Invertern:
Good ist aber in jedem Fall falsch
Das nehm ich mal als Auftrag. Wobei die meisten Adapter, die ich so in Gebrauch habe immer 0x00 in den State geben. Oder kennst du einen, der das so umgesetzt hat?
-
@rene55 jetzt hast du mich.
Nein, aktuell weiß ich das nicht. Soweit ich das aber in Erinnerung habe, gehen die Werte aber auf 0. -
Ich habe mir gestern den Adapter installiert/eingerichtet, bekomme ihn aber nicht zum Laufen wegen eines "offset"-Fehlers. Ich habe unter "Register" 2 einzelne (3, 86) ausgewählt:
deyeidc.0 2023-05-05 09:16:04.568 error
Exception-Code: ERR_OUT_OF_RANGE: The value of "offset" is out of range. It must be >= 0 and <= 1. Received 2deyeidc.0 2023-05-05 09:16:04.567 error
RangeError [ERR_OUT_OF_RANGE]: The value of "offset" is out of range. It must be >= 0 and <= 1. Received 2 at new NodeError (node:internal/errors:399:5) at boundsError (node:internal/buffer:88:9) at Buffer.readUInt8 (node:internal/buffer:254:5) at idcCore.readCoils (/opt/iobroker/node_modules/iobroker.deyeidc/lib/idc-core.js:181:35) at Socket.<anonymous> (/opt/iobroker/node_modules/iobroker.deyeidc/main.js:161:31) at Socket.emit (node:events:513:28) at addChunk (node:internal/streams/readable:324:12) at readableAddChunk (node:internal/streams/readable:297:9) at Readable.push (node:internal/streams/readable:234:10) at TCP.onStreamRead (node:internal/stream_base_commons:190:23)deyeidc.0 2023-05-05 09:16:04.561 error
uncaught exception: The value of "offset" is out of range. It must be >= 0 and <= 1. Received 2Wenn ich 2 Ranges mit je 3 Register (2 - 4, 85 - 87) auswähle lautet die Fehlermeldung:
uncaught exception: The value of "offset" is out of range. It must be >= 0 and <= 5. Received 6Gibt hier der WR ein Register mehr zurück als angefragt wird?
WR: Deye sun600g3-eu-230
Firmware des WR: MW3_16U_5406_1.57 -
@ah179 die Abfrage enthält Register ausserhalb deiner Deklaration unter dem Reiter Register. Dort einfach so anpassen, dass die Abfrage hinein passt.
-
@rene55 ich hab das für mich jetzt erstmal so gelöst.
-
@christianblenk vielen Dank, ich konnte zwar keinen "Spulen"-Eintrag außerhalb der "Register"-Ranges entdecken, aber alles zu löschen und neu anlegen brachte dann den Erfolg. Der Adapter läuft und tut was er soll.
Da du den "Running Status" verwendest, wo gibt es hierzu eine Auflistung welcher Wert was bedeutet?
-
Als Anregung, so habe ich es bei mir gelöst, damit nicht beim kleinsten Schluckauf die Werte genullt werden.
-
@ah179 Kannst du noch nachvollziehen, was du eingetragen hattest? Selbst wenn eine "Spule" ausserhalb der "Register" liegt, darf der Adapter keinen Error werfen. Er beachtet diesen Wert einfach nicht.