12-06-2025, 02:12 PM (Modification du message : 12-06-2025, 07:23 PM par jlm.)
I am pleased to announce the release of a new Home Assistant add-on dedicated to managing JKong BMSs via a wired RS485 connection.
And as usual, it remains free of charge.(The source code is available on theGithub)
This module allows you to supervise and centralize the monitoring of several JK-BMS (up to 15) directly from your Home Assistant installation.
This can be done without the need for multiple specific hardware modules. Only RJ45 cables are required.
Main features :
Multi-BMS compatibility: simultaneous support for multiple JKong models (PBA16S20P, PB2A16S15P, PB1A16S15P, PB1A16S10P) connected to a single RS485 bus.
Seamless integration with Home Assistant: simple configuration via the interface with automatic creation of entities for each BMS in Home Assistant
MQTT interoperability: all collected data is published on an MQTT broker (of your choice), allowing it to be used in other home automation solutions such as Jeedom.
Preconfigured dashboards: Two ready-to-import dashboards are available for quickly viewing essential information without having to go through a long and tedious configuration process. A contribution is requested for these.
Easy installation: add the GitHub repository, install via the add-on store, configure the main settings (USB port, number of BMS, MQTT access), and the module is up and running in minutes..
Distinctive features:
Unlike current solutions that require one ESP32 module per BMS, this module allows centralized, wired management of all your JKong BMSs from a single Home Assistant add-on, for simpler and more reliable installation.
Recommended use:
This module is intended for all users who wish to effectively monitor multiple JKong BMSs in a Home Assistant environment, while limiting hardware and prioritizing the stability of the RS485 connection.
Demonstration video:
To go further and start the installation:
GitHub repository for installation and documentation :
Code :
https://github.com/jean-luc1203/jkbms-rs485-addon
For support and discussions: via the forum (preferred) or GitHub issues.
If you would like to help me by supporting my work to provide free software and support this forum and videos, click here.
Thank you very much.
Please feel free to share your feedback or contribute to improving the module with your comments and ideas..
21-10-2025, 01:29 PM (Modification du message : 21-10-2025, 02:24 PM par Courage2000.)
It is a great add-on.
Thank you
I've paid 7 euros for the templates; some observations:
1. You need to improve the installation documentation.
2. bar-card is obsolete; you can use this repository (fork): https://github.com/spacerokk/bar-card/
3. I did not understand what to do with the info from "Up Time Template".
I do not know where to put that "time" code.
3. 12079963 seconds uptime? 139 days
How, my first BMS boot up was 2 months ago...
27-10-2025, 11:35 AM (Modification du message : 27-10-2025, 11:36 AM par jlm.)
(21-10-2025, 01:29 PM)Courage2000 a écrit : It is a great add-on.
Thank you
I've paid 7 euros for the templates; some observations:
1. You need to improve the installation documentation.
2. bar-card is obsolete; you can use this repository (fork): https://github.com/spacerokk/bar-card/
3. I did not understand what to do with the info from "Up Time Template".
I do not know where to put that "time" code.
3. 12079963 seconds uptime? 139 days
How, my first BMS boot up was 2 months ago...
Full or lite templates all have problems
It is a great add-on.
Thank you
Sorry for the delay, I was on vacation.
So where does the documentation need to be improved.
I need feedback to improve it.
Regarding templates, they're useful for creating sensors in HA to calculate values
For example, in our case, the number of months-days-minutes that the BMS started for the 1st time.
So I think you'll like it.
I modified the code yesterday so that the module provides you with a ready-made sensor. It's called :
Code :
sensor.bms_1_total_runtime_formatted
So, can you update to v3.1.10
You can then simply replace the current sensor in your dashboard with the new one.
As simple as that
Concerning the 'Bar code' card, I recently replaced it with the
03-11-2025, 12:13 AM (Modification du message : 03-11-2025, 12:37 AM par Courage2000.)
I've deleted the addon, deleted mqtt data etc.
Same problems; is like the latest updated don't work.
(02-11-2025, 11:53 PM)jlm a écrit : Can you show me the module configuration YAML?
I think I understand. Are you in broadcasting mode? A master battery 0000?
Master BMS ID 0.
Master BMS Connected via CAN (Victron protocol) to Victron Cerbo GX.
I use an external MQTT Server (lan)
It's clear now. My add-on contains three parts. One for the no BMS master mode.
The other is a BMS master mode, which I called broadcasting, and the third is the CAN connection.
Right now, my efforts are focused on the first mode. I'm currently finishing up the alarm management.
As soon as that goes into production, I'll take care of the second part, which is the one you use.
That will be towards the end of the week if everything goes well with my alarms.
04-11-2025, 10:11 PM (Modification du message : 04-11-2025, 10:16 PM par rookieuser.)
Took me me sometime , ik have ordered a rs485-wifi TCP on Alie. Its is working.
Same question here after update the 2 lines in the update are not there, do we have to do this manually?
binary_sensor.bms_x_bms_alarm_active
sensor.bms_1_bms_1_alarm_list
Iám Dutch so no Français only bad English.
( Took me some time to find out that SOC_pourcentage means SOC percentage and Courant Total means Current total)
Took me me sometime , ik have ordered a rs485-wifi TCP on Alie. Its is working.
Same question here after update the 2 lines in the update are not there, do we have to do this manually?
binary_sensor.bms_x_bms_alarm_active
sensor.bms_1_bms_1_alarm_list
Iám Dutch so no Français only bad English.
( Took me some time to find out that SOC_pourcentage means SOC percentage and Courant Total means Current total)
05-11-2025, 10:32 AM (Modification du message : 05-11-2025, 10:33 AM par Smukc91.)
Hi my integration stoped working today after 3.2 update i got this error when i look in log files
5 Nov 09:17:47 - [info] serial port /dev/JKBMS-Fake closed
5 Nov 09:17:47 - [error] [serialconfig:6e1abcbcc6ebb714] serial port /dev/ttyUSB0 error: Error: Error Resource temporarily unavailable Cannot lock port
5 Nov 09:17:48 - [info] [mqtt-broker:56f7b2737cce493b] Connected to broker: mqtt://core-mosquitto.local.hass.io:1883
5 Nov 09:22:02 - [info] [serialconfig:6e1abcbcc6ebb714] serial port /dev/ttyUSB0 opened at 115800 baud 8N1
5 Nov 09:17:47 - [info] [function:traitement des variables] Variable globale 'mqttpass' = •••••••••
5 Nov 09:17:47 - [info] serial port /dev/JKBMS-Fake closed
5 Nov 09:17:47 - [error] [serialconfig:6e1abcbcc6ebb714] serial port /dev/ttyUSB0 error: Error: Error Resource temporarily unavailable Cannot lock port
5 Nov 09:17:48 - [info] [mqtt-broker:56f7b2737cce493b] Connected to broker: mqtt://core-mosquitto.local.hass.io:1883
5 Nov 09:22:02 - [info] [serialconfig:6e1abcbcc6ebb714] serial port /dev/ttyUSB0 opened at 115800 baud 8N1
Hi my integration stopped working today after 3.2 update i got this error when i look in log files
5 Nov 09:17:47 - [info] serial port /dev/JKBMS-Fake closed
5 Nov 09:17:47 - [error] [serialconfig:6e1abcbcc6ebb714] serial port /dev/ttyUSB0 error: Error: Error Resource temporarily unavailable Cannot lock port
5 Nov 09:17:48 - [info] [mqtt-broker:56f7b2737cce493b] Connected to broker: mqtt://core-mosquitto.local.hass.io:1883
5 Nov 09:22:02 - [info] [serialconfig:6e1abcbcc6ebb714] serial port /dev/ttyUSB0 opened at 115800 baud 8N1
5 Nov 09:17:47 - [info] [function:variable processing] Global variable 'mqttpass' = •••••••••
5 Nov 09:17:47 - [info] serial port /dev/JKBMS-Fake closed
5 Nov 09:17:47 - [error] [serialconfig:6e1abcbcc6ebb714] serial port /dev/ttyUSB0 error: Error: Error Resource temporarily unavailable Cannot lock port
5 Nov 09:17:48 - [info] [mqtt-broker:56f7b2737cce493b] Connected to broker: mqtt://core-mosquitto.local.hass.io:1883
5 Nov 09:22:02 - [info] [serialconfig:6e1abcbcc6ebb714] serial port /dev/ttyUSB0 opened at 115800 baud 8N1
(05-11-2025, 10:32 AM)Smukc91 a écrit : Hi my integration stopped working today after 3.2 update i got this error when i look in log files
5 Nov 09:17:47 - [info] serial port /dev/JKBMS-Fake closed
5 Nov 09:17:47 - [error] [serialconfig:6e1abcbcc6ebb714] serial port /dev/ttyUSB0 error: Error: Error Resource temporarily unavailable Cannot lock port
5 Nov 09:17:48 - [info] [mqtt-broker:56f7b2737cce493b] Connected to broker: mqtt://core-mosquitto.local.hass.io:1883
5 Nov 09:22:02 - [info] [serialconfig:6e1abcbcc6ebb714] serial port /dev/ttyUSB0 opened at 115800 baud 8N1
5 Nov 09:17:47 - [info] [function:variable processing] Global variable 'mqttpass' = •••••••••
5 Nov 09:17:47 - [info] serial port /dev/JKBMS-Fake closed
5 Nov 09:17:47 - [error] [serialconfig:6e1abcbcc6ebb714] serial port /dev/ttyUSB0 error: Error: Error Resource temporarily unavailable Cannot lock port
5 Nov 09:17:48 - [info] [mqtt-broker:56f7b2737cce493b] Connected to broker: mqtt://core-mosquitto.local.hass.io:1883
5 Nov 09:22:02 - [info] [serialconfig:6e1abcbcc6ebb714] serial port /dev/ttyUSB0 opened at 115800 baud 8N1
Hi my integration stopped working today after 3.2 update i got this error when i look in log files
5 Nov 09:17:47 - [info] serial port /dev/JKBMS-Fake closed
5 Nov 09:17:47 - [error] [serialconfig:6e1abcbcc6ebb714] serial port /dev/ttyUSB0 error: Error: Error Resource temporarily unavailable Cannot lock port
5 Nov 09:17:48 - [info] [mqtt-broker:56f7b2737cce493b] Connected to broker: mqtt://core-mosquitto.local.hass.io:1883
5 Nov 09:22:02 - [info] [serialconfig:6e1abcbcc6ebb714] serial port /dev/ttyUSB0 opened at 115800 baud 8N1
5 Nov 09:17:47 - [info] [function:variable processing] Global variable 'mqttpass' = •••••••••
5 Nov 09:17:47 - [info] serial port /dev/JKBMS-Fake closed
5 Nov 09:17:47 - [error] [serialconfig:6e1abcbcc6ebb714] serial port /dev/ttyUSB0 error: Error: Error Resource temporarily unavailable Cannot lock port
5 Nov 09:17:48 - [info] [mqtt-broker:56f7b2737cce493b] Connected to broker: mqtt://core-mosquitto.local.hass.io:1883
5 Nov 09:22:02 - [info] [serialconfig:6e1abcbcc6ebb714] serial port /dev/ttyUSB0 opened at 115800 baud 8N1
So let me answer this aparently there was home assistant update also and that changed usb port config ? i had to replace old usb path with new one and now it works ?!
The following 1 user Likes Smukc91's post:1 user Likes Smukc91's post • jlm
Hello!
I'm trying to set it up with an Elfin IP Gateway and I cannot get it to work.
I am confident the Elfin is connected to the JK BMS (PB2A16S30P v19) and working properly, because this alternative project (https://github.com/luisgonzalezgonzalez/jkbms_mqtt) is successfully pulling the data from the Elfin (this is coming in from this alternative tool).
I wish to use your tool because I am going to have 4 parallel batteries soon with a master/slave.
15-11-2025, 11:01 AM (Modification du message : 15-11-2025, 11:08 AM par jlm.)
(14-11-2025, 10:53 PM)thorium a écrit : Hello!
I'm trying to set it up with an Elfin IP Gateway and I cannot get it to work.
I am confident the Elfin is connected to the JK BMS (PB2A16S30P v19) and working properly, because this alternative project (https://github.com/luisgonzalezgonzalez/jkbms_mqtt) is successfully pulling the data from the Elfin (this is coming in from this alternative tool).
I wish to use your tool because I am going to have 4 parallel batteries soon with a master/slave.
14 Nov 14:46:24 - [info] Node-RED version: v4.1.1
14 Nov 14:46:24 - [info] Node.js version: v22.16.0
14 Nov 14:46:24 - [info] Linux 6.12.51-haos x64 LE
14 Nov 14:46:25 - [info] Loading palette nodes
14 Nov 14:46:29 - [info] Settings file : /etc/node-red/config.js
14 Nov 14:46:29 - [info] Context store : 'default' [module=localfilesystem]
14 Nov 14:46:30 - [info] User directory : /config/smartphoton_jkbms/
14 Nov 14:46:30 - [warn] Projects disabled : editorTheme.projects.enabled=false
14 Nov 14:46:30 - [info] Flows file : /config/smartphoton_jkbms/flows.json
14 Nov 14:46:30 - [warn] Encrypted credentials not found
14 Nov 14:46:30 - [info] Server now running at http://127.0.0.1:1891/
14 Nov 14:46:30 - [info] Starting flows
14 Nov 14:46:30 - [info] Started flows
14 Nov 14:46:30 - [error] [serialconfig:6e1abcbcc6ebb714] serial port /dev/JKBMS-Fake error: Error: Error: No such file or directory, cannot open /dev/JKBMS-Fake
14 Nov 14:46:30 - [info] [mqtt-broker:56f7b2737cce493b] Connection failed to broker: mqtt://core-mosquitto.local.hass.io:1883
14 Nov 14:46:31 - [info] [function:traitement des variables] Champ 'gateway_ip_port' traité: 192.168.1.93:502
14 Nov 14:46:31 - [info] [function:traitement des variables] Champ 'mqttadresse_port' traité: 192.168.1.96:1883
14 Nov 14:46:31 - [info] [function:traitement des variables] Variable globale 'path' = 192.168.1.93:502
14 Nov 14:46:31 - [info] [function:traitement des variables] Variable globale 'nb_jkbms' = 1
14 Nov 14:46:31 - [info] [function:traitement des variables] Variable globale 'use_gateway' = true
14 Nov 14:46:31 - [info] [function:traitement des variables] Variable globale 'gateway_ip' = 192.168.1.93
14 Nov 14:46:31 - [info] [function:traitement des variables] Variable globale 'gateway_port' = 502
14 Nov 14:46:31 - [info] [function:traitement des variables] Variable globale 'communication_debug' = true
14 Nov 14:46:31 - [info] [function:traitement des variables] Variable globale 'bms_broadcasting' = false
14 Nov 14:46:31 - [info] [function:traitement des variables] Variable globale 'CAN_bus_usage' = false
14 Nov 14:46:31 - [info] [function:traitement des variables] Variable globale 'mqttadresse' = 192.168.1.96
14 Nov 14:46:31 - [info] [function:traitement des variables] Variable globale 'mqttport' = 1883
14 Nov 14:46:31 - [info] [function:traitement des variables] Variable globale 'mqttuser' = mqtt
14 Nov 14:46:31 - [info] [function:traitement des variables] Variable globale 'mqttpass' = •••••••••
14 Nov 14:46:35 - [info] [mqtt-broker:56f7b2737cce493b] Connected to broker: mqtt://192.168.1.96:1883
Bonjour,
Alors vu que tu utilises une passerelle, pas besoin de modifier le jkbms_pathpar défaut. Mais c'est pas important.
Peux-tu vérifier que tu es bien à la dernière version d'hier v3.3.3 C'est important, car j'ai amené beaucoup de modifications concernant les passerelles IP
Peux-tu installer et utiliser l'application serial wifi terminal pour vérifier qu'il y a bien un dialogue régulier entre le module et la passerelle
Agrandir le buffer dédié dans la configuration du Elfin. Par contre tu ne m'as pas dit si c'est un Elfin EE10 ou EW10
Le debug ne montre rien dans le log ?
Hello,
Since you are using a gateway, there is no need to change the default jkbms_path. But that's not important.
Can you check that you have the latest version from yesterday, v3.3.3? This is important because I have made a lot of changes concerning IP gateways.
Can you install and use the serial wifi terminal application to check that there is regular communication between the module and the gateway?
Enlarge the dedicated buffer in the Elfin configuration. However, you didn't tell me if it's an Elfin EE10 or EW10.
17-11-2025, 12:38 AM (Modification du message : 17-11-2025, 12:57 AM par thorium.)
(15-11-2025, 11:01 AM)jlm a écrit :
(14-11-2025, 10:53 PM)thorium a écrit : Hello!
I'm trying to set it up with an Elfin IP Gateway and I cannot get it to work.
I am confident the Elfin is connected to the JK BMS (PB2A16S30P v19) and working properly, because this alternative project (https://github.com/luisgonzalezgonzalez/jkbms_mqtt) is successfully pulling the data from the Elfin (this is coming in from this alternative tool).
I wish to use your tool because I am going to have 4 parallel batteries soon with a master/slave.
14 Nov 14:46:24 - [info] Node-RED version: v4.1.1
14 Nov 14:46:24 - [info] Node.js version: v22.16.0
14 Nov 14:46:24 - [info] Linux 6.12.51-haos x64 LE
14 Nov 14:46:25 - [info] Loading palette nodes
14 Nov 14:46:29 - [info] Settings file : /etc/node-red/config.js
14 Nov 14:46:29 - [info] Context store : 'default' [module=localfilesystem]
14 Nov 14:46:30 - [info] User directory : /config/smartphoton_jkbms/
14 Nov 14:46:30 - [warn] Projects disabled : editorTheme.projects.enabled=false
14 Nov 14:46:30 - [info] Flows file : /config/smartphoton_jkbms/flows.json
14 Nov 14:46:30 - [warn] Encrypted credentials not found
14 Nov 14:46:30 - [info] Server now running at http://127.0.0.1:1891/
14 Nov 14:46:30 - [info] Starting flows
14 Nov 14:46:30 - [info] Started flows
14 Nov 14:46:30 - [error] [serialconfig:6e1abcbcc6ebb714] serial port /dev/JKBMS-Fake error: Error: Error: No such file or directory, cannot open /dev/JKBMS-Fake
14 Nov 14:46:30 - [info] [mqtt-broker:56f7b2737cce493b] Connection failed to broker: mqtt://core-mosquitto.local.hass.io:1883
14 Nov 14:46:31 - [info] [function:traitement des variables] Champ 'gateway_ip_port' traité: 192.168.1.93:502
14 Nov 14:46:31 - [info] [function:traitement des variables] Champ 'mqttadresse_port' traité: 192.168.1.96:1883
14 Nov 14:46:31 - [info] [function:traitement des variables] Variable globale 'path' = 192.168.1.93:502
14 Nov 14:46:31 - [info] [function:traitement des variables] Variable globale 'nb_jkbms' = 1
14 Nov 14:46:31 - [info] [function:traitement des variables] Variable globale 'use_gateway' = true
14 Nov 14:46:31 - [info] [function:traitement des variables] Variable globale 'gateway_ip' = 192.168.1.93
14 Nov 14:46:31 - [info] [function:traitement des variables] Variable globale 'gateway_port' = 502
14 Nov 14:46:31 - [info] [function:traitement des variables] Variable globale 'communication_debug' = true
14 Nov 14:46:31 - [info] [function:traitement des variables] Variable globale 'bms_broadcasting' = false
14 Nov 14:46:31 - [info] [function:traitement des variables] Variable globale 'CAN_bus_usage' = false
14 Nov 14:46:31 - [info] [function:traitement des variables] Variable globale 'mqttadresse' = 192.168.1.96
14 Nov 14:46:31 - [info] [function:traitement des variables] Variable globale 'mqttport' = 1883
14 Nov 14:46:31 - [info] [function:traitement des variables] Variable globale 'mqttuser' = mqtt
14 Nov 14:46:31 - [info] [function:traitement des variables] Variable globale 'mqttpass' = •••••••••
14 Nov 14:46:35 - [info] [mqtt-broker:56f7b2737cce493b] Connected to broker: mqtt://192.168.1.96:1883
Bonjour,
Alors vu que tu utilises une passerelle, pas besoin de modifier le jkbms_pathpar défaut. Mais c'est pas important.
Peux-tu vérifier que tu es bien à la dernière version d'hier v3.3.3 C'est important, car j'ai amené beaucoup de modifications concernant les passerelles IP
Peux-tu installer et utiliser l'application serial wifi terminal pour vérifier qu'il y a bien un dialogue régulier entre le module et la passerelle
Agrandir le buffer dédié dans la configuration du Elfin. Par contre tu ne m'as pas dit si c'est un Elfin EE10 ou EW10
Le debug ne montre rien dans le log ?
Hello,
Since you are using a gateway, there is no need to change the default jkbms_path. But that's not important.
Can you check that you have the latest version from yesterday, v3.3.3? This is important because I have made a lot of changes concerning IP gateways.
Can you install and use the serial wifi terminal application to check that there is regular communication between the module and the gateway?
Enlarge the dedicated buffer in the Elfin configuration. However, you didn't tell me if it's an Elfin EE10 or EW10.
Does debugging show anything in the log?
Thank you for your coding efforts.
1. Yes, I am using v3.3.3
2. I tried to use "TCP2COM" Windows app and didn't see anything. But I'm not sure if I was using it correctly. The other app is reading it regularly though (screenshot of MQTT below showing regular updates of the BMS parameters), so it stands to reason it must be transmitting on the Elfin.
3. Elfin Product Name is "EW41B." I increased the buffer size from 512 to 8092 (max allowed) on the Communication Settings screen. If there is another Wifi serial adapter you use that is known tested good, please let me know the make & model and I'm happy to buy that one.
4. Debugging doesn't show anything, the log file ends after the MQTT server connection line in the original log excerpt I pasted.
Additional Info:
- You can see on the Elfin that your app is connecting to it (192.168.1.96 is the home assistant server making a connection to the Elfin, .90 is that Other App running on a container outside of home assistant).
- When your app starts the last log message is "Connected to broker: mqtt://" -- but then several minutes later HTML markup of goes into the Log window (partially pasted at bottom). This appears to be the Synology NAS I have on my network. It is a separate device entirely at 192.168.1.100 and it does not host Home Assistant. The only relation to Home Assistant is that I use the synology NAS NGINX as a HTTPS reverse proxy for home assistant, so I can connect to https://192.168.1.100:4433 and that is reverse proxied to the home assistant server at http://192.168.1.96:8123. I have no idea why your app would be trying to access the synology or why that shows up in the logs.
18-11-2025, 12:07 PM (Modification du message : 18-11-2025, 07:10 PM par RiaanH.)
Good afternoon Jean-Luc,
First off let me start by thanking you for all the effort.
I do however have a few questions in trying to get this going:
I cannot get it to use TCP, although gateway is working through other tests. What do I need to change for the USB, as one cannot remove the data there.
EDIT: Managed to get the TCP operational, from yaml editor changed usb descriptor to IP and port, thank you
Then I found the following:
I have a 15cell battery, so JK app reports 15 and all the rest fine.
But through the Add-on, it uses 16cell and thus work out the average and delta from that, so average gives 15 cell data plus 0 and divide by 16, and delta take the value between 0V and eg 3.5, and report delta as 3.5.
(14-11-2025, 10:53 PM)thorium a écrit : Hello!
I'm trying to set it up with an Elfin IP Gateway and I cannot get it to work.
I am confident the Elfin is connected to the JK BMS (PB2A16S30P v19) and working properly, because this alternative project (https://github.com/luisgonzalezgonzalez/jkbms_mqtt) is successfully pulling the data from the Elfin (this is coming in from this alternative tool).
I wish to use your tool because I am going to have 4 parallel batteries soon with a master/slave.
{"battery_voltage": 53.753, "battery_power": 1433.369, "battery_current": 26.8, "cell_00_voltage": 3.36, "cell_01_voltage": 3.36, "cell_02_voltage": 3.357, "cell_03_voltage": 3.358, "cell_04_voltage": 3.361, "cell_05_voltage": 3.361, "cell_06_voltage": 3.362, "cell_07_voltage": 3.362, "cell_08_voltage": 3.363, "cell_09_voltage": 3.36, "cell_10_voltage": 3.36, "cell_11_voltage": 3.358, "cell_12_voltage": 3.36, "cell_13_voltage": 3.358, "cell_14_voltage": 3.36, "cell_15_voltage": 3.36, "mos_temperature": 29.6, "battery_temperature_1": 30.3, "battery_temperature_2": 30.8, "balance_current": 0, "battery_soc": 72}
My configuration file is:
jkbms_path: 192.168.1.93:502
jkbms_count: 1
use_gateway: true
gateway_ip_port: 192.168.1.93:502
communication_debug: true
bms_broadcasting: false
CAN_bus_usage: false
mqttadresse_port: 192.168.1.96:1883
mqttuser: mqtt
mqttpass: ######
The log is:
14 Nov 14:46:24 - [info] Node-RED version: v4.1.1
14 Nov 14:46:24 - [info] Node.js version: v22.16.0
14 Nov 14:46:24 - [info] Linux 6.12.51-haos x64 LE
14 Nov 14:46:25 - [info] Loading palette nodes
14 Nov 14:46:29 - [info] Settings file : /etc/node-red/config.js
14 Nov 14:46:29 - [info] Context store : 'default' [module=localfilesystem]
14 Nov 14:46:30 - [info] User directory : /config/smartphoton_jkbms/
14 Nov 14:46:30 - [warn] Projects disabled : editorTheme.projects.enabled=false
14 Nov 14:46:30 - [info] Flows file : /config/smartphoton_jkbms/flows.json
14 Nov 14:46:30 - [warn] Encrypted credentials not found
14 Nov 14:46:30 - [info] Server now running at http://127.0.0.1:1891/
14 Nov 14:46:30 - [info] Starting flows
14 Nov 14:46:30 - [info] Started flows
14 Nov 14:46:30 - [error] [serialconfig:6e1abcbcc6ebb714] serial port /dev/JKBMS-Fake error: Error: Error: No such file or directory, cannot open /dev/JKBMS-Fake
14 Nov 14:46:30 - [info] [mqtt-broker:56f7b2737cce493b] Connection failed to broker: mqtt://core-mosquitto.local.hass.io:1883
14 Nov 14:46:31 - [info] [function:traitement des variables] Champ 'gateway_ip_port' traité: 192.168.1.93:502
14 Nov 14:46:31 - [info] [function:traitement des variables] Champ 'mqttadresse_port' traité: 192.168.1.96:1883
14 Nov 14:46:31 - [info] [function:traitement des variables] Variable globale 'path' = 192.168.1.93:502
14 Nov 14:46:31 - [info] [function:traitement des variables] Variable globale 'nb_jkbms' = 1
14 Nov 14:46:31 - [info] [function:traitement des variables] Variable globale 'use_gateway' = true
14 Nov 14:46:31 - [info] [function:traitement des variables] Variable globale 'gateway_ip' = 192.168.1.93
14 Nov 14:46:31 - [info] [function:traitement des variables] Variable globale 'gateway_port' = 502
14 Nov 14:46:31 - [info] [function:traitement des variables] Variable globale 'communication_debug' = true
14 Nov 14:46:31 - [info] [function:traitement des variables] Variable globale 'bms_broadcasting' = false
14 Nov 14:46:31 - [info] [function:traitement des variables] Variable globale 'CAN_bus_usage' = false
14 Nov 14:46:31 - [info] [function:traitement des variables] Variable globale 'mqttadresse' = 192.168.1.96
14 Nov 14:46:31 - [info] [function:traitement des variables] Variable globale 'mqttport' = 1883
14 Nov 14:46:31 - [info] [function:traitement des variables] Variable globale 'mqttuser' = mqtt
14 Nov 14:46:31 - [info] [function:traitement des variables] Variable globale 'mqttpass' = •••••••••
14 Nov 14:46:35 - [info] [mqtt-broker:56f7b2737cce493b] Connected to broker: mqtt://192.168.1.96:1883
Bonjour,
Alors vu que tu utilises une passerelle, pas besoin de modifier le jkbms_pathpar défaut. Mais c'est pas important.
Peux-tu vérifier que tu es bien à la dernière version d'hier v3.3.3 C'est important, car j'ai amené beaucoup de modifications concernant les passerelles IP
Peux-tu installer et utiliser l'application serial wifi terminal pour vérifier qu'il y a bien un dialogue régulier entre le module et la passerelle
Agrandir le buffer dédié dans la configuration du Elfin. Par contre tu ne m'as pas dit si c'est un Elfin EE10 ou EW10
Le debug ne montre rien dans le log ?
Hello,
Since you are using a gateway, there is no need to change the default jkbms_path. But that's not important.
Can you check that you have the latest version from yesterday, v3.3.3? This is important because I have made a lot of changes concerning IP gateways.
Can you install and use the serial wifi terminal application to check that there is regular communication between the module and the gateway?
Enlarge the dedicated buffer in the Elfin configuration. However, you didn't tell me if it's an Elfin EE10 or EW10.
So I don't see the log concerning the link with the NAS in the subject.
Have you been able to check with the serial wifi terminal application whether there is indeed a dialogue between the Elfin and the module?
Debugging does not yet work in BMS Master mode, only in the mode where each BMS has a unique address and the module is the bus master.
Please get back to us with a little more information, as it is not possible to make a diagnosis at this stage.
The Elfin should be working perfectly, I have no doubt about that.
Have you thought about checking the MQTT broker to see if the topics are being sent by the JK module?
(18-11-2025, 12:07 PM)RiaanH a écrit : Good afternoon Jean-Luc,
First off let me start by thanking you for all the effort.
I do however have a few questions in trying to get this going:
I cannot get it to use TCP, although gateway is working through other tests. What do I need to change for the USB, as one cannot remove the data there.
EDIT: Managed to get the TCP operational, from yaml editor changed usb descriptor to IP and port, thank you
Then I found the following:
I have a 15cell battery, so JK app reports 15 and all the rest fine.
But through the Add-on, it uses 16cell and thus work out the average and delta from that, so average gives 15 cell data plus 0 and divide by 16, and delta take the value between 0V and eg 3.5, and report delta as 3.5.
Thanks again and kind regards
Riaan
Bonsoir Riaan
Thank you for your encouragement.
Indeed, the USB port field is not taken into account when the IP gateway is enabled.
But I can't hide the field in the graphical configuration interface when the gateway is enabled.
Unfortunately, the controls are limited when it comes to managing these fields.
As I wrote to you on GitHub, I have taken note of your comment.
Once the major development work has been completed, I will be able to focus on this,but for the moment it is not possible.
So, calculating averages using templates is indeed the solution.
See you soon.
Jean-Luc
The following 1 user Likes jlm's post:1 user Likes jlm's post • RiaanH
I replaced the Elfin EL41B with the Elfin EL11A-0.
It started working immediately.
I'm off to make a donation, thanks for your work.
I recommend adding "Elfin EL41B" to your documentation as a serial-to-wifi that will NOT work (keep in mind the EL41B worked with another project so it is most likely some incompatibility in your software and the EL41B).
EVERY setting in my setup was identical, the ONLY thing that I changed was the Elfin unit. I used the same RJ45 cable/power/etc. I didn't change any settings in your app, or on my network. I configured the EL11 identically to the EL41 (it has an identical web interface, with identical screens and settings, and the hardware itself looks nearly identical to an EL41).
05-12-2025, 11:38 PM (Modification du message : 05-12-2025, 11:44 PM par brachux.)
Hi, thanks for great work you have done!! I have an interesting behavior that I don't know how to solve, maybe it is already known bug?
Add-on version: 3.3.10
You are running the latest version of this add-on.
System: Home Assistant OS 16.3 (amd64 / qemux86-64)
Home Assistant Core: 2025.12.0
Home Assistant Supervisor: 2025.12.2
I am using a Waveshare RS485 TO POE ETH (B)
and connecting to 4pcs of JK BMS with one of them as master 0000 because of CAN connection to Victron system. Two JK are V15 and two V19.
In logs there are always:
5 Dec 23:29:24 - [warn] [function:BMS-Nb] BMS Nb: 0 is alive
5 Dec 23:29:25 - [warn] [function:BMS-Nb] BMS Nb: 1 is alive
5 Dec 23:29:25 - [warn] [function:BMS-Nb] BMS Nb: 2 is alive
5 Dec 23:29:26 - [warn] [function:BMS-Nb] BMS Nb: 3 is alive
My problem is that all the data from 4 batteries are put on same mqtt BMS master topic. There are no 4 separate MQTT devices, only one master, who receives every 5 seconds data 4 times and put on same entity.
You can see also in attached image that one of entities that shows device address all the time changes on received data.