NEWS
[Adapter] cloudfreie Auslesung von Deye-Invertern
-
Ich schäme mich ja schon in Grund und Boden
-
@henry-3 Ne, schämen ist nicht. Wenn ich a) eine Idee hätte und b) das auch testen könnte sähe die Welt anders aus.
-
Hast Du schon mal bei denen reingeschaut:
https://forum.iobroker.net/topic/65198/deye-wechselrichter-modbus-register-beschreiben
Die gehen direkt über den MODBUS -
@henry-3 Ich habs jetzt nicht komplett gelesen. Kannst ja mal einen Versuch machen, eines der gewünschten Register mit dem Modbus-Adapter zu beschreiben.
Für den Adapter sehe ich die Schwierigkeit, dass ich ja zum einen die verschiedenen Register irgendwie erhalten/eingebbar machen muss, dann sollen die Register ja bestimmt auch von irgendjemandem beschrieben werden und ich muss dann noch eine Prüfung auf gültige Werte machen. Das scheint mir etwas viel zu werden. -
Hallo, ich habe den Deye Wechselrichter 2000W SUN-M200G4-EU-Q0. Mit dem Adapter 0.1.0 habe ich folgende Einträge im Log :
Response: (checkOnlineDate) {"register":0,"modbus":{"type":"Buffer","data":[1,3,2,5,10,59]}} deyeidc.0 2024-09-05 10:45:07.516 debug [computeData] ResultJson: [{"key":"DP1","value":"0.00","unit":"W","name":"DC Power PV1"},{"key":"DP2","value":"0.00","unit":"W","name":"DC Power PV2"},{"key":"DP3","value":"187.62","unit":"W","name":"DC Power PV3"},{"key":"DP4","value":"263.50","unit":"W","name":"DC Power PV4"}] deyeidc.0 2024-09-05 10:45:07.516 debug [computeData] {"values":"DV4*DC4","key":"DP4","name":"DC Power PV4","unit":"W","factor":0} deyeidc.0 2024-09-05 10:45:07.516 debug [computeData] {"values":"DV3*DC3","key":"DP3","name":"DC Power PV3","unit":"W","factor":0} deyeidc.0 2024-09-05 10:45:07.515 debug [computeData] {"values":"DV2*DC2","key":"DP2","name":"DC Power PV2","unit":"W","factor":0} deyeidc.0 2024-09-05 10:45:07.515 debug [computeData] {"values":"DV1*DC1","key":"DP1","name":"DC Power PV1","unit":"W","factor":0} deyeidc.0 2024-09-05 10:45:07.515 debug Data reception for 4 registersets completed deyeidc.0 2024-09-05 10:45:07.509 debug Response: (payload) {"register":4,"modbus":{"type":"Buffer","data":[1,3,8,0,0,7,208,3,232,19,136,216]}} deyeidc.0 2024-09-05 10:45:07.339 debug Response: (payload) {"register":3,"modbus":{"type":"Buffer","data":[1,3,16,0,0,0,0,0,0,0,0,1,62,0,59,1,54,0,85,62]}} deyeidc.0 2024-09-05 10:45:07.137 debug Response: (payload) {"register":2,"modbus":{"type":"Buffer","data":[1,3,64,0,4,0,3,0,0,0,0,3,90,0,0,0,0,0,0,0,1,0,2,0,0,0,0,0,0,0,0,9,36,1,154,0,0,0,18,1,173,0,0,19,136,0,0,0,0,0,0,0,0,0,0,0,0,16,236,0,0,0,0,0,0,15,140,228]}} deyeidc.0 2024-09-05 10:45:06.886 debug Response: (payload) {"register":1,"modbus":{"type":"Buffer","data":[1,3,82,0,4,1,0,3,2,50,52,48,53,49,48,48,52,66,50,0,1,0,0,18,12,7,0,1,3,3,32,19,35,3,32,78,32,0,0,4,1,0,80,0,0,0,65,24,9,5,10,43,44,1,176,0,12,11,59,7,48,20,30,18,142,9,226,4,11,0,1,19,156,0,40,19,116,19,156,0,100,7,208,0,100,189]}} deyeidc.0 2024-09-05 10:45:00.289 error TypeError: Cannot read properties of undefined (reading 'registerStart') | TypeError: Cannot read properties of undefined (reading 'registerStart') at idcCore.readCoils (/opt/iobroker/node_modules/iobroker.deyeidc/lib/idc-core.js:149:56) at Deyeidc.onData (/opt/iobroker/node_modules/iobroker.deyeidc/main.js:176:37) at Socket.<anonymous> (/opt/iobroker/node_modules/iobroker.deyeidc/main.js:154:10) at Socket.emit (node:events:519: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) deyeidc.0 2024-09-05 10:45:00.289 warn {"register":8,"modbus":{"type":"Buffer","data":[1,3,250,1,0,3,2,50,52,48,53,49,48,48,52,66,50,0,1,0,0,18,12,7,0,1,3,3,32,19,35,3,32,78,32,0,0,4,1,0,80,0,0,0,65,24,9,5,10,43,44,1,176,0,12,11,59,7,48,20,30,18,142,9,226,4,11,0,1,19,156,0,40,19,116,19,156,0,100,7,208,0,100,0,0,0,0,0,1,0,1,0,8,0,1,0,1,0,0,0,1,255,84,0,2,0,12,39,16,0,0,39,16,0,0,0,0,0,0,0,4,0,3,0,0,0,0,3,90,0,0,0,0,0,0,0,1,0,2,0,0,0,0,0,0,0,0,9,26,1,154,0,0,0,18,1,173,0,0,19,136,0,0,0,0,0,0,0,0,0,0,0,0,16,236,0,0,0,0,0,0,15,140,9,71,9,71,19,136,0,0,0,0,0,0,0,0,0,0,0,0,2,167,0,2,0,29,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,62,0,59,1,54,0,85,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,255]}} deyeidc.0 2024-09-05 10:45:00.288 debug Response: (payload) {"register":8,"modbus":{"type":"Buffer","data":[1,3,250,1,0,3,2,50,52,48,53,49,48,48,52,66,50,0,1,0,0,18,12,7,0,1,3,3,32,19,35,3,32,78,32,0,0,4,1,0,80,0,0,0,65,24,9,5,10,43,44,1,176,0,12,11,59,7,48,20,30,18,142,9,226,4,11,0,1,19,156,0,40,19,116,19,156,0,100,7,208,0,100,0,0,0,0,0,1,0,1,0,8,0,1,0,1,0,0,0,1,255,84,0,2,0,12,39,16,0,0,39,16,0,0,0,0,0,0,0,4,0,3,0,0,0,0,3,90,0,0,0,0,0,0,0,1,0,2,0,0,0,0,0,0,0,0,9,26,1,154,0,0,0,18,1,173,0,0,19,136,0,0,0,0,0,0,0,0,0,0,0,0,16,236,0,0,0,0,0,0,15,140,9,71,9,71,19,136,0,0,0,0,0,0,0,0,0,0,0,0,2,167,0,2,0,29,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,62,0,59,1,54,0,85,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,255]}}
MOD-EDIT: Code in code-tags gesetzt!
Wie werde ich die Errors los? Ich habe das YAML vom SUN2000 genommen.`
-
@romeleitis Das sind keine errors! Schalte den Adapter auf 'Info' und schon hast du Ruhe. Im Fehlerfall könnte ich anhand der 'Debug'-Ausgaben sehen, was im einzelnen passiert.
BTW. Das sieht ganz gut aus. -
@rene55
Das sind schon Fehler :deyeidc.0 2024-09-05 10:45:00.289 error TypeError: Cannot read properties of undefined (reading 'registerStart') | TypeError: Cannot read properties of undefined (reading 'registerStart') at idcCore.readCoils (/opt/iobroker/node_modules/iobroker.deyeidc/lib/idc-core.js:149:56) at Deyeidc.onData (/opt/iobroker/node_modules/iobroker.deyeidc/main.js:176:37) at Socket.<anonymous> (/opt/iobroker/node_modules/iobroker.deyeidc/main.js:154:10) at Socket.emit (node:events:519: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)
Steht auch als ERROR im Log :
-
@romeleitis Da muss ich dir recht geben. Die waren aber oben nicht zu sehen! Seit wann kommen die Fehler? Denn oben sah alles ganz hervorragend aus.
-
@rene55
Moin Rene!
Ich bräuchte noch ein wenig Nachhilfe bei IoBroker.
Wo finde ich das Log, welches Ihr immer im Code Fenster vorstellt?
Nichts für ungut, danke. -
@henry-3 Meinst du das von z.B. romeleitis? Dann kannst du im Expertenmodus in den Instanzen den Loglevel vom deyeidc auf 'debug' stellen. Dann spuckt der Adapter viele hilfreiche Dinge aus.
-
Ah ha
-
Die Fehler habe ich jetzt schon eine ganze Weile.
Ursprünglich hatte ich einen Deye Sun 800 und bin nun auf einen Deye Sun 2000 gewechselt.
Irgend eine Idee, was das sein könnte? -
@romeleitis Bei den spärlichen Angaben etwas schwierig. Keine Ahnung welche Register abgefragt werden und wie hoch das Intervall ist. Eventuell fragst du den Inverter zu oft ab und der verschluckt sich.
-
Hallo @Rene55
Hab seid längerem diesen Fehler:
Der WR ist Online, erreichbar und liefert alle Daten, wie es sein soll.
Hab noch zwei weitere Instancen von dem Adapter am laufen, kommt da auch hin und wieder so vor.
Hast du eine Idee wo das her kommt ?
Gruß Stephan
-
@stephanh Um die Uhrzeit sollte ja genug produziert werden damit der WR aktiv ist. Der Meldung nach kann der WR nicht erreicht werden. Daher würde ich tippen, dass das Netzwerk ein wenig spinnt. Natürlich ist die Verbindung zum Adapter empfindlicher als die Verbindung zur Cloud. Daher ist da scheinbar alles ok und hier gibt es den Fehler. Kannst du bitte mal prüfen, ob der WR wirklich dauerhaft erreichbar ist (ping 192.168.178.233 -t).
-
@rene55 Ja es ist der WR, schein wohl nee Macke zu haben. Hab nee 70Mbit verbindung über WLAN. Der Shelly, der den WR ebenfalls mist. Zeigt Produktion an.
Danke für deinen Hinweis.
-
@rene55 Ich frage alle 60 Sekunden ab. Als Register habe ich die im deyeidc.Sun2000.json vorgegebenen verwendet. Passt da ggf. etwas mit dem Sun2000 G4 nicht?
-
@romeleitis 60 Sekunden sollten für den Sun2000 kein Problem sein. Wo stehen wir derzeit? Ich hab da gerade die Übersicht bei dir verloren.
-
@Rene55 Ich hatte ursprünglich einen Deye Sun 600. Dann bin ich auf einen Deye Sun 2000 G4 gewechselt. Die installierte Instanz hatte ich so in IOBroker belassen und habe nur die Register und Spulen so angepasst, wie es das deyeidc.Sun2000.json vorgibt.
Ich habe seitdem permanent die Meldungen im Log :deyeidc.0 2024-09-05 10:45:00.289 error TypeError: Cannot read properties of undefined (reading 'registerStart') | TypeError: Cannot read properties of undefined (reading 'registerStart') at idcCore.readCoils (/opt/iobroker/node_modules/iobroker.deyeidc/lib/idc-core.js:149:56) at Deyeidc.onData (/opt/iobroker/node_modules/iobroker.deyeidc/main.js:176:37) at Socket.<anonymous> (/opt/iobroker/node_modules/iobroker.deyeidc/main.js:154:10) at Socket.emit (node:events:519: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)
Stimmt da ggf. etwas nicht mit den Register und Spuleneinstellungen? Sind die beim G4 ggf. anders als im Vorgänger?
-
@romeleitis Ich bin nicht sicher, ob es einen grundsätzlichen Unterschied zwischen G3 und G4 gibt. Hardwaremäßig bestimmt, aber Firmwareseitig? Wir können ja mal die spasseshalber Versionsstände vom WR vergleichen.
Ich kann diesen Fehler tatsächlich produzieren, wenn zwei Instanzen auf den WR einwirken. Kann das bei dir auch sein? Muss ja nicht der Adapter sein, kann auch ein anderes Gerät sein, was darein 'fuscht'.