-
-
Notifications
You must be signed in to change notification settings - Fork 176
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Gathering Multiple JK-BMS' status info via RS-485 in a 1x MASTER (address 0x00) and 1x CLIENT configuration #442
Comments
This is the traffic if only the MASTER (0x00 address) is connected to bus:
|
i have to adress bms1 to adress 1, bms2 to adress 2 and so on |
In the "internal" JK RS485 network (using connectors on the right), 1 of the JK-BMS must be "MASTER" (RS485 0x00) and other JK-BMS must be "SLAVE" (RS485 address inside interval: [0x01,0x0f]). MASTER asks in a pooling mode always to every address from 0x01 to 0x0f. Slave receiving "asking message" answers. In my previous messages the info was fragmented because a bug in my capture script. These are some examples of captured information, if can be of your interest: 20240223_172400.log |
Great research!. So the problem is as understood that there could be only one MASTER that is querying SLAVES. The only working way is Bluetooth ESP32 for multiple BMS (have 3) |
If we add ESP32 it cannot be Master, and as a SLAVE it cannot query other SLAVES and MASTER bms Status? That is correct. One of the BMSs in the network is the Master. ESP32 cannot be another Master. Only 1 Master in a RS485/Modbus network. An slave cannot query other slaves. The main advantage of RS485 is that one ESP32 could manage all the BMSs in the network and the bluetooth could it be available to connect with other device to control it (change a setting...) |
Sounds extremely fantastic! |
There is a new pull request that has the code. #464 |
This is the new JK BMS: https://www.jkbms.com/product/jk-pb2a16s15p-jk-pb2a16s-15p/
It has a comms board with 5 ports:
1 RS485 ((RJ45) to be connected to Inverter
1 CAN (RJ45) to be connected to Inverter
1 RS232 (RJ11)
2 RS485 (RJ45) for paralling other (same) BMS
I have given a try to RS485 ports using a linux ubuntu + USB2RS485 converter + cable attached to any of the RS485 ports of the BMSs.
The BMS number 0 has address=0x00 (MASTER)
The BMS number 1 has address=0x01 (SLAVE)
The JK Windows program is working with this configuration and wiring. So, I have given a try to linux and python3 serial... with some success? I don't know. In a listening/sniffing mode, all the communication in the RS485 bus is received by python program:
THIS IS THE python3 code
Is esphome-jk-bms compatible with this configuration in order to gathering information?
This is some of the traffic in hex:
The text was updated successfully, but these errors were encountered: