NEWS
[Adapter] cloudfreie Auslesung von Deye-Invertern
-
RangeError [ERR_OUT_OF_RANGE]: The value of "offset" is out of range. It must be >= 0 and <= 198. Received 200 at new NodeError (node:internal/errors:387:5) at boundsError (node:internal/buffer:86:9) at Buffer.readUInt16BE (node:internal/buffer:332:5) at idcCore.readCoils (/opt/iobroker/node_modules/iobroker.deyeidc/lib/idc-core.js:149:39) at Socket.<anonymous> (/opt/iobroker/node_modules/iobroker.deyeidc/main.js:151:31) at Socket.emit (node:events:513:28) at addChunk (node:internal/streams/readable:315:12) at readableAddChunk (node:internal/streams/readable:289:9) at Socket.Readable.push (node:internal/streams/readable:228:10) at TCP.onStreamRead (node:internal/stream_base_commons:190:23)
-
RangeError [ERR_OUT_OF_RANGE]: The value of "offset" is out of range. It must be >= 0 and <= 198. Received 200 at new NodeError (node:internal/errors:387:5) at boundsError (node:internal/buffer:86:9) at Buffer.readUInt16BE (node:internal/buffer:332:5) at idcCore.readCoils (/opt/iobroker/node_modules/iobroker.deyeidc/lib/idc-core.js:149:39) at Socket.<anonymous> (/opt/iobroker/node_modules/iobroker.deyeidc/main.js:151:31) at Socket.emit (node:events:513:28) at addChunk (node:internal/streams/readable:315:12) at readableAddChunk (node:internal/streams/readable:289:9) at Socket.Readable.push (node:internal/streams/readable:228:10) at TCP.onStreamRead (node:internal/stream_base_commons:190:23)
-
@frank70 Ich liebe chinesische Dokus.
Was hast du denn bei 'Register' und 'Coils' aktuell eingestellt?@rene55 ich kann leider keine attachments laden. gibt einen Fehler im Browser. Habe dir eine email gesendet
Register:
600 699
Coils:
676 3 676 PV1 Voltage V -
@rene55 ich kann leider keine attachments laden. gibt einen Fehler im Browser. Habe dir eine email gesendet
Register:
600 699
Coils:
676 3 676 PV1 Voltage V

-
@rene55 ich kann leider keine attachments laden. gibt einen Fehler im Browser. Habe dir eine email gesendet
Register:
600 699
Coils:
676 3 676 PV1 Voltage V@frank70 Danke f
ü
r die Infos: Ich kann nat
ü
rlich die Register mit meinem kleinen WR nicht nachvollziehen. Da du ein Problem beim Register 599 hast, kannst du ja mal probieren, die Range von 500 - 600 einzustellen. Auch wenn das mit dem n
ä
chsten Bereich 600-699
ü
berlappt. M
ö
glicherweise kommt dann etwas. -
@frank70 Danke f
ü
r die Infos: Ich kann nat
ü
rlich die Register mit meinem kleinen WR nicht nachvollziehen. Da du ein Problem beim Register 599 hast, kannst du ja mal probieren, die Range von 500 - 600 einzustellen. Auch wenn das mit dem n
ä
chsten Bereich 600-699
ü
berlappt. M
ö
glicherweise kommt dann etwas.@rene55
ü
berlappen mit 600 hat geklappt. Mir kommt es so vor als obe zu grosse Registerbereiche bei den Abfragen Probleme machen. Istz es besser viele Eintr
ä
ge mit kleinen Registerbereichen einzustellen? -
@rene55
ü
berlappen mit 600 hat geklappt. Mir kommt es so vor als obe zu grosse Registerbereiche bei den Abfragen Probleme machen. Istz es besser viele Eintr
ä
ge mit kleinen Registerbereichen einzustellen?@frank70 Darum habe ich auch Platz f
ü
r mehrere Bereiche gelassen. Wenn alles in einem Bereich hinge, w
ä
re auch die Antwort ellenlang. Zum Problem 599: du holst ja auch 32-Bit-Werte ab - also zwei aufeinanderfolgende Register (599+600). Hauptsache, die Werte die da rauskommen sind plausibel. -
@frank70 Darum habe ich auch Platz f
ü
r mehrere Bereiche gelassen. Wenn alles in einem Bereich hinge, w
ä
re auch die Antwort ellenlang. Zum Problem 599: du holst ja auch 32-Bit-Werte ab - also zwei aufeinanderfolgende Register (599+600). Hauptsache, die Werte die da rauskommen sind plausibel.600 ist ok aber 598 und 599 macht wenig sinn
Ich habe nicht besonders viel Erfahrung mit modbus. Ist es problematisch aufeinanderfolgende Register abzufragen?
Werden alle Eintr
ä
ge in den Coils zu einem Registerbereich (Start-Ende) in eine Antwort gepackt? -
600 ist ok aber 598 und 599 macht wenig sinn
Ich habe nicht besonders viel Erfahrung mit modbus. Ist es problematisch aufeinanderfolgende Register abzufragen?
Werden alle Eintr
ä
ge in den Coils zu einem Registerbereich (Start-Ende) in eine Antwort gepackt?@frank70 sagte in [neuer Adapter] cloudfreie Auslesung von Deye-Invertern:
problematisch aufeinanderfolgende Register
N
ö
, muss nur zum Register Anfang - Ende passen.
Ja, ein Register-Bereich bewirkt eine (mehr oder weniger lange) Antwort.Versuch mal die Register 598, 599 und 600 mit Regel 1 auszulesen.
-
@frank70 sagte in [neuer Adapter] cloudfreie Auslesung von Deye-Invertern:
problematisch aufeinanderfolgende Register
N
ö
, muss nur zum Register Anfang - Ende passen.
Ja, ein Register-Bereich bewirkt eine (mehr oder weniger lange) Antwort.Versuch mal die Register 598, 599 und 600 mit Regel 1 auszulesen.
@rene55 said in [neuer Adapter] cloudfreie Auslesung von Deye-Invertern:
Register 598, 599 und 600 mit Reg
macht keinen unterschied mit regel 1.
ich habe die bef
ü
rchtung dass modbus tcp nicht gleich modbus rtu ist. weisst du ob die idr. diese protokolle gleich halten? -
@rene55 said in [neuer Adapter] cloudfreie Auslesung von Deye-Invertern:
Register 598, 599 und 600 mit Reg
macht keinen unterschied mit regel 1.
ich habe die bef
ü
rchtung dass modbus tcp nicht gleich modbus rtu ist. weisst du ob die idr. diese protokolle gleich halten?@frank70 sagte in [neuer Adapter] cloudfreie Auslesung von Deye-Invertern:
modbus tcp nicht gleich modbus rtu
Da kann ich nicht viel zu sagen. Wo genau da die Unterschiede sind? Ich dachte erstmal nur im
Ü
bertragungsweg. -
@frank70 sagte in [neuer Adapter] cloudfreie Auslesung von Deye-Invertern:
modbus tcp nicht gleich modbus rtu
Da kann ich nicht viel zu sagen. Wo genau da die Unterschiede sind? Ich dachte erstmal nur im
Ü
bertragungsweg.@rene55 Ich versuche gerade checkbox felder im GUI des WR auszulesen. was w
ü
rdest als ergebnis bei einem boolschen wert im iobroker feld erwarten? -
@rene55 Ich versuche gerade checkbox felder im GUI des WR auszulesen. was w
ü
rdest als ergebnis bei einem boolschen wert im iobroker feld erwarten? -
@frank70 Kann verschieden sein true/false, 0/-1. Aber ist jetzt ne andere Baustelle und hat mit dem Adapter nichts zu tun, oder?
@rene55 ist ne andere baustelle. ich versuche die richtigen register zu finden
-
Ich habe den Adapter mittlerweile in 5 Instanzen installiert, und er macht das was er soll, daf
ü
r ein dickes Lob!

