NEWS
JK BMS mit Modbus Adapter über RS485 zu TCP einbinden.
-
Ich hab in irgendeinem Forum gelesen das jemand die BMS mit einem ESP32 über Bluetooth ausliest und per MQTT verschickt.
Hab aber noch nicht so ganz gecheckt wie ich das installieren muss. Ein ESP32 hab ich sogar auch noch da.
@elektroniker86 Ja aber angeblich läuft es nicht so ganz stabil. Bei mir ist es etwas einfacher, mein Raspberry Pi ist gleich neben meiner Anlage, also USB-RS485 ist absolut kein Problem, hab ich ja jetzt auch im Einsatz.
Schlimmsten Fall bau ich mir einen Sniffer über Python damit ich die Werte raus bekomme.Mal sehen, die 2. Batterie sollte eigentlich eh bald kommen, ist ja schon 1,5 Monate unterwegs.
Wenn sie ankommt, dann wird weiter getüftelt bis es läuft
-
Ich hab in irgendeinem Forum gelesen das jemand die BMS mit einem ESP32 über Bluetooth ausliest und per MQTT verschickt.
Hab aber noch nicht so ganz gecheckt wie ich das installieren muss. Ein ESP32 hab ich sogar auch noch da.
@elektroniker86 Habe gestern endlich meine 2. Batterie bekommen.
Hat eh nur 3 Monate gedauert
Also, anscheinend geht es wirklich nicht dass man über einen RS485 Adapter die Packs ausliest.
Ich habe es nun mit 2 Stück USB-RS485 (liegen ja beim BMS bei) gelöst.
Man muss halt 2 Modbus-Instanzen machen, eine mit Adresse 0 und eine mit Adresse 1Die Anlage liest über CAN auch beide Batterien aus, funktioniert alles.


Sollte also mit 2 Stück RS485-TCP Adapter auch funktionieren, ansonsten sehe ich keine andere Lösung.
Grüsse
-
Also nicht optimal irgendwas ist noch faul, da der Adapter immer wieder neu durchstartet.
modbus.5 2025-03-20 20:51:18.213 info Disconnected from slave 192.168.1.155 modbus.5 2025-03-20 20:51:18.213 debug Closing client on purpose. modbus.5 2025-03-20 20:51:17.213 debug Cleaning up request fifo. modbus.5 2025-03-20 20:51:17.213 debug Clearing timeout of the current request. modbus.5 2025-03-20 20:51:17.213 debug Socket closed with error modbus.5 2025-03-20 20:51:17.212 error Client in error state. modbus.5 2025-03-20 20:51:17.212 error Request timed out. modbus.5 2025-03-20 20:51:17.212 warn Error: undefined modbus.5 2025-03-20 20:51:16.801 debug [DevID_2/holdingRegs] Poll address 4608 - 16 registers modbus.5 2025-03-20 20:51:16.801 debug [DevID_2] Poll start --------------------- modbus.5 2025-03-20 20:51:16.751 warn [DevID_1] Poll error count: 22 code: "App Timeout" modbus.5 2025-03-20 20:51:12.211 debug [DevID_1/holdingRegs] Poll address 4836 - 1 registers modbus.5 2025-03-20 20:51:12.110 debug [DevID_1/holdingRegs] Poll address 4746 DONE modbus.5 2025-03-20 20:51:12.011 debug [DevID_1/holdingRegs] Poll address 4746 - 28 registers modbus.5 2025-03-20 20:51:11.909 debug [DevID_1/holdingRegs] Poll address 4676 DONE modbus.5 2025-03-20 20:51:11.807 debug [DevID_1/holdingRegs] Poll address 4676 - 19 registers modbus.5 2025-03-20 20:51:11.706 debug [DevID_1/holdingRegs] Poll address 4608 DONE modbus.5 2025-03-20 20:51:11.552 debug [DevID_1/holdingRegs] Poll address 4608 - 16 registers modbus.5 2025-03-20 20:51:11.552 debug [DevID_1] Poll start --------------------- modbus.5 2025-03-20 20:51:11.552 info Connected to slave 192.168.1.155 modbus.5 2025-03-20 20:51:06.550 info Disconnected from slave 192.168.1.155 modbus.5 2025-03-20 20:51:06.549 debug Closing client on purpose. modbus.5 2025-03-20 20:51:05.599 debug [DevID_2/holdingRegs] Poll address 4608 - 16 registers modbus.5 2025-03-20 20:51:05.599 debug [DevID_2] Poll start --------------------- modbus.5 2025-03-20 20:51:05.550 debug Cleaning up request fifo. modbus.5 2025-03-20 20:51:05.550 debug Clearing timeout of the current request. modbus.5 2025-03-20 20:51:05.550 debug Socket closed with error modbus.5 2025-03-20 20:51:05.550 warn [DevID_1] Poll error count: 21 code: {"err":"timeout","timeout":5000} modbus.5 2025-03-20 20:51:05.549 error Client in error state. modbus.5 2025-03-20 20:51:05.549 error Request timed out. modbus.5 2025-03-20 20:51:05.549 warn Error: undefined modbus.5 2025-03-20 20:51:00.548 debug [DevID_1/holdingRegs] Poll address 4608 - 16 registers modbus.5 2025-03-20 20:51:00.548 debug [DevID_1] Poll start --------------------- modbus.5 2025-03-20 20:51:00.548 info Connected to slave 192.168.1.155 modbus.5 2025-03-20 20:50:55.547 info Disconnected from slave 192.168.1.155 modbus.5 2025-03-20 20:50:55.546 debug Closing client on purpose. modbus.5 2025-03-20 20:50:54.546 debug Cleaning up request fifo. modbus.5 2025-03-20 20:50:54.546 debug Clearing timeout of the current request. modbus.5 2025-03-20 20:50:54.546 debug Socket closed with error modbus.5 2025-03-20 20:50:54.546 error Client in error state. modbus.5 2025-03-20 20:50:54.546 error Request timed out. modbus.5 2025-03-20 20:50:54.546 warn Error: undefined modbus.5 2025-03-20 20:50:54.372 debug [DevID_2/holdingRegs] Poll address 4608 - 16 registers modbus.5 2025-03-20 20:50:54.371 debug [DevID_2] Poll start --------------------- modbus.5 2025-03-20 20:50:54.321 warn [DevID_1] Poll error count: 20 code: "App Timeout" modbus.5 2025-03-20 20:50:49.544 debug [DevID_1/holdingRegs] Poll address 4676 - 19 registers modbus.5 2025-03-20 20:50:49.445 debug [DevID_1/holdingRegs] Poll address 4608 DONE modbus.5 2025-03-20 20:50:49.120 debug [DevID_1/holdingRegs] Poll address 4608 - 16 registers modbus.5 2025-03-20 20:50:49.120 debug [DevID_1] Poll start --------------------- modbus.5 2025-03-20 20:50:49.120 info Connected to slave 192.168.1.155 modbus.5 2025-03-20 20:50:44.117 info Disconnected from slave 192.168.1.155 modbus.5 2025-03-20 20:50:44.117 debug Closing client on purpose. modbus.5 2025-03-20 20:50:43.368 debug [DevID_2/holdingRegs] Poll address 4608 - 16 registers modbus.5 2025-03-20 20:50:43.368 debug [DevID_2] Poll start --------------------- modbus.5 2025-03-20 20:50:43.318 warn [DevID_1] Poll error count: 19 code: "App Timeout" modbus.5 2025-03-20 20:50:43.118 debug Cleaning up request fifo. modbus.5 2025-03-20 20:50:43.118 debug Clearing timeout of the current request. modbus.5 2025-03-20 20:50:43.118 debug Socket closed with error modbus.5 2025-03-20 20:50:43.117 error Client in error state. modbus.5 2025-03-20 20:50:43.117 error Request timed out. modbus.5 2025-03-20 20:50:43.117 warn Error: undefined modbus.5 2025-03-20 20:50:38.117 debug [DevID_1/holdingRegs] Poll address 4608 - 16 registers modbus.5 2025-03-20 20:50:38.117 debug [DevID_1] Poll start --------------------- modbus.5 2025-03-20 20:50:38.117 info Connected to slave 192.168.1.155 modbus.5 2025-03-20 20:50:33.115 info Disconnected from slave 192.168.1.155 modbus.5 2025-03-20 20:50:33.115 debug Closing client on purpose. modbus.5 2025-03-20 20:50:32.365 debug [DevID_2/holdingRegs] Poll address 4608 - 16 registers modbus.5 2025-03-20 20:50:32.365 debug [DevID_2] Poll start --------------------- modbus.5 2025-03-20 20:50:32.315 warn [DevID_1] Poll error count: 18 code: "App Timeout" modbus.5 2025-03-20 20:50:32.115 debug Cleaning up request fifo. modbus.5 2025-03-20 20:50:32.115 debug Clearing timeout of the current request. modbus.5 2025-03-20 20:50:32.115 debug Socket closed with error modbus.5 2025-03-20 20:50:32.114 error Client in error state. modbus.5 2025-03-20 20:50:32.114 error Request timed out. modbus.5 2025-03-20 20:50:32.114 warn Error: undefined modbus.5 2025-03-20 20:50:27.115 debug [DevID_1/holdingRegs] Poll address 4608 - 16 registers modbus.5 2025-03-20 20:50:27.115 debug [DevID_1] Poll start --------------------- modbus.5 2025-03-20 20:50:27.114 info Connected to slave 192.168.1.155 modbus.5 2025-03-20 20:50:22.111 info Disconnected from slave 192.168.1.155 modbus.5 2025-03-20 20:50:22.111 debug Closing client on purpose. modbus.5 2025-03-20 20:50:21.161 debug [DevID_2/holdingRegs] Poll address 4608 - 16 registers modbus.5 2025-03-20 20:50:21.160 debug [DevID_2] Poll start --------------------- modbus.5 2025-03-20 20:50:21.111 debug Cleaning up request fifo. modbus.5 2025-03-20 20:50:21.111 debug Clearing timeout of the current request. modbus.5 2025-03-20 20:50:21.111 debug Socket closed with error modbus.5 2025-03-20 20:50:21.111 warn [DevID_1] Poll error count: 17 code: {"err":"timeout","timeout":5000} modbus.5 2025-03-20 20:50:21.110 error Client in error state. modbus.5 2025-03-20 20:50:21.110 error Request timed out. modbus.5 2025-03-20 20:50:21.110 warn Error: undefined modbus.5 2025-03-20 20:50:16.109 debug [DevID_1/holdingRegs] Poll address 4608 - 16 registers modbus.5 2025-03-20 20:50:16.109 debug [DevID_1] Poll start --------------------- modbus.5 2025-03-20 20:50:16.109 info Connected to slave 192.168.1.155 modbus.5 2025-03-20 20:50:11.106 info Disconnected from slave 192.168.1.155 modbus.5 2025-03-20 20:50:11.106 debug Closing client on purpose. modbus.5 2025-03-20 20:50:10.106 debug Cleaning up request fifo. modbus.5 2025-03-20 20:50:10.106 debug Clearing timeout of the current request. modbus.5 2025-03-20 20:50:10.105 debug Socket closed with error modbus.5 2025-03-20 20:50:10.105 error Client in error state. modbus.5 2025-03-20 20:50:10.105 error Request timed out. modbus.5 2025-03-20 20:50:10.105 warn Error: undefined modbus.5 2025-03-20 20:50:09.686 debug [DevID_2/holdingRegs] Poll address 4608 - 16 registers modbus.5 2025-03-20 20:50:09.686 debug [DevID_2] Poll start --------------------- modbus.5 2025-03-20 20:50:09.635 warn [DevID_1] Poll error count: 16 code: "App Timeout" modbus.5 2025-03-20 20:50:05.104 debug [DevID_1/holdingRegs] Poll address 4836 - 1 registers modbus.5 2025-03-20 20:50:05.004 debug [DevID_1/holdingRegs] Poll address 4746 DONE modbus.5 2025-03-20 20:50:04.900 debug [DevID_1/holdingRegs] Poll address 4746 - 28 registers modbus.5 2025-03-20 20:50:04.800 debug [DevID_1/holdingRegs] Poll address 4676 DONE modbus.5 2025-03-20 20:50:04.697 debug [DevID_1/holdingRegs] Poll address 4676 - 19 registers modbus.5 2025-03-20 20:50:04.597 debug [DevID_1/holdingRegs] Poll address 4608 DONE modbus.5 2025-03-20 20:50:04.435 debug [DevID_1/holdingRegs] Poll address 4608 - 16 registers modbus.5 2025-03-20 20:50:04.435 debug [DevID_1] Poll start --------------------- modbus.5 2025-03-20 20:50:04.435 info Connected to slave 192.168.1.155 modbus.5 2025-03-20 20:49:59.434 info Disconnected from slave 192.168.1.155 modbus.5 2025-03-20 20:49:59.434 debug Closing client on purpose. modbus.5 2025-03-20 20:49:58.475 debug [DevID_2/holdingRegs] Poll address 4608 - 16 registers modbus.5 2025-03-20 20:49:58.475 debug [DevID_2] Poll start --------------------- modbus.5 2025-03-20 20:49:58.434 debug Cleaning up request fifo. modbus.5 2025-03-20 20:49:58.434 debug Clearing timeout of the current request. modbus.5 2025-03-20 20:49:58.434 debug Socket closed with error modbus.5 2025-03-20 20:49:58.434 error Client in error state. modbus.5 2025-03-20 20:49:58.433 error Request timed out. modbus.5 2025-03-20 20:49:58.433 warn Error: undefined modbus.5 2025-03-20 20:49:58.425 warn [DevID_1] Poll error count: 15 code: "App Timeout" modbus.5 2025-03-20 20:49:53.433 debug [DevID_1/holdingRegs] Poll address 4676 - 19 registers modbus.5 2025-03-20 20:49:53.334 debug [DevID_1/holdingRegs] Poll address 4608 DONE modbus.5 2025-03-20 20:49:53.224 debug [DevID_1/holdingRegs] Poll address 4608 - 16 registers modbus.5 2025-03-20 20:49:53.224 debug [DevID_1] Poll start --------------------- modbus.5 2025-03-20 20:49:53.224 info Connected to slave 192.168.1.155 modbus.5 2025-03-20 20:49:48.221 info Disconnected from slave 192.168.1.155 modbus.5 2025-03-20 20:49:48.221 debug Closing client on purpose. modbus.5 2025-03-20 20:49:47.220 debug Cleaning up request fifo. modbus.5 2025-03-20 20:49:47.220 debug Clearing timeout of the current request. modbus.5 2025-03-20 20:49:47.220 debug Socket closed with error modbus.5 2025-03-20 20:49:47.220 error Client in error state. modbus.5 2025-03-20 20:49:47.220 error Request timed out. modbus.5 2025-03-20 20:49:47.220 warn Error: undefined modbus.5 2025-03-20 20:49:46.602 debug [DevID_2/holdingRegs] Poll address 4608 - 16 registers modbus.5 2025-03-20 20:49:46.602 debug [DevID_2] Poll start --------------------- modbus.5 2025-03-20 20:49:46.550 warn [DevID_1] Poll error count: 14 code: "App Timeout" modbus.5 2025-03-20 20:49:42.219 debug [DevID_1/holdingRegs] Poll address 4836 - 1 registers modbus.5 2025-03-20 20:49:42.119 debug [DevID_1/holdingRegs] Poll address 4746 DONE modbus.5 2025-03-20 20:49:42.016 debug [DevID_1/holdingRegs] Poll address 4746 - 28 registers modbus.5 2025-03-20 20:49:41.916 debug [DevID_1/holdingRegs] Poll address 4676 DONE modbus.5 2025-03-20 20:49:41.814 debug [DevID_1/holdingRegs] Poll address 4676 - 19 registers modbus.5 2025-03-20 20:49:41.713 debug [DevID_1/holdingRegs] Poll address 4608 DONE modbus.5 2025-03-20 20:49:41.351 debug [DevID_1/holdingRegs] Poll address 4608 - 16 registers modbus.5 2025-03-20 20:49:41.351 debug [DevID_1] Poll start --------------------- modbus.5 2025-03-20 20:49:41.350 info Connected to slave 192.168.1.155 modbus.5 2025-03-20 20:49:36.348 info Disconnected from slave 192.168.1.155 modbus.5 2025-03-20 20:49:36.348 debug Closing client on purpose. modbus.5 2025-03-20 20:49:35.393 debug [DevID_2/holdingRegs] Poll address 4608 - 16 registers modbus.5 2025-03-20 20:49:35.392 debug [DevID_2] Poll start --------------------- modbus.5 2025-03-20 20:49:35.349 debug Cleaning up request fifo. modbus.5 2025-03-20 20:49:35.349 debug Clearing timeout of the current request. modbus.5 2025-03-20 20:49:35.349 debug Socket closed with error modbus.5 2025-03-20 20:49:35.349 error Client in error state. modbus.5 2025-03-20 20:49:35.349 error Request timed out. modbus.5 2025-03-20 20:49:35.349 warn Error: undefined modbus.5 2025-03-20 20:49:35.342 warn [DevID_1] Poll error count: 13 code: "App Timeout" modbus.5 2025-03-20 20:49:30.348 debug [DevID_1/holdingRegs] Poll address 4676 - 19 registers modbus.5 2025-03-20 20:49:30.248 debug [DevID_1/holdingRegs] Poll address 4608 DONE modbus.5 2025-03-20 20:49:30.143 debug [DevID_1/holdingRegs] Poll address 4608 - 16 registers modbus.5 2025-03-20 20:49:30.142 debug [DevID_1] Poll start --------------------- modbus.5 2025-03-20 20:49:30.142 info Connected to slave 192.168.1.155 modbus.5 2025-03-20 20:49:25.140 info Disconnected from slave 192.168.1.155 modbus.5 2025-03-20 20:49:25.140 debug Closing client on purpose. modbus.5 2025-03-20 20:49:24.140 debug Cleaning up request fifo. modbus.5 2025-03-20 20:49:24.140 debug Clearing timeout of the current request. modbus.5 2025-03-20 20:49:24.140 debug Socket closed with error modbus.5 2025-03-20 20:49:24.139 error Client in error state. modbus.5 2025-03-20 20:49:24.139 error Request timed out. modbus.5 2025-03-20 20:49:24.139 warn Error: undefined modbus.5 2025-03-20 20:49:23.936 debug [DevID_2/holdingRegs] Poll address 4608 - 16 registers modbus.5 2025-03-20 20:49:23.936 debug [DevID_2] Poll start --------------------- modbus.5 2025-03-20 20:49:23.885 warn [DevID_1] Poll error count: 12 code: "App Timeout" modbus.5 2025-03-20 20:49:19.138 debug [DevID_1/holdingRegs] Poll address 4746 - 28 registers modbus.5 2025-03-20 20:49:19.038 debug [DevID_1/holdingRegs] Poll address 4676 DONE modbus.5 2025-03-20 20:49:18.937 debug [DevID_1/holdingRegs] Poll address 4676 - 19 registers modbus.5 2025-03-20 20:49:18.837 debug [DevID_1/holdingRegs] Poll address 4608 DONE modbus.5 2025-03-20 20:49:18.685 debug [DevID_1/holdingRegs] Poll address 4608 - 16 registers modbus.5 2025-03-20 20:49:18.685 debug [DevID_1] Poll start --------------------- modbus.5 2025-03-20 20:49:18.685 info Connected to slave 192.168.1.155 modbus.5 2025-03-20 20:49:13.683 info Disconnected from slave 192.168.1.155 modbus.5 2025-03-20 20:49:13.683 debug Closing client on purpose. modbus.5 2025-03-20 20:49:12.932 debug [DevID_2/holdingRegs] Poll address 4608 - 16 registers modbus.5 2025-03-20 20:49:12.932 debug [DevID_2] Poll start --------------------- modbus.5 2025-03-20 20:49:12.881 warn [DevID_1] Poll error count: 11 code: "App Timeout" modbus.5 2025-03-20 20:49:12.683 debug Cleaning up request fifo. modbus.5 2025-03-20 20:49:12.683 debug Clearing timeout of the current request. modbus.5 2025-03-20 20:49:12.682 debug Socket closed with error modbus.5 2025-03-20 20:49:12.682 error Client in error state. modbus.5 2025-03-20 20:49:12.682 error Request timed out. modbus.5 2025-03-20 20:49:12.682 warn Error: undefined modbus.5 2025-03-20 20:49:07.681 debug [DevID_1/holdingRegs] Poll address 4608 - 16 registers modbus.5 2025-03-20 20:49:07.681 debug [DevID_1] Poll start --------------------- modbus.5 2025-03-20 20:49:07.681 info Connected to slave 192.168.1.155 modbus.5 2025-03-20 20:49:02.677 info Disconnected from slave 192.168.1.155 modbus.5 2025-03-20 20:49:02.677 debug Closing client on purpose. modbus.5 2025-03-20 20:49:01.707 debug [DevID_2/holdingRegs] Poll address 4608 - 16 registers modbus.5 2025-03-20 20:49:01.707 debug [DevID_2] Poll start --------------------- modbus.5 2025-03-20 20:49:01.677 debug Cleaning up request fifo. modbus.5 2025-03-20 20:49:01.677 debug Clearing timeout of the current request. modbus.5 2025-03-20 20:49:01.677 debug Socket closed with error modbus.5 2025-03-20 20:49:01.676 error Client in error state. modbus.5 2025-03-20 20:49:01.676 error Request timed out. modbus.5 2025-03-20 20:49:01.676 warn Error: undefined modbus.5 2025-03-20 20:49:01.657 warn [DevID_1] Poll error count: 10 code: "App Timeout" modbus.5 2025-03-20 20:48:56.675 debug [DevID_1/holdingRegs] Poll address 4676 - 19 registers modbus.5 2025-03-20 20:48:56.575 debug [DevID_1/holdingRegs] Poll address 4608 DONE modbus.5 2025-03-20 20:48:56.456 debug [DevID_1/holdingRegs] Poll address 4608 - 16 registers modbus.5 2025-03-20 20:48:56.456 debug [DevID_1] Poll start --------------------- modbus.5 2025-03-20 20:48:56.456 info Connected to slave 192.168.1.155@elektroniker86
wo hast die Register belegung her. in den PDF daten stehen ganz andere Register drin die nur teilweise funktionieren. -
@elektroniker86
wo hast die Register belegung her. in den PDF daten stehen ganz andere Register drin die nur teilweise funktionieren.@KlausAnders
Um welche Register geht es?
Die PDF ist schon richtig... -
@KlausAnders
Um welche Register geht es?
Die PDF ist schon richtig...@sierra said in JK BMS mit Modbus Adapter über RS485 zu TCP einbinden.:
@KlausAnders
Um welche Register geht es?
Die PDF ist schon richtig...
im Pdf gibt es keine ungeraden Adressen, nur länge 2 oder 4. Zu deiner vorlage fehlen damit etliche Werte. Das auslesen mit deiner vorlage funzt, nur das schreiben von Schaltern, z.b. Laden Entladen bekomm ich nicht hin. -
@sierra said in JK BMS mit Modbus Adapter über RS485 zu TCP einbinden.:
@KlausAnders
Um welche Register geht es?
Die PDF ist schon richtig...
im Pdf gibt es keine ungeraden Adressen, nur länge 2 oder 4. Zu deiner vorlage fehlen damit etliche Werte. Das auslesen mit deiner vorlage funzt, nur das schreiben von Schaltern, z.b. Laden Entladen bekomm ich nicht hin.@klausanders
Da gebe ich dir Recht.
Es ist schon verwirrend, in der PDF stehen auch die Längen.
Für Laden Ein/Aus sind 4 Bytes vorgesehen.
Im iobroker werden bei Länge 2 angezeigt, aber da werden vermutlich 1 Länge 2 Bytes verwendet, High und Low.Egal, ich habe mal versucht zu schreiben, also das funktioniert mit den Adressen die in der PDF steht.

