path: The path to the USB port where the Serial port RS485 adapter is connected to your machine
nb_jkbms: Number of JK BMSs to control (from 1 to 15)
mqttaddress: The IP address or DNS name of your MQTT broker.By default, this will be the internal address of HAOS.
mqttport: Port number of the MQTT broker
mqttuser: User name for MQTT authentication
mqttpass: Password for MQTT authentication. Put it in quotation marks
–» Complementary and pre-configured Dashboard: «–
You can obtain two pre-configured dashboards that you can import into your Home Assistant home automation system.
This can save you several hours of work in formatting the data by yourself.
Have a look here
Installation
You can add the repository automatically by following this:
Via the add-on shop
Add this repository in Home Assistant: https://github.com/jean-luc1203/jkbms-rs485-addon
Install the “Smartphoton_JKBMS RS485 Home Assistant Addon”
Configure the parameters according to your installation
Start the module
Manual installation (for development)
Clone this repository in the /addons/ folder of your Home Assistant installation
Reload the add-ons
Install and configure
Use
BMS appear in MQTT devices
Entities created
Authors & contributors
For the creation of the module under HAOS, I drew inspiration from Nolak’s work for smartphoton
as well as assistance from various AI.
The Node Red flow are from me JLM.
Support
To report problems or request features, use GitHub issues.
Great tool! I’m running HA in Hyper-V, which doesn’t support USB passthrough. Do you think using USB/IP to connect the RS485 USB adapter to HA would work?
At the moment, my code accesses a serial port, which is one of the USB ports. If you are referring to an RS485/IP gateway, this has not been implemented yet. I have done this in my other module smartphoton. Among other things, I use Elfin modules.
If I receive several requests, I can add the code to manage the IP addresses and ports of a gateway, thereby eliminating the need to go through the serial port.
Yeah, I mean the serial port on the USB adapter. Since Hyper-V can’t pass USB devices from Windows, you need something like USB-over-IP to connect it to HA, like using USB/IP.
I am currently adding the ability to connect an RS485-IP gateway of this type. I had it lying around somewhere. This means you can have the PC anywhere and no longer need to connect a physical USB port. It’s starting to work. In a few days, I will make this version available on my GitHub.
Here is the latest development (July 2025). CAN bus support is now fully functional
This is the second RJ45 connector from the left. You must first select the CAN protocol to option 006 - (500k) V2.0 in the jkbms application.
You will need to purchase a CAN adapter. Not all adapters are compatible with Home Assistant.
It should not appear under ttyUSBx in the hardware list. However, in a HAOS terminal, run the command: ip link If you see an interface named can0, it will work.
Install the module, then before launching it, go to configuration and set the CANbus_usage variable to true. Also enter the MQTT parameters.
The jkbms continuously broadcasts a certain amount of data that will be sent directly to HAOS under the MQTT device section (must be installed and functional before this module).
The device should appear under the name CANbus-1. The data are inside.
In CAN mode, only reading is possible. No modifications are possible.
This is possible with the rs485 bus if necessary.
Caution: Be sure to use the jkbms protocol and not victron, pylontech, or any other. The data is refreshed every 5 seconds
Then it must not be passing through the USB port. A bug?
Have you configured the module correctly?
I suggest you uninstall the entire module and reinstall it.
I’ve just released a new version. There’s a way of getting logs of the conversation between the JK and the HAOS.
Can you set this switch to On and tell me how it looks.
Take a good look at the module logs, and take a screenshot if necessary.
It would be nice to open an issue on Github to continue.
Everything seems fine with the USB port connection to the HA container.
Could you enable the debug switch and check what’s in the module log?
Otherwise, did you reverse A and B?
And no GND connected.
Hi!
Thank you so much for a great add-on!
One problem, though: I don’t seem to be able to update parameters. I have tried to flip the charge switch with no change on the BMS side. I also change one of the overcurrent time values with no change on the BMS.
Hello, would it be possible to open a ticket on the module’s GitHub?
I am currently very busy with a new module. However, I will do my best to resolve this issue.
Yes, a new module that I hope will be useful. It should enable data exchange between HA and the Net-cloud. All this without the need for a VPN, reverse proxy, or other tools. Communications will be encrypted. 4G connection planned. Client with esp32, PC, PLCs, etc.
It’s ready.
This is the very first functional version of the synchronization module for Home Assistant entities exported to an MQTT cloud broker and, conversely, an isolated client that can send topics to this broker. This will trigger the automatic creation of entities in Home Assistant.
All you need to do is send an auto-discovery topic and a status topic.
Communications are TLS-encrypted.
For example, an ESP32 that manages sensors and actuators in a second home can send its information to your Home Assistant at home via its built-in 4G connection. No other physical architecture is required.
Another case: one or more PLC Schneider devices by exemple (which use MQTT) can easily send their data externally.
I don’t yet know if this is feasible in practice.
Basically, any MQTT client can send its values to the cloud and then simply used in HA for storage in the DB and creation of graphs, automations, or other utilities