Mir ist aber Folgendes aufgefallen:
Ich hatte mich bei der Installation der ersten und zweiten Instanz irgendwie mit den Seriennummern und den IP-Adressen verhaspelt und hab ein paar mal rumge
ä
ndert, bis ess dann gepasst hat.
Das hatte zur Folge, dass bei einer Instanz ein Ordner "1" angelegt war, in dem noch ein alter Wert des Registers 86 des anderen WR festhing.
Nach dem ich die Instanz gel
ö
scht und wieder neu angelegt hatte, war wieder alles OK.
War das ein Bug oder ein Hinweis auf ein kommendes Feature, mit einer Instanz mehrere WR auslesen zu k
ö
nnen? -
Ich habe den Adapter mittlerweile in 5 Instanzen installiert, und er macht das was er soll, daf
ü
r ein dickes Lob!

Mir ist aber Folgendes aufgefallen:
Ich hatte mich bei der Installation der ersten und zweiten Instanz irgendwie mit den Seriennummern und den IP-Adressen verhaspelt und hab ein paar mal rumge
ä
ndert, bis ess dann gepasst hat.
Das hatte zur Folge, dass bei einer Instanz ein Ordner "1" angelegt war, in dem noch ein alter Wert des Registers 86 des anderen WR festhing.
Nach dem ich die Instanz gel
ö
scht und wieder neu angelegt hatte, war wieder alles OK.
War das ein Bug oder ein Hinweis auf ein kommendes Feature, mit einer Instanz mehrere WR auslesen zu k
ö
nnen?@thilo-frank Eigentlich soll eine Instanz die Daten eines WR verarbeiten. Der Ordner unterhalb von deyeidc.0 wird erst angelegt, wenn der WR eine g
ü
ltige Antwort zur
ü
ckgibt. Das tut er, wenn er mit einer passenden Seriennummer angesprochen wird. Woher der bei dir jetzt eine '1' erwischt hat, kann ich nicht sagen.
Hast du tats
ä
chlich 5 WR? Welche Typen? -
@thilo-frank Eigentlich soll eine Instanz die Daten eines WR verarbeiten. Der Ordner unterhalb von deyeidc.0 wird erst angelegt, wenn der WR eine g
ü
ltige Antwort zur
ü
ckgibt. Das tut er, wenn er mit einer passenden Seriennummer angesprochen wird. Woher der bei dir jetzt eine '1' erwischt hat, kann ich nicht sagen.
Hast du tats
ä
chlich 5 WR? Welche Typen?@rene55 Ich habe 4x den Bosswerk MI-600 und 1x den Deyesun 600g3.
Den Ordner "1" hatte er zus
ä
tzlich zum Ordner "0" angelegt, falls ich mich hier unklar ausgedr
ü
ckt hatte... -
@rene55 Ich habe 4x den Bosswerk MI-600 und 1x den Deyesun 600g3.
Den Ordner "1" hatte er zus
ä
tzlich zum Ordner "0" angelegt, falls ich mich hier unklar ausgedr
ü
ckt hatte... -
Aktuelle Version 0.1.0. Ver
ö
ffentlichungsdatum14.03.2023 Github Link https://github.com/raschy/ioBroker.deyeidc Neuer Adapter f
ü
r cloudfreie Auslesung von Mikro-Wechselrichtern aus dem Hause DeyeDieser 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
ß
. -
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden

.