Als Kontrolle ob wirklich Ein oder Aus mit den anderen Registern:

Balancer Ein/Aus zu schreiben funktioniert nicht so wirklich, da allein schon 1500 drin steht. Keine Ahnung
Da ich aber die ganzen Schreibbefehle nicht brauche, habe ich mich damit nicht wirklich beschäftigt.
Im Heimbereich ist das auch nicht wirklich Notwendig finde ich, warum sollte man da was laufend verstellen?
Einmal eingestellt und die Anlage läuft.
In einem Camper würde ich es verstehen wenn man da was abdrehen möchte
Ich habe auf meinem BMS die letzte Firmware drauf, neuere kann ich leider nicht mehr updaten da der Support für <V19 eingestellt wurde. Eine aktualisierte Registerliste wäre mal was tolles, ich denke da hat sich einiges getan die letzten Jahre.
-
@klausanders
Da gebe ich dir Recht.
Es ist schon verwirrend, in der PDF stehen auch die Längen.
Für Laden Ein/Aus sind 4 Bytes vorgesehen.
Im iobroker werden bei Länge 2 angezeigt, aber da werden vermutlich 1 Länge 2 Bytes verwendet, High und Low.Egal, ich habe mal versucht zu schreiben, also das funktioniert mit den Adressen die in der PDF steht.

Als Kontrolle ob wirklich Ein oder Aus mit den anderen Registern:

Balancer Ein/Aus zu schreiben funktioniert nicht so wirklich, da allein schon 1500 drin steht. Keine Ahnung
Da ich aber die ganzen Schreibbefehle nicht brauche, habe ich mich damit nicht wirklich beschäftigt.
Im Heimbereich ist das auch nicht wirklich Notwendig finde ich, warum sollte man da was laufend verstellen?
Einmal eingestellt und die Anlage läuft.
In einem Camper würde ich es verstehen wenn man da was abdrehen möchte
Ich habe auf meinem BMS die letzte Firmware drauf, neuere kann ich leider nicht mehr updaten da der Support für <V19 eingestellt wurde. Eine aktualisierte Registerliste wäre mal was tolles, ich denke da hat sich einiges getan die letzten Jahre.
-
@klausanders
Da gebe ich dir Recht.
Es ist schon verwirrend, in der PDF stehen auch die Längen.
Für Laden Ein/Aus sind 4 Bytes vorgesehen.
Im iobroker werden bei Länge 2 angezeigt, aber da werden vermutlich 1 Länge 2 Bytes verwendet, High und Low.Egal, ich habe mal versucht zu schreiben, also das funktioniert mit den Adressen die in der PDF steht.

Als Kontrolle ob wirklich Ein oder Aus mit den anderen Registern:

Balancer Ein/Aus zu schreiben funktioniert nicht so wirklich, da allein schon 1500 drin steht. Keine Ahnung
Da ich aber die ganzen Schreibbefehle nicht brauche, habe ich mich damit nicht wirklich beschäftigt.
Im Heimbereich ist das auch nicht wirklich Notwendig finde ich, warum sollte man da was laufend verstellen?
Einmal eingestellt und die Anlage läuft.
In einem Camper würde ich es verstehen wenn man da was abdrehen möchte
Ich habe auf meinem BMS die letzte Firmware drauf, neuere kann ich leider nicht mehr updaten da der Support für <V19 eingestellt wurde. Eine aktualisierte Registerliste wäre mal was tolles, ich denke da hat sich einiges getan die letzten Jahre.
@sierra @Elektroniker86
Danke für eure dokumentierte Vorarbeit!Habe gerade versucht zwei v19 BMS (Master-Slave-Verbund) über Buchse RS485-1 mit einem RS485 zu TCP Adapter auszulesen.
Klappt genau wie ihr es beschrieben habt.
Eine Geräte-ID in der Modbus-Adapterinstanz passen zum Steckplatz (ID:0 oder ID:1) funktioniert prima.
Mehrere Geräte IDs in der Adapterinstanz klappt bei mir gar nicht, egalwelche ID ich abfrage und wo es eingesteckt ist.
Habt ihr dazu noch etwas herausgefunden?
Müßte dazu nun einen zweiten RS485-TCP Converter spendieren und falls ein drittes Batteriepack kommt, noch einen, klingt aufwendig für ein BUSsystem

-
@sierra @Elektroniker86
Danke für eure dokumentierte Vorarbeit!Habe gerade versucht zwei v19 BMS (Master-Slave-Verbund) über Buchse RS485-1 mit einem RS485 zu TCP Adapter auszulesen.
Klappt genau wie ihr es beschrieben habt.
Eine Geräte-ID in der Modbus-Adapterinstanz passen zum Steckplatz (ID:0 oder ID:1) funktioniert prima.
Mehrere Geräte IDs in der Adapterinstanz klappt bei mir gar nicht, egalwelche ID ich abfrage und wo es eingesteckt ist.
Habt ihr dazu noch etwas herausgefunden?
Müßte dazu nun einen zweiten RS485-TCP Converter spendieren und falls ein drittes Batteriepack kommt, noch einen, klingt aufwendig für ein BUSsystem

-
@sierra @Elektroniker86
Danke für eure dokumentierte Vorarbeit!Habe gerade versucht zwei v19 BMS (Master-Slave-Verbund) über Buchse RS485-1 mit einem RS485 zu TCP Adapter auszulesen.
Klappt genau wie ihr es beschrieben habt.
Eine Geräte-ID in der Modbus-Adapterinstanz passen zum Steckplatz (ID:0 oder ID:1) funktioniert prima.
Mehrere Geräte IDs in der Adapterinstanz klappt bei mir gar nicht, egalwelche ID ich abfrage und wo es eingesteckt ist.
Habt ihr dazu noch etwas herausgefunden?
Müßte dazu nun einen zweiten RS485-TCP Converter spendieren und falls ein drittes Batteriepack kommt, noch einen, klingt aufwendig für ein BUSsystem

Hi,
ich habe bereits weiter getestet und habe es hinbekommen mit zwei instanzen und einem Modbusgateway 3 Batterien auszulesen.
Muss mir nur noch was einfallen lassen wie ich das noch schön mache damit das auch optisch was aussieht.
Wenn ich Zeit habe werde ich meine Lösung genauer beschreiben.
-
Wie versprochen meine Settings bzw. mein Testaufbau.
Werde das Gateway wahrscheinlich in ein Gehäuse einbauen und die RJ45 Buchsen auch .Batterie A (Adresse 0 (Master):

_address name description unit type len factor offset formula role room poll wp cw isScale 4608 Zelle 1 V uint16be 1 0.001 0 level true false false false 4609 Zelle 2 V uint16be 1 0.001 0 level true false false false 4610 Zelle 3 V uint16be 1 0.001 0 level true false false false 4611 Zelle 4 V uint16be 1 0.001 0 level true false false false 4612 Zelle 5 V uint16be 1 0.001 0 level true false false false 4613 Zelle 6 V uint16be 1 0.001 0 level true false false false 4614 Zelle 7 V uint16be 1 0.001 0 level true false false false 4615 Zelle 8 V uint16be 1 0.001 0 level true false false false 4616 Zelle 9 V uint16be 1 0.001 0 level true false false false 4617 Zelle 10 V uint16be 1 0.001 0 level true false false false 4618 Zelle 11 V uint16be 1 0.001 0 level true false false false 4619 Zelle 12 V uint16be 1 0.001 0 level true false false false 4620 Zelle 13 V uint16be 1 0.001 0 level true false false false 4621 Zelle 14 V uint16be 1 0.001 0 level true false false false 4622 Zelle 15 V uint16be 1 0.001 0 level true false false false 4623 Zelle 16 V uint16be 1 0.001 0 level true false false false 4676 Max_Zelle_Spannung V uint16be 1 0.001 0 level true false false false 4677 Zellen_Diff V uint16be 1 0.001 0 level true false false false 4678 Max_Zelle_Nummer uint8be 1 1 0 level true false false false 4678 Min_Zelle_Nummer uint8le 1 1 0 level true false false false 4746 TempMos °C uint16be 1 0.1 0 level true false false false 4749 Spannung V uint32be 2 0.001 0 level true false false false 4751 Watt W uint32be 2 0.001 0 level true false false false 4753 Strom A int32be 2 0.001 0 level true false false false 4755 Temperatur 1 °C int16be 1 0.1 0 level true false false false 4756 Temperatur 2 °C int16be 1 0.1 0 level true false false false 4757 Alarm uint32be 2 1 0 level true false false false 4759 BalanCurrent A uint16be 1 0.001 0 level true false false false 4760 BalanStatus uint8le 1 1 0 level true false false false 4760 SOC % uint8be 1 1 0 level true false false false 4761 ReCap Ah int32be 2 0.001 0 level true false false false 4763 MaxCap Ah uint32be 2 0.001 0 level true false false false 4765 Zyklen uint32be 2 0.001 0 level true false false false 4767 SOCCycleCap Ah uint32be 2 0.001 0 level true false false false 4769 SOCSOH % uint8le 1 1 0 level true false false false 4769 Precharge uint8be 1 1 0 level true false false false 4770 UserAlarm uint16be 1 1 0 level true false false false 4771 RunTime uint32be 2 1 0 level true false false false 4773 Laden_Erlaubt uint8le 1 1 0 level true false false false 4773 Entladen_Erlaubt uint8be 1 1 0 level true false false false 4836 BatVol V uint16be 1 0.01 0 level true false false false 4856 TempBat 3 °C int16be 1 0.1 0 level true false false false 4857 TempBat 4 °C int16be 1 0.1 0 level true false false false 4858 TempBat 5 °C int16be 1 0.1 0 level true false false false 5120 DeviceID string 8 1 0 level true false false false 5128 Hardware_Version string 4 1 0 level true false false false 5132 Software_Version string 4 1 0 level true false false false 5140 Name1 string 6 1 0 level true false false false 5156 Installationsdatum string 4 1 0 level true false false false 5160 SerienNummer string 8 1 0 level true false false false 5168 Name2 string 8 1 0 level true false false false 5176 Pin_Code string 8 1 0 level true false false falseBatterie B+C (Adresse 1 + 2 (Slaves):


_address deviceId name description unit type len factor offset formula role room poll wp cw isScale 4608 1 Zelle 1 V uint16be 1 0.001 0 level true false false false 4609 1 Zelle 2 V uint16be 1 0.001 0 level true false false false 4610 1 Zelle 3 V uint16be 1 0.001 0 level true false false false 4611 1 Zelle 4 V uint16be 1 0.001 0 level true false false false 4612 1 Zelle 5 V uint16be 1 0.001 0 level true false false false 4613 1 Zelle 6 V uint16be 1 0.001 0 level true false false false 4614 1 Zelle 7 V uint16be 1 0.001 0 level true false false false 4615 1 Zelle 8 V uint16be 1 0.001 0 level true false false false 4616 1 Zelle 9 V uint16be 1 0.001 0 level true false false false 4617 1 Zelle 10 V uint16be 1 0.001 0 level true false false false 4618 1 Zelle 11 V uint16be 1 0.001 0 level true false false false 4619 1 Zelle 12 V uint16be 1 0.001 0 level true false false false 4620 1 Zelle 13 V uint16be 1 0.001 0 level true false false false 4621 1 Zelle 14 V uint16be 1 0.001 0 level true false false false 4622 1 Zelle 15 V uint16be 1 0.001 0 level true false false false 4623 1 Zelle 16 V uint16be 1 0.001 0 level true false false false 4676 1 Max_Zelle_Spannung V uint16be 1 0.001 0 level true false false false 4677 1 Zellen_Diff V uint16be 1 0.001 0 level true false false false 4678 1 Max_Zelle_Nummer uint8be 1 1 0 level true false false false 4678 1 Min_Zelle_Nummer uint8le 1 1 0 level true false false false 4746 1 TempMos °C uint16be 1 0.1 0 level true false false false 4749 1 Spannung V uint32be 2 0.001 0 level true false false false 4751 1 Watt W uint32be 2 0.001 0 level true false false false 4753 1 Strom A int32be 2 0.001 0 level true false false false 4755 1 Temperatur 1 °C int16be 1 0.1 0 level true false false false 4756 1 Temperatur 2 °C int16be 1 0.1 0 level true false false false 4757 1 Alarm uint32be 2 1 0 level true false false false 4759 1 BalanCurrent A uint16be 1 0.001 0 level true false false false 4760 1 BalanStatus uint8le 1 1 0 level true false false false 4760 1 SOC % uint8be 1 1 0 level true false false false 4761 1 ReCap Ah int32be 2 0.001 0 level true false false false 4763 1 MaxCap Ah uint32be 2 0.001 0 level true false false false 4765 1 Zyklen uint32be 2 0.001 0 level true false false false 4767 1 SOCCycleCap Ah uint32be 2 0.001 0 level true false false false 4769 1 SOCSOH % uint8le 1 1 0 level true false false false 4769 1 Precharge uint8be 1 1 0 level true false false false 4770 1 UserAlarm uint16be 1 1 0 level true false false false 4771 1 RunTime uint32be 2 1 0 level true false false false 4773 1 Laden_Erlaubt uint8le 1 1 0 level true false false false 4773 1 Entladen_Erlaubt uint8be 1 1 0 level true false false false 4836 1 BatVol V uint16be 1 0.01 0 level true false false false 4856 1 TempBat 3 °C int16be 1 0.1 0 level true false false false 4857 1 TempBat 4 °C int16be 1 0.1 0 level true false false false 4858 1 TempBat 5 °C int16be 1 0.1 0 level true false false false 5120 1 DeviceID string 8 1 0 level true false false false 5128 1 Hardware_Version string 4 1 0 level true false false false 5132 1 Software_Version string 4 1 0 level true false false false 5140 1 Name1 string 6 1 0 level true false false false 5156 1 Installationsdatum string 4 1 0 level true false false false 5160 1 SerienNummer string 8 1 0 level true false false false 5168 1 Name2 string 8 1 0 level true false false false 5176 1 Pin_Code string 8 1 0 level true false false false 4608 2 Zelle 1 V uint16be 1 0.001 0 level true false false false 4609 2 Zelle 2 V uint16be 1 0.001 0 level true false false false 4610 2 Zelle 3 V uint16be 1 0.001 0 level true false false false 4611 2 Zelle 4 V uint16be 1 0.001 0 level true false false false 4612 2 Zelle 5 V uint16be 1 0.001 0 level true false false false 4613 2 Zelle 6 V uint16be 1 0.001 0 level true false false false 4614 2 Zelle 7 V uint16be 1 0.001 0 level true false false false 4615 2 Zelle 8 V uint16be 1 0.001 0 level true false false false 4616 2 Zelle 9 V uint16be 1 0.001 0 level true false false false 4617 2 Zelle 10 V uint16be 1 0.001 0 level true false false false 4618 2 Zelle 11 V uint16be 1 0.001 0 level true false false false 4619 2 Zelle 12 V uint16be 1 0.001 0 level true false false false 4620 2 Zelle 13 V uint16be 1 0.001 0 level true false false false 4621 2 Zelle 14 V uint16be 1 0.001 0 level true false false false 4622 2 Zelle 15 V uint16be 1 0.001 0 level true false false false 4623 2 Zelle 16 V uint16be 1 0.001 0 level true false false false 4676 2 Max_Zelle_Spannung V uint16be 1 0.001 0 level true false false false 4677 2 Zellen_Diff V uint16be 1 0.001 0 level true false false false 4678 2 Max_Zelle_Nummer uint8be 1 1 0 level true false false false 4678 2 Min_Zelle_Nummer uint8le 1 1 0 level true false false false 4746 2 TempMos °C uint16be 1 0.1 0 level true false false false 4749 2 Spannung V uint32be 2 0.001 0 level true false false false 4751 2 Watt W uint32be 2 0.001 0 level true false false false 4753 2 Strom A int32be 2 0.001 0 level true false false false 4755 2 Temperatur 1 °C int16be 1 0.1 0 level true false false false 4756 2 Temperatur 2 °C int16be 1 0.1 0 level true false false false 4757 2 Alarm uint32be 2 1 0 level true false false false 4759 2 BalanCurrent A uint16be 1 0.001 0 level true false false false 4760 2 BalanStatus uint8le 1 1 0 level true false false false 4760 2 SOC % uint8be 1 1 0 level true false false false 4761 2 ReCap Ah int32be 2 0.001 0 level true false false false 4763 2 MaxCap Ah uint32be 2 0.001 0 level true false false false 4765 2 Zyklen uint32be 2 0.001 0 level true false false false 4767 2 SOCCycleCap Ah uint32be 2 0.001 0 level true false false false 4769 2 SOCSOH % uint8le 1 1 0 level true false false false 4769 2 Precharge uint8be 1 1 0 level true false false false 4770 2 UserAlarm uint16be 1 1 0 level true false false false 4771 2 RunTime uint32be 2 1 0 level true false false false 4773 2 Laden_Erlaubt uint8le 1 1 0 level true false false false 4773 2 Entladen_Erlaubt uint8be 1 1 0 level true false false false 4836 2 BatVol V uint16be 1 0.01 0 level true false false false 4856 2 TempBat 3 °C int16be 1 0.1 0 level true false false false 4857 2 TempBat 4 °C int16be 1 0.1 0 level true false false false 4858 2 TempBat 5 °C int16be 1 0.1 0 level true false false false 5120 2 DeviceID string 8 1 0 level true false false false 5128 2 Hardware_Version string 4 1 0 level true false false false 5132 2 Software_Version string 4 1 0 level true false false false 5140 2 Name1 string 6 1 0 level true false false false 5156 2 Installationsdatum string 4 1 0 level true false false false 5160 2 SerienNummer string 8 1 0 level true false false false 5168 2 Name2 string 8 1 0 level true false false false 5176 2 Pin_Code string 8 1 0 level true false false false


-
Wie versprochen meine Settings bzw. mein Testaufbau.
Werde das Gateway wahrscheinlich in ein Gehäuse einbauen und die RJ45 Buchsen auch .Batterie A (Adresse 0 (Master):

_address name description unit type len factor offset formula role room poll wp cw isScale 4608 Zelle 1 V uint16be 1 0.001 0 level true false false false 4609 Zelle 2 V uint16be 1 0.001 0 level true false false false 4610 Zelle 3 V uint16be 1 0.001 0 level true false false false 4611 Zelle 4 V uint16be 1 0.001 0 level true false false false 4612 Zelle 5 V uint16be 1 0.001 0 level true false false false 4613 Zelle 6 V uint16be 1 0.001 0 level true false false false 4614 Zelle 7 V uint16be 1 0.001 0 level true false false false 4615 Zelle 8 V uint16be 1 0.001 0 level true false false false 4616 Zelle 9 V uint16be 1 0.001 0 level true false false false 4617 Zelle 10 V uint16be 1 0.001 0 level true false false false 4618 Zelle 11 V uint16be 1 0.001 0 level true false false false 4619 Zelle 12 V uint16be 1 0.001 0 level true false false false 4620 Zelle 13 V uint16be 1 0.001 0 level true false false false 4621 Zelle 14 V uint16be 1 0.001 0 level true false false false 4622 Zelle 15 V uint16be 1 0.001 0 level true false false false 4623 Zelle 16 V uint16be 1 0.001 0 level true false false false 4676 Max_Zelle_Spannung V uint16be 1 0.001 0 level true false false false 4677 Zellen_Diff V uint16be 1 0.001 0 level true false false false 4678 Max_Zelle_Nummer uint8be 1 1 0 level true false false false 4678 Min_Zelle_Nummer uint8le 1 1 0 level true false false false 4746 TempMos °C uint16be 1 0.1 0 level true false false false 4749 Spannung V uint32be 2 0.001 0 level true false false false 4751 Watt W uint32be 2 0.001 0 level true false false false 4753 Strom A int32be 2 0.001 0 level true false false false 4755 Temperatur 1 °C int16be 1 0.1 0 level true false false false 4756 Temperatur 2 °C int16be 1 0.1 0 level true false false false 4757 Alarm uint32be 2 1 0 level true false false false 4759 BalanCurrent A uint16be 1 0.001 0 level true false false false 4760 BalanStatus uint8le 1 1 0 level true false false false 4760 SOC % uint8be 1 1 0 level true false false false 4761 ReCap Ah int32be 2 0.001 0 level true false false false 4763 MaxCap Ah uint32be 2 0.001 0 level true false false false 4765 Zyklen uint32be 2 0.001 0 level true false false false 4767 SOCCycleCap Ah uint32be 2 0.001 0 level true false false false 4769 SOCSOH % uint8le 1 1 0 level true false false false 4769 Precharge uint8be 1 1 0 level true false false false 4770 UserAlarm uint16be 1 1 0 level true false false false 4771 RunTime uint32be 2 1 0 level true false false false 4773 Laden_Erlaubt uint8le 1 1 0 level true false false false 4773 Entladen_Erlaubt uint8be 1 1 0 level true false false false 4836 BatVol V uint16be 1 0.01 0 level true false false false 4856 TempBat 3 °C int16be 1 0.1 0 level true false false false 4857 TempBat 4 °C int16be 1 0.1 0 level true false false false 4858 TempBat 5 °C int16be 1 0.1 0 level true false false false 5120 DeviceID string 8 1 0 level true false false false 5128 Hardware_Version string 4 1 0 level true false false false 5132 Software_Version string 4 1 0 level true false false false 5140 Name1 string 6 1 0 level true false false false 5156 Installationsdatum string 4 1 0 level true false false false 5160 SerienNummer string 8 1 0 level true false false false 5168 Name2 string 8 1 0 level true false false false 5176 Pin_Code string 8 1 0 level true false false falseBatterie B+C (Adresse 1 + 2 (Slaves):


_address deviceId name description unit type len factor offset formula role room poll wp cw isScale 4608 1 Zelle 1 V uint16be 1 0.001 0 level true false false false 4609 1 Zelle 2 V uint16be 1 0.001 0 level true false false false 4610 1 Zelle 3 V uint16be 1 0.001 0 level true false false false 4611 1 Zelle 4 V uint16be 1 0.001 0 level true false false false 4612 1 Zelle 5 V uint16be 1 0.001 0 level true false false false 4613 1 Zelle 6 V uint16be 1 0.001 0 level true false false false 4614 1 Zelle 7 V uint16be 1 0.001 0 level true false false false 4615 1 Zelle 8 V uint16be 1 0.001 0 level true false false false 4616 1 Zelle 9 V uint16be 1 0.001 0 level true false false false 4617 1 Zelle 10 V uint16be 1 0.001 0 level true false false false 4618 1 Zelle 11 V uint16be 1 0.001 0 level true false false false 4619 1 Zelle 12 V uint16be 1 0.001 0 level true false false false 4620 1 Zelle 13 V uint16be 1 0.001 0 level true false false false 4621 1 Zelle 14 V uint16be 1 0.001 0 level true false false false 4622 1 Zelle 15 V uint16be 1 0.001 0 level true false false false 4623 1 Zelle 16 V uint16be 1 0.001 0 level true false false false 4676 1 Max_Zelle_Spannung V uint16be 1 0.001 0 level true false false false 4677 1 Zellen_Diff V uint16be 1 0.001 0 level true false false false 4678 1 Max_Zelle_Nummer uint8be 1 1 0 level true false false false 4678 1 Min_Zelle_Nummer uint8le 1 1 0 level true false false false 4746 1 TempMos °C uint16be 1 0.1 0 level true false false false 4749 1 Spannung V uint32be 2 0.001 0 level true false false false 4751 1 Watt W uint32be 2 0.001 0 level true false false false 4753 1 Strom A int32be 2 0.001 0 level true false false false 4755 1 Temperatur 1 °C int16be 1 0.1 0 level true false false false 4756 1 Temperatur 2 °C int16be 1 0.1 0 level true false false false 4757 1 Alarm uint32be 2 1 0 level true false false false 4759 1 BalanCurrent A uint16be 1 0.001 0 level true false false false 4760 1 BalanStatus uint8le 1 1 0 level true false false false 4760 1 SOC % uint8be 1 1 0 level true false false false 4761 1 ReCap Ah int32be 2 0.001 0 level true false false false 4763 1 MaxCap Ah uint32be 2 0.001 0 level true false false false 4765 1 Zyklen uint32be 2 0.001 0 level true false false false 4767 1 SOCCycleCap Ah uint32be 2 0.001 0 level true false false false 4769 1 SOCSOH % uint8le 1 1 0 level true false false false 4769 1 Precharge uint8be 1 1 0 level true false false false 4770 1 UserAlarm uint16be 1 1 0 level true false false false 4771 1 RunTime uint32be 2 1 0 level true false false false 4773 1 Laden_Erlaubt uint8le 1 1 0 level true false false false 4773 1 Entladen_Erlaubt uint8be 1 1 0 level true false false false 4836 1 BatVol V uint16be 1 0.01 0 level true false false false 4856 1 TempBat 3 °C int16be 1 0.1 0 level true false false false 4857 1 TempBat 4 °C int16be 1 0.1 0 level true false false false 4858 1 TempBat 5 °C int16be 1 0.1 0 level true false false false 5120 1 DeviceID string 8 1 0 level true false false false 5128 1 Hardware_Version string 4 1 0 level true false false false 5132 1 Software_Version string 4 1 0 level true false false false 5140 1 Name1 string 6 1 0 level true false false false 5156 1 Installationsdatum string 4 1 0 level true false false false 5160 1 SerienNummer string 8 1 0 level true false false false 5168 1 Name2 string 8 1 0 level true false false false 5176 1 Pin_Code string 8 1 0 level true false false false 4608 2 Zelle 1 V uint16be 1 0.001 0 level true false false false 4609 2 Zelle 2 V uint16be 1 0.001 0 level true false false false 4610 2 Zelle 3 V uint16be 1 0.001 0 level true false false false 4611 2 Zelle 4 V uint16be 1 0.001 0 level true false false false 4612 2 Zelle 5 V uint16be 1 0.001 0 level true false false false 4613 2 Zelle 6 V uint16be 1 0.001 0 level true false false false 4614 2 Zelle 7 V uint16be 1 0.001 0 level true false false false 4615 2 Zelle 8 V uint16be 1 0.001 0 level true false false false 4616 2 Zelle 9 V uint16be 1 0.001 0 level true false false false 4617 2 Zelle 10 V uint16be 1 0.001 0 level true false false false 4618 2 Zelle 11 V uint16be 1 0.001 0 level true false false false 4619 2 Zelle 12 V uint16be 1 0.001 0 level true false false false 4620 2 Zelle 13 V uint16be 1 0.001 0 level true false false false 4621 2 Zelle 14 V uint16be 1 0.001 0 level true false false false 4622 2 Zelle 15 V uint16be 1 0.001 0 level true false false false 4623 2 Zelle 16 V uint16be 1 0.001 0 level true false false false 4676 2 Max_Zelle_Spannung V uint16be 1 0.001 0 level true false false false 4677 2 Zellen_Diff V uint16be 1 0.001 0 level true false false false 4678 2 Max_Zelle_Nummer uint8be 1 1 0 level true false false false 4678 2 Min_Zelle_Nummer uint8le 1 1 0 level true false false false 4746 2 TempMos °C uint16be 1 0.1 0 level true false false false 4749 2 Spannung V uint32be 2 0.001 0 level true false false false 4751 2 Watt W uint32be 2 0.001 0 level true false false false 4753 2 Strom A int32be 2 0.001 0 level true false false false 4755 2 Temperatur 1 °C int16be 1 0.1 0 level true false false false 4756 2 Temperatur 2 °C int16be 1 0.1 0 level true false false false 4757 2 Alarm uint32be 2 1 0 level true false false false 4759 2 BalanCurrent A uint16be 1 0.001 0 level true false false false 4760 2 BalanStatus uint8le 1 1 0 level true false false false 4760 2 SOC % uint8be 1 1 0 level true false false false 4761 2 ReCap Ah int32be 2 0.001 0 level true false false false 4763 2 MaxCap Ah uint32be 2 0.001 0 level true false false false 4765 2 Zyklen uint32be 2 0.001 0 level true false false false 4767 2 SOCCycleCap Ah uint32be 2 0.001 0 level true false false false 4769 2 SOCSOH % uint8le 1 1 0 level true false false false 4769 2 Precharge uint8be 1 1 0 level true false false false 4770 2 UserAlarm uint16be 1 1 0 level true false false false 4771 2 RunTime uint32be 2 1 0 level true false false false 4773 2 Laden_Erlaubt uint8le 1 1 0 level true false false false 4773 2 Entladen_Erlaubt uint8be 1 1 0 level true false false false 4836 2 BatVol V uint16be 1 0.01 0 level true false false false 4856 2 TempBat 3 °C int16be 1 0.1 0 level true false false false 4857 2 TempBat 4 °C int16be 1 0.1 0 level true false false false 4858 2 TempBat 5 °C int16be 1 0.1 0 level true false false false 5120 2 DeviceID string 8 1 0 level true false false false 5128 2 Hardware_Version string 4 1 0 level true false false false 5132 2 Software_Version string 4 1 0 level true false false false 5140 2 Name1 string 6 1 0 level true false false false 5156 2 Installationsdatum string 4 1 0 level true false false false 5160 2 SerienNummer string 8 1 0 level true false false false 5168 2 Name2 string 8 1 0 level true false false false 5176 2 Pin_Code string 8 1 0 level true false false false


@elektroniker86
Ganz herzlichen Dank!
Jetzt habe ich eine Zielvorgabe
Auf den ersten Blick liegt die Lösung darin um mehrere BMS auszulesen, dass der Master und die Slaves anders aus der Instanz angesprochen werden: "Master" vs. "Mehrere IDs".
Ich hatte immer verstanden, dass der RS485-1 zur Kommunikation zu einem WR immer ein Slave sein kann. Im Fall vom Master (Adresse 0) scheint das aber ein Irrweg.
Werde mich mit der hoffentlich funktionierenden Lösung blad melden.
Liest du bei dir nur Werte oder kannst Du auch Schreiben und Werte ändern?
-
@elektroniker86
Ganz herzlichen Dank!
Jetzt habe ich eine Zielvorgabe
Auf den ersten Blick liegt die Lösung darin um mehrere BMS auszulesen, dass der Master und die Slaves anders aus der Instanz angesprochen werden: "Master" vs. "Mehrere IDs".
Ich hatte immer verstanden, dass der RS485-1 zur Kommunikation zu einem WR immer ein Slave sein kann. Im Fall vom Master (Adresse 0) scheint das aber ein Irrweg.
Werde mich mit der hoffentlich funktionierenden Lösung blad melden.
Liest du bei dir nur Werte oder kannst Du auch Schreiben und Werte ändern?
@dieter_p sagte in JK BMS mit Modbus Adapter über RS485 zu TCP einbinden.:
Liest du bei dir nur Werte oder kannst Du auch Schreiben und Werte ändern?
Hi guten Abend!
nee ich lese nur aus. Mit dem schreiben habe ich mich nicht beschäftigt. Normalerweise stellt man das einmal ein, korrigiert mal was aber dann sollte es das im besten Fall gewesen sein.
Aber falls Du da weiter bist und die passenden Register und Settings hast, darfst Du sie gerne hier posten.Beste Grüße
-
@dieter_p sagte in JK BMS mit Modbus Adapter über RS485 zu TCP einbinden.:
Liest du bei dir nur Werte oder kannst Du auch Schreiben und Werte ändern?
Hi guten Abend!
nee ich lese nur aus. Mit dem schreiben habe ich mich nicht beschäftigt. Normalerweise stellt man das einmal ein, korrigiert mal was aber dann sollte es das im besten Fall gewesen sein.
Aber falls Du da weiter bist und die passenden Register und Settings hast, darfst Du sie gerne hier posten.Beste Grüße
Hi
ja gerne. Im Prinzip bin ich ja völlig bei dir. Empfinde es auch wenig "spannend" alle Zelleinzelspannungen und Widerstände dauerhaft zu monitoren oder gar zu trenden. Ist mir definitiv zuviel unnützlicher Traffic und Daten. Ich hol mir Dauerhaft ein paar Werte wie das Maximum der Zelldiferenzspannung. Wird es kritisch/komisch muß man eh genauer schauen was los ist.
Da aber ich aber ehrlicherweise nicht mehr an eine so "einfache" Lösung geglaubt hab, hab mir einen 4-Kanal RS485 zu Ethernet Konverter günstig geschossen und warte noch auf Lieferung.
-
Hi
ja gerne. Im Prinzip bin ich ja völlig bei dir. Empfinde es auch wenig "spannend" alle Zelleinzelspannungen und Widerstände dauerhaft zu monitoren oder gar zu trenden. Ist mir definitiv zuviel unnützlicher Traffic und Daten. Ich hol mir Dauerhaft ein paar Werte wie das Maximum der Zelldiferenzspannung. Wird es kritisch/komisch muß man eh genauer schauen was los ist.
Da aber ich aber ehrlicherweise nicht mehr an eine so "einfache" Lösung geglaubt hab, hab mir einen 4-Kanal RS485 zu Ethernet Konverter günstig geschossen und warte noch auf Lieferung.
-
@dieter_p
Ich weiß nicht welches System du hast, aber falls es zum Beispiel Victron ist, bekommst du über MQTT auch den Zelldrift ausgelesen.
Mfg
-
@dieter_p
Ich weiß nicht welches System du hast, aber falls es zum Beispiel Victron ist, bekommst du über MQTT auch den Zelldrift ausgelesen.
Mfg
Bei mir geht es um ein SMA Setup da bekommt man vom Batteriewechselrichter nur die Gesamt DC Spannung und den Strom ausgelesen. Mehr kommt da leider nicht.
Deshalb komme ich nur über die Batterie zu den Werten.
-
Bei mir geht es um ein SMA Setup da bekommt man vom Batteriewechselrichter nur die Gesamt DC Spannung und den Strom ausgelesen. Mehr kommt da leider nicht.
Deshalb komme ich nur über die Batterie zu den Werten.
-
Bei mir geht es um ein SMA Setup da bekommt man vom Batteriewechselrichter nur die Gesamt DC Spannung und den Strom ausgelesen. Mehr kommt da leider nicht.
Deshalb komme ich nur über die Batterie zu den Werten.
@Elektroniker86
Hast Du ggf eine Idee?Ich nutze jetzt den 4ch RS485 TCP Konverter von Waveshare und hab auch jedem Kanal ein JK-BMS am RS-485 verbunden.
Das Master BMS (ID#01) funktioniert nach Deinen Infos super.
Nun hänge ich am ersten Slave und (ganz komisch) bekomme die Zellspannungen (Register 4608-4623) problemlos ausgelesen. Alle Regsteradressen danach zB 4676 Max_Zell_Spannung bleibt leer und sobald ich etwas davon im Adapter eingetragen hab, ist die Verbindung auch nicht stabil und wird getrennt (Gelbes Warndreieck in der Instanz).
Hast Du ene Idee?



Habe es nun so getestet und sobald Register 4676 gespeichert ist, treten Fehler auf:

Edit: auch eine Erhöhung Wartezeit und Float Registerlänge auf 400 brachte leider keinen Unterschied und am Master läuft es ja mit diesen Setting aber hier:
modbus.2 2025-11-17 11:36:01.371 info Disconnected from slave 192.168.7.108 admin.0 2025-11-17 11:36:01.194 info <== Disconnect system.user.admin from ::ffff:192.168.0.2 modbus admin.0 2025-11-17 11:36:01.194 info <== Disconnect system.user.admin from ::ffff:192.168.0.2 modbus modbus.2 2025-11-17 11:36:00.372 warn [DevID_1] Poll error count: 2 code: {"err":"timeout","timeout":5000} modbus.2 2025-11-17 11:36:00.371 error Client in error state. modbus.2 2025-11-17 11:36:00.370 error Request timed out. modbus.2 2025-11-17 11:36:00.369 warn Error: undefined modbus.2 2025-11-17 11:35:55.355 info Connected to slave 192.168.7.108 admin.0 2025-11-17 11:35:06.927 info ==> Connected system.user.admin from ::ffff:192.168.0.2 modbus.2 2025-11-17 11:34:55.350 info Disconnected from slave 192.168.7.108 modbus.2 2025-11-17 11:34:54.350 warn [DevID_1] Poll error count: 1 code: {"err":"timeout","timeout":5000} modbus.2 2025-11-17 11:34:54.349 error Client in error state. modbus.2 2025-11-17 11:34:54.348 error Request timed out. modbus.2 2025-11-17 11:34:54.347 warn Error: undefined modbus.2 2025-11-17 11:34:49.331 info Connected to slave 192.168.7.108

