diff --git a/esp32-S3-example-jkpb-rs485_0master_2slaves.yaml b/esp32-S3-example-jkpb-rs485_0master_2slaves.yaml index 31608298..7e733aba 100644 --- a/esp32-S3-example-jkpb-rs485_0master_2slaves.yaml +++ b/esp32-S3-example-jkpb-rs485_0master_2slaves.yaml @@ -39,7 +39,7 @@ esphome: comment: ${device_description} project: name: "txubelaxu.esphome-jk-bms" - version: 1.3.1 + version: 2.0.1 # libraries: # - "ArduinoJson" # includes: diff --git a/esp32-S3-example-jkpb-rs485_0master_7slaves.yaml b/esp32-S3-example-jkpb-rs485_0master_7slaves.yaml index 3469c7e5..3ca9f15d 100644 --- a/esp32-S3-example-jkpb-rs485_0master_7slaves.yaml +++ b/esp32-S3-example-jkpb-rs485_0master_7slaves.yaml @@ -45,7 +45,7 @@ esphome: comment: ${device_description} project: name: "txubelaxu.esphome-jk-bms" - version: 1.3.1 + version: 2.0.1 # libraries: # - "ArduinoJson" # includes: diff --git a/esp32-S3-example-jkpb-rs485_1master_6slaves.yaml b/esp32-S3-example-jkpb-rs485_1master_6slaves.yaml new file mode 100644 index 00000000..f7270635 --- /dev/null +++ b/esp32-S3-example-jkpb-rs485_1master_6slaves.yaml @@ -0,0 +1,3003 @@ +substitutions: + esp_name: esp-rs485-gw + bms0_name: rs485-bms0 + bms1_name: rs485-bms1 + bms2_name: rs485-bms2 + bms3_name: rs485-bms3 + bms4_name: rs485-bms4 + bms5_name: rs485-bms5 + bms6_name: rs485-bms6 + + device_description: "Monitor two JK-BMS via RS485 internal" + external_components_source: github://txubelaxu/esphome-jk-bms@main #github://syssi/esphome-jk-bms@main + tx_pin_uart_0: GPIO17 #GPIO1 #GPIO16 + rx_pin_uart_0: GPIO18 #GPIO3 #GPIO17 + talk_pin_rs485: GPIO4 + +esp32: + #board: ESP32S3 #esp32-s3-devkitc-1 #nodemcu-32s #wemos_d1_mini32 + framework: + type: esp-idf + board: esp32-s3-devkitc-1 + flash_size: 16MB # ajust according to your ESP32-S3 version + +esphome: + # Standard uses a single line for data, Dual IO uses 2 lines for data. + platformio_options: + board_build.flash_mode: dio # Needed to flash the ESP32-S3 and prevent reboot loop +# build_flags: +# - '-D ARDUINO_LOOP_STACK_SIZE=1024' +# - '-D ARDUINO_LOOP_STACK_SIZE=8192' +# - '-D ARDUINO_LOOP_STACK_SIZE=16384' +# - '-D ARDUINO_LOOP_STACK_SIZE=32768' +# - '-D CONFIG_ARDUINO_LOOP_STACK_SIZE=16384' +# - -DCONFIG_ARDUINO_LOOP_STACK_SIZE=17384 + + on_boot: + then: + - light.turn_on: + id: esp_light + red: 50% + blue: 50% + green: 0% + brightness: 50% + name: ${esp_name} + comment: ${device_description} + project: + name: "txubelaxu.esphome-jk-bms" + version: 2.0.1 +# libraries: +# - "ArduinoJson" +# includes: + #- ./components/ArduinoJson/ArduinoJson.h + #- ./components/ArduinoJson/ArduinoJson.hpp + #- ./components/ArduinoJson/Configuration.hpp +# - ./components/json/json_util.h + + + + + +#esp8266: +# board: d1_mini + +external_components: +# - source: ${external_components_source} +# refresh: 0s + #- source: + # type: git + # url: https://github.com/txubelaxu/esphome-jk-bms/ + # ref: dev + # components: [ json ] + + #- source: ./components + # refresh: 0s + # components: [ jk_rs485_sniffer , jk_rs485_bms ] + + - source: ${external_components_source} + refresh: 0s + components: [ jk_rs485_sniffer , jk_rs485_bms ] +wifi: + ssid: !secret wifi_ssid + password: !secret wifi_password + + +ota: + platform: esphome + +api: + +logger: + level: DEBUG #VERBOSE #DEBUG #INFO #VERY_VERBOSE #VERBOSE #DEBUG #INFO #DEBUG + tx_buffer_size: 2048 + +# If you use Home Assistant please remove this `mqtt` section and uncomment the `api` component! +# The native API has many advantages over MQTT: https://esphome.io/components/api.html#advantages-over-mqtt +#mqtt: +# broker: !secret mqtt_host +# username: !secret mqtt_username +# password: !secret mqtt_password +# id: mqtt_client +# log_topic: null + +#web_server: +# local: true +# port: 80 +# auth: +# username: !secret web_server_user +# password: !secret web_server_password + +uart: + - id: uart_0 + baud_rate: 115200 + rx_buffer_size: 500 + tx_pin: ${tx_pin_uart_0} + rx_pin: ${rx_pin_uart_0} + +jk_rs485_sniffer: + - id: sniffer0 + protocol_version: "JK02_32S" + rx_timeout: 500ms + uart_id: uart_0 + talk_pin: ${talk_pin_rs485} + +jk_rs485_bms: + - id: bms0 + rs485_address: 0x00 + jk_rs485_sniffer_id: sniffer0 + update_interval: 180s + - id: bms1 + rs485_address: 0x01 + jk_rs485_sniffer_id: sniffer0 + update_interval: 180s + - id: bms2 + rs485_address: 0x02 + jk_rs485_sniffer_id: sniffer0 + update_interval: 180s + - id: bms3 + rs485_address: 0x03 + jk_rs485_sniffer_id: sniffer0 + update_interval: 180s + - id: bms4 + rs485_address: 0x04 + jk_rs485_sniffer_id: sniffer0 + update_interval: 180s + - id: bms5 + rs485_address: 0x05 + jk_rs485_sniffer_id: sniffer0 + update_interval: 180s + - id: bms6 + rs485_address: 0x06 + jk_rs485_sniffer_id: sniffer0 + update_interval: 180s + +binary_sensor: + - platform: jk_rs485_bms + jk_rs485_bms_id: bms0 + status_balancing: + name: "${bms0_name} status balancing" + status_precharging: + name: "${bms0_name} status precharging" + status_charging: + name: "${bms0_name} status charging" + status_discharging: + name: "${bms0_name} status discharging" + status_online: + name: "${bms0_name} status online" + status_heating: + name: "${bms0_name} status heating" + alarm_wireres: + name: "${bms0_name} alarm WireRes" + alarm_mosotp: + name: "${bms0_name} alarm MosOTP" + alarm_cellquantity: + name: "${bms0_name} alarm CellQuantity" + alarm_cursensorerr: + name: "${bms0_name} alarm CurSensorErr" + alarm_cellovp: + name: "${bms0_name} alarm CellOVP" + alarm_batovp: + name: "${bms0_name} alarm BatOVP" + alarm_chocp: + name: "${bms0_name} alarm ChOCP" + alarm_chscp: + name: "${bms0_name} alarm ChSCP" + alarm_chotp: + name: "${bms0_name} alarm ChOTP" + alarm_chutp: + name: "${bms0_name} alarm ChUTP" + alarm_cpuauxcommuerr: + name: "${bms0_name} alarm CPUAuxCommuErr" + alarm_celluvp: + name: "${bms0_name} alarm CellUVP" + alarm_batuvp: + name: "${bms0_name} alarm BatUVP" + alarm_dchocp: + name: "${bms0_name} alarm DchOCP" + alarm_dchscp: + name: "${bms0_name} alarm DchSCP" + alarm_dchotp: + name: "${bms0_name} alarm DchOTP" + alarm_chargemos: + name: "${bms0_name} alarm ChargeMOS" + alarm_dischargemos: + name: "${bms0_name} alarm DischargeMOS" + alarm_gpsdisconneted: + name: "${bms0_name} alarm GPSDisconneted" + alarm_modifypwdintime: + name: "${bms0_name} alarm ModifyPWDinTime" + alarm_dischargeonfailed: + name: "${bms0_name} alarm DischargeOnFailed" + alarm_batteryovertemp: + name: "${bms0_name} alarm BatteryOverTemp" + alarm_temperaturesensoranomaly: + name: "${bms0_name} alarm TemperatureSensorAnomaly" + alarm_plcmoduleanomaly: + name: "${bms0_name} alarm PLCModuleAnomaly" + alarm_mostempsensorabsent: + name: "${bms0_name} alarm MOSTempSensorAbsent" + alarm_battempsensor1absent: + name: "${bms0_name} alarm BATTempSensor1Absent" + alarm_battempsensor2absent: + name: "${bms0_name} alarm BATTempSensor2Absent" + alarm_battempsensor3absent: + name: "${bms0_name} alarm BATTempSensor3Absent" + alarm_battempsensor4absent: + name: "${bms0_name} alarm BATTempSensor4Absent" + alarm_battempsensor5absent: + name: "${bms0_name} alarm BATTempSensor5Absent" + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms1 + status_balancing: + name: "${bms1_name} status balancing" + status_precharging: + name: "${bms1_name} status precharging" + status_charging: + name: "${bms1_name} status charging" + status_discharging: + name: "${bms1_name} status discharging" + status_online: + name: "${bms1_name} status online" + status_heating: + name: "${bms1_name} status heating" + alarm_wireres: + name: "${bms1_name} alarm WireRes" + alarm_mosotp: + name: "${bms1_name} alarm MosOTP" + alarm_cellquantity: + name: "${bms1_name} alarm CellQuantity" + alarm_cursensorerr: + name: "${bms1_name} alarm CurSensorErr" + alarm_cellovp: + name: "${bms1_name} alarm CellOVP" + alarm_batovp: + name: "${bms1_name} alarm BatOVP" + alarm_chocp: + name: "${bms1_name} alarm ChOCP" + alarm_chscp: + name: "${bms1_name} alarm ChSCP" + alarm_chotp: + name: "${bms1_name} alarm ChOTP" + alarm_chutp: + name: "${bms1_name} alarm ChUTP" + alarm_cpuauxcommuerr: + name: "${bms1_name} alarm CPUAuxCommuErr" + alarm_celluvp: + name: "${bms1_name} alarm CellUVP" + alarm_batuvp: + name: "${bms1_name} alarm BatUVP" + alarm_dchocp: + name: "${bms1_name} alarm DchOCP" + alarm_dchscp: + name: "${bms1_name} alarm DchSCP" + alarm_dchotp: + name: "${bms1_name} alarm DchOTP" + alarm_chargemos: + name: "${bms1_name} alarm ChargeMOS" + alarm_dischargemos: + name: "${bms1_name} alarm DischargeMOS" + alarm_gpsdisconneted: + name: "${bms1_name} alarm GPSDisconneted" + alarm_modifypwdintime: + name: "${bms1_name} alarm ModifyPWDinTime" + alarm_dischargeonfailed: + name: "${bms1_name} alarm DischargeOnFailed" + alarm_batteryovertemp: + name: "${bms1_name} alarm BatteryOverTemp" + alarm_temperaturesensoranomaly: + name: "${bms1_name} alarm TemperatureSensorAnomaly" + alarm_plcmoduleanomaly: + name: "${bms1_name} alarm PLCModuleAnomaly" + alarm_mostempsensorabsent: + name: "${bms1_name} alarm MOSTempSensorAbsent" + alarm_battempsensor1absent: + name: "${bms1_name} alarm BATTempSensor1Absent" + alarm_battempsensor2absent: + name: "${bms1_name} alarm BATTempSensor2Absent" + alarm_battempsensor3absent: + name: "${bms1_name} alarm BATTempSensor3Absent" + alarm_battempsensor4absent: + name: "${bms1_name} alarm BATTempSensor4Absent" + alarm_battempsensor5absent: + name: "${bms1_name} alarm BATTempSensor5Absent" + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms2 + status_balancing: + name: "${bms2_name} status balancing" + status_precharging: + name: "${bms2_name} status precharging" + status_charging: + name: "${bms2_name} status charging" + status_discharging: + name: "${bms2_name} status discharging" + status_online: + name: "${bms2_name} status online" + status_heating: + name: "${bms2_name} status heating" + alarm_wireres: + name: "${bms2_name} alarm WireRes" + alarm_mosotp: + name: "${bms2_name} alarm MosOTP" + alarm_cellquantity: + name: "${bms2_name} alarm CellQuantity" + alarm_cursensorerr: + name: "${bms2_name} alarm CurSensorErr" + alarm_cellovp: + name: "${bms2_name} alarm CellOVP" + alarm_batovp: + name: "${bms2_name} alarm BatOVP" + alarm_chocp: + name: "${bms2_name} alarm ChOCP" + alarm_chscp: + name: "${bms2_name} alarm ChSCP" + alarm_chotp: + name: "${bms2_name} alarm ChOTP" + alarm_chutp: + name: "${bms2_name} alarm ChUTP" + alarm_cpuauxcommuerr: + name: "${bms2_name} alarm CPUAuxCommuErr" + alarm_celluvp: + name: "${bms2_name} alarm CellUVP" + alarm_batuvp: + name: "${bms2_name} alarm BatUVP" + alarm_dchocp: + name: "${bms2_name} alarm DchOCP" + alarm_dchscp: + name: "${bms2_name} alarm DchSCP" + alarm_dchotp: + name: "${bms2_name} alarm DchOTP" + alarm_chargemos: + name: "${bms2_name} alarm ChargeMOS" + alarm_dischargemos: + name: "${bms2_name} alarm DischargeMOS" + alarm_gpsdisconneted: + name: "${bms2_name} alarm GPSDisconneted" + alarm_modifypwdintime: + name: "${bms2_name} alarm ModifyPWDinTime" + alarm_dischargeonfailed: + name: "${bms2_name} alarm DischargeOnFailed" + alarm_batteryovertemp: + name: "${bms2_name} alarm BatteryOverTemp" + alarm_temperaturesensoranomaly: + name: "${bms2_name} alarm TemperatureSensorAnomaly" + alarm_plcmoduleanomaly: + name: "${bms2_name} alarm PLCModuleAnomaly" + alarm_mostempsensorabsent: + name: "${bms2_name} alarm MOSTempSensorAbsent" + alarm_battempsensor1absent: + name: "${bms2_name} alarm BATTempSensor1Absent" + alarm_battempsensor2absent: + name: "${bms2_name} alarm BATTempSensor2Absent" + alarm_battempsensor3absent: + name: "${bms2_name} alarm BATTempSensor3Absent" + alarm_battempsensor4absent: + name: "${bms2_name} alarm BATTempSensor4Absent" + alarm_battempsensor5absent: + name: "${bms2_name} alarm BATTempSensor5Absent" + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms3 + status_balancing: + name: "${bms3_name} status balancing" + status_precharging: + name: "${bms3_name} status precharging" + status_charging: + name: "${bms3_name} status charging" + status_discharging: + name: "${bms3_name} status discharging" + status_online: + name: "${bms3_name} status online" + status_heating: + name: "${bms3_name} status heating" + alarm_wireres: + name: "${bms3_name} alarm WireRes" + alarm_mosotp: + name: "${bms3_name} alarm MosOTP" + alarm_cellquantity: + name: "${bms3_name} alarm CellQuantity" + alarm_cursensorerr: + name: "${bms3_name} alarm CurSensorErr" + alarm_cellovp: + name: "${bms3_name} alarm CellOVP" + alarm_batovp: + name: "${bms3_name} alarm BatOVP" + alarm_chocp: + name: "${bms3_name} alarm ChOCP" + alarm_chscp: + name: "${bms3_name} alarm ChSCP" + alarm_chotp: + name: "${bms3_name} alarm ChOTP" + alarm_chutp: + name: "${bms3_name} alarm ChUTP" + alarm_cpuauxcommuerr: + name: "${bms3_name} alarm CPUAuxCommuErr" + alarm_celluvp: + name: "${bms3_name} alarm CellUVP" + alarm_batuvp: + name: "${bms3_name} alarm BatUVP" + alarm_dchocp: + name: "${bms3_name} alarm DchOCP" + alarm_dchscp: + name: "${bms3_name} alarm DchSCP" + alarm_dchotp: + name: "${bms3_name} alarm DchOTP" + alarm_chargemos: + name: "${bms3_name} alarm ChargeMOS" + alarm_dischargemos: + name: "${bms3_name} alarm DischargeMOS" + alarm_gpsdisconneted: + name: "${bms3_name} alarm GPSDisconneted" + alarm_modifypwdintime: + name: "${bms3_name} alarm ModifyPWDinTime" + alarm_dischargeonfailed: + name: "${bms3_name} alarm DischargeOnFailed" + alarm_batteryovertemp: + name: "${bms3_name} alarm BatteryOverTemp" + alarm_temperaturesensoranomaly: + name: "${bms3_name} alarm TemperatureSensorAnomaly" + alarm_plcmoduleanomaly: + name: "${bms3_name} alarm PLCModuleAnomaly" + alarm_mostempsensorabsent: + name: "${bms3_name} alarm MOSTempSensorAbsent" + alarm_battempsensor1absent: + name: "${bms3_name} alarm BATTempSensor1Absent" + alarm_battempsensor2absent: + name: "${bms3_name} alarm BATTempSensor2Absent" + alarm_battempsensor3absent: + name: "${bms3_name} alarm BATTempSensor3Absent" + alarm_battempsensor4absent: + name: "${bms3_name} alarm BATTempSensor4Absent" + alarm_battempsensor5absent: + name: "${bms3_name} alarm BATTempSensor5Absent" + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms4 + status_balancing: + name: "${bms4_name} status balancing" + status_precharging: + name: "${bms4_name} status precharging" + status_charging: + name: "${bms4_name} status charging" + status_discharging: + name: "${bms4_name} status discharging" + status_online: + name: "${bms4_name} status online" + status_heating: + name: "${bms4_name} status heating" + alarm_wireres: + name: "${bms4_name} alarm WireRes" + alarm_mosotp: + name: "${bms4_name} alarm MosOTP" + alarm_cellquantity: + name: "${bms4_name} alarm CellQuantity" + alarm_cursensorerr: + name: "${bms4_name} alarm CurSensorErr" + alarm_cellovp: + name: "${bms4_name} alarm CellOVP" + alarm_batovp: + name: "${bms4_name} alarm BatOVP" + alarm_chocp: + name: "${bms4_name} alarm ChOCP" + alarm_chscp: + name: "${bms4_name} alarm ChSCP" + alarm_chotp: + name: "${bms4_name} alarm ChOTP" + alarm_chutp: + name: "${bms4_name} alarm ChUTP" + alarm_cpuauxcommuerr: + name: "${bms4_name} alarm CPUAuxCommuErr" + alarm_celluvp: + name: "${bms4_name} alarm CellUVP" + alarm_batuvp: + name: "${bms4_name} alarm BatUVP" + alarm_dchocp: + name: "${bms4_name} alarm DchOCP" + alarm_dchscp: + name: "${bms4_name} alarm DchSCP" + alarm_dchotp: + name: "${bms4_name} alarm DchOTP" + alarm_chargemos: + name: "${bms4_name} alarm ChargeMOS" + alarm_dischargemos: + name: "${bms4_name} alarm DischargeMOS" + alarm_gpsdisconneted: + name: "${bms4_name} alarm GPSDisconneted" + alarm_modifypwdintime: + name: "${bms4_name} alarm ModifyPWDinTime" + alarm_dischargeonfailed: + name: "${bms4_name} alarm DischargeOnFailed" + alarm_batteryovertemp: + name: "${bms4_name} alarm BatteryOverTemp" + alarm_temperaturesensoranomaly: + name: "${bms4_name} alarm TemperatureSensorAnomaly" + alarm_plcmoduleanomaly: + name: "${bms4_name} alarm PLCModuleAnomaly" + alarm_mostempsensorabsent: + name: "${bms4_name} alarm MOSTempSensorAbsent" + alarm_battempsensor1absent: + name: "${bms4_name} alarm BATTempSensor1Absent" + alarm_battempsensor2absent: + name: "${bms4_name} alarm BATTempSensor2Absent" + alarm_battempsensor3absent: + name: "${bms4_name} alarm BATTempSensor3Absent" + alarm_battempsensor4absent: + name: "${bms4_name} alarm BATTempSensor4Absent" + alarm_battempsensor5absent: + name: "${bms4_name} alarm BATTempSensor5Absent" + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms5 + status_balancing: + name: "${bms5_name} status balancing" + status_precharging: + name: "${bms5_name} status precharging" + status_charging: + name: "${bms5_name} status charging" + status_discharging: + name: "${bms5_name} status discharging" + status_online: + name: "${bms5_name} status online" + status_heating: + name: "${bms5_name} status heating" + alarm_wireres: + name: "${bms5_name} alarm WireRes" + alarm_mosotp: + name: "${bms5_name} alarm MosOTP" + alarm_cellquantity: + name: "${bms5_name} alarm CellQuantity" + alarm_cursensorerr: + name: "${bms5_name} alarm CurSensorErr" + alarm_cellovp: + name: "${bms5_name} alarm CellOVP" + alarm_batovp: + name: "${bms5_name} alarm BatOVP" + alarm_chocp: + name: "${bms5_name} alarm ChOCP" + alarm_chscp: + name: "${bms5_name} alarm ChSCP" + alarm_chotp: + name: "${bms5_name} alarm ChOTP" + alarm_chutp: + name: "${bms5_name} alarm ChUTP" + alarm_cpuauxcommuerr: + name: "${bms5_name} alarm CPUAuxCommuErr" + alarm_celluvp: + name: "${bms5_name} alarm CellUVP" + alarm_batuvp: + name: "${bms5_name} alarm BatUVP" + alarm_dchocp: + name: "${bms5_name} alarm DchOCP" + alarm_dchscp: + name: "${bms5_name} alarm DchSCP" + alarm_dchotp: + name: "${bms5_name} alarm DchOTP" + alarm_chargemos: + name: "${bms5_name} alarm ChargeMOS" + alarm_dischargemos: + name: "${bms5_name} alarm DischargeMOS" + alarm_gpsdisconneted: + name: "${bms5_name} alarm GPSDisconneted" + alarm_modifypwdintime: + name: "${bms5_name} alarm ModifyPWDinTime" + alarm_dischargeonfailed: + name: "${bms5_name} alarm DischargeOnFailed" + alarm_batteryovertemp: + name: "${bms5_name} alarm BatteryOverTemp" + alarm_temperaturesensoranomaly: + name: "${bms5_name} alarm TemperatureSensorAnomaly" + alarm_plcmoduleanomaly: + name: "${bms5_name} alarm PLCModuleAnomaly" + alarm_mostempsensorabsent: + name: "${bms5_name} alarm MOSTempSensorAbsent" + alarm_battempsensor1absent: + name: "${bms5_name} alarm BATTempSensor1Absent" + alarm_battempsensor2absent: + name: "${bms5_name} alarm BATTempSensor2Absent" + alarm_battempsensor3absent: + name: "${bms5_name} alarm BATTempSensor3Absent" + alarm_battempsensor4absent: + name: "${bms5_name} alarm BATTempSensor4Absent" + alarm_battempsensor5absent: + name: "${bms5_name} alarm BATTempSensor5Absent" + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms6 + status_balancing: + name: "${bms6_name} status balancing" + status_precharging: + name: "${bms6_name} status precharging" + status_charging: + name: "${bms6_name} status charging" + status_discharging: + name: "${bms6_name} status discharging" + status_online: + name: "${bms6_name} status online" + status_heating: + name: "${bms6_name} status heating" + alarm_wireres: + name: "${bms6_name} alarm WireRes" + alarm_mosotp: + name: "${bms6_name} alarm MosOTP" + alarm_cellquantity: + name: "${bms6_name} alarm CellQuantity" + alarm_cursensorerr: + name: "${bms6_name} alarm CurSensorErr" + alarm_cellovp: + name: "${bms6_name} alarm CellOVP" + alarm_batovp: + name: "${bms6_name} alarm BatOVP" + alarm_chocp: + name: "${bms6_name} alarm ChOCP" + alarm_chscp: + name: "${bms6_name} alarm ChSCP" + alarm_chotp: + name: "${bms6_name} alarm ChOTP" + alarm_chutp: + name: "${bms6_name} alarm ChUTP" + alarm_cpuauxcommuerr: + name: "${bms6_name} alarm CPUAuxCommuErr" + alarm_celluvp: + name: "${bms6_name} alarm CellUVP" + alarm_batuvp: + name: "${bms6_name} alarm BatUVP" + alarm_dchocp: + name: "${bms6_name} alarm DchOCP" + alarm_dchscp: + name: "${bms6_name} alarm DchSCP" + alarm_dchotp: + name: "${bms6_name} alarm DchOTP" + alarm_chargemos: + name: "${bms6_name} alarm ChargeMOS" + alarm_dischargemos: + name: "${bms6_name} alarm DischargeMOS" + alarm_gpsdisconneted: + name: "${bms6_name} alarm GPSDisconneted" + alarm_modifypwdintime: + name: "${bms6_name} alarm ModifyPWDinTime" + alarm_dischargeonfailed: + name: "${bms6_name} alarm DischargeOnFailed" + alarm_batteryovertemp: + name: "${bms6_name} alarm BatteryOverTemp" + alarm_temperaturesensoranomaly: + name: "${bms6_name} alarm TemperatureSensorAnomaly" + alarm_plcmoduleanomaly: + name: "${bms6_name} alarm PLCModuleAnomaly" + alarm_mostempsensorabsent: + name: "${bms6_name} alarm MOSTempSensorAbsent" + alarm_battempsensor1absent: + name: "${bms6_name} alarm BATTempSensor1Absent" + alarm_battempsensor2absent: + name: "${bms6_name} alarm BATTempSensor2Absent" + alarm_battempsensor3absent: + name: "${bms6_name} alarm BATTempSensor3Absent" + alarm_battempsensor4absent: + name: "${bms6_name} alarm BATTempSensor4Absent" + alarm_battempsensor5absent: + name: "${bms6_name} alarm BATTempSensor5Absent" + + + +sensor: + - platform: uptime + id: uptime_sec + # +--------------------------------------+ + # | Uptime sensor | + # +--------------------------------------+ + - platform: uptime + name: ${esp_name} Uptime Sensor + id: uptime_sensor + update_interval: 5s + entity_category: diagnostic + on_raw_value: + then: + - text_sensor.template.publish: + id: uptime_human + state: !lambda |- + char buf[10]; + int uptime_sec = round(id(uptime_sensor).raw_state); + int days = (int)(uptime_sec / 86400); + int hours = (int)((uptime_sec % 86400) / 3600); + int minutes = (int)((uptime_sec % 3600) / 60); + int seconds = (int)(uptime_sec % 60); + + return( + ( + (days ? sprintf(buf, "%02dd ", days), std::string(buf) : "") + + (hours ? sprintf(buf, "%02dh ", hours), std::string(buf) : "") + + (minutes ? sprintf(buf, "%02dm ", minutes), std::string(buf) : "") + + (sprintf(buf, "%02ds", seconds), std::string(buf)) + ).c_str() + ); + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms0 + balancing_direction: + name: "${bms0_name} balancing direction" + cell_voltage_min: + name: "${bms0_name} cell voltage min" + cell_voltage_max: + name: "${bms0_name} cell voltage max" + cell_voltage_min_cell_number: + name: "${bms0_name} cell voltage min cell number" + cell_voltage_max_cell_number: + name: "${bms0_name} cell voltage max cell number" + cell_delta_voltage: + name: "${bms0_name} cell delta voltage" + cell_average_voltage: + name: "${bms0_name} cell average voltage" + cell_resistance_min: + name: "${bms0_name} cell resistance min" + cell_resistance_max: + name: "${bms0_name} cell resistance max" + cell_resistance_min_cell_number: + name: "${bms0_name} cell resistance min cell number" + cell_resistance_max_cell_number: + name: "${bms0_name} cell resistance max cell number" + cell_voltage_01: + name: "${bms0_name} cell voltage 01" + cell_voltage_02: + name: "${bms0_name} cell voltage 02" + cell_voltage_03: + name: "${bms0_name} cell voltage 03" + cell_voltage_04: + name: "${bms0_name} cell voltage 04" + cell_voltage_05: + name: "${bms0_name} cell voltage 05" + cell_voltage_06: + name: "${bms0_name} cell voltage 06" + cell_voltage_07: + name: "${bms0_name} cell voltage 07" + cell_voltage_08: + name: "${bms0_name} cell voltage 08" + cell_voltage_09: + name: "${bms0_name} cell voltage 09" + cell_voltage_10: + name: "${bms0_name} cell voltage 10" + cell_voltage_11: + name: "${bms0_name} cell voltage 11" + cell_voltage_12: + name: "${bms0_name} cell voltage 12" + cell_voltage_13: + name: "${bms0_name} cell voltage 13" + cell_voltage_14: + name: "${bms0_name} cell voltage 14" + cell_voltage_15: + name: "${bms0_name} cell voltage 15" + cell_voltage_16: + name: "${bms0_name} cell voltage 16" + cell_voltage_17: + name: "${bms0_name} cell voltage 17" + cell_voltage_18: + name: "${bms0_name} cell voltage 18" + cell_voltage_19: + name: "${bms0_name} cell voltage 19" + cell_voltage_20: + name: "${bms0_name} cell voltage 20" + cell_voltage_21: + name: "${bms0_name} cell voltage 21" + cell_voltage_22: + name: "${bms0_name} cell voltage 22" + cell_voltage_23: + name: "${bms0_name} cell voltage 23" + cell_voltage_24: + name: "${bms0_name} cell voltage 24" + cell_resistance_01: + name: "${bms0_name} cell resistance 01" + cell_resistance_02: + name: "${bms0_name} cell resistance 02" + cell_resistance_03: + name: "${bms0_name} cell resistance 03" + cell_resistance_04: + name: "${bms0_name} cell resistance 04" + cell_resistance_05: + name: "${bms0_name} cell resistance 05" + cell_resistance_06: + name: "${bms0_name} cell resistance 06" + cell_resistance_07: + name: "${bms0_name} cell resistance 07" + cell_resistance_08: + name: "${bms0_name} cell resistance 08" + cell_resistance_09: + name: "${bms0_name} cell resistance 09" + cell_resistance_10: + name: "${bms0_name} cell resistance 10" + cell_resistance_11: + name: "${bms0_name} cell resistance 11" + cell_resistance_12: + name: "${bms0_name} cell resistance 12" + cell_resistance_13: + name: "${bms0_name} cell resistance 13" + cell_resistance_14: + name: "${bms0_name} cell resistance 14" + cell_resistance_15: + name: "${bms0_name} cell resistance 15" + cell_resistance_16: + name: "${bms0_name} cell resistance 16" + cell_resistance_17: + name: "${bms0_name} cell resistance 17" + cell_resistance_18: + name: "${bms0_name} cell resistance 18" + cell_resistance_19: + name: "${bms0_name} cell resistance 19" + cell_resistance_20: + name: "${bms0_name} cell resistance 20" + cell_resistance_21: + name: "${bms0_name} cell resistance 21" + cell_resistance_22: + name: "${bms0_name} cell resistance 22" + cell_resistance_23: + name: "${bms0_name} cell resistance 23" + cell_resistance_24: + name: "${bms0_name} cell resistance 24" + battery_voltage: + name: "${bms0_name} battery voltage" + battery_current: + name: "${bms0_name} battery current" + battery_power: + name: "${bms0_name} battery power" + battery_power_charging: + name: "${bms0_name} battery power charging" + battery_power_discharging: + name: "${bms0_name} battery power discharging" + temperature_sensor_1: + name: "${bms0_name} temperature sensor 1" + temperature_sensor_2: + name: "${bms0_name} temperature sensor 2" + temperature_sensor_3: + name: "${bms0_name} temperature sensor 3" + temperature_sensor_4: + name: "${bms0_name} temperature sensor 4" + temperature_sensor_5: + name: "${bms0_name} temperature sensor 5" + temperature_powertube: + name: "${bms0_name} temperature powertube" + battery_capacity_state_of_charge: + name: "${bms0_name} battery capacity state of charge" + battery_capacity_remaining: + name: "${bms0_name} battery capacity remaining" + charging_cycles: + name: "${bms0_name} charging cycles" + battery_capacity_total_charging_cycle: + name: "${bms0_name} battery capacity total charging cycle" + battery_total_runtime: + name: "${bms0_name} battery total runtime" + balancing_current: + name: "${bms0_name} balancing current" + errors_bitmask: + name: "${bms0_name} errors bitmask" + cell_count_real: + name: "${bms0_name} cell count real" + smart_sleep_time: + name: "${bms0_name} smart sleep time" + powertube_temperature_protection: + name: "${bms0_name} powertube temperature protection" + powertube_temperature_protection_recovery: + name: "${bms0_name} powertube temperature protection recovery" + battery_total_alarms_count: + name: "${bms0_name} battery total alarms count" + battery_total_alarms_active: + name: "${bms0_name} battery total alarms active" + emergency_time_countdown: + name: "${bms0_name} emergency time countdown" + uart1_protocol_number: + name: "${bms0_name} uart1 protocol number" + uart2_protocol_number: + name: "${bms0_name} uart2 protocol number" + battery_soh_valuation: + name: "${bms0_name} battery soh valuation" + discharging_overcurrent_protection_release_time: + name: "${bms0_name} discharging overcurrent protection release time" + discharging_short_circuit_protection_release_time: + name: "${bms0_name} discharging short circuit protection release time" + charging_overcurrent_protection_release_time: + name: "${bms0_name} charging overcurrent protection release time" + charging_short_circuit_protection_release_time: + name: "${bms0_name} charging short circuit protection release time" + cell_undervoltage_protection_release_time: + name: "${bms0_name} cell undervoltage protection release time" + cell_overvoltage_protection_release_time: + name: "${bms0_name} cell overvoltage protection release time" + + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms1 + balancing_direction: + name: "${bms1_name} balancing direction" + cell_voltage_min: + name: "${bms1_name} cell voltage min" + cell_voltage_max: + name: "${bms1_name} cell voltage max" + cell_voltage_min_cell_number: + name: "${bms1_name} cell voltage min cell number" + cell_voltage_max_cell_number: + name: "${bms1_name} cell voltage max cell number" + cell_delta_voltage: + name: "${bms1_name} cell delta voltage" + cell_average_voltage: + name: "${bms1_name} cell average voltage" + cell_resistance_min: + name: "${bms1_name} cell resistance min" + cell_resistance_max: + name: "${bms1_name} cell resistance max" + cell_resistance_min_cell_number: + name: "${bms1_name} cell resistance min cell number" + cell_resistance_max_cell_number: + name: "${bms1_name} cell resistance max cell number" + cell_voltage_01: + name: "${bms1_name} cell voltage 01" + cell_voltage_02: + name: "${bms1_name} cell voltage 02" + cell_voltage_03: + name: "${bms1_name} cell voltage 03" + cell_voltage_04: + name: "${bms1_name} cell voltage 04" + cell_voltage_05: + name: "${bms1_name} cell voltage 05" + cell_voltage_06: + name: "${bms1_name} cell voltage 06" + cell_voltage_07: + name: "${bms1_name} cell voltage 07" + cell_voltage_08: + name: "${bms1_name} cell voltage 08" + cell_voltage_09: + name: "${bms1_name} cell voltage 09" + cell_voltage_10: + name: "${bms1_name} cell voltage 10" + cell_voltage_11: + name: "${bms1_name} cell voltage 11" + cell_voltage_12: + name: "${bms1_name} cell voltage 12" + cell_voltage_13: + name: "${bms1_name} cell voltage 13" + cell_voltage_14: + name: "${bms1_name} cell voltage 14" + cell_voltage_15: + name: "${bms1_name} cell voltage 15" + cell_voltage_16: + name: "${bms1_name} cell voltage 16" + cell_voltage_17: + name: "${bms1_name} cell voltage 17" + cell_voltage_18: + name: "${bms1_name} cell voltage 18" + cell_voltage_19: + name: "${bms1_name} cell voltage 19" + cell_voltage_20: + name: "${bms1_name} cell voltage 20" + cell_voltage_21: + name: "${bms1_name} cell voltage 21" + cell_voltage_22: + name: "${bms1_name} cell voltage 22" + cell_voltage_23: + name: "${bms1_name} cell voltage 23" + cell_voltage_24: + name: "${bms1_name} cell voltage 24" + cell_resistance_01: + name: "${bms1_name} cell resistance 01" + cell_resistance_02: + name: "${bms1_name} cell resistance 02" + cell_resistance_03: + name: "${bms1_name} cell resistance 03" + cell_resistance_04: + name: "${bms1_name} cell resistance 04" + cell_resistance_05: + name: "${bms1_name} cell resistance 05" + cell_resistance_06: + name: "${bms1_name} cell resistance 06" + cell_resistance_07: + name: "${bms1_name} cell resistance 07" + cell_resistance_08: + name: "${bms1_name} cell resistance 08" + cell_resistance_09: + name: "${bms1_name} cell resistance 09" + cell_resistance_10: + name: "${bms1_name} cell resistance 10" + cell_resistance_11: + name: "${bms1_name} cell resistance 11" + cell_resistance_12: + name: "${bms1_name} cell resistance 12" + cell_resistance_13: + name: "${bms1_name} cell resistance 13" + cell_resistance_14: + name: "${bms1_name} cell resistance 14" + cell_resistance_15: + name: "${bms1_name} cell resistance 15" + cell_resistance_16: + name: "${bms1_name} cell resistance 16" + cell_resistance_17: + name: "${bms1_name} cell resistance 17" + cell_resistance_18: + name: "${bms1_name} cell resistance 18" + cell_resistance_19: + name: "${bms1_name} cell resistance 19" + cell_resistance_20: + name: "${bms1_name} cell resistance 20" + cell_resistance_21: + name: "${bms1_name} cell resistance 21" + cell_resistance_22: + name: "${bms1_name} cell resistance 22" + cell_resistance_23: + name: "${bms1_name} cell resistance 23" + cell_resistance_24: + name: "${bms1_name} cell resistance 24" + battery_voltage: + name: "${bms1_name} battery voltage" + battery_current: + name: "${bms1_name} battery current" + battery_power: + name: "${bms1_name} battery power" + battery_power_charging: + name: "${bms1_name} battery power charging" + battery_power_discharging: + name: "${bms1_name} battery power discharging" + temperature_sensor_1: + name: "${bms1_name} temperature sensor 1" + temperature_sensor_2: + name: "${bms1_name} temperature sensor 2" + temperature_sensor_3: + name: "${bms1_name} temperature sensor 3" + temperature_sensor_4: + name: "${bms1_name} temperature sensor 4" + temperature_sensor_5: + name: "${bms1_name} temperature sensor 5" + temperature_powertube: + name: "${bms1_name} temperature powertube" + battery_capacity_state_of_charge: + name: "${bms1_name} battery capacity state of charge" + battery_capacity_remaining: + name: "${bms1_name} battery capacity remaining" + charging_cycles: + name: "${bms1_name} charging cycles" + battery_capacity_total_charging_cycle: + name: "${bms1_name} battery capacity total charging cycle" + battery_total_runtime: + name: "${bms1_name} battery total runtime" + balancing_current: + name: "${bms1_name} balancing current" + errors_bitmask: + name: "${bms1_name} errors bitmask" + cell_count_real: + name: "${bms1_name} cell count real" + smart_sleep_time: + name: "${bms1_name} smart sleep time" + powertube_temperature_protection: + name: "${bms1_name} powertube temperature protection" + powertube_temperature_protection_recovery: + name: "${bms1_name} powertube temperature protection recovery" + battery_total_alarms_count: + name: "${bms1_name} battery total alarms count" + battery_total_alarms_active: + name: "${bms1_name} battery total alarms active" + emergency_time_countdown: + name: "${bms1_name} emergency time countdown" + uart1_protocol_number: + name: "${bms1_name} uart1 protocol number" + uart2_protocol_number: + name: "${bms1_name} uart2 protocol number" + battery_soh_valuation: + name: "${bms1_name} battery soh valuation" + discharging_overcurrent_protection_release_time: + name: "${bms1_name} discharging overcurrent protection release time" + discharging_short_circuit_protection_release_time: + name: "${bms1_name} discharging short circuit protection release time" + charging_overcurrent_protection_release_time: + name: "${bms1_name} charging overcurrent protection release time" + charging_short_circuit_protection_release_time: + name: "${bms1_name} charging short circuit protection release time" + cell_undervoltage_protection_release_time: + name: "${bms1_name} cell undervoltage protection release time" + cell_overvoltage_protection_release_time: + name: "${bms1_name} cell overvoltage protection release time" + + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms2 + balancing_direction: + name: "${bms2_name} balancing direction" + cell_voltage_min: + name: "${bms2_name} cell voltage min" + cell_voltage_max: + name: "${bms2_name} cell voltage max" + cell_voltage_min_cell_number: + name: "${bms2_name} cell voltage min cell number" + cell_voltage_max_cell_number: + name: "${bms2_name} cell voltage max cell number" + cell_delta_voltage: + name: "${bms2_name} cell delta voltage" + cell_average_voltage: + name: "${bms2_name} cell average voltage" + cell_resistance_min: + name: "${bms2_name} cell resistance min" + cell_resistance_max: + name: "${bms2_name} cell resistance max" + cell_resistance_min_cell_number: + name: "${bms2_name} cell resistance min cell number" + cell_resistance_max_cell_number: + name: "${bms2_name} cell resistance max cell number" + cell_voltage_01: + name: "${bms2_name} cell voltage 01" + cell_voltage_02: + name: "${bms2_name} cell voltage 02" + cell_voltage_03: + name: "${bms2_name} cell voltage 03" + cell_voltage_04: + name: "${bms2_name} cell voltage 04" + cell_voltage_05: + name: "${bms2_name} cell voltage 05" + cell_voltage_06: + name: "${bms2_name} cell voltage 06" + cell_voltage_07: + name: "${bms2_name} cell voltage 07" + cell_voltage_08: + name: "${bms2_name} cell voltage 08" + cell_voltage_09: + name: "${bms2_name} cell voltage 09" + cell_voltage_10: + name: "${bms2_name} cell voltage 10" + cell_voltage_11: + name: "${bms2_name} cell voltage 11" + cell_voltage_12: + name: "${bms2_name} cell voltage 12" + cell_voltage_13: + name: "${bms2_name} cell voltage 13" + cell_voltage_14: + name: "${bms2_name} cell voltage 14" + cell_voltage_15: + name: "${bms2_name} cell voltage 15" + cell_voltage_16: + name: "${bms2_name} cell voltage 16" + cell_voltage_17: + name: "${bms2_name} cell voltage 17" + cell_voltage_18: + name: "${bms2_name} cell voltage 18" + cell_voltage_19: + name: "${bms2_name} cell voltage 19" + cell_voltage_20: + name: "${bms2_name} cell voltage 20" + cell_voltage_21: + name: "${bms2_name} cell voltage 21" + cell_voltage_22: + name: "${bms2_name} cell voltage 22" + cell_voltage_23: + name: "${bms2_name} cell voltage 23" + cell_voltage_24: + name: "${bms2_name} cell voltage 24" + cell_resistance_01: + name: "${bms2_name} cell resistance 01" + cell_resistance_02: + name: "${bms2_name} cell resistance 02" + cell_resistance_03: + name: "${bms2_name} cell resistance 03" + cell_resistance_04: + name: "${bms2_name} cell resistance 04" + cell_resistance_05: + name: "${bms2_name} cell resistance 05" + cell_resistance_06: + name: "${bms2_name} cell resistance 06" + cell_resistance_07: + name: "${bms2_name} cell resistance 07" + cell_resistance_08: + name: "${bms2_name} cell resistance 08" + cell_resistance_09: + name: "${bms2_name} cell resistance 09" + cell_resistance_10: + name: "${bms2_name} cell resistance 10" + cell_resistance_11: + name: "${bms2_name} cell resistance 11" + cell_resistance_12: + name: "${bms2_name} cell resistance 12" + cell_resistance_13: + name: "${bms2_name} cell resistance 13" + cell_resistance_14: + name: "${bms2_name} cell resistance 14" + cell_resistance_15: + name: "${bms2_name} cell resistance 15" + cell_resistance_16: + name: "${bms2_name} cell resistance 16" + cell_resistance_17: + name: "${bms2_name} cell resistance 17" + cell_resistance_18: + name: "${bms2_name} cell resistance 18" + cell_resistance_19: + name: "${bms2_name} cell resistance 19" + cell_resistance_20: + name: "${bms2_name} cell resistance 20" + cell_resistance_21: + name: "${bms2_name} cell resistance 21" + cell_resistance_22: + name: "${bms2_name} cell resistance 22" + cell_resistance_23: + name: "${bms2_name} cell resistance 23" + cell_resistance_24: + name: "${bms2_name} cell resistance 24" + battery_voltage: + name: "${bms2_name} battery voltage" + battery_current: + name: "${bms2_name} battery current" + battery_power: + name: "${bms2_name} battery power" + battery_power_charging: + name: "${bms2_name} battery power charging" + battery_power_discharging: + name: "${bms2_name} battery power discharging" + temperature_sensor_1: + name: "${bms2_name} temperature sensor 1" + temperature_sensor_2: + name: "${bms2_name} temperature sensor 2" + temperature_sensor_3: + name: "${bms2_name} temperature sensor 3" + temperature_sensor_4: + name: "${bms2_name} temperature sensor 4" + temperature_sensor_5: + name: "${bms2_name} temperature sensor 5" + temperature_powertube: + name: "${bms2_name} temperature powertube" + battery_capacity_state_of_charge: + name: "${bms2_name} battery capacity state of charge" + battery_capacity_remaining: + name: "${bms2_name} battery capacity remaining" + charging_cycles: + name: "${bms2_name} charging cycles" + battery_capacity_total_charging_cycle: + name: "${bms2_name} battery capacity total charging cycle" + battery_total_runtime: + name: "${bms2_name} battery total runtime" + balancing_current: + name: "${bms2_name} balancing current" + errors_bitmask: + name: "${bms2_name} errors bitmask" + cell_count_real: + name: "${bms2_name} cell count real" + smart_sleep_time: + name: "${bms2_name} smart sleep time" + powertube_temperature_protection: + name: "${bms2_name} powertube temperature protection" + powertube_temperature_protection_recovery: + name: "${bms2_name} powertube temperature protection recovery" + battery_total_alarms_count: + name: "${bms2_name} battery total alarms count" + battery_total_alarms_active: + name: "${bms2_name} battery total alarms active" + emergency_time_countdown: + name: "${bms2_name} emergency time countdown" + uart1_protocol_number: + name: "${bms2_name} uart1 protocol number" + uart2_protocol_number: + name: "${bms2_name} uart2 protocol number" + battery_soh_valuation: + name: "${bms2_name} battery soh valuation" + discharging_overcurrent_protection_release_time: + name: "${bms2_name} discharging overcurrent protection release time" + discharging_short_circuit_protection_release_time: + name: "${bms2_name} discharging short circuit protection release time" + charging_overcurrent_protection_release_time: + name: "${bms2_name} charging overcurrent protection release time" + charging_short_circuit_protection_release_time: + name: "${bms2_name} charging short circuit protection release time" + cell_undervoltage_protection_release_time: + name: "${bms2_name} cell undervoltage protection release time" + cell_overvoltage_protection_release_time: + name: "${bms2_name} cell overvoltage protection release time" + + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms3 + balancing_direction: + name: "${bms3_name} balancing direction" + cell_voltage_min: + name: "${bms3_name} cell voltage min" + cell_voltage_max: + name: "${bms3_name} cell voltage max" + cell_voltage_min_cell_number: + name: "${bms3_name} cell voltage min cell number" + cell_voltage_max_cell_number: + name: "${bms3_name} cell voltage max cell number" + cell_delta_voltage: + name: "${bms3_name} cell delta voltage" + cell_average_voltage: + name: "${bms3_name} cell average voltage" + cell_resistance_min: + name: "${bms3_name} cell resistance min" + cell_resistance_max: + name: "${bms3_name} cell resistance max" + cell_resistance_min_cell_number: + name: "${bms3_name} cell resistance min cell number" + cell_resistance_max_cell_number: + name: "${bms3_name} cell resistance max cell number" + cell_voltage_01: + name: "${bms3_name} cell voltage 01" + cell_voltage_02: + name: "${bms3_name} cell voltage 02" + cell_voltage_03: + name: "${bms3_name} cell voltage 03" + cell_voltage_04: + name: "${bms3_name} cell voltage 04" + cell_voltage_05: + name: "${bms3_name} cell voltage 05" + cell_voltage_06: + name: "${bms3_name} cell voltage 06" + cell_voltage_07: + name: "${bms3_name} cell voltage 07" + cell_voltage_08: + name: "${bms3_name} cell voltage 08" + cell_voltage_09: + name: "${bms3_name} cell voltage 09" + cell_voltage_10: + name: "${bms3_name} cell voltage 10" + cell_voltage_11: + name: "${bms3_name} cell voltage 11" + cell_voltage_12: + name: "${bms3_name} cell voltage 12" + cell_voltage_13: + name: "${bms3_name} cell voltage 13" + cell_voltage_14: + name: "${bms3_name} cell voltage 14" + cell_voltage_15: + name: "${bms3_name} cell voltage 15" + cell_voltage_16: + name: "${bms3_name} cell voltage 16" + cell_voltage_17: + name: "${bms3_name} cell voltage 17" + cell_voltage_18: + name: "${bms3_name} cell voltage 18" + cell_voltage_19: + name: "${bms3_name} cell voltage 19" + cell_voltage_20: + name: "${bms3_name} cell voltage 20" + cell_voltage_21: + name: "${bms3_name} cell voltage 21" + cell_voltage_22: + name: "${bms3_name} cell voltage 22" + cell_voltage_23: + name: "${bms3_name} cell voltage 23" + cell_voltage_24: + name: "${bms3_name} cell voltage 24" + cell_resistance_01: + name: "${bms3_name} cell resistance 01" + cell_resistance_02: + name: "${bms3_name} cell resistance 02" + cell_resistance_03: + name: "${bms3_name} cell resistance 03" + cell_resistance_04: + name: "${bms3_name} cell resistance 04" + cell_resistance_05: + name: "${bms3_name} cell resistance 05" + cell_resistance_06: + name: "${bms3_name} cell resistance 06" + cell_resistance_07: + name: "${bms3_name} cell resistance 07" + cell_resistance_08: + name: "${bms3_name} cell resistance 08" + cell_resistance_09: + name: "${bms3_name} cell resistance 09" + cell_resistance_10: + name: "${bms3_name} cell resistance 10" + cell_resistance_11: + name: "${bms3_name} cell resistance 11" + cell_resistance_12: + name: "${bms3_name} cell resistance 12" + cell_resistance_13: + name: "${bms3_name} cell resistance 13" + cell_resistance_14: + name: "${bms3_name} cell resistance 14" + cell_resistance_15: + name: "${bms3_name} cell resistance 15" + cell_resistance_16: + name: "${bms3_name} cell resistance 16" + cell_resistance_17: + name: "${bms3_name} cell resistance 17" + cell_resistance_18: + name: "${bms3_name} cell resistance 18" + cell_resistance_19: + name: "${bms3_name} cell resistance 19" + cell_resistance_20: + name: "${bms3_name} cell resistance 20" + cell_resistance_21: + name: "${bms3_name} cell resistance 21" + cell_resistance_22: + name: "${bms3_name} cell resistance 22" + cell_resistance_23: + name: "${bms3_name} cell resistance 23" + cell_resistance_24: + name: "${bms3_name} cell resistance 24" + battery_voltage: + name: "${bms3_name} battery voltage" + battery_current: + name: "${bms3_name} battery current" + battery_power: + name: "${bms3_name} battery power" + battery_power_charging: + name: "${bms3_name} battery power charging" + battery_power_discharging: + name: "${bms3_name} battery power discharging" + temperature_sensor_1: + name: "${bms3_name} temperature sensor 1" + temperature_sensor_2: + name: "${bms3_name} temperature sensor 2" + temperature_sensor_3: + name: "${bms3_name} temperature sensor 3" + temperature_sensor_4: + name: "${bms3_name} temperature sensor 4" + temperature_sensor_5: + name: "${bms3_name} temperature sensor 5" + temperature_powertube: + name: "${bms3_name} temperature powertube" + battery_capacity_state_of_charge: + name: "${bms3_name} battery capacity state of charge" + battery_capacity_remaining: + name: "${bms3_name} battery capacity remaining" + charging_cycles: + name: "${bms3_name} charging cycles" + battery_capacity_total_charging_cycle: + name: "${bms3_name} battery capacity total charging cycle" + battery_total_runtime: + name: "${bms3_name} battery total runtime" + balancing_current: + name: "${bms3_name} balancing current" + errors_bitmask: + name: "${bms3_name} errors bitmask" + cell_count_real: + name: "${bms3_name} cell count real" + smart_sleep_time: + name: "${bms3_name} smart sleep time" + powertube_temperature_protection: + name: "${bms3_name} powertube temperature protection" + powertube_temperature_protection_recovery: + name: "${bms3_name} powertube temperature protection recovery" + battery_total_alarms_count: + name: "${bms3_name} battery total alarms count" + battery_total_alarms_active: + name: "${bms3_name} battery total alarms active" + emergency_time_countdown: + name: "${bms3_name} emergency time countdown" + uart1_protocol_number: + name: "${bms3_name} uart1 protocol number" + uart2_protocol_number: + name: "${bms3_name} uart2 protocol number" + battery_soh_valuation: + name: "${bms3_name} battery soh valuation" + discharging_overcurrent_protection_release_time: + name: "${bms3_name} discharging overcurrent protection release time" + discharging_short_circuit_protection_release_time: + name: "${bms3_name} discharging short circuit protection release time" + charging_overcurrent_protection_release_time: + name: "${bms3_name} charging overcurrent protection release time" + charging_short_circuit_protection_release_time: + name: "${bms3_name} charging short circuit protection release time" + cell_undervoltage_protection_release_time: + name: "${bms3_name} cell undervoltage protection release time" + cell_overvoltage_protection_release_time: + name: "${bms3_name} cell overvoltage protection release time" + + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms4 + balancing_direction: + name: "${bms4_name} balancing direction" + cell_voltage_min: + name: "${bms4_name} cell voltage min" + cell_voltage_max: + name: "${bms4_name} cell voltage max" + cell_voltage_min_cell_number: + name: "${bms4_name} cell voltage min cell number" + cell_voltage_max_cell_number: + name: "${bms4_name} cell voltage max cell number" + cell_delta_voltage: + name: "${bms4_name} cell delta voltage" + cell_average_voltage: + name: "${bms4_name} cell average voltage" + cell_resistance_min: + name: "${bms4_name} cell resistance min" + cell_resistance_max: + name: "${bms4_name} cell resistance max" + cell_resistance_min_cell_number: + name: "${bms4_name} cell resistance min cell number" + cell_resistance_max_cell_number: + name: "${bms4_name} cell resistance max cell number" + cell_voltage_01: + name: "${bms4_name} cell voltage 01" + cell_voltage_02: + name: "${bms4_name} cell voltage 02" + cell_voltage_03: + name: "${bms4_name} cell voltage 03" + cell_voltage_04: + name: "${bms4_name} cell voltage 04" + cell_voltage_05: + name: "${bms4_name} cell voltage 05" + cell_voltage_06: + name: "${bms4_name} cell voltage 06" + cell_voltage_07: + name: "${bms4_name} cell voltage 07" + cell_voltage_08: + name: "${bms4_name} cell voltage 08" + cell_voltage_09: + name: "${bms4_name} cell voltage 09" + cell_voltage_10: + name: "${bms4_name} cell voltage 10" + cell_voltage_11: + name: "${bms4_name} cell voltage 11" + cell_voltage_12: + name: "${bms4_name} cell voltage 12" + cell_voltage_13: + name: "${bms4_name} cell voltage 13" + cell_voltage_14: + name: "${bms4_name} cell voltage 14" + cell_voltage_15: + name: "${bms4_name} cell voltage 15" + cell_voltage_16: + name: "${bms4_name} cell voltage 16" + cell_voltage_17: + name: "${bms4_name} cell voltage 17" + cell_voltage_18: + name: "${bms4_name} cell voltage 18" + cell_voltage_19: + name: "${bms4_name} cell voltage 19" + cell_voltage_20: + name: "${bms4_name} cell voltage 20" + cell_voltage_21: + name: "${bms4_name} cell voltage 21" + cell_voltage_22: + name: "${bms4_name} cell voltage 22" + cell_voltage_23: + name: "${bms4_name} cell voltage 23" + cell_voltage_24: + name: "${bms4_name} cell voltage 24" + cell_resistance_01: + name: "${bms4_name} cell resistance 01" + cell_resistance_02: + name: "${bms4_name} cell resistance 02" + cell_resistance_03: + name: "${bms4_name} cell resistance 03" + cell_resistance_04: + name: "${bms4_name} cell resistance 04" + cell_resistance_05: + name: "${bms4_name} cell resistance 05" + cell_resistance_06: + name: "${bms4_name} cell resistance 06" + cell_resistance_07: + name: "${bms4_name} cell resistance 07" + cell_resistance_08: + name: "${bms4_name} cell resistance 08" + cell_resistance_09: + name: "${bms4_name} cell resistance 09" + cell_resistance_10: + name: "${bms4_name} cell resistance 10" + cell_resistance_11: + name: "${bms4_name} cell resistance 11" + cell_resistance_12: + name: "${bms4_name} cell resistance 12" + cell_resistance_13: + name: "${bms4_name} cell resistance 13" + cell_resistance_14: + name: "${bms4_name} cell resistance 14" + cell_resistance_15: + name: "${bms4_name} cell resistance 15" + cell_resistance_16: + name: "${bms4_name} cell resistance 16" + cell_resistance_17: + name: "${bms4_name} cell resistance 17" + cell_resistance_18: + name: "${bms4_name} cell resistance 18" + cell_resistance_19: + name: "${bms4_name} cell resistance 19" + cell_resistance_20: + name: "${bms4_name} cell resistance 20" + cell_resistance_21: + name: "${bms4_name} cell resistance 21" + cell_resistance_22: + name: "${bms4_name} cell resistance 22" + cell_resistance_23: + name: "${bms4_name} cell resistance 23" + cell_resistance_24: + name: "${bms4_name} cell resistance 24" + battery_voltage: + name: "${bms4_name} battery voltage" + battery_current: + name: "${bms4_name} battery current" + battery_power: + name: "${bms4_name} battery power" + battery_power_charging: + name: "${bms4_name} battery power charging" + battery_power_discharging: + name: "${bms4_name} battery power discharging" + temperature_sensor_1: + name: "${bms4_name} temperature sensor 1" + temperature_sensor_2: + name: "${bms4_name} temperature sensor 2" + temperature_sensor_3: + name: "${bms4_name} temperature sensor 3" + temperature_sensor_4: + name: "${bms4_name} temperature sensor 4" + temperature_sensor_5: + name: "${bms4_name} temperature sensor 5" + temperature_powertube: + name: "${bms4_name} temperature powertube" + battery_capacity_state_of_charge: + name: "${bms4_name} battery capacity state of charge" + battery_capacity_remaining: + name: "${bms4_name} battery capacity remaining" + charging_cycles: + name: "${bms4_name} charging cycles" + battery_capacity_total_charging_cycle: + name: "${bms4_name} battery capacity total charging cycle" + battery_total_runtime: + name: "${bms4_name} battery total runtime" + balancing_current: + name: "${bms4_name} balancing current" + errors_bitmask: + name: "${bms4_name} errors bitmask" + cell_count_real: + name: "${bms4_name} cell count real" + smart_sleep_time: + name: "${bms4_name} smart sleep time" + powertube_temperature_protection: + name: "${bms4_name} powertube temperature protection" + powertube_temperature_protection_recovery: + name: "${bms4_name} powertube temperature protection recovery" + battery_total_alarms_count: + name: "${bms4_name} battery total alarms count" + battery_total_alarms_active: + name: "${bms4_name} battery total alarms active" + emergency_time_countdown: + name: "${bms4_name} emergency time countdown" + uart1_protocol_number: + name: "${bms4_name} uart1 protocol number" + uart2_protocol_number: + name: "${bms4_name} uart2 protocol number" + battery_soh_valuation: + name: "${bms4_name} battery soh valuation" + discharging_overcurrent_protection_release_time: + name: "${bms4_name} discharging overcurrent protection release time" + discharging_short_circuit_protection_release_time: + name: "${bms4_name} discharging short circuit protection release time" + charging_overcurrent_protection_release_time: + name: "${bms4_name} charging overcurrent protection release time" + charging_short_circuit_protection_release_time: + name: "${bms4_name} charging short circuit protection release time" + cell_undervoltage_protection_release_time: + name: "${bms4_name} cell undervoltage protection release time" + cell_overvoltage_protection_release_time: + name: "${bms4_name} cell overvoltage protection release time" + + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms5 + balancing_direction: + name: "${bms5_name} balancing direction" + cell_voltage_min: + name: "${bms5_name} cell voltage min" + cell_voltage_max: + name: "${bms5_name} cell voltage max" + cell_voltage_min_cell_number: + name: "${bms5_name} cell voltage min cell number" + cell_voltage_max_cell_number: + name: "${bms5_name} cell voltage max cell number" + cell_delta_voltage: + name: "${bms5_name} cell delta voltage" + cell_average_voltage: + name: "${bms5_name} cell average voltage" + cell_resistance_min: + name: "${bms5_name} cell resistance min" + cell_resistance_max: + name: "${bms5_name} cell resistance max" + cell_resistance_min_cell_number: + name: "${bms5_name} cell resistance min cell number" + cell_resistance_max_cell_number: + name: "${bms5_name} cell resistance max cell number" + cell_voltage_01: + name: "${bms5_name} cell voltage 01" + cell_voltage_02: + name: "${bms5_name} cell voltage 02" + cell_voltage_03: + name: "${bms5_name} cell voltage 03" + cell_voltage_04: + name: "${bms5_name} cell voltage 04" + cell_voltage_05: + name: "${bms5_name} cell voltage 05" + cell_voltage_06: + name: "${bms5_name} cell voltage 06" + cell_voltage_07: + name: "${bms5_name} cell voltage 07" + cell_voltage_08: + name: "${bms5_name} cell voltage 08" + cell_voltage_09: + name: "${bms5_name} cell voltage 09" + cell_voltage_10: + name: "${bms5_name} cell voltage 10" + cell_voltage_11: + name: "${bms5_name} cell voltage 11" + cell_voltage_12: + name: "${bms5_name} cell voltage 12" + cell_voltage_13: + name: "${bms5_name} cell voltage 13" + cell_voltage_14: + name: "${bms5_name} cell voltage 14" + cell_voltage_15: + name: "${bms5_name} cell voltage 15" + cell_voltage_16: + name: "${bms5_name} cell voltage 16" + cell_voltage_17: + name: "${bms5_name} cell voltage 17" + cell_voltage_18: + name: "${bms5_name} cell voltage 18" + cell_voltage_19: + name: "${bms5_name} cell voltage 19" + cell_voltage_20: + name: "${bms5_name} cell voltage 20" + cell_voltage_21: + name: "${bms5_name} cell voltage 21" + cell_voltage_22: + name: "${bms5_name} cell voltage 22" + cell_voltage_23: + name: "${bms5_name} cell voltage 23" + cell_voltage_24: + name: "${bms5_name} cell voltage 24" + cell_resistance_01: + name: "${bms5_name} cell resistance 01" + cell_resistance_02: + name: "${bms5_name} cell resistance 02" + cell_resistance_03: + name: "${bms5_name} cell resistance 03" + cell_resistance_04: + name: "${bms5_name} cell resistance 04" + cell_resistance_05: + name: "${bms5_name} cell resistance 05" + cell_resistance_06: + name: "${bms5_name} cell resistance 06" + cell_resistance_07: + name: "${bms5_name} cell resistance 07" + cell_resistance_08: + name: "${bms5_name} cell resistance 08" + cell_resistance_09: + name: "${bms5_name} cell resistance 09" + cell_resistance_10: + name: "${bms5_name} cell resistance 10" + cell_resistance_11: + name: "${bms5_name} cell resistance 11" + cell_resistance_12: + name: "${bms5_name} cell resistance 12" + cell_resistance_13: + name: "${bms5_name} cell resistance 13" + cell_resistance_14: + name: "${bms5_name} cell resistance 14" + cell_resistance_15: + name: "${bms5_name} cell resistance 15" + cell_resistance_16: + name: "${bms5_name} cell resistance 16" + cell_resistance_17: + name: "${bms5_name} cell resistance 17" + cell_resistance_18: + name: "${bms5_name} cell resistance 18" + cell_resistance_19: + name: "${bms5_name} cell resistance 19" + cell_resistance_20: + name: "${bms5_name} cell resistance 20" + cell_resistance_21: + name: "${bms5_name} cell resistance 21" + cell_resistance_22: + name: "${bms5_name} cell resistance 22" + cell_resistance_23: + name: "${bms5_name} cell resistance 23" + cell_resistance_24: + name: "${bms5_name} cell resistance 24" + battery_voltage: + name: "${bms5_name} battery voltage" + battery_current: + name: "${bms5_name} battery current" + battery_power: + name: "${bms5_name} battery power" + battery_power_charging: + name: "${bms5_name} battery power charging" + battery_power_discharging: + name: "${bms5_name} battery power discharging" + temperature_sensor_1: + name: "${bms5_name} temperature sensor 1" + temperature_sensor_2: + name: "${bms5_name} temperature sensor 2" + temperature_sensor_3: + name: "${bms5_name} temperature sensor 3" + temperature_sensor_4: + name: "${bms5_name} temperature sensor 4" + temperature_sensor_5: + name: "${bms5_name} temperature sensor 5" + temperature_powertube: + name: "${bms5_name} temperature powertube" + battery_capacity_state_of_charge: + name: "${bms5_name} battery capacity state of charge" + battery_capacity_remaining: + name: "${bms5_name} battery capacity remaining" + charging_cycles: + name: "${bms5_name} charging cycles" + battery_capacity_total_charging_cycle: + name: "${bms5_name} battery capacity total charging cycle" + battery_total_runtime: + name: "${bms5_name} battery total runtime" + balancing_current: + name: "${bms5_name} balancing current" + errors_bitmask: + name: "${bms5_name} errors bitmask" + cell_count_real: + name: "${bms5_name} cell count real" + smart_sleep_time: + name: "${bms5_name} smart sleep time" + powertube_temperature_protection: + name: "${bms5_name} powertube temperature protection" + powertube_temperature_protection_recovery: + name: "${bms5_name} powertube temperature protection recovery" + battery_total_alarms_count: + name: "${bms5_name} battery total alarms count" + battery_total_alarms_active: + name: "${bms5_name} battery total alarms active" + emergency_time_countdown: + name: "${bms5_name} emergency time countdown" + uart1_protocol_number: + name: "${bms5_name} uart1 protocol number" + uart2_protocol_number: + name: "${bms5_name} uart2 protocol number" + battery_soh_valuation: + name: "${bms5_name} battery soh valuation" + discharging_overcurrent_protection_release_time: + name: "${bms5_name} discharging overcurrent protection release time" + discharging_short_circuit_protection_release_time: + name: "${bms5_name} discharging short circuit protection release time" + charging_overcurrent_protection_release_time: + name: "${bms5_name} charging overcurrent protection release time" + charging_short_circuit_protection_release_time: + name: "${bms5_name} charging short circuit protection release time" + cell_undervoltage_protection_release_time: + name: "${bms5_name} cell undervoltage protection release time" + cell_overvoltage_protection_release_time: + name: "${bms5_name} cell overvoltage protection release time" + + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms6 + balancing_direction: + name: "${bms6_name} balancing direction" + cell_voltage_min: + name: "${bms6_name} cell voltage min" + cell_voltage_max: + name: "${bms6_name} cell voltage max" + cell_voltage_min_cell_number: + name: "${bms6_name} cell voltage min cell number" + cell_voltage_max_cell_number: + name: "${bms6_name} cell voltage max cell number" + cell_delta_voltage: + name: "${bms6_name} cell delta voltage" + cell_average_voltage: + name: "${bms6_name} cell average voltage" + cell_resistance_min: + name: "${bms6_name} cell resistance min" + cell_resistance_max: + name: "${bms6_name} cell resistance max" + cell_resistance_min_cell_number: + name: "${bms6_name} cell resistance min cell number" + cell_resistance_max_cell_number: + name: "${bms6_name} cell resistance max cell number" + cell_voltage_01: + name: "${bms6_name} cell voltage 01" + cell_voltage_02: + name: "${bms6_name} cell voltage 02" + cell_voltage_03: + name: "${bms6_name} cell voltage 03" + cell_voltage_04: + name: "${bms6_name} cell voltage 04" + cell_voltage_05: + name: "${bms6_name} cell voltage 05" + cell_voltage_06: + name: "${bms6_name} cell voltage 06" + cell_voltage_07: + name: "${bms6_name} cell voltage 07" + cell_voltage_08: + name: "${bms6_name} cell voltage 08" + cell_voltage_09: + name: "${bms6_name} cell voltage 09" + cell_voltage_10: + name: "${bms6_name} cell voltage 10" + cell_voltage_11: + name: "${bms6_name} cell voltage 11" + cell_voltage_12: + name: "${bms6_name} cell voltage 12" + cell_voltage_13: + name: "${bms6_name} cell voltage 13" + cell_voltage_14: + name: "${bms6_name} cell voltage 14" + cell_voltage_15: + name: "${bms6_name} cell voltage 15" + cell_voltage_16: + name: "${bms6_name} cell voltage 16" + cell_voltage_17: + name: "${bms6_name} cell voltage 17" + cell_voltage_18: + name: "${bms6_name} cell voltage 18" + cell_voltage_19: + name: "${bms6_name} cell voltage 19" + cell_voltage_20: + name: "${bms6_name} cell voltage 20" + cell_voltage_21: + name: "${bms6_name} cell voltage 21" + cell_voltage_22: + name: "${bms6_name} cell voltage 22" + cell_voltage_23: + name: "${bms6_name} cell voltage 23" + cell_voltage_24: + name: "${bms6_name} cell voltage 24" + cell_resistance_01: + name: "${bms6_name} cell resistance 01" + cell_resistance_02: + name: "${bms6_name} cell resistance 02" + cell_resistance_03: + name: "${bms6_name} cell resistance 03" + cell_resistance_04: + name: "${bms6_name} cell resistance 04" + cell_resistance_05: + name: "${bms6_name} cell resistance 05" + cell_resistance_06: + name: "${bms6_name} cell resistance 06" + cell_resistance_07: + name: "${bms6_name} cell resistance 07" + cell_resistance_08: + name: "${bms6_name} cell resistance 08" + cell_resistance_09: + name: "${bms6_name} cell resistance 09" + cell_resistance_10: + name: "${bms6_name} cell resistance 10" + cell_resistance_11: + name: "${bms6_name} cell resistance 11" + cell_resistance_12: + name: "${bms6_name} cell resistance 12" + cell_resistance_13: + name: "${bms6_name} cell resistance 13" + cell_resistance_14: + name: "${bms6_name} cell resistance 14" + cell_resistance_15: + name: "${bms6_name} cell resistance 15" + cell_resistance_16: + name: "${bms6_name} cell resistance 16" + cell_resistance_17: + name: "${bms6_name} cell resistance 17" + cell_resistance_18: + name: "${bms6_name} cell resistance 18" + cell_resistance_19: + name: "${bms6_name} cell resistance 19" + cell_resistance_20: + name: "${bms6_name} cell resistance 20" + cell_resistance_21: + name: "${bms6_name} cell resistance 21" + cell_resistance_22: + name: "${bms6_name} cell resistance 22" + cell_resistance_23: + name: "${bms6_name} cell resistance 23" + cell_resistance_24: + name: "${bms6_name} cell resistance 24" + battery_voltage: + name: "${bms6_name} battery voltage" + battery_current: + name: "${bms6_name} battery current" + battery_power: + name: "${bms6_name} battery power" + battery_power_charging: + name: "${bms6_name} battery power charging" + battery_power_discharging: + name: "${bms6_name} battery power discharging" + temperature_sensor_1: + name: "${bms6_name} temperature sensor 1" + temperature_sensor_2: + name: "${bms6_name} temperature sensor 2" + temperature_sensor_3: + name: "${bms6_name} temperature sensor 3" + temperature_sensor_4: + name: "${bms6_name} temperature sensor 4" + temperature_sensor_5: + name: "${bms6_name} temperature sensor 5" + temperature_powertube: + name: "${bms6_name} temperature powertube" + battery_capacity_state_of_charge: + name: "${bms6_name} battery capacity state of charge" + battery_capacity_remaining: + name: "${bms6_name} battery capacity remaining" + charging_cycles: + name: "${bms6_name} charging cycles" + battery_capacity_total_charging_cycle: + name: "${bms6_name} battery capacity total charging cycle" + battery_total_runtime: + name: "${bms6_name} battery total runtime" + balancing_current: + name: "${bms6_name} balancing current" + errors_bitmask: + name: "${bms6_name} errors bitmask" + cell_count_real: + name: "${bms6_name} cell count real" + smart_sleep_time: + name: "${bms6_name} smart sleep time" + powertube_temperature_protection: + name: "${bms6_name} powertube temperature protection" + powertube_temperature_protection_recovery: + name: "${bms6_name} powertube temperature protection recovery" + battery_total_alarms_count: + name: "${bms6_name} battery total alarms count" + battery_total_alarms_active: + name: "${bms6_name} battery total alarms active" + emergency_time_countdown: + name: "${bms6_name} emergency time countdown" + uart1_protocol_number: + name: "${bms6_name} uart1 protocol number" + uart2_protocol_number: + name: "${bms6_name} uart2 protocol number" + battery_soh_valuation: + name: "${bms6_name} battery soh valuation" + discharging_overcurrent_protection_release_time: + name: "${bms6_name} discharging overcurrent protection release time" + discharging_short_circuit_protection_release_time: + name: "${bms6_name} discharging short circuit protection release time" + charging_overcurrent_protection_release_time: + name: "${bms6_name} charging overcurrent protection release time" + charging_short_circuit_protection_release_time: + name: "${bms6_name} charging short circuit protection release time" + cell_undervoltage_protection_release_time: + name: "${bms6_name} cell undervoltage protection release time" + cell_overvoltage_protection_release_time: + name: "${bms6_name} cell overvoltage protection release time" + +switch: + - platform: template + name: "Broadcast changes to all BMSs" + id: broadcast_active + icon: "mdi:cast" + restore_mode: RESTORE_DEFAULT_ON + optimistic: true + turn_on_action: + - lambda: |- + id(sniffer0).set_broadcast_changes_to_all_bms(true); + turn_off_action: + - lambda: |- + id(sniffer0).set_broadcast_changes_to_all_bms(false); + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms0 + precharging: + name: "${bms0_name} precharging" + charging: + name: "${bms0_name} charging" + discharging: + name: "${bms0_name} discharging" + balancing: + name: "${bms0_name} balancing" + emergency: + name: "${bms0_name} emergency" + heating: + name: "${bms0_name} heating" + display_always_on: + name: "${bms0_name} display_always_on" + charging_float_mode: + name: "${bms0_name} charging float mode" + timed_stored_data: + name: "${bms0_name} timed stored data" + disable_temperature_sensors: + name: "${bms0_name} disable temperature sensors" + smart_sleep_on: + name: "${bms0_name} smart sleep on" + disable_pcl_module: + name: "${bms0_name} disable pcl module" + gps_heartbeat: + name: "${bms0_name} gps heartbeat" + port_selection: + name: "${bms0_name} port selection" + special_charger: + name: "${bms0_name} special charger" + + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms1 + precharging: + name: "${bms1_name} precharging" + charging: + name: "${bms1_name} charging" + discharging: + name: "${bms1_name} discharging" + balancing: + name: "${bms1_name} balancing" + emergency: + name: "${bms1_name} emergency" + heating: + name: "${bms1_name} heating" + display_always_on: + name: "${bms1_name} display_always_on" + charging_float_mode: + name: "${bms1_name} charging float mode" + timed_stored_data: + name: "${bms1_name} timed stored data" + disable_temperature_sensors: + name: "${bms1_name} disable temperature sensors" + smart_sleep_on: + name: "${bms1_name} smart sleep on" + disable_pcl_module: + name: "${bms1_name} disable pcl module" + gps_heartbeat: + name: "${bms1_name} gps heartbeat" + port_selection: + name: "${bms1_name} port selection" + special_charger: + name: "${bms1_name} special charger" + + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms2 + precharging: + name: "${bms2_name} precharging" + charging: + name: "${bms2_name} charging" + discharging: + name: "${bms2_name} discharging" + balancing: + name: "${bms2_name} balancing" + emergency: + name: "${bms2_name} emergency" + heating: + name: "${bms2_name} heating" + display_always_on: + name: "${bms2_name} display_always_on" + charging_float_mode: + name: "${bms2_name} charging float mode" + timed_stored_data: + name: "${bms2_name} timed stored data" + disable_temperature_sensors: + name: "${bms2_name} disable temperature sensors" + smart_sleep_on: + name: "${bms2_name} smart sleep on" + disable_pcl_module: + name: "${bms2_name} disable pcl module" + gps_heartbeat: + name: "${bms2_name} gps heartbeat" + port_selection: + name: "${bms2_name} port selection" + special_charger: + name: "${bms2_name} special charger" + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms3 + precharging: + name: "${bms3_name} precharging" + charging: + name: "${bms3_name} charging" + discharging: + name: "${bms3_name} discharging" + balancing: + name: "${bms3_name} balancing" + emergency: + name: "${bms3_name} emergency" + heating: + name: "${bms3_name} heating" + display_always_on: + name: "${bms3_name} display_always_on" + charging_float_mode: + name: "${bms3_name} charging float mode" + timed_stored_data: + name: "${bms3_name} timed stored data" + disable_temperature_sensors: + name: "${bms3_name} disable temperature sensors" + smart_sleep_on: + name: "${bms3_name} smart sleep on" + disable_pcl_module: + name: "${bms3_name} disable pcl module" + gps_heartbeat: + name: "${bms3_name} gps heartbeat" + port_selection: + name: "${bms3_name} port selection" + special_charger: + name: "${bms3_name} special charger" + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms4 + precharging: + name: "${bms4_name} precharging" + charging: + name: "${bms4_name} charging" + discharging: + name: "${bms4_name} discharging" + balancing: + name: "${bms4_name} balancing" + emergency: + name: "${bms4_name} emergency" + heating: + name: "${bms4_name} heating" + display_always_on: + name: "${bms4_name} display_always_on" + charging_float_mode: + name: "${bms4_name} charging float mode" + timed_stored_data: + name: "${bms4_name} timed stored data" + disable_temperature_sensors: + name: "${bms4_name} disable temperature sensors" + smart_sleep_on: + name: "${bms4_name} smart sleep on" + disable_pcl_module: + name: "${bms4_name} disable pcl module" + gps_heartbeat: + name: "${bms4_name} gps heartbeat" + port_selection: + name: "${bms4_name} port selection" + special_charger: + name: "${bms4_name} special charger" + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms5 + precharging: + name: "${bms5_name} precharging" + charging: + name: "${bms5_name} charging" + discharging: + name: "${bms5_name} discharging" + balancing: + name: "${bms5_name} balancing" + emergency: + name: "${bms5_name} emergency" + heating: + name: "${bms5_name} heating" + display_always_on: + name: "${bms5_name} display_always_on" + charging_float_mode: + name: "${bms5_name} charging float mode" + timed_stored_data: + name: "${bms5_name} timed stored data" + disable_temperature_sensors: + name: "${bms5_name} disable temperature sensors" + smart_sleep_on: + name: "${bms5_name} smart sleep on" + disable_pcl_module: + name: "${bms5_name} disable pcl module" + gps_heartbeat: + name: "${bms5_name} gps heartbeat" + port_selection: + name: "${bms5_name} port selection" + special_charger: + name: "${bms5_name} special charger" + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms6 + precharging: + name: "${bms6_name} precharging" + charging: + name: "${bms6_name} charging" + discharging: + name: "${bms6_name} discharging" + balancing: + name: "${bms6_name} balancing" + emergency: + name: "${bms6_name} emergency" + heating: + name: "${bms6_name} heating" + display_always_on: + name: "${bms6_name} display_always_on" + charging_float_mode: + name: "${bms6_name} charging float mode" + timed_stored_data: + name: "${bms6_name} timed stored data" + disable_temperature_sensors: + name: "${bms6_name} disable temperature sensors" + smart_sleep_on: + name: "${bms6_name} smart sleep on" + disable_pcl_module: + name: "${bms6_name} disable pcl module" + gps_heartbeat: + name: "${bms6_name} gps heartbeat" + port_selection: + name: "${bms6_name} port selection" + special_charger: + name: "${bms6_name} special charger" + +text_sensor: + # +--------------------------------------+ + # | Uptime Human Readable | + # +--------------------------------------+ + - platform: template + name: ${esp_name} Uptime Human Readable + id: uptime_human + icon: mdi:clock-start + entity_category: diagnostic + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms0 + errors: + name: "${bms0_name} errors" + operation_status: + name: "${bms0_name} operation status" + battery_type: + name: "${bms0_name} battery type" + total_runtime_formatted: + name: "${bms0_name} total runtime formatted" + info_vendorid: + name: "${bms0_name} info vendorid" + info_hardware_version: + name: "${bms0_name} info hardware version" + info_software_version: + name: "${bms0_name} info software version" + info_device_name: + name: "${bms0_name} info device name" + info_device_password: + name: "${bms0_name} info device password" + network_nodes_available: + name: "${bms0_name} network nodes available" + info_device_serial_number: + name: "${bms0_name} info device serial number" + info_device_setup_passcode: + name: "${bms0_name} info device setup passcode" + # ... + - platform: jk_rs485_bms + jk_rs485_bms_id: bms1 + errors: + name: "${bms1_name} errors" + operation_status: + name: "${bms1_name} operation status" + battery_type: + name: "${bms1_name} battery type" + total_runtime_formatted: + name: "${bms1_name} total runtime formatted" + info_vendorid: + name: "${bms1_name} info vendorid" + info_hardware_version: + name: "${bms1_name} info hardware version" + info_software_version: + name: "${bms1_name} info software version" + info_device_name: + name: "${bms1_name} info device name" + info_device_password: + name: "${bms1_name} info device password" + network_nodes_available: + name: "${bms1_name} network nodes available" + info_device_serial_number: + name: "${bms1_name} info device serial number" + info_device_setup_passcode: + name: "${bms1_name} info device setup passcode" + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms2 + errors: + name: "${bms2_name} errors" + operation_status: + name: "${bms2_name} operation status" + battery_type: + name: "${bms2_name} battery type" + total_runtime_formatted: + name: "${bms2_name} total runtime formatted" + info_vendorid: + name: "${bms2_name} info vendorid" + info_hardware_version: + name: "${bms2_name} info hardware version" + info_software_version: + name: "${bms2_name} info software version" + info_device_name: + name: "${bms2_name} info device name" + info_device_password: + name: "${bms2_name} info device password" + network_nodes_available: + name: "${bms2_name} network nodes available" + info_device_serial_number: + name: "${bms2_name} info device serial number" + info_device_setup_passcode: + name: "${bms2_name} info device setup passcode" + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms3 + errors: + name: "${bms3_name} errors" + operation_status: + name: "${bms3_name} operation status" + battery_type: + name: "${bms3_name} battery type" + total_runtime_formatted: + name: "${bms3_name} total runtime formatted" + info_vendorid: + name: "${bms3_name} info vendorid" + info_hardware_version: + name: "${bms3_name} info hardware version" + info_software_version: + name: "${bms3_name} info software version" + info_device_name: + name: "${bms3_name} info device name" + info_device_password: + name: "${bms3_name} info device password" + network_nodes_available: + name: "${bms3_name} network nodes available" + info_device_serial_number: + name: "${bms3_name} info device serial number" + info_device_setup_passcode: + name: "${bms3_name} info device setup passcode" + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms4 + errors: + name: "${bms4_name} errors" + operation_status: + name: "${bms4_name} operation status" + battery_type: + name: "${bms4_name} battery type" + total_runtime_formatted: + name: "${bms4_name} total runtime formatted" + info_vendorid: + name: "${bms4_name} info vendorid" + info_hardware_version: + name: "${bms4_name} info hardware version" + info_software_version: + name: "${bms4_name} info software version" + info_device_name: + name: "${bms4_name} info device name" + info_device_password: + name: "${bms4_name} info device password" + network_nodes_available: + name: "${bms4_name} network nodes available" + info_device_serial_number: + name: "${bms4_name} info device serial number" + info_device_setup_passcode: + name: "${bms4_name} info device setup passcode" + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms5 + errors: + name: "${bms5_name} errors" + operation_status: + name: "${bms5_name} operation status" + battery_type: + name: "${bms5_name} battery type" + total_runtime_formatted: + name: "${bms5_name} total runtime formatted" + info_vendorid: + name: "${bms5_name} info vendorid" + info_hardware_version: + name: "${bms5_name} info hardware version" + info_software_version: + name: "${bms5_name} info software version" + info_device_name: + name: "${bms5_name} info device name" + info_device_password: + name: "${bms5_name} info device password" + network_nodes_available: + name: "${bms5_name} network nodes available" + info_device_serial_number: + name: "${bms5_name} info device serial number" + info_device_setup_passcode: + name: "${bms5_name} info device setup passcode" + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms6 + errors: + name: "${bms6_name} errors" + operation_status: + name: "${bms6_name} operation status" + battery_type: + name: "${bms6_name} battery type" + total_runtime_formatted: + name: "${bms6_name} total runtime formatted" + info_vendorid: + name: "${bms6_name} info vendorid" + info_hardware_version: + name: "${bms6_name} info hardware version" + info_software_version: + name: "${bms6_name} info software version" + info_device_name: + name: "${bms6_name} info device name" + info_device_password: + name: "${bms6_name} info device password" + network_nodes_available: + name: "${bms6_name} network nodes available" + info_device_serial_number: + name: "${bms6_name} info device serial number" + info_device_setup_passcode: + name: "${bms6_name} info device setup passcode" + +number: + - platform: jk_rs485_bms + jk_rs485_bms_id: bms0 + cell_smart_sleep_voltage: + name: "${bms0_name} cell smart sleep voltage" + cell_undervoltage_protection: + name: "${bms0_name} cell undervoltage protection" + cell_undervoltage_protection_recovery: + name: "${bms0_name} cell undervoltage protection recovery" + cell_overvoltage_protection: + name: "${bms0_name} cell overvoltage protection" + cell_overvoltage_protection_recovery: + name: "${bms0_name} cell overvoltage protection recovery" + cell_balancing_trigger_voltage: + name: "${bms0_name} cell balancing trigger voltage" + cell_soc100_voltage: + name: "${bms0_name} cell soc100 voltage" + cell_soc0_voltage: + name: "${bms0_name} cell soc0 voltage" + cell_request_charge_voltage: + name: "${bms0_name} cell request charge voltage" + cell_request_float_voltage: + name: "${bms0_name} cell request float voltage" + cell_power_off_voltage: + name: "${bms0_name} cell power off voltage" + cell_balancing_starting_voltage: + name: "${bms0_name} cell balancing starting voltage" + max_charging_current: + name: "${bms0_name} max charging current" + charging_overcurrent_protection_delay: + name: "${bms0_name} charging overcurrent protection delay" + charging_overcurrent_protection_recovery_delay: + name: "${bms0_name} charging overcurrent protection recovery delay" + max_discharging_current: + name: "${bms0_name} max discharging current" + discharging_overcurrent_protection_delay: + name: "${bms0_name} discharging overcurrent protection delay" + discharging_overcurrent_protection_recovery_delay: + name: "${bms0_name} discharging overcurrent protection recovery delay" + short_circuit_protection_delay: + name: "${bms0_name} short circuit protection delay" + short_circuit_protection_recovery_delay: + name: "${bms0_name} short circuit protection recovery delay" + max_balancing_current: + name: "${bms0_name} max balancing current" + charging_overtemperature_protection: + name: "${bms0_name} charging overtemperature protection" + charging_overtemperature_protection_recovery: + name: "${bms0_name} charging overtemperature protection recovery" + discharging_overtemperature_protection: + name: "${bms0_name} discharging overtemperature protection" + discharging_overtemperature_protection_recovery: + name: "${bms0_name} discharging overtemperature protection recovery" + charging_lowtemperature_protection: + name: "${bms0_name} charging lowtemperature protection" + charging_lowtemperature_protection_recovery: + name: "${bms0_name} charging lowtemperature protection recovery" + mos_overtemperature_protection: + name: "${bms0_name} mos overtemperature protection" + mos_overtemperature_protection_recovery: + name: "${bms0_name} mos overtemperature protection recovery" + cell_count_settings: + name: "${bms0_name} cell count settings" + battery_capacity_total_settings: + name: "${bms0_name} battery capacity total settings" + precharging_time_from_discharge: + name: "${bms0_name} precharging time from discharge" + cell_request_charge_voltage_time: + name: "${bms0_name} cell request charge voltage time" + cell_request_float_voltage_time: + name: "${bms0_name} cell request float voltage time" + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms1 + cell_smart_sleep_voltage: + name: "${bms1_name} cell smart sleep voltage" + cell_undervoltage_protection: + name: "${bms1_name} cell undervoltage protection" + cell_undervoltage_protection_recovery: + name: "${bms1_name} cell undervoltage protection recovery" + cell_overvoltage_protection: + name: "${bms1_name} cell overvoltage protection" + cell_overvoltage_protection_recovery: + name: "${bms1_name} cell overvoltage protection recovery" + cell_balancing_trigger_voltage: + name: "${bms1_name} cell balancing trigger voltage" + cell_soc100_voltage: + name: "${bms1_name} cell soc100 voltage" + cell_soc0_voltage: + name: "${bms1_name} cell soc0 voltage" + cell_request_charge_voltage: + name: "${bms1_name} cell request charge voltage" + cell_request_float_voltage: + name: "${bms1_name} cell request float voltage" + cell_power_off_voltage: + name: "${bms1_name} cell power off voltage" + cell_balancing_starting_voltage: + name: "${bms1_name} cell balancing starting voltage" + max_charging_current: + name: "${bms1_name} max charging current" + charging_overcurrent_protection_delay: + name: "${bms1_name} charging overcurrent protection delay" + charging_overcurrent_protection_recovery_delay: + name: "${bms1_name} charging overcurrent protection recovery delay" + max_discharging_current: + name: "${bms1_name} max discharging current" + discharging_overcurrent_protection_delay: + name: "${bms1_name} discharging overcurrent protection delay" + discharging_overcurrent_protection_recovery_delay: + name: "${bms1_name} discharging overcurrent protection recovery delay" + short_circuit_protection_delay: + name: "${bms1_name} short circuit protection delay" + short_circuit_protection_recovery_delay: + name: "${bms1_name} short circuit protection recovery delay" + max_balancing_current: + name: "${bms1_name} max balancing current" + charging_overtemperature_protection: + name: "${bms1_name} charging overtemperature protection" + charging_overtemperature_protection_recovery: + name: "${bms1_name} charging overtemperature protection recovery" + discharging_overtemperature_protection: + name: "${bms1_name} discharging overtemperature protection" + discharging_overtemperature_protection_recovery: + name: "${bms1_name} discharging overtemperature protection recovery" + charging_lowtemperature_protection: + name: "${bms1_name} charging lowtemperature protection" + charging_lowtemperature_protection_recovery: + name: "${bms1_name} charging lowtemperature protection recovery" + mos_overtemperature_protection: + name: "${bms1_name} mos overtemperature protection" + mos_overtemperature_protection_recovery: + name: "${bms1_name} mos overtemperature protection recovery" + cell_count_settings: + name: "${bms1_name} cell count settings" + battery_capacity_total_settings: + name: "${bms1_name} battery capacity total settings" + precharging_time_from_discharge: + name: "${bms1_name} precharging time from discharge" + cell_request_charge_voltage_time: + name: "${bms1_name} cell request charge voltage time" + cell_request_float_voltage_time: + name: "${bms1_name} cell request float voltage time" + + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms2 + cell_smart_sleep_voltage: + name: "${bms2_name} cell smart sleep voltage" + cell_undervoltage_protection: + name: "${bms2_name} cell undervoltage protection" + cell_undervoltage_protection_recovery: + name: "${bms2_name} cell undervoltage protection recovery" + cell_overvoltage_protection: + name: "${bms2_name} cell overvoltage protection" + cell_overvoltage_protection_recovery: + name: "${bms2_name} cell overvoltage protection recovery" + cell_balancing_trigger_voltage: + name: "${bms2_name} cell balancing trigger voltage" + cell_soc100_voltage: + name: "${bms2_name} cell soc100 voltage" + cell_soc0_voltage: + name: "${bms2_name} cell soc0 voltage" + cell_request_charge_voltage: + name: "${bms2_name} cell request charge voltage" + cell_request_float_voltage: + name: "${bms2_name} cell request float voltage" + cell_power_off_voltage: + name: "${bms2_name} cell power off voltage" + cell_balancing_starting_voltage: + name: "${bms2_name} cell balancing starting voltage" + max_charging_current: + name: "${bms2_name} max charging current" + charging_overcurrent_protection_delay: + name: "${bms2_name} charging overcurrent protection delay" + charging_overcurrent_protection_recovery_delay: + name: "${bms2_name} charging overcurrent protection recovery delay" + max_discharging_current: + name: "${bms2_name} max discharging current" + discharging_overcurrent_protection_delay: + name: "${bms2_name} discharging overcurrent protection delay" + discharging_overcurrent_protection_recovery_delay: + name: "${bms2_name} discharging overcurrent protection recovery delay" + short_circuit_protection_delay: + name: "${bms2_name} short circuit protection delay" + short_circuit_protection_recovery_delay: + name: "${bms2_name} short circuit protection recovery delay" + max_balancing_current: + name: "${bms2_name} max balancing current" + charging_overtemperature_protection: + name: "${bms2_name} charging overtemperature protection" + charging_overtemperature_protection_recovery: + name: "${bms2_name} charging overtemperature protection recovery" + discharging_overtemperature_protection: + name: "${bms2_name} discharging overtemperature protection" + discharging_overtemperature_protection_recovery: + name: "${bms2_name} discharging overtemperature protection recovery" + charging_lowtemperature_protection: + name: "${bms2_name} charging lowtemperature protection" + charging_lowtemperature_protection_recovery: + name: "${bms2_name} charging lowtemperature protection recovery" + mos_overtemperature_protection: + name: "${bms2_name} mos overtemperature protection" + mos_overtemperature_protection_recovery: + name: "${bms2_name} mos overtemperature protection recovery" + cell_count_settings: + name: "${bms2_name} cell count settings" + battery_capacity_total_settings: + name: "${bms2_name} battery capacity total settings" + precharging_time_from_discharge: + name: "${bms2_name} precharging time from discharge" + cell_request_charge_voltage_time: + name: "${bms2_name} cell request charge voltage time" + cell_request_float_voltage_time: + name: "${bms2_name} cell request float voltage time" + + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms3 + cell_smart_sleep_voltage: + name: "${bms3_name} cell smart sleep voltage" + cell_undervoltage_protection: + name: "${bms3_name} cell undervoltage protection" + cell_undervoltage_protection_recovery: + name: "${bms3_name} cell undervoltage protection recovery" + cell_overvoltage_protection: + name: "${bms3_name} cell overvoltage protection" + cell_overvoltage_protection_recovery: + name: "${bms3_name} cell overvoltage protection recovery" + cell_balancing_trigger_voltage: + name: "${bms3_name} cell balancing trigger voltage" + cell_soc100_voltage: + name: "${bms3_name} cell soc100 voltage" + cell_soc0_voltage: + name: "${bms3_name} cell soc0 voltage" + cell_request_charge_voltage: + name: "${bms3_name} cell request charge voltage" + cell_request_float_voltage: + name: "${bms3_name} cell request float voltage" + cell_power_off_voltage: + name: "${bms3_name} cell power off voltage" + cell_balancing_starting_voltage: + name: "${bms3_name} cell balancing starting voltage" + max_charging_current: + name: "${bms3_name} max charging current" + charging_overcurrent_protection_delay: + name: "${bms3_name} charging overcurrent protection delay" + charging_overcurrent_protection_recovery_delay: + name: "${bms3_name} charging overcurrent protection recovery delay" + max_discharging_current: + name: "${bms3_name} max discharging current" + discharging_overcurrent_protection_delay: + name: "${bms3_name} discharging overcurrent protection delay" + discharging_overcurrent_protection_recovery_delay: + name: "${bms3_name} discharging overcurrent protection recovery delay" + short_circuit_protection_delay: + name: "${bms3_name} short circuit protection delay" + short_circuit_protection_recovery_delay: + name: "${bms3_name} short circuit protection recovery delay" + max_balancing_current: + name: "${bms3_name} max balancing current" + charging_overtemperature_protection: + name: "${bms3_name} charging overtemperature protection" + charging_overtemperature_protection_recovery: + name: "${bms3_name} charging overtemperature protection recovery" + discharging_overtemperature_protection: + name: "${bms3_name} discharging overtemperature protection" + discharging_overtemperature_protection_recovery: + name: "${bms3_name} discharging overtemperature protection recovery" + charging_lowtemperature_protection: + name: "${bms3_name} charging lowtemperature protection" + charging_lowtemperature_protection_recovery: + name: "${bms3_name} charging lowtemperature protection recovery" + mos_overtemperature_protection: + name: "${bms3_name} mos overtemperature protection" + mos_overtemperature_protection_recovery: + name: "${bms3_name} mos overtemperature protection recovery" + cell_count_settings: + name: "${bms3_name} cell count settings" + battery_capacity_total_settings: + name: "${bms3_name} battery capacity total settings" + precharging_time_from_discharge: + name: "${bms3_name} precharging time from discharge" + cell_request_charge_voltage_time: + name: "${bms3_name} cell request charge voltage time" + cell_request_float_voltage_time: + name: "${bms3_name} cell request float voltage time" + + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms4 + cell_smart_sleep_voltage: + name: "${bms4_name} cell smart sleep voltage" + cell_undervoltage_protection: + name: "${bms4_name} cell undervoltage protection" + cell_undervoltage_protection_recovery: + name: "${bms4_name} cell undervoltage protection recovery" + cell_overvoltage_protection: + name: "${bms4_name} cell overvoltage protection" + cell_overvoltage_protection_recovery: + name: "${bms4_name} cell overvoltage protection recovery" + cell_balancing_trigger_voltage: + name: "${bms4_name} cell balancing trigger voltage" + cell_soc100_voltage: + name: "${bms4_name} cell soc100 voltage" + cell_soc0_voltage: + name: "${bms4_name} cell soc0 voltage" + cell_request_charge_voltage: + name: "${bms4_name} cell request charge voltage" + cell_request_float_voltage: + name: "${bms4_name} cell request float voltage" + cell_power_off_voltage: + name: "${bms4_name} cell power off voltage" + cell_balancing_starting_voltage: + name: "${bms4_name} cell balancing starting voltage" + max_charging_current: + name: "${bms4_name} max charging current" + charging_overcurrent_protection_delay: + name: "${bms4_name} charging overcurrent protection delay" + charging_overcurrent_protection_recovery_delay: + name: "${bms4_name} charging overcurrent protection recovery delay" + max_discharging_current: + name: "${bms4_name} max discharging current" + discharging_overcurrent_protection_delay: + name: "${bms4_name} discharging overcurrent protection delay" + discharging_overcurrent_protection_recovery_delay: + name: "${bms4_name} discharging overcurrent protection recovery delay" + short_circuit_protection_delay: + name: "${bms4_name} short circuit protection delay" + short_circuit_protection_recovery_delay: + name: "${bms4_name} short circuit protection recovery delay" + max_balancing_current: + name: "${bms4_name} max balancing current" + charging_overtemperature_protection: + name: "${bms4_name} charging overtemperature protection" + charging_overtemperature_protection_recovery: + name: "${bms4_name} charging overtemperature protection recovery" + discharging_overtemperature_protection: + name: "${bms4_name} discharging overtemperature protection" + discharging_overtemperature_protection_recovery: + name: "${bms4_name} discharging overtemperature protection recovery" + charging_lowtemperature_protection: + name: "${bms4_name} charging lowtemperature protection" + charging_lowtemperature_protection_recovery: + name: "${bms4_name} charging lowtemperature protection recovery" + mos_overtemperature_protection: + name: "${bms4_name} mos overtemperature protection" + mos_overtemperature_protection_recovery: + name: "${bms4_name} mos overtemperature protection recovery" + cell_count_settings: + name: "${bms4_name} cell count settings" + battery_capacity_total_settings: + name: "${bms4_name} battery capacity total settings" + precharging_time_from_discharge: + name: "${bms4_name} precharging time from discharge" + cell_request_charge_voltage_time: + name: "${bms4_name} cell request charge voltage time" + cell_request_float_voltage_time: + name: "${bms4_name} cell request float voltage time" + + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms5 + cell_smart_sleep_voltage: + name: "${bms5_name} cell smart sleep voltage" + cell_undervoltage_protection: + name: "${bms5_name} cell undervoltage protection" + cell_undervoltage_protection_recovery: + name: "${bms5_name} cell undervoltage protection recovery" + cell_overvoltage_protection: + name: "${bms5_name} cell overvoltage protection" + cell_overvoltage_protection_recovery: + name: "${bms5_name} cell overvoltage protection recovery" + cell_balancing_trigger_voltage: + name: "${bms5_name} cell balancing trigger voltage" + cell_soc100_voltage: + name: "${bms5_name} cell soc100 voltage" + cell_soc0_voltage: + name: "${bms5_name} cell soc0 voltage" + cell_request_charge_voltage: + name: "${bms5_name} cell request charge voltage" + cell_request_float_voltage: + name: "${bms5_name} cell request float voltage" + cell_power_off_voltage: + name: "${bms5_name} cell power off voltage" + cell_balancing_starting_voltage: + name: "${bms5_name} cell balancing starting voltage" + max_charging_current: + name: "${bms5_name} max charging current" + charging_overcurrent_protection_delay: + name: "${bms5_name} charging overcurrent protection delay" + charging_overcurrent_protection_recovery_delay: + name: "${bms5_name} charging overcurrent protection recovery delay" + max_discharging_current: + name: "${bms5_name} max discharging current" + discharging_overcurrent_protection_delay: + name: "${bms5_name} discharging overcurrent protection delay" + discharging_overcurrent_protection_recovery_delay: + name: "${bms5_name} discharging overcurrent protection recovery delay" + short_circuit_protection_delay: + name: "${bms5_name} short circuit protection delay" + short_circuit_protection_recovery_delay: + name: "${bms5_name} short circuit protection recovery delay" + max_balancing_current: + name: "${bms5_name} max balancing current" + charging_overtemperature_protection: + name: "${bms5_name} charging overtemperature protection" + charging_overtemperature_protection_recovery: + name: "${bms5_name} charging overtemperature protection recovery" + discharging_overtemperature_protection: + name: "${bms5_name} discharging overtemperature protection" + discharging_overtemperature_protection_recovery: + name: "${bms5_name} discharging overtemperature protection recovery" + charging_lowtemperature_protection: + name: "${bms5_name} charging lowtemperature protection" + charging_lowtemperature_protection_recovery: + name: "${bms5_name} charging lowtemperature protection recovery" + mos_overtemperature_protection: + name: "${bms5_name} mos overtemperature protection" + mos_overtemperature_protection_recovery: + name: "${bms5_name} mos overtemperature protection recovery" + cell_count_settings: + name: "${bms5_name} cell count settings" + battery_capacity_total_settings: + name: "${bms5_name} battery capacity total settings" + precharging_time_from_discharge: + name: "${bms5_name} precharging time from discharge" + cell_request_charge_voltage_time: + name: "${bms5_name} cell request charge voltage time" + cell_request_float_voltage_time: + name: "${bms5_name} cell request float voltage time" + + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms6 + cell_smart_sleep_voltage: + name: "${bms6_name} cell smart sleep voltage" + cell_undervoltage_protection: + name: "${bms6_name} cell undervoltage protection" + cell_undervoltage_protection_recovery: + name: "${bms6_name} cell undervoltage protection recovery" + cell_overvoltage_protection: + name: "${bms6_name} cell overvoltage protection" + cell_overvoltage_protection_recovery: + name: "${bms6_name} cell overvoltage protection recovery" + cell_balancing_trigger_voltage: + name: "${bms6_name} cell balancing trigger voltage" + cell_soc100_voltage: + name: "${bms6_name} cell soc100 voltage" + cell_soc0_voltage: + name: "${bms6_name} cell soc0 voltage" + cell_request_charge_voltage: + name: "${bms6_name} cell request charge voltage" + cell_request_float_voltage: + name: "${bms6_name} cell request float voltage" + cell_power_off_voltage: + name: "${bms6_name} cell power off voltage" + cell_balancing_starting_voltage: + name: "${bms6_name} cell balancing starting voltage" + max_charging_current: + name: "${bms6_name} max charging current" + charging_overcurrent_protection_delay: + name: "${bms6_name} charging overcurrent protection delay" + charging_overcurrent_protection_recovery_delay: + name: "${bms6_name} charging overcurrent protection recovery delay" + max_discharging_current: + name: "${bms6_name} max discharging current" + discharging_overcurrent_protection_delay: + name: "${bms6_name} discharging overcurrent protection delay" + discharging_overcurrent_protection_recovery_delay: + name: "${bms6_name} discharging overcurrent protection recovery delay" + short_circuit_protection_delay: + name: "${bms6_name} short circuit protection delay" + short_circuit_protection_recovery_delay: + name: "${bms6_name} short circuit protection recovery delay" + max_balancing_current: + name: "${bms6_name} max balancing current" + charging_overtemperature_protection: + name: "${bms6_name} charging overtemperature protection" + charging_overtemperature_protection_recovery: + name: "${bms6_name} charging overtemperature protection recovery" + discharging_overtemperature_protection: + name: "${bms6_name} discharging overtemperature protection" + discharging_overtemperature_protection_recovery: + name: "${bms6_name} discharging overtemperature protection recovery" + charging_lowtemperature_protection: + name: "${bms6_name} charging lowtemperature protection" + charging_lowtemperature_protection_recovery: + name: "${bms6_name} charging lowtemperature protection recovery" + mos_overtemperature_protection: + name: "${bms6_name} mos overtemperature protection" + mos_overtemperature_protection_recovery: + name: "${bms6_name} mos overtemperature protection recovery" + cell_count_settings: + name: "${bms6_name} cell count settings" + battery_capacity_total_settings: + name: "${bms6_name} battery capacity total settings" + precharging_time_from_discharge: + name: "${bms6_name} precharging time from discharge" + cell_request_charge_voltage_time: + name: "${bms6_name} cell request charge voltage time" + cell_request_float_voltage_time: + name: "${bms6_name} cell request float voltage time" + +light: + # https://esphome.io/components/light/esp32_rmt_led_strip + - platform: esp32_rmt_led_strip + id: esp_light + name: ${esp_name} ESP Light + rgb_order: GRB + pin: 48 + num_leds: 1 + rmt_channel: 0 + chipset: ws2812 + entity_category: config + internal: true diff --git a/esp32-example-jkpb-rs485_0master_2slaves.yaml b/esp32-example-jkpb-rs485_0master_2slaves.yaml index a95f27be..dfeddf6c 100644 --- a/esp32-example-jkpb-rs485_0master_2slaves.yaml +++ b/esp32-example-jkpb-rs485_0master_2slaves.yaml @@ -13,7 +13,7 @@ esphome: comment: ${device_description} project: name: "txubelaxu.esphome-jk-bms" - version: 1.0.0 + version: 2.0.1 # libraries: # - "ArduinoJson" # includes: @@ -47,14 +47,13 @@ wifi: ssid: !secret wifi_ssid password: !secret wifi_password - ota: + platform: esphome api: - logger: - level: VERY_VERBOSE #DEBUG #INFO #VERY_VERBOSE #VERBOSE #DEBUG #INFO #DEBUG + level: DEBUG #VERBOSE #DEBUG #INFO #VERY_VERBOSE #VERBOSE #DEBUG #INFO #DEBUG tx_buffer_size: 2048 # If you use Home Assistant please remove this `mqtt` section and uncomment the `api` component! @@ -65,6 +64,7 @@ logger: # password: !secret mqtt_password # id: mqtt_client # log_topic: null + #web_server: # local: true # port: 80 @@ -75,9 +75,10 @@ logger: uart: - id: uart_0 baud_rate: 115200 - rx_buffer_size: 1000 + rx_buffer_size: 500 tx_pin: ${tx_pin_uart_0} rx_pin: ${rx_pin_uart_0} + jk_rs485_sniffer: - id: sniffer0 protocol_version: "JK02_32S" @@ -248,13 +249,43 @@ binary_sensor: + sensor: + - platform: uptime + id: uptime_sec + # +--------------------------------------+ + # | Uptime sensor | + # +--------------------------------------+ + - platform: uptime + name: ${esp_name} Uptime Sensor + id: uptime_sensor + update_interval: 5s + entity_category: diagnostic + on_raw_value: + then: + - text_sensor.template.publish: + id: uptime_human + state: !lambda |- + char buf[10]; + int uptime_sec = round(id(uptime_sensor).raw_state); + int days = (int)(uptime_sec / 86400); + int hours = (int)((uptime_sec % 86400) / 3600); + int minutes = (int)((uptime_sec % 3600) / 60); + int seconds = (int)(uptime_sec % 60); + + return( + ( + (days ? sprintf(buf, "%02dd ", days), std::string(buf) : "") + + (hours ? sprintf(buf, "%02dh ", hours), std::string(buf) : "") + + (minutes ? sprintf(buf, "%02dm ", minutes), std::string(buf) : "") + + (sprintf(buf, "%02ds", seconds), std::string(buf)) + ).c_str() + ); + - platform: jk_rs485_bms jk_rs485_bms_id: bms0 balancing_direction: name: "${bms0_name} balancing direction" - cell_smart_sleep_voltage: - name: "${bms0_name} cell smart sleep voltage" cell_voltage_min: name: "${bms0_name} cell voltage min" cell_voltage_max: @@ -397,8 +428,6 @@ sensor: name: "${bms0_name} battery capacity state of charge" battery_capacity_remaining: name: "${bms0_name} battery capacity remaining" - battery_capacity_total_setting: - name: "${bms0_name} battery capacity total setting" charging_cycles: name: "${bms0_name} charging cycles" battery_capacity_total_charging_cycle: @@ -409,74 +438,10 @@ sensor: name: "${bms0_name} balancing current" errors_bitmask: name: "${bms0_name} errors bitmask" - cell_count_settings: - name: "${bms0_name} cell count settings" cell_count_real: - name: "${bms0_name} cell count real" - cell_overvoltage_protection: - name: "${bms0_name} cell overvoltage protection" - cell_overvoltage_protection_recovery: - name: "${bms0_name} cell overvoltage protection recovery" - cell_request_charge_voltage: - name: "${bms0_name} cell request charge voltage" - cell_request_charge_voltage_time: - name: "${bms0_name} cell request charge voltage time" - cell_request_float_voltage: - name: "${bms0_name} cell request float voltage" - cell_request_float_voltage_time: - name: "${bms0_name} cell request float voltage time" - balancing_trigger_voltage: - name: "${bms0_name} balancing trigger voltage" - cell_balancing_starting_voltage: - name: "${bms0_name} cell balancing starting voltage" - max_balancing_current: - name: "${bms0_name} max balancing current" - cell_soc100_voltage: - name: "${bms0_name} cell soc100 voltage" - cell_soc0_voltage: - name: "${bms0_name} cell soc0 voltage" - cell_undervoltage_protection: - name: "${bms0_name} cell undervoltage protection" - cell_undervoltage_protection_recovery: - name: "${bms0_name} cell undervoltage protection recovery" - cell_power_off_voltage: - name: "${bms0_name} cell power off voltage" + name: "${bms0_name} cell count real" smart_sleep_time: - name: "${bms0_name} smart sleep time" - max_charging_current: - name: "${bms0_name} max charging current" - max_discharging_current: - name: "${bms0_name} max discharging current" - charging_overcurrent_protection_delay: - name: "${bms0_name} charging overcurrent protection delay" - charging_overcurrent_protection_recovery_delay: - name: "${bms0_name} charging overcurrent protection recovery delay" - discharging_overcurrent_protection_delay: - name: "${bms0_name} discharging overcurrent protection delay" - discharging_overcurrent_protection_recovery_delay: - name: "${bms0_name} discharging overcurrent protection recovery delay" - short_circuit_protection_delay: - name: "${bms0_name} short circuit protection delay" - short_circuit_protection_recovery_delay: - name: "${bms0_name} short circuit protection recovery delay" - precharging_time_from_discharge: - name: "${bms0_name} precharging time from discharge" - charging_overtemperature_protection: - name: "${bms0_name} charging overtemperature protection" - charging_overtemperature_protection_recovery: - name: "${bms0_name} charging overtemperature protection recovery" - discharging_overtemperature_protection: - name: "${bms0_name} discharging overtemperature protection" - discharging_overtemperature_protection_recovery: - name: "${bms0_name} discharging overtemperature protection recovery" - charging_lowtemperature_protection: - name: "${bms0_name} charging lowtemperature protection" - charging_lowtemperature_protection_recovery: - name: "${bms0_name} charging lowtemperature protection recovery" - mos_overtemperature_protection: - name: "${bms0_name} mos overtemperature protection" - mos_overtemperature_protection_recovery: - name: "${bms0_name} mos overtemperature protection recovery" + name: "${bms0_name} smart sleep time" powertube_temperature_protection: name: "${bms0_name} powertube temperature protection" powertube_temperature_protection_recovery: @@ -511,8 +476,6 @@ sensor: jk_rs485_bms_id: bms1 balancing_direction: name: "${bms1_name} balancing direction" - cell_smart_sleep_voltage: - name: "${bms1_name} cell smart sleep voltage" cell_voltage_min: name: "${bms1_name} cell voltage min" cell_voltage_max: @@ -655,8 +618,6 @@ sensor: name: "${bms1_name} battery capacity state of charge" battery_capacity_remaining: name: "${bms1_name} battery capacity remaining" - battery_capacity_total_setting: - name: "${bms1_name} battery capacity total setting" charging_cycles: name: "${bms1_name} charging cycles" battery_capacity_total_charging_cycle: @@ -667,74 +628,10 @@ sensor: name: "${bms1_name} balancing current" errors_bitmask: name: "${bms1_name} errors bitmask" - cell_count_settings: - name: "${bms1_name} cell count settings" cell_count_real: - name: "${bms1_name} cell count real" - cell_overvoltage_protection: - name: "${bms1_name} cell overvoltage protection" - cell_overvoltage_protection_recovery: - name: "${bms1_name} cell overvoltage protection recovery" - cell_request_charge_voltage: - name: "${bms1_name} cell request charge voltage" - cell_request_charge_voltage_time: - name: "${bms1_name} cell request charge voltage time" - cell_request_float_voltage: - name: "${bms1_name} cell request float voltage" - cell_request_float_voltage_time: - name: "${bms1_name} cell request float voltage time" - balancing_trigger_voltage: - name: "${bms1_name} balancing trigger voltage" - cell_balancing_starting_voltage: - name: "${bms1_name} cell balancing starting voltage" - max_balancing_current: - name: "${bms1_name} max balancing current" - cell_soc100_voltage: - name: "${bms1_name} cell soc100 voltage" - cell_soc0_voltage: - name: "${bms1_name} cell soc0 voltage" - cell_undervoltage_protection: - name: "${bms1_name} cell undervoltage protection" - cell_undervoltage_protection_recovery: - name: "${bms1_name} cell undervoltage protection recovery" - cell_power_off_voltage: - name: "${bms1_name} cell power off voltage" + name: "${bms1_name} cell count real" smart_sleep_time: - name: "${bms1_name} smart sleep time" - max_charging_current: - name: "${bms1_name} max_charging_current" - max_discharging_current: - name: "${bms1_name} max discharging current" - charging_overcurrent_protection_delay: - name: "${bms1_name} charging overcurrent protection delay" - charging_overcurrent_protection_recovery_delay: - name: "${bms1_name} charging overcurrent protection recovery delay" - discharging_overcurrent_protection_delay: - name: "${bms1_name} discharging overcurrent protection delay" - discharging_overcurrent_protection_recovery_delay: - name: "${bms1_name} discharging overcurrent protection recovery delay" - short_circuit_protection_delay: - name: "${bms1_name} short circuit protection delay" - short_circuit_protection_recovery_delay: - name: "${bms1_name} short circuit protection recovery delay" - precharging_time_from_discharge: - name: "${bms1_name} precharging time from discharge" - charging_overtemperature_protection: - name: "${bms1_name} charging overtemperature protection" - charging_overtemperature_protection_recovery: - name: "${bms1_name} charging overtemperature protection recovery" - discharging_overtemperature_protection: - name: "${bms1_name} discharging overtemperature protection" - discharging_overtemperature_protection_recovery: - name: "${bms1_name} discharging overtemperature protection recovery" - charging_lowtemperature_protection: - name: "${bms1_name} charging lowtemperature protection" - charging_lowtemperature_protection_recovery: - name: "${bms1_name} charging lowtemperature protection recovery" - mos_overtemperature_protection: - name: "${bms1_name} mos overtemperature protection" - mos_overtemperature_protection_recovery: - name: "${bms1_name} mos overtemperature protection recovery" + name: "${bms1_name} smart sleep time" powertube_temperature_protection: name: "${bms1_name} powertube temperature protection" powertube_temperature_protection_recovery: @@ -764,8 +661,20 @@ sensor: cell_overvoltage_protection_release_time: name: "${bms1_name} cell overvoltage protection release time" - switch: + - platform: template + name: "Broadcast changes to all BMSs" + id: broadcast_active + icon: "mdi:cast" + restore_mode: RESTORE_DEFAULT_ON + optimistic: true + turn_on_action: + - lambda: |- + id(sniffer0).set_broadcast_changes_to_all_bms(true); + turn_off_action: + - lambda: |- + id(sniffer0).set_broadcast_changes_to_all_bms(false); + - platform: jk_rs485_bms jk_rs485_bms_id: bms0 precharging: @@ -832,8 +741,18 @@ switch: name: "${bms1_name} port selection" special_charger: name: "${bms1_name} special charger" + text_sensor: + # +--------------------------------------+ + # | Uptime Human Readable | + # +--------------------------------------+ + - platform: template + name: ${esp_name} Uptime Human Readable + id: uptime_human + icon: mdi:clock-start + entity_category: diagnostic + - platform: jk_rs485_bms jk_rs485_bms_id: bms0 errors: @@ -887,4 +806,148 @@ text_sensor: info_device_serial_number: name: "${bms1_name} info device serial number" info_device_setup_passcode: - name: "${bms1_name} info device setup passcode" \ No newline at end of file + name: "${bms1_name} info device setup passcode" + +number: + - platform: jk_rs485_bms + jk_rs485_bms_id: bms0 + cell_smart_sleep_voltage: + name: "${bms0_name} cell smart sleep voltage" + cell_undervoltage_protection: + name: "${bms0_name} cell undervoltage protection" + cell_undervoltage_protection_recovery: + name: "${bms0_name} cell undervoltage protection recovery" + cell_overvoltage_protection: + name: "${bms0_name} cell overvoltage protection" + cell_overvoltage_protection_recovery: + name: "${bms0_name} cell overvoltage protection recovery" + cell_balancing_trigger_voltage: + name: "${bms0_name} cell balancing trigger voltage" + cell_soc100_voltage: + name: "${bms0_name} cell soc100 voltage" + cell_soc0_voltage: + name: "${bms0_name} cell soc0 voltage" + cell_request_charge_voltage: + name: "${bms0_name} cell request charge voltage" + cell_request_float_voltage: + name: "${bms0_name} cell request float voltage" + cell_power_off_voltage: + name: "${bms0_name} cell power off voltage" + cell_balancing_starting_voltage: + name: "${bms0_name} cell balancing starting voltage" + max_charging_current: + name: "${bms0_name} max charging current" + charging_overcurrent_protection_delay: + name: "${bms0_name} charging overcurrent protection delay" + charging_overcurrent_protection_recovery_delay: + name: "${bms0_name} charging overcurrent protection recovery delay" + max_discharging_current: + name: "${bms0_name} max discharging current" + discharging_overcurrent_protection_delay: + name: "${bms0_name} discharging overcurrent protection delay" + discharging_overcurrent_protection_recovery_delay: + name: "${bms0_name} discharging overcurrent protection recovery delay" + short_circuit_protection_delay: + name: "${bms0_name} short circuit protection delay" + short_circuit_protection_recovery_delay: + name: "${bms0_name} short circuit protection recovery delay" + max_balancing_current: + name: "${bms0_name} max balancing current" + charging_overtemperature_protection: + name: "${bms0_name} charging overtemperature protection" + charging_overtemperature_protection_recovery: + name: "${bms0_name} charging overtemperature protection recovery" + discharging_overtemperature_protection: + name: "${bms0_name} discharging overtemperature protection" + discharging_overtemperature_protection_recovery: + name: "${bms0_name} discharging overtemperature protection recovery" + charging_lowtemperature_protection: + name: "${bms0_name} charging lowtemperature protection" + charging_lowtemperature_protection_recovery: + name: "${bms0_name} charging lowtemperature protection recovery" + mos_overtemperature_protection: + name: "${bms0_name} mos overtemperature protection" + mos_overtemperature_protection_recovery: + name: "${bms0_name} mos overtemperature protection recovery" + cell_count_settings: + name: "${bms0_name} cell count settings" + battery_capacity_total_settings: + name: "${bms0_name} battery capacity total settings" + precharging_time_from_discharge: + name: "${bms0_name} precharging time from discharge" + cell_request_charge_voltage_time: + name: "${bms0_name} cell request charge voltage time" + cell_request_float_voltage_time: + name: "${bms0_name} cell request float voltage time" + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms1 + cell_smart_sleep_voltage: + name: "${bms1_name} cell smart sleep voltage" + cell_undervoltage_protection: + name: "${bms1_name} cell undervoltage protection" + cell_undervoltage_protection_recovery: + name: "${bms1_name} cell undervoltage protection recovery" + cell_overvoltage_protection: + name: "${bms1_name} cell overvoltage protection" + cell_overvoltage_protection_recovery: + name: "${bms1_name} cell overvoltage protection recovery" + cell_balancing_trigger_voltage: + name: "${bms1_name} cell balancing trigger voltage" + cell_soc100_voltage: + name: "${bms1_name} cell soc100 voltage" + cell_soc0_voltage: + name: "${bms1_name} cell soc0 voltage" + cell_request_charge_voltage: + name: "${bms1_name} cell request charge voltage" + cell_request_float_voltage: + name: "${bms1_name} cell request float voltage" + cell_power_off_voltage: + name: "${bms1_name} cell power off voltage" + cell_balancing_starting_voltage: + name: "${bms1_name} cell balancing starting voltage" + max_charging_current: + name: "${bms1_name} max charging current" + charging_overcurrent_protection_delay: + name: "${bms1_name} charging overcurrent protection delay" + charging_overcurrent_protection_recovery_delay: + name: "${bms1_name} charging overcurrent protection recovery delay" + max_discharging_current: + name: "${bms1_name} max discharging current" + discharging_overcurrent_protection_delay: + name: "${bms1_name} discharging overcurrent protection delay" + discharging_overcurrent_protection_recovery_delay: + name: "${bms1_name} discharging overcurrent protection recovery delay" + short_circuit_protection_delay: + name: "${bms1_name} short circuit protection delay" + short_circuit_protection_recovery_delay: + name: "${bms1_name} short circuit protection recovery delay" + max_balancing_current: + name: "${bms1_name} max balancing current" + charging_overtemperature_protection: + name: "${bms1_name} charging overtemperature protection" + charging_overtemperature_protection_recovery: + name: "${bms1_name} charging overtemperature protection recovery" + discharging_overtemperature_protection: + name: "${bms1_name} discharging overtemperature protection" + discharging_overtemperature_protection_recovery: + name: "${bms1_name} discharging overtemperature protection recovery" + charging_lowtemperature_protection: + name: "${bms1_name} charging lowtemperature protection" + charging_lowtemperature_protection_recovery: + name: "${bms1_name} charging lowtemperature protection recovery" + mos_overtemperature_protection: + name: "${bms1_name} mos overtemperature protection" + mos_overtemperature_protection_recovery: + name: "${bms1_name} mos overtemperature protection recovery" + cell_count_settings: + name: "${bms1_name} cell count settings" + battery_capacity_total_settings: + name: "${bms1_name} battery capacity total settings" + precharging_time_from_discharge: + name: "${bms1_name} precharging time from discharge" + cell_request_charge_voltage_time: + name: "${bms1_name} cell request charge voltage time" + cell_request_float_voltage_time: + name: "${bms1_name} cell request float voltage time" + diff --git a/esp32-example-jkpb-rs485_0master_7slaves.yaml b/esp32-example-jkpb-rs485_0master_7slaves.yaml new file mode 100644 index 00000000..6286dc94 --- /dev/null +++ b/esp32-example-jkpb-rs485_0master_7slaves.yaml @@ -0,0 +1,2949 @@ +substitutions: + esp_name: esp-rs485-gw + bms0_name: rs485-bms0 + bms1_name: rs485-bms1 + bms2_name: rs485-bms2 + bms3_name: rs485-bms3 + bms4_name: rs485-bms4 + bms5_name: rs485-bms5 + bms6_name: rs485-bms6 + device_description: "Monitor two JK-BMS via RS485 internal" + external_components_source: github://txubelaxu/esphome-jk-bms@main #github://syssi/esphome-jk-bms@main + tx_pin_uart_0: GPIO17 #GPIO1 #GPIO16 + rx_pin_uart_0: GPIO16 #GPIO3 #GPIO17 + talk_pin_rs485: GPIO4 + +esphome: + name: ${esp_name} + comment: ${device_description} + project: + name: "txubelaxu.esphome-jk-bms" + version: 1.0.0 + #includes: + #- ./components/output/binary_output.h + #- ./components/jk_rs485_sniffer/gpio.h + +esp32: + board: esp32dev #nodemcu-32s #wemos_d1_mini32 + framework: + type: esp-idf + +#esp8266: +# board: d1_mini + +external_components: + - source: ${external_components_source} + refresh: 0s +# - source: ./components +# refresh: 0s +wifi: + ssid: !secret wifi_ssid + password: !secret wifi_password + +ota: + platform: esphome + +api: + +logger: + level: DEBUG #VERBOSE #DEBUG #INFO #VERY_VERBOSE #VERBOSE #DEBUG #INFO #DEBUG + tx_buffer_size: 2048 + +# If you use Home Assistant please remove this `mqtt` section and uncomment the `api` component! +# The native API has many advantages over MQTT: https://esphome.io/components/api.html#advantages-over-mqtt +#mqtt: +# broker: !secret mqtt_host +# username: !secret mqtt_username +# password: !secret mqtt_password +# id: mqtt_client +# log_topic: null + +#web_server: +# local: true +# port: 80 +# auth: +# username: !secret web_server_user +# password: !secret web_server_password + +uart: + - id: uart_0 + baud_rate: 115200 + rx_buffer_size: 500 + tx_pin: ${tx_pin_uart_0} + rx_pin: ${rx_pin_uart_0} + +jk_rs485_sniffer: + - id: sniffer0 + protocol_version: "JK02_32S" + rx_timeout: 500ms + uart_id: uart_0 + talk_pin: ${talk_pin_rs485} + +jk_rs485_bms: + - id: bms0 + rs485_address: 0x01 + jk_rs485_sniffer_id: sniffer0 + update_interval: 180s + - id: bms1 + rs485_address: 0x02 + jk_rs485_sniffer_id: sniffer0 + update_interval: 180s + - id: bms2 + rs485_address: 0x03 + jk_rs485_sniffer_id: sniffer0 + update_interval: 180s + - id: bms3 + rs485_address: 0x04 + jk_rs485_sniffer_id: sniffer0 + update_interval: 180s + - id: bms4 + rs485_address: 0x05 + jk_rs485_sniffer_id: sniffer0 + update_interval: 180s + - id: bms5 + rs485_address: 0x06 + jk_rs485_sniffer_id: sniffer0 + update_interval: 180s + - id: bms6 + rs485_address: 0x07 + jk_rs485_sniffer_id: sniffer0 + update_interval: 180s + +binary_sensor: + - platform: jk_rs485_bms + jk_rs485_bms_id: bms0 + status_balancing: + name: "${bms0_name} status balancing" + status_precharging: + name: "${bms0_name} status precharging" + status_charging: + name: "${bms0_name} status charging" + status_discharging: + name: "${bms0_name} status discharging" + status_online: + name: "${bms0_name} status online" + status_heating: + name: "${bms0_name} status heating" + alarm_wireres: + name: "${bms0_name} alarm WireRes" + alarm_mosotp: + name: "${bms0_name} alarm MosOTP" + alarm_cellquantity: + name: "${bms0_name} alarm CellQuantity" + alarm_cursensorerr: + name: "${bms0_name} alarm CurSensorErr" + alarm_cellovp: + name: "${bms0_name} alarm CellOVP" + alarm_batovp: + name: "${bms0_name} alarm BatOVP" + alarm_chocp: + name: "${bms0_name} alarm ChOCP" + alarm_chscp: + name: "${bms0_name} alarm ChSCP" + alarm_chotp: + name: "${bms0_name} alarm ChOTP" + alarm_chutp: + name: "${bms0_name} alarm ChUTP" + alarm_cpuauxcommuerr: + name: "${bms0_name} alarm CPUAuxCommuErr" + alarm_celluvp: + name: "${bms0_name} alarm CellUVP" + alarm_batuvp: + name: "${bms0_name} alarm BatUVP" + alarm_dchocp: + name: "${bms0_name} alarm DchOCP" + alarm_dchscp: + name: "${bms0_name} alarm DchSCP" + alarm_dchotp: + name: "${bms0_name} alarm DchOTP" + alarm_chargemos: + name: "${bms0_name} alarm ChargeMOS" + alarm_dischargemos: + name: "${bms0_name} alarm DischargeMOS" + alarm_gpsdisconneted: + name: "${bms0_name} alarm GPSDisconneted" + alarm_modifypwdintime: + name: "${bms0_name} alarm ModifyPWDinTime" + alarm_dischargeonfailed: + name: "${bms0_name} alarm DischargeOnFailed" + alarm_batteryovertemp: + name: "${bms0_name} alarm BatteryOverTemp" + alarm_temperaturesensoranomaly: + name: "${bms0_name} alarm TemperatureSensorAnomaly" + alarm_plcmoduleanomaly: + name: "${bms0_name} alarm PLCModuleAnomaly" + alarm_mostempsensorabsent: + name: "${bms0_name} alarm MOSTempSensorAbsent" + alarm_battempsensor1absent: + name: "${bms0_name} alarm BATTempSensor1Absent" + alarm_battempsensor2absent: + name: "${bms0_name} alarm BATTempSensor2Absent" + alarm_battempsensor3absent: + name: "${bms0_name} alarm BATTempSensor3Absent" + alarm_battempsensor4absent: + name: "${bms0_name} alarm BATTempSensor4Absent" + alarm_battempsensor5absent: + name: "${bms0_name} alarm BATTempSensor5Absent" + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms1 + status_balancing: + name: "${bms1_name} status balancing" + status_precharging: + name: "${bms1_name} status precharging" + status_charging: + name: "${bms1_name} status charging" + status_discharging: + name: "${bms1_name} status discharging" + status_online: + name: "${bms1_name} status online" + status_heating: + name: "${bms1_name} status heating" + alarm_wireres: + name: "${bms1_name} alarm WireRes" + alarm_mosotp: + name: "${bms1_name} alarm MosOTP" + alarm_cellquantity: + name: "${bms1_name} alarm CellQuantity" + alarm_cursensorerr: + name: "${bms1_name} alarm CurSensorErr" + alarm_cellovp: + name: "${bms1_name} alarm CellOVP" + alarm_batovp: + name: "${bms1_name} alarm BatOVP" + alarm_chocp: + name: "${bms1_name} alarm ChOCP" + alarm_chscp: + name: "${bms1_name} alarm ChSCP" + alarm_chotp: + name: "${bms1_name} alarm ChOTP" + alarm_chutp: + name: "${bms1_name} alarm ChUTP" + alarm_cpuauxcommuerr: + name: "${bms1_name} alarm CPUAuxCommuErr" + alarm_celluvp: + name: "${bms1_name} alarm CellUVP" + alarm_batuvp: + name: "${bms1_name} alarm BatUVP" + alarm_dchocp: + name: "${bms1_name} alarm DchOCP" + alarm_dchscp: + name: "${bms1_name} alarm DchSCP" + alarm_dchotp: + name: "${bms1_name} alarm DchOTP" + alarm_chargemos: + name: "${bms1_name} alarm ChargeMOS" + alarm_dischargemos: + name: "${bms1_name} alarm DischargeMOS" + alarm_gpsdisconneted: + name: "${bms1_name} alarm GPSDisconneted" + alarm_modifypwdintime: + name: "${bms1_name} alarm ModifyPWDinTime" + alarm_dischargeonfailed: + name: "${bms1_name} alarm DischargeOnFailed" + alarm_batteryovertemp: + name: "${bms1_name} alarm BatteryOverTemp" + alarm_temperaturesensoranomaly: + name: "${bms1_name} alarm TemperatureSensorAnomaly" + alarm_plcmoduleanomaly: + name: "${bms1_name} alarm PLCModuleAnomaly" + alarm_mostempsensorabsent: + name: "${bms1_name} alarm MOSTempSensorAbsent" + alarm_battempsensor1absent: + name: "${bms1_name} alarm BATTempSensor1Absent" + alarm_battempsensor2absent: + name: "${bms1_name} alarm BATTempSensor2Absent" + alarm_battempsensor3absent: + name: "${bms1_name} alarm BATTempSensor3Absent" + alarm_battempsensor4absent: + name: "${bms1_name} alarm BATTempSensor4Absent" + alarm_battempsensor5absent: + name: "${bms1_name} alarm BATTempSensor5Absent" + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms2 + status_balancing: + name: "${bms2_name} status balancing" + status_precharging: + name: "${bms2_name} status precharging" + status_charging: + name: "${bms2_name} status charging" + status_discharging: + name: "${bms2_name} status discharging" + status_online: + name: "${bms2_name} status online" + status_heating: + name: "${bms2_name} status heating" + alarm_wireres: + name: "${bms2_name} alarm WireRes" + alarm_mosotp: + name: "${bms2_name} alarm MosOTP" + alarm_cellquantity: + name: "${bms2_name} alarm CellQuantity" + alarm_cursensorerr: + name: "${bms2_name} alarm CurSensorErr" + alarm_cellovp: + name: "${bms2_name} alarm CellOVP" + alarm_batovp: + name: "${bms2_name} alarm BatOVP" + alarm_chocp: + name: "${bms2_name} alarm ChOCP" + alarm_chscp: + name: "${bms2_name} alarm ChSCP" + alarm_chotp: + name: "${bms2_name} alarm ChOTP" + alarm_chutp: + name: "${bms2_name} alarm ChUTP" + alarm_cpuauxcommuerr: + name: "${bms2_name} alarm CPUAuxCommuErr" + alarm_celluvp: + name: "${bms2_name} alarm CellUVP" + alarm_batuvp: + name: "${bms2_name} alarm BatUVP" + alarm_dchocp: + name: "${bms2_name} alarm DchOCP" + alarm_dchscp: + name: "${bms2_name} alarm DchSCP" + alarm_dchotp: + name: "${bms2_name} alarm DchOTP" + alarm_chargemos: + name: "${bms2_name} alarm ChargeMOS" + alarm_dischargemos: + name: "${bms2_name} alarm DischargeMOS" + alarm_gpsdisconneted: + name: "${bms2_name} alarm GPSDisconneted" + alarm_modifypwdintime: + name: "${bms2_name} alarm ModifyPWDinTime" + alarm_dischargeonfailed: + name: "${bms2_name} alarm DischargeOnFailed" + alarm_batteryovertemp: + name: "${bms2_name} alarm BatteryOverTemp" + alarm_temperaturesensoranomaly: + name: "${bms2_name} alarm TemperatureSensorAnomaly" + alarm_plcmoduleanomaly: + name: "${bms2_name} alarm PLCModuleAnomaly" + alarm_mostempsensorabsent: + name: "${bms2_name} alarm MOSTempSensorAbsent" + alarm_battempsensor1absent: + name: "${bms2_name} alarm BATTempSensor1Absent" + alarm_battempsensor2absent: + name: "${bms2_name} alarm BATTempSensor2Absent" + alarm_battempsensor3absent: + name: "${bms2_name} alarm BATTempSensor3Absent" + alarm_battempsensor4absent: + name: "${bms2_name} alarm BATTempSensor4Absent" + alarm_battempsensor5absent: + name: "${bms2_name} alarm BATTempSensor5Absent" + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms3 + status_balancing: + name: "${bms3_name} status balancing" + status_precharging: + name: "${bms3_name} status precharging" + status_charging: + name: "${bms3_name} status charging" + status_discharging: + name: "${bms3_name} status discharging" + status_online: + name: "${bms3_name} status online" + status_heating: + name: "${bms3_name} status heating" + alarm_wireres: + name: "${bms3_name} alarm WireRes" + alarm_mosotp: + name: "${bms3_name} alarm MosOTP" + alarm_cellquantity: + name: "${bms3_name} alarm CellQuantity" + alarm_cursensorerr: + name: "${bms3_name} alarm CurSensorErr" + alarm_cellovp: + name: "${bms3_name} alarm CellOVP" + alarm_batovp: + name: "${bms3_name} alarm BatOVP" + alarm_chocp: + name: "${bms3_name} alarm ChOCP" + alarm_chscp: + name: "${bms3_name} alarm ChSCP" + alarm_chotp: + name: "${bms3_name} alarm ChOTP" + alarm_chutp: + name: "${bms3_name} alarm ChUTP" + alarm_cpuauxcommuerr: + name: "${bms3_name} alarm CPUAuxCommuErr" + alarm_celluvp: + name: "${bms3_name} alarm CellUVP" + alarm_batuvp: + name: "${bms3_name} alarm BatUVP" + alarm_dchocp: + name: "${bms3_name} alarm DchOCP" + alarm_dchscp: + name: "${bms3_name} alarm DchSCP" + alarm_dchotp: + name: "${bms3_name} alarm DchOTP" + alarm_chargemos: + name: "${bms3_name} alarm ChargeMOS" + alarm_dischargemos: + name: "${bms3_name} alarm DischargeMOS" + alarm_gpsdisconneted: + name: "${bms3_name} alarm GPSDisconneted" + alarm_modifypwdintime: + name: "${bms3_name} alarm ModifyPWDinTime" + alarm_dischargeonfailed: + name: "${bms3_name} alarm DischargeOnFailed" + alarm_batteryovertemp: + name: "${bms3_name} alarm BatteryOverTemp" + alarm_temperaturesensoranomaly: + name: "${bms3_name} alarm TemperatureSensorAnomaly" + alarm_plcmoduleanomaly: + name: "${bms3_name} alarm PLCModuleAnomaly" + alarm_mostempsensorabsent: + name: "${bms3_name} alarm MOSTempSensorAbsent" + alarm_battempsensor1absent: + name: "${bms3_name} alarm BATTempSensor1Absent" + alarm_battempsensor2absent: + name: "${bms3_name} alarm BATTempSensor2Absent" + alarm_battempsensor3absent: + name: "${bms3_name} alarm BATTempSensor3Absent" + alarm_battempsensor4absent: + name: "${bms3_name} alarm BATTempSensor4Absent" + alarm_battempsensor5absent: + name: "${bms3_name} alarm BATTempSensor5Absent" + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms4 + status_balancing: + name: "${bms4_name} status balancing" + status_precharging: + name: "${bms4_name} status precharging" + status_charging: + name: "${bms4_name} status charging" + status_discharging: + name: "${bms4_name} status discharging" + status_online: + name: "${bms4_name} status online" + status_heating: + name: "${bms4_name} status heating" + alarm_wireres: + name: "${bms4_name} alarm WireRes" + alarm_mosotp: + name: "${bms4_name} alarm MosOTP" + alarm_cellquantity: + name: "${bms4_name} alarm CellQuantity" + alarm_cursensorerr: + name: "${bms4_name} alarm CurSensorErr" + alarm_cellovp: + name: "${bms4_name} alarm CellOVP" + alarm_batovp: + name: "${bms4_name} alarm BatOVP" + alarm_chocp: + name: "${bms4_name} alarm ChOCP" + alarm_chscp: + name: "${bms4_name} alarm ChSCP" + alarm_chotp: + name: "${bms4_name} alarm ChOTP" + alarm_chutp: + name: "${bms4_name} alarm ChUTP" + alarm_cpuauxcommuerr: + name: "${bms4_name} alarm CPUAuxCommuErr" + alarm_celluvp: + name: "${bms4_name} alarm CellUVP" + alarm_batuvp: + name: "${bms4_name} alarm BatUVP" + alarm_dchocp: + name: "${bms4_name} alarm DchOCP" + alarm_dchscp: + name: "${bms4_name} alarm DchSCP" + alarm_dchotp: + name: "${bms4_name} alarm DchOTP" + alarm_chargemos: + name: "${bms4_name} alarm ChargeMOS" + alarm_dischargemos: + name: "${bms4_name} alarm DischargeMOS" + alarm_gpsdisconneted: + name: "${bms4_name} alarm GPSDisconneted" + alarm_modifypwdintime: + name: "${bms4_name} alarm ModifyPWDinTime" + alarm_dischargeonfailed: + name: "${bms4_name} alarm DischargeOnFailed" + alarm_batteryovertemp: + name: "${bms4_name} alarm BatteryOverTemp" + alarm_temperaturesensoranomaly: + name: "${bms4_name} alarm TemperatureSensorAnomaly" + alarm_plcmoduleanomaly: + name: "${bms4_name} alarm PLCModuleAnomaly" + alarm_mostempsensorabsent: + name: "${bms4_name} alarm MOSTempSensorAbsent" + alarm_battempsensor1absent: + name: "${bms4_name} alarm BATTempSensor1Absent" + alarm_battempsensor2absent: + name: "${bms4_name} alarm BATTempSensor2Absent" + alarm_battempsensor3absent: + name: "${bms4_name} alarm BATTempSensor3Absent" + alarm_battempsensor4absent: + name: "${bms4_name} alarm BATTempSensor4Absent" + alarm_battempsensor5absent: + name: "${bms4_name} alarm BATTempSensor5Absent" + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms5 + status_balancing: + name: "${bms5_name} status balancing" + status_precharging: + name: "${bms5_name} status precharging" + status_charging: + name: "${bms5_name} status charging" + status_discharging: + name: "${bms5_name} status discharging" + status_online: + name: "${bms5_name} status online" + status_heating: + name: "${bms5_name} status heating" + alarm_wireres: + name: "${bms5_name} alarm WireRes" + alarm_mosotp: + name: "${bms5_name} alarm MosOTP" + alarm_cellquantity: + name: "${bms5_name} alarm CellQuantity" + alarm_cursensorerr: + name: "${bms5_name} alarm CurSensorErr" + alarm_cellovp: + name: "${bms5_name} alarm CellOVP" + alarm_batovp: + name: "${bms5_name} alarm BatOVP" + alarm_chocp: + name: "${bms5_name} alarm ChOCP" + alarm_chscp: + name: "${bms5_name} alarm ChSCP" + alarm_chotp: + name: "${bms5_name} alarm ChOTP" + alarm_chutp: + name: "${bms5_name} alarm ChUTP" + alarm_cpuauxcommuerr: + name: "${bms5_name} alarm CPUAuxCommuErr" + alarm_celluvp: + name: "${bms5_name} alarm CellUVP" + alarm_batuvp: + name: "${bms5_name} alarm BatUVP" + alarm_dchocp: + name: "${bms5_name} alarm DchOCP" + alarm_dchscp: + name: "${bms5_name} alarm DchSCP" + alarm_dchotp: + name: "${bms5_name} alarm DchOTP" + alarm_chargemos: + name: "${bms5_name} alarm ChargeMOS" + alarm_dischargemos: + name: "${bms5_name} alarm DischargeMOS" + alarm_gpsdisconneted: + name: "${bms5_name} alarm GPSDisconneted" + alarm_modifypwdintime: + name: "${bms5_name} alarm ModifyPWDinTime" + alarm_dischargeonfailed: + name: "${bms5_name} alarm DischargeOnFailed" + alarm_batteryovertemp: + name: "${bms5_name} alarm BatteryOverTemp" + alarm_temperaturesensoranomaly: + name: "${bms5_name} alarm TemperatureSensorAnomaly" + alarm_plcmoduleanomaly: + name: "${bms5_name} alarm PLCModuleAnomaly" + alarm_mostempsensorabsent: + name: "${bms5_name} alarm MOSTempSensorAbsent" + alarm_battempsensor1absent: + name: "${bms5_name} alarm BATTempSensor1Absent" + alarm_battempsensor2absent: + name: "${bms5_name} alarm BATTempSensor2Absent" + alarm_battempsensor3absent: + name: "${bms5_name} alarm BATTempSensor3Absent" + alarm_battempsensor4absent: + name: "${bms5_name} alarm BATTempSensor4Absent" + alarm_battempsensor5absent: + name: "${bms5_name} alarm BATTempSensor5Absent" + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms6 + status_balancing: + name: "${bms6_name} status balancing" + status_precharging: + name: "${bms6_name} status precharging" + status_charging: + name: "${bms6_name} status charging" + status_discharging: + name: "${bms6_name} status discharging" + status_online: + name: "${bms6_name} status online" + status_heating: + name: "${bms6_name} status heating" + alarm_wireres: + name: "${bms6_name} alarm WireRes" + alarm_mosotp: + name: "${bms6_name} alarm MosOTP" + alarm_cellquantity: + name: "${bms6_name} alarm CellQuantity" + alarm_cursensorerr: + name: "${bms6_name} alarm CurSensorErr" + alarm_cellovp: + name: "${bms6_name} alarm CellOVP" + alarm_batovp: + name: "${bms6_name} alarm BatOVP" + alarm_chocp: + name: "${bms6_name} alarm ChOCP" + alarm_chscp: + name: "${bms6_name} alarm ChSCP" + alarm_chotp: + name: "${bms6_name} alarm ChOTP" + alarm_chutp: + name: "${bms6_name} alarm ChUTP" + alarm_cpuauxcommuerr: + name: "${bms6_name} alarm CPUAuxCommuErr" + alarm_celluvp: + name: "${bms6_name} alarm CellUVP" + alarm_batuvp: + name: "${bms6_name} alarm BatUVP" + alarm_dchocp: + name: "${bms6_name} alarm DchOCP" + alarm_dchscp: + name: "${bms6_name} alarm DchSCP" + alarm_dchotp: + name: "${bms6_name} alarm DchOTP" + alarm_chargemos: + name: "${bms6_name} alarm ChargeMOS" + alarm_dischargemos: + name: "${bms6_name} alarm DischargeMOS" + alarm_gpsdisconneted: + name: "${bms6_name} alarm GPSDisconneted" + alarm_modifypwdintime: + name: "${bms6_name} alarm ModifyPWDinTime" + alarm_dischargeonfailed: + name: "${bms6_name} alarm DischargeOnFailed" + alarm_batteryovertemp: + name: "${bms6_name} alarm BatteryOverTemp" + alarm_temperaturesensoranomaly: + name: "${bms6_name} alarm TemperatureSensorAnomaly" + alarm_plcmoduleanomaly: + name: "${bms6_name} alarm PLCModuleAnomaly" + alarm_mostempsensorabsent: + name: "${bms6_name} alarm MOSTempSensorAbsent" + alarm_battempsensor1absent: + name: "${bms6_name} alarm BATTempSensor1Absent" + alarm_battempsensor2absent: + name: "${bms6_name} alarm BATTempSensor2Absent" + alarm_battempsensor3absent: + name: "${bms6_name} alarm BATTempSensor3Absent" + alarm_battempsensor4absent: + name: "${bms6_name} alarm BATTempSensor4Absent" + alarm_battempsensor5absent: + name: "${bms6_name} alarm BATTempSensor5Absent" + + + +sensor: + - platform: uptime + id: uptime_sec + # +--------------------------------------+ + # | Uptime sensor | + # +--------------------------------------+ + - platform: uptime + name: ${esp_name} Uptime Sensor + id: uptime_sensor + update_interval: 5s + entity_category: diagnostic + on_raw_value: + then: + - text_sensor.template.publish: + id: uptime_human + state: !lambda |- + char buf[10]; + int uptime_sec = round(id(uptime_sensor).raw_state); + int days = (int)(uptime_sec / 86400); + int hours = (int)((uptime_sec % 86400) / 3600); + int minutes = (int)((uptime_sec % 3600) / 60); + int seconds = (int)(uptime_sec % 60); + + return( + ( + (days ? sprintf(buf, "%02dd ", days), std::string(buf) : "") + + (hours ? sprintf(buf, "%02dh ", hours), std::string(buf) : "") + + (minutes ? sprintf(buf, "%02dm ", minutes), std::string(buf) : "") + + (sprintf(buf, "%02ds", seconds), std::string(buf)) + ).c_str() + ); + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms0 + balancing_direction: + name: "${bms0_name} balancing direction" + cell_voltage_min: + name: "${bms0_name} cell voltage min" + cell_voltage_max: + name: "${bms0_name} cell voltage max" + cell_voltage_min_cell_number: + name: "${bms0_name} cell voltage min cell number" + cell_voltage_max_cell_number: + name: "${bms0_name} cell voltage max cell number" + cell_delta_voltage: + name: "${bms0_name} cell delta voltage" + cell_average_voltage: + name: "${bms0_name} cell average voltage" + cell_resistance_min: + name: "${bms0_name} cell resistance min" + cell_resistance_max: + name: "${bms0_name} cell resistance max" + cell_resistance_min_cell_number: + name: "${bms0_name} cell resistance min cell number" + cell_resistance_max_cell_number: + name: "${bms0_name} cell resistance max cell number" + cell_voltage_01: + name: "${bms0_name} cell voltage 01" + cell_voltage_02: + name: "${bms0_name} cell voltage 02" + cell_voltage_03: + name: "${bms0_name} cell voltage 03" + cell_voltage_04: + name: "${bms0_name} cell voltage 04" + cell_voltage_05: + name: "${bms0_name} cell voltage 05" + cell_voltage_06: + name: "${bms0_name} cell voltage 06" + cell_voltage_07: + name: "${bms0_name} cell voltage 07" + cell_voltage_08: + name: "${bms0_name} cell voltage 08" + cell_voltage_09: + name: "${bms0_name} cell voltage 09" + cell_voltage_10: + name: "${bms0_name} cell voltage 10" + cell_voltage_11: + name: "${bms0_name} cell voltage 11" + cell_voltage_12: + name: "${bms0_name} cell voltage 12" + cell_voltage_13: + name: "${bms0_name} cell voltage 13" + cell_voltage_14: + name: "${bms0_name} cell voltage 14" + cell_voltage_15: + name: "${bms0_name} cell voltage 15" + cell_voltage_16: + name: "${bms0_name} cell voltage 16" + cell_voltage_17: + name: "${bms0_name} cell voltage 17" + cell_voltage_18: + name: "${bms0_name} cell voltage 18" + cell_voltage_19: + name: "${bms0_name} cell voltage 19" + cell_voltage_20: + name: "${bms0_name} cell voltage 20" + cell_voltage_21: + name: "${bms0_name} cell voltage 21" + cell_voltage_22: + name: "${bms0_name} cell voltage 22" + cell_voltage_23: + name: "${bms0_name} cell voltage 23" + cell_voltage_24: + name: "${bms0_name} cell voltage 24" + cell_resistance_01: + name: "${bms0_name} cell resistance 01" + cell_resistance_02: + name: "${bms0_name} cell resistance 02" + cell_resistance_03: + name: "${bms0_name} cell resistance 03" + cell_resistance_04: + name: "${bms0_name} cell resistance 04" + cell_resistance_05: + name: "${bms0_name} cell resistance 05" + cell_resistance_06: + name: "${bms0_name} cell resistance 06" + cell_resistance_07: + name: "${bms0_name} cell resistance 07" + cell_resistance_08: + name: "${bms0_name} cell resistance 08" + cell_resistance_09: + name: "${bms0_name} cell resistance 09" + cell_resistance_10: + name: "${bms0_name} cell resistance 10" + cell_resistance_11: + name: "${bms0_name} cell resistance 11" + cell_resistance_12: + name: "${bms0_name} cell resistance 12" + cell_resistance_13: + name: "${bms0_name} cell resistance 13" + cell_resistance_14: + name: "${bms0_name} cell resistance 14" + cell_resistance_15: + name: "${bms0_name} cell resistance 15" + cell_resistance_16: + name: "${bms0_name} cell resistance 16" + cell_resistance_17: + name: "${bms0_name} cell resistance 17" + cell_resistance_18: + name: "${bms0_name} cell resistance 18" + cell_resistance_19: + name: "${bms0_name} cell resistance 19" + cell_resistance_20: + name: "${bms0_name} cell resistance 20" + cell_resistance_21: + name: "${bms0_name} cell resistance 21" + cell_resistance_22: + name: "${bms0_name} cell resistance 22" + cell_resistance_23: + name: "${bms0_name} cell resistance 23" + cell_resistance_24: + name: "${bms0_name} cell resistance 24" + battery_voltage: + name: "${bms0_name} battery voltage" + battery_current: + name: "${bms0_name} battery current" + battery_power: + name: "${bms0_name} battery power" + battery_power_charging: + name: "${bms0_name} battery power charging" + battery_power_discharging: + name: "${bms0_name} battery power discharging" + temperature_sensor_1: + name: "${bms0_name} temperature sensor 1" + temperature_sensor_2: + name: "${bms0_name} temperature sensor 2" + temperature_sensor_3: + name: "${bms0_name} temperature sensor 3" + temperature_sensor_4: + name: "${bms0_name} temperature sensor 4" + temperature_sensor_5: + name: "${bms0_name} temperature sensor 5" + temperature_powertube: + name: "${bms0_name} temperature powertube" + battery_capacity_state_of_charge: + name: "${bms0_name} battery capacity state of charge" + battery_capacity_remaining: + name: "${bms0_name} battery capacity remaining" + charging_cycles: + name: "${bms0_name} charging cycles" + battery_capacity_total_charging_cycle: + name: "${bms0_name} battery capacity total charging cycle" + battery_total_runtime: + name: "${bms0_name} battery total runtime" + balancing_current: + name: "${bms0_name} balancing current" + errors_bitmask: + name: "${bms0_name} errors bitmask" + cell_count_real: + name: "${bms0_name} cell count real" + smart_sleep_time: + name: "${bms0_name} smart sleep time" + powertube_temperature_protection: + name: "${bms0_name} powertube temperature protection" + powertube_temperature_protection_recovery: + name: "${bms0_name} powertube temperature protection recovery" + battery_total_alarms_count: + name: "${bms0_name} battery total alarms count" + battery_total_alarms_active: + name: "${bms0_name} battery total alarms active" + emergency_time_countdown: + name: "${bms0_name} emergency time countdown" + uart1_protocol_number: + name: "${bms0_name} uart1 protocol number" + uart2_protocol_number: + name: "${bms0_name} uart2 protocol number" + battery_soh_valuation: + name: "${bms0_name} battery soh valuation" + discharging_overcurrent_protection_release_time: + name: "${bms0_name} discharging overcurrent protection release time" + discharging_short_circuit_protection_release_time: + name: "${bms0_name} discharging short circuit protection release time" + charging_overcurrent_protection_release_time: + name: "${bms0_name} charging overcurrent protection release time" + charging_short_circuit_protection_release_time: + name: "${bms0_name} charging short circuit protection release time" + cell_undervoltage_protection_release_time: + name: "${bms0_name} cell undervoltage protection release time" + cell_overvoltage_protection_release_time: + name: "${bms0_name} cell overvoltage protection release time" + + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms1 + balancing_direction: + name: "${bms1_name} balancing direction" + cell_voltage_min: + name: "${bms1_name} cell voltage min" + cell_voltage_max: + name: "${bms1_name} cell voltage max" + cell_voltage_min_cell_number: + name: "${bms1_name} cell voltage min cell number" + cell_voltage_max_cell_number: + name: "${bms1_name} cell voltage max cell number" + cell_delta_voltage: + name: "${bms1_name} cell delta voltage" + cell_average_voltage: + name: "${bms1_name} cell average voltage" + cell_resistance_min: + name: "${bms1_name} cell resistance min" + cell_resistance_max: + name: "${bms1_name} cell resistance max" + cell_resistance_min_cell_number: + name: "${bms1_name} cell resistance min cell number" + cell_resistance_max_cell_number: + name: "${bms1_name} cell resistance max cell number" + cell_voltage_01: + name: "${bms1_name} cell voltage 01" + cell_voltage_02: + name: "${bms1_name} cell voltage 02" + cell_voltage_03: + name: "${bms1_name} cell voltage 03" + cell_voltage_04: + name: "${bms1_name} cell voltage 04" + cell_voltage_05: + name: "${bms1_name} cell voltage 05" + cell_voltage_06: + name: "${bms1_name} cell voltage 06" + cell_voltage_07: + name: "${bms1_name} cell voltage 07" + cell_voltage_08: + name: "${bms1_name} cell voltage 08" + cell_voltage_09: + name: "${bms1_name} cell voltage 09" + cell_voltage_10: + name: "${bms1_name} cell voltage 10" + cell_voltage_11: + name: "${bms1_name} cell voltage 11" + cell_voltage_12: + name: "${bms1_name} cell voltage 12" + cell_voltage_13: + name: "${bms1_name} cell voltage 13" + cell_voltage_14: + name: "${bms1_name} cell voltage 14" + cell_voltage_15: + name: "${bms1_name} cell voltage 15" + cell_voltage_16: + name: "${bms1_name} cell voltage 16" + cell_voltage_17: + name: "${bms1_name} cell voltage 17" + cell_voltage_18: + name: "${bms1_name} cell voltage 18" + cell_voltage_19: + name: "${bms1_name} cell voltage 19" + cell_voltage_20: + name: "${bms1_name} cell voltage 20" + cell_voltage_21: + name: "${bms1_name} cell voltage 21" + cell_voltage_22: + name: "${bms1_name} cell voltage 22" + cell_voltage_23: + name: "${bms1_name} cell voltage 23" + cell_voltage_24: + name: "${bms1_name} cell voltage 24" + cell_resistance_01: + name: "${bms1_name} cell resistance 01" + cell_resistance_02: + name: "${bms1_name} cell resistance 02" + cell_resistance_03: + name: "${bms1_name} cell resistance 03" + cell_resistance_04: + name: "${bms1_name} cell resistance 04" + cell_resistance_05: + name: "${bms1_name} cell resistance 05" + cell_resistance_06: + name: "${bms1_name} cell resistance 06" + cell_resistance_07: + name: "${bms1_name} cell resistance 07" + cell_resistance_08: + name: "${bms1_name} cell resistance 08" + cell_resistance_09: + name: "${bms1_name} cell resistance 09" + cell_resistance_10: + name: "${bms1_name} cell resistance 10" + cell_resistance_11: + name: "${bms1_name} cell resistance 11" + cell_resistance_12: + name: "${bms1_name} cell resistance 12" + cell_resistance_13: + name: "${bms1_name} cell resistance 13" + cell_resistance_14: + name: "${bms1_name} cell resistance 14" + cell_resistance_15: + name: "${bms1_name} cell resistance 15" + cell_resistance_16: + name: "${bms1_name} cell resistance 16" + cell_resistance_17: + name: "${bms1_name} cell resistance 17" + cell_resistance_18: + name: "${bms1_name} cell resistance 18" + cell_resistance_19: + name: "${bms1_name} cell resistance 19" + cell_resistance_20: + name: "${bms1_name} cell resistance 20" + cell_resistance_21: + name: "${bms1_name} cell resistance 21" + cell_resistance_22: + name: "${bms1_name} cell resistance 22" + cell_resistance_23: + name: "${bms1_name} cell resistance 23" + cell_resistance_24: + name: "${bms1_name} cell resistance 24" + battery_voltage: + name: "${bms1_name} battery voltage" + battery_current: + name: "${bms1_name} battery current" + battery_power: + name: "${bms1_name} battery power" + battery_power_charging: + name: "${bms1_name} battery power charging" + battery_power_discharging: + name: "${bms1_name} battery power discharging" + temperature_sensor_1: + name: "${bms1_name} temperature sensor 1" + temperature_sensor_2: + name: "${bms1_name} temperature sensor 2" + temperature_sensor_3: + name: "${bms1_name} temperature sensor 3" + temperature_sensor_4: + name: "${bms1_name} temperature sensor 4" + temperature_sensor_5: + name: "${bms1_name} temperature sensor 5" + temperature_powertube: + name: "${bms1_name} temperature powertube" + battery_capacity_state_of_charge: + name: "${bms1_name} battery capacity state of charge" + battery_capacity_remaining: + name: "${bms1_name} battery capacity remaining" + charging_cycles: + name: "${bms1_name} charging cycles" + battery_capacity_total_charging_cycle: + name: "${bms1_name} battery capacity total charging cycle" + battery_total_runtime: + name: "${bms1_name} battery total runtime" + balancing_current: + name: "${bms1_name} balancing current" + errors_bitmask: + name: "${bms1_name} errors bitmask" + cell_count_real: + name: "${bms1_name} cell count real" + smart_sleep_time: + name: "${bms1_name} smart sleep time" + powertube_temperature_protection: + name: "${bms1_name} powertube temperature protection" + powertube_temperature_protection_recovery: + name: "${bms1_name} powertube temperature protection recovery" + battery_total_alarms_count: + name: "${bms1_name} battery total alarms count" + battery_total_alarms_active: + name: "${bms1_name} battery total alarms active" + emergency_time_countdown: + name: "${bms1_name} emergency time countdown" + uart1_protocol_number: + name: "${bms1_name} uart1 protocol number" + uart2_protocol_number: + name: "${bms1_name} uart2 protocol number" + battery_soh_valuation: + name: "${bms1_name} battery soh valuation" + discharging_overcurrent_protection_release_time: + name: "${bms1_name} discharging overcurrent protection release time" + discharging_short_circuit_protection_release_time: + name: "${bms1_name} discharging short circuit protection release time" + charging_overcurrent_protection_release_time: + name: "${bms1_name} charging overcurrent protection release time" + charging_short_circuit_protection_release_time: + name: "${bms1_name} charging short circuit protection release time" + cell_undervoltage_protection_release_time: + name: "${bms1_name} cell undervoltage protection release time" + cell_overvoltage_protection_release_time: + name: "${bms1_name} cell overvoltage protection release time" + + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms2 + balancing_direction: + name: "${bms2_name} balancing direction" + cell_voltage_min: + name: "${bms2_name} cell voltage min" + cell_voltage_max: + name: "${bms2_name} cell voltage max" + cell_voltage_min_cell_number: + name: "${bms2_name} cell voltage min cell number" + cell_voltage_max_cell_number: + name: "${bms2_name} cell voltage max cell number" + cell_delta_voltage: + name: "${bms2_name} cell delta voltage" + cell_average_voltage: + name: "${bms2_name} cell average voltage" + cell_resistance_min: + name: "${bms2_name} cell resistance min" + cell_resistance_max: + name: "${bms2_name} cell resistance max" + cell_resistance_min_cell_number: + name: "${bms2_name} cell resistance min cell number" + cell_resistance_max_cell_number: + name: "${bms2_name} cell resistance max cell number" + cell_voltage_01: + name: "${bms2_name} cell voltage 01" + cell_voltage_02: + name: "${bms2_name} cell voltage 02" + cell_voltage_03: + name: "${bms2_name} cell voltage 03" + cell_voltage_04: + name: "${bms2_name} cell voltage 04" + cell_voltage_05: + name: "${bms2_name} cell voltage 05" + cell_voltage_06: + name: "${bms2_name} cell voltage 06" + cell_voltage_07: + name: "${bms2_name} cell voltage 07" + cell_voltage_08: + name: "${bms2_name} cell voltage 08" + cell_voltage_09: + name: "${bms2_name} cell voltage 09" + cell_voltage_10: + name: "${bms2_name} cell voltage 10" + cell_voltage_11: + name: "${bms2_name} cell voltage 11" + cell_voltage_12: + name: "${bms2_name} cell voltage 12" + cell_voltage_13: + name: "${bms2_name} cell voltage 13" + cell_voltage_14: + name: "${bms2_name} cell voltage 14" + cell_voltage_15: + name: "${bms2_name} cell voltage 15" + cell_voltage_16: + name: "${bms2_name} cell voltage 16" + cell_voltage_17: + name: "${bms2_name} cell voltage 17" + cell_voltage_18: + name: "${bms2_name} cell voltage 18" + cell_voltage_19: + name: "${bms2_name} cell voltage 19" + cell_voltage_20: + name: "${bms2_name} cell voltage 20" + cell_voltage_21: + name: "${bms2_name} cell voltage 21" + cell_voltage_22: + name: "${bms2_name} cell voltage 22" + cell_voltage_23: + name: "${bms2_name} cell voltage 23" + cell_voltage_24: + name: "${bms2_name} cell voltage 24" + cell_resistance_01: + name: "${bms2_name} cell resistance 01" + cell_resistance_02: + name: "${bms2_name} cell resistance 02" + cell_resistance_03: + name: "${bms2_name} cell resistance 03" + cell_resistance_04: + name: "${bms2_name} cell resistance 04" + cell_resistance_05: + name: "${bms2_name} cell resistance 05" + cell_resistance_06: + name: "${bms2_name} cell resistance 06" + cell_resistance_07: + name: "${bms2_name} cell resistance 07" + cell_resistance_08: + name: "${bms2_name} cell resistance 08" + cell_resistance_09: + name: "${bms2_name} cell resistance 09" + cell_resistance_10: + name: "${bms2_name} cell resistance 10" + cell_resistance_11: + name: "${bms2_name} cell resistance 11" + cell_resistance_12: + name: "${bms2_name} cell resistance 12" + cell_resistance_13: + name: "${bms2_name} cell resistance 13" + cell_resistance_14: + name: "${bms2_name} cell resistance 14" + cell_resistance_15: + name: "${bms2_name} cell resistance 15" + cell_resistance_16: + name: "${bms2_name} cell resistance 16" + cell_resistance_17: + name: "${bms2_name} cell resistance 17" + cell_resistance_18: + name: "${bms2_name} cell resistance 18" + cell_resistance_19: + name: "${bms2_name} cell resistance 19" + cell_resistance_20: + name: "${bms2_name} cell resistance 20" + cell_resistance_21: + name: "${bms2_name} cell resistance 21" + cell_resistance_22: + name: "${bms2_name} cell resistance 22" + cell_resistance_23: + name: "${bms2_name} cell resistance 23" + cell_resistance_24: + name: "${bms2_name} cell resistance 24" + battery_voltage: + name: "${bms2_name} battery voltage" + battery_current: + name: "${bms2_name} battery current" + battery_power: + name: "${bms2_name} battery power" + battery_power_charging: + name: "${bms2_name} battery power charging" + battery_power_discharging: + name: "${bms2_name} battery power discharging" + temperature_sensor_1: + name: "${bms2_name} temperature sensor 1" + temperature_sensor_2: + name: "${bms2_name} temperature sensor 2" + temperature_sensor_3: + name: "${bms2_name} temperature sensor 3" + temperature_sensor_4: + name: "${bms2_name} temperature sensor 4" + temperature_sensor_5: + name: "${bms2_name} temperature sensor 5" + temperature_powertube: + name: "${bms2_name} temperature powertube" + battery_capacity_state_of_charge: + name: "${bms2_name} battery capacity state of charge" + battery_capacity_remaining: + name: "${bms2_name} battery capacity remaining" + charging_cycles: + name: "${bms2_name} charging cycles" + battery_capacity_total_charging_cycle: + name: "${bms2_name} battery capacity total charging cycle" + battery_total_runtime: + name: "${bms2_name} battery total runtime" + balancing_current: + name: "${bms2_name} balancing current" + errors_bitmask: + name: "${bms2_name} errors bitmask" + cell_count_real: + name: "${bms2_name} cell count real" + smart_sleep_time: + name: "${bms2_name} smart sleep time" + powertube_temperature_protection: + name: "${bms2_name} powertube temperature protection" + powertube_temperature_protection_recovery: + name: "${bms2_name} powertube temperature protection recovery" + battery_total_alarms_count: + name: "${bms2_name} battery total alarms count" + battery_total_alarms_active: + name: "${bms2_name} battery total alarms active" + emergency_time_countdown: + name: "${bms2_name} emergency time countdown" + uart1_protocol_number: + name: "${bms2_name} uart1 protocol number" + uart2_protocol_number: + name: "${bms2_name} uart2 protocol number" + battery_soh_valuation: + name: "${bms2_name} battery soh valuation" + discharging_overcurrent_protection_release_time: + name: "${bms2_name} discharging overcurrent protection release time" + discharging_short_circuit_protection_release_time: + name: "${bms2_name} discharging short circuit protection release time" + charging_overcurrent_protection_release_time: + name: "${bms2_name} charging overcurrent protection release time" + charging_short_circuit_protection_release_time: + name: "${bms2_name} charging short circuit protection release time" + cell_undervoltage_protection_release_time: + name: "${bms2_name} cell undervoltage protection release time" + cell_overvoltage_protection_release_time: + name: "${bms2_name} cell overvoltage protection release time" + + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms3 + balancing_direction: + name: "${bms3_name} balancing direction" + cell_voltage_min: + name: "${bms3_name} cell voltage min" + cell_voltage_max: + name: "${bms3_name} cell voltage max" + cell_voltage_min_cell_number: + name: "${bms3_name} cell voltage min cell number" + cell_voltage_max_cell_number: + name: "${bms3_name} cell voltage max cell number" + cell_delta_voltage: + name: "${bms3_name} cell delta voltage" + cell_average_voltage: + name: "${bms3_name} cell average voltage" + cell_resistance_min: + name: "${bms3_name} cell resistance min" + cell_resistance_max: + name: "${bms3_name} cell resistance max" + cell_resistance_min_cell_number: + name: "${bms3_name} cell resistance min cell number" + cell_resistance_max_cell_number: + name: "${bms3_name} cell resistance max cell number" + cell_voltage_01: + name: "${bms3_name} cell voltage 01" + cell_voltage_02: + name: "${bms3_name} cell voltage 02" + cell_voltage_03: + name: "${bms3_name} cell voltage 03" + cell_voltage_04: + name: "${bms3_name} cell voltage 04" + cell_voltage_05: + name: "${bms3_name} cell voltage 05" + cell_voltage_06: + name: "${bms3_name} cell voltage 06" + cell_voltage_07: + name: "${bms3_name} cell voltage 07" + cell_voltage_08: + name: "${bms3_name} cell voltage 08" + cell_voltage_09: + name: "${bms3_name} cell voltage 09" + cell_voltage_10: + name: "${bms3_name} cell voltage 10" + cell_voltage_11: + name: "${bms3_name} cell voltage 11" + cell_voltage_12: + name: "${bms3_name} cell voltage 12" + cell_voltage_13: + name: "${bms3_name} cell voltage 13" + cell_voltage_14: + name: "${bms3_name} cell voltage 14" + cell_voltage_15: + name: "${bms3_name} cell voltage 15" + cell_voltage_16: + name: "${bms3_name} cell voltage 16" + cell_voltage_17: + name: "${bms3_name} cell voltage 17" + cell_voltage_18: + name: "${bms3_name} cell voltage 18" + cell_voltage_19: + name: "${bms3_name} cell voltage 19" + cell_voltage_20: + name: "${bms3_name} cell voltage 20" + cell_voltage_21: + name: "${bms3_name} cell voltage 21" + cell_voltage_22: + name: "${bms3_name} cell voltage 22" + cell_voltage_23: + name: "${bms3_name} cell voltage 23" + cell_voltage_24: + name: "${bms3_name} cell voltage 24" + cell_resistance_01: + name: "${bms3_name} cell resistance 01" + cell_resistance_02: + name: "${bms3_name} cell resistance 02" + cell_resistance_03: + name: "${bms3_name} cell resistance 03" + cell_resistance_04: + name: "${bms3_name} cell resistance 04" + cell_resistance_05: + name: "${bms3_name} cell resistance 05" + cell_resistance_06: + name: "${bms3_name} cell resistance 06" + cell_resistance_07: + name: "${bms3_name} cell resistance 07" + cell_resistance_08: + name: "${bms3_name} cell resistance 08" + cell_resistance_09: + name: "${bms3_name} cell resistance 09" + cell_resistance_10: + name: "${bms3_name} cell resistance 10" + cell_resistance_11: + name: "${bms3_name} cell resistance 11" + cell_resistance_12: + name: "${bms3_name} cell resistance 12" + cell_resistance_13: + name: "${bms3_name} cell resistance 13" + cell_resistance_14: + name: "${bms3_name} cell resistance 14" + cell_resistance_15: + name: "${bms3_name} cell resistance 15" + cell_resistance_16: + name: "${bms3_name} cell resistance 16" + cell_resistance_17: + name: "${bms3_name} cell resistance 17" + cell_resistance_18: + name: "${bms3_name} cell resistance 18" + cell_resistance_19: + name: "${bms3_name} cell resistance 19" + cell_resistance_20: + name: "${bms3_name} cell resistance 20" + cell_resistance_21: + name: "${bms3_name} cell resistance 21" + cell_resistance_22: + name: "${bms3_name} cell resistance 22" + cell_resistance_23: + name: "${bms3_name} cell resistance 23" + cell_resistance_24: + name: "${bms3_name} cell resistance 24" + battery_voltage: + name: "${bms3_name} battery voltage" + battery_current: + name: "${bms3_name} battery current" + battery_power: + name: "${bms3_name} battery power" + battery_power_charging: + name: "${bms3_name} battery power charging" + battery_power_discharging: + name: "${bms3_name} battery power discharging" + temperature_sensor_1: + name: "${bms3_name} temperature sensor 1" + temperature_sensor_2: + name: "${bms3_name} temperature sensor 2" + temperature_sensor_3: + name: "${bms3_name} temperature sensor 3" + temperature_sensor_4: + name: "${bms3_name} temperature sensor 4" + temperature_sensor_5: + name: "${bms3_name} temperature sensor 5" + temperature_powertube: + name: "${bms3_name} temperature powertube" + battery_capacity_state_of_charge: + name: "${bms3_name} battery capacity state of charge" + battery_capacity_remaining: + name: "${bms3_name} battery capacity remaining" + charging_cycles: + name: "${bms3_name} charging cycles" + battery_capacity_total_charging_cycle: + name: "${bms3_name} battery capacity total charging cycle" + battery_total_runtime: + name: "${bms3_name} battery total runtime" + balancing_current: + name: "${bms3_name} balancing current" + errors_bitmask: + name: "${bms3_name} errors bitmask" + cell_count_real: + name: "${bms3_name} cell count real" + smart_sleep_time: + name: "${bms3_name} smart sleep time" + powertube_temperature_protection: + name: "${bms3_name} powertube temperature protection" + powertube_temperature_protection_recovery: + name: "${bms3_name} powertube temperature protection recovery" + battery_total_alarms_count: + name: "${bms3_name} battery total alarms count" + battery_total_alarms_active: + name: "${bms3_name} battery total alarms active" + emergency_time_countdown: + name: "${bms3_name} emergency time countdown" + uart1_protocol_number: + name: "${bms3_name} uart1 protocol number" + uart2_protocol_number: + name: "${bms3_name} uart2 protocol number" + battery_soh_valuation: + name: "${bms3_name} battery soh valuation" + discharging_overcurrent_protection_release_time: + name: "${bms3_name} discharging overcurrent protection release time" + discharging_short_circuit_protection_release_time: + name: "${bms3_name} discharging short circuit protection release time" + charging_overcurrent_protection_release_time: + name: "${bms3_name} charging overcurrent protection release time" + charging_short_circuit_protection_release_time: + name: "${bms3_name} charging short circuit protection release time" + cell_undervoltage_protection_release_time: + name: "${bms3_name} cell undervoltage protection release time" + cell_overvoltage_protection_release_time: + name: "${bms3_name} cell overvoltage protection release time" + + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms4 + balancing_direction: + name: "${bms4_name} balancing direction" + cell_voltage_min: + name: "${bms4_name} cell voltage min" + cell_voltage_max: + name: "${bms4_name} cell voltage max" + cell_voltage_min_cell_number: + name: "${bms4_name} cell voltage min cell number" + cell_voltage_max_cell_number: + name: "${bms4_name} cell voltage max cell number" + cell_delta_voltage: + name: "${bms4_name} cell delta voltage" + cell_average_voltage: + name: "${bms4_name} cell average voltage" + cell_resistance_min: + name: "${bms4_name} cell resistance min" + cell_resistance_max: + name: "${bms4_name} cell resistance max" + cell_resistance_min_cell_number: + name: "${bms4_name} cell resistance min cell number" + cell_resistance_max_cell_number: + name: "${bms4_name} cell resistance max cell number" + cell_voltage_01: + name: "${bms4_name} cell voltage 01" + cell_voltage_02: + name: "${bms4_name} cell voltage 02" + cell_voltage_03: + name: "${bms4_name} cell voltage 03" + cell_voltage_04: + name: "${bms4_name} cell voltage 04" + cell_voltage_05: + name: "${bms4_name} cell voltage 05" + cell_voltage_06: + name: "${bms4_name} cell voltage 06" + cell_voltage_07: + name: "${bms4_name} cell voltage 07" + cell_voltage_08: + name: "${bms4_name} cell voltage 08" + cell_voltage_09: + name: "${bms4_name} cell voltage 09" + cell_voltage_10: + name: "${bms4_name} cell voltage 10" + cell_voltage_11: + name: "${bms4_name} cell voltage 11" + cell_voltage_12: + name: "${bms4_name} cell voltage 12" + cell_voltage_13: + name: "${bms4_name} cell voltage 13" + cell_voltage_14: + name: "${bms4_name} cell voltage 14" + cell_voltage_15: + name: "${bms4_name} cell voltage 15" + cell_voltage_16: + name: "${bms4_name} cell voltage 16" + cell_voltage_17: + name: "${bms4_name} cell voltage 17" + cell_voltage_18: + name: "${bms4_name} cell voltage 18" + cell_voltage_19: + name: "${bms4_name} cell voltage 19" + cell_voltage_20: + name: "${bms4_name} cell voltage 20" + cell_voltage_21: + name: "${bms4_name} cell voltage 21" + cell_voltage_22: + name: "${bms4_name} cell voltage 22" + cell_voltage_23: + name: "${bms4_name} cell voltage 23" + cell_voltage_24: + name: "${bms4_name} cell voltage 24" + cell_resistance_01: + name: "${bms4_name} cell resistance 01" + cell_resistance_02: + name: "${bms4_name} cell resistance 02" + cell_resistance_03: + name: "${bms4_name} cell resistance 03" + cell_resistance_04: + name: "${bms4_name} cell resistance 04" + cell_resistance_05: + name: "${bms4_name} cell resistance 05" + cell_resistance_06: + name: "${bms4_name} cell resistance 06" + cell_resistance_07: + name: "${bms4_name} cell resistance 07" + cell_resistance_08: + name: "${bms4_name} cell resistance 08" + cell_resistance_09: + name: "${bms4_name} cell resistance 09" + cell_resistance_10: + name: "${bms4_name} cell resistance 10" + cell_resistance_11: + name: "${bms4_name} cell resistance 11" + cell_resistance_12: + name: "${bms4_name} cell resistance 12" + cell_resistance_13: + name: "${bms4_name} cell resistance 13" + cell_resistance_14: + name: "${bms4_name} cell resistance 14" + cell_resistance_15: + name: "${bms4_name} cell resistance 15" + cell_resistance_16: + name: "${bms4_name} cell resistance 16" + cell_resistance_17: + name: "${bms4_name} cell resistance 17" + cell_resistance_18: + name: "${bms4_name} cell resistance 18" + cell_resistance_19: + name: "${bms4_name} cell resistance 19" + cell_resistance_20: + name: "${bms4_name} cell resistance 20" + cell_resistance_21: + name: "${bms4_name} cell resistance 21" + cell_resistance_22: + name: "${bms4_name} cell resistance 22" + cell_resistance_23: + name: "${bms4_name} cell resistance 23" + cell_resistance_24: + name: "${bms4_name} cell resistance 24" + battery_voltage: + name: "${bms4_name} battery voltage" + battery_current: + name: "${bms4_name} battery current" + battery_power: + name: "${bms4_name} battery power" + battery_power_charging: + name: "${bms4_name} battery power charging" + battery_power_discharging: + name: "${bms4_name} battery power discharging" + temperature_sensor_1: + name: "${bms4_name} temperature sensor 1" + temperature_sensor_2: + name: "${bms4_name} temperature sensor 2" + temperature_sensor_3: + name: "${bms4_name} temperature sensor 3" + temperature_sensor_4: + name: "${bms4_name} temperature sensor 4" + temperature_sensor_5: + name: "${bms4_name} temperature sensor 5" + temperature_powertube: + name: "${bms4_name} temperature powertube" + battery_capacity_state_of_charge: + name: "${bms4_name} battery capacity state of charge" + battery_capacity_remaining: + name: "${bms4_name} battery capacity remaining" + charging_cycles: + name: "${bms4_name} charging cycles" + battery_capacity_total_charging_cycle: + name: "${bms4_name} battery capacity total charging cycle" + battery_total_runtime: + name: "${bms4_name} battery total runtime" + balancing_current: + name: "${bms4_name} balancing current" + errors_bitmask: + name: "${bms4_name} errors bitmask" + cell_count_real: + name: "${bms4_name} cell count real" + smart_sleep_time: + name: "${bms4_name} smart sleep time" + powertube_temperature_protection: + name: "${bms4_name} powertube temperature protection" + powertube_temperature_protection_recovery: + name: "${bms4_name} powertube temperature protection recovery" + battery_total_alarms_count: + name: "${bms4_name} battery total alarms count" + battery_total_alarms_active: + name: "${bms4_name} battery total alarms active" + emergency_time_countdown: + name: "${bms4_name} emergency time countdown" + uart1_protocol_number: + name: "${bms4_name} uart1 protocol number" + uart2_protocol_number: + name: "${bms4_name} uart2 protocol number" + battery_soh_valuation: + name: "${bms4_name} battery soh valuation" + discharging_overcurrent_protection_release_time: + name: "${bms4_name} discharging overcurrent protection release time" + discharging_short_circuit_protection_release_time: + name: "${bms4_name} discharging short circuit protection release time" + charging_overcurrent_protection_release_time: + name: "${bms4_name} charging overcurrent protection release time" + charging_short_circuit_protection_release_time: + name: "${bms4_name} charging short circuit protection release time" + cell_undervoltage_protection_release_time: + name: "${bms4_name} cell undervoltage protection release time" + cell_overvoltage_protection_release_time: + name: "${bms4_name} cell overvoltage protection release time" + + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms5 + balancing_direction: + name: "${bms5_name} balancing direction" + cell_voltage_min: + name: "${bms5_name} cell voltage min" + cell_voltage_max: + name: "${bms5_name} cell voltage max" + cell_voltage_min_cell_number: + name: "${bms5_name} cell voltage min cell number" + cell_voltage_max_cell_number: + name: "${bms5_name} cell voltage max cell number" + cell_delta_voltage: + name: "${bms5_name} cell delta voltage" + cell_average_voltage: + name: "${bms5_name} cell average voltage" + cell_resistance_min: + name: "${bms5_name} cell resistance min" + cell_resistance_max: + name: "${bms5_name} cell resistance max" + cell_resistance_min_cell_number: + name: "${bms5_name} cell resistance min cell number" + cell_resistance_max_cell_number: + name: "${bms5_name} cell resistance max cell number" + cell_voltage_01: + name: "${bms5_name} cell voltage 01" + cell_voltage_02: + name: "${bms5_name} cell voltage 02" + cell_voltage_03: + name: "${bms5_name} cell voltage 03" + cell_voltage_04: + name: "${bms5_name} cell voltage 04" + cell_voltage_05: + name: "${bms5_name} cell voltage 05" + cell_voltage_06: + name: "${bms5_name} cell voltage 06" + cell_voltage_07: + name: "${bms5_name} cell voltage 07" + cell_voltage_08: + name: "${bms5_name} cell voltage 08" + cell_voltage_09: + name: "${bms5_name} cell voltage 09" + cell_voltage_10: + name: "${bms5_name} cell voltage 10" + cell_voltage_11: + name: "${bms5_name} cell voltage 11" + cell_voltage_12: + name: "${bms5_name} cell voltage 12" + cell_voltage_13: + name: "${bms5_name} cell voltage 13" + cell_voltage_14: + name: "${bms5_name} cell voltage 14" + cell_voltage_15: + name: "${bms5_name} cell voltage 15" + cell_voltage_16: + name: "${bms5_name} cell voltage 16" + cell_voltage_17: + name: "${bms5_name} cell voltage 17" + cell_voltage_18: + name: "${bms5_name} cell voltage 18" + cell_voltage_19: + name: "${bms5_name} cell voltage 19" + cell_voltage_20: + name: "${bms5_name} cell voltage 20" + cell_voltage_21: + name: "${bms5_name} cell voltage 21" + cell_voltage_22: + name: "${bms5_name} cell voltage 22" + cell_voltage_23: + name: "${bms5_name} cell voltage 23" + cell_voltage_24: + name: "${bms5_name} cell voltage 24" + cell_resistance_01: + name: "${bms5_name} cell resistance 01" + cell_resistance_02: + name: "${bms5_name} cell resistance 02" + cell_resistance_03: + name: "${bms5_name} cell resistance 03" + cell_resistance_04: + name: "${bms5_name} cell resistance 04" + cell_resistance_05: + name: "${bms5_name} cell resistance 05" + cell_resistance_06: + name: "${bms5_name} cell resistance 06" + cell_resistance_07: + name: "${bms5_name} cell resistance 07" + cell_resistance_08: + name: "${bms5_name} cell resistance 08" + cell_resistance_09: + name: "${bms5_name} cell resistance 09" + cell_resistance_10: + name: "${bms5_name} cell resistance 10" + cell_resistance_11: + name: "${bms5_name} cell resistance 11" + cell_resistance_12: + name: "${bms5_name} cell resistance 12" + cell_resistance_13: + name: "${bms5_name} cell resistance 13" + cell_resistance_14: + name: "${bms5_name} cell resistance 14" + cell_resistance_15: + name: "${bms5_name} cell resistance 15" + cell_resistance_16: + name: "${bms5_name} cell resistance 16" + cell_resistance_17: + name: "${bms5_name} cell resistance 17" + cell_resistance_18: + name: "${bms5_name} cell resistance 18" + cell_resistance_19: + name: "${bms5_name} cell resistance 19" + cell_resistance_20: + name: "${bms5_name} cell resistance 20" + cell_resistance_21: + name: "${bms5_name} cell resistance 21" + cell_resistance_22: + name: "${bms5_name} cell resistance 22" + cell_resistance_23: + name: "${bms5_name} cell resistance 23" + cell_resistance_24: + name: "${bms5_name} cell resistance 24" + battery_voltage: + name: "${bms5_name} battery voltage" + battery_current: + name: "${bms5_name} battery current" + battery_power: + name: "${bms5_name} battery power" + battery_power_charging: + name: "${bms5_name} battery power charging" + battery_power_discharging: + name: "${bms5_name} battery power discharging" + temperature_sensor_1: + name: "${bms5_name} temperature sensor 1" + temperature_sensor_2: + name: "${bms5_name} temperature sensor 2" + temperature_sensor_3: + name: "${bms5_name} temperature sensor 3" + temperature_sensor_4: + name: "${bms5_name} temperature sensor 4" + temperature_sensor_5: + name: "${bms5_name} temperature sensor 5" + temperature_powertube: + name: "${bms5_name} temperature powertube" + battery_capacity_state_of_charge: + name: "${bms5_name} battery capacity state of charge" + battery_capacity_remaining: + name: "${bms5_name} battery capacity remaining" + charging_cycles: + name: "${bms5_name} charging cycles" + battery_capacity_total_charging_cycle: + name: "${bms5_name} battery capacity total charging cycle" + battery_total_runtime: + name: "${bms5_name} battery total runtime" + balancing_current: + name: "${bms5_name} balancing current" + errors_bitmask: + name: "${bms5_name} errors bitmask" + cell_count_real: + name: "${bms5_name} cell count real" + smart_sleep_time: + name: "${bms5_name} smart sleep time" + powertube_temperature_protection: + name: "${bms5_name} powertube temperature protection" + powertube_temperature_protection_recovery: + name: "${bms5_name} powertube temperature protection recovery" + battery_total_alarms_count: + name: "${bms5_name} battery total alarms count" + battery_total_alarms_active: + name: "${bms5_name} battery total alarms active" + emergency_time_countdown: + name: "${bms5_name} emergency time countdown" + uart1_protocol_number: + name: "${bms5_name} uart1 protocol number" + uart2_protocol_number: + name: "${bms5_name} uart2 protocol number" + battery_soh_valuation: + name: "${bms5_name} battery soh valuation" + discharging_overcurrent_protection_release_time: + name: "${bms5_name} discharging overcurrent protection release time" + discharging_short_circuit_protection_release_time: + name: "${bms5_name} discharging short circuit protection release time" + charging_overcurrent_protection_release_time: + name: "${bms5_name} charging overcurrent protection release time" + charging_short_circuit_protection_release_time: + name: "${bms5_name} charging short circuit protection release time" + cell_undervoltage_protection_release_time: + name: "${bms5_name} cell undervoltage protection release time" + cell_overvoltage_protection_release_time: + name: "${bms5_name} cell overvoltage protection release time" + + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms6 + balancing_direction: + name: "${bms6_name} balancing direction" + cell_voltage_min: + name: "${bms6_name} cell voltage min" + cell_voltage_max: + name: "${bms6_name} cell voltage max" + cell_voltage_min_cell_number: + name: "${bms6_name} cell voltage min cell number" + cell_voltage_max_cell_number: + name: "${bms6_name} cell voltage max cell number" + cell_delta_voltage: + name: "${bms6_name} cell delta voltage" + cell_average_voltage: + name: "${bms6_name} cell average voltage" + cell_resistance_min: + name: "${bms6_name} cell resistance min" + cell_resistance_max: + name: "${bms6_name} cell resistance max" + cell_resistance_min_cell_number: + name: "${bms6_name} cell resistance min cell number" + cell_resistance_max_cell_number: + name: "${bms6_name} cell resistance max cell number" + cell_voltage_01: + name: "${bms6_name} cell voltage 01" + cell_voltage_02: + name: "${bms6_name} cell voltage 02" + cell_voltage_03: + name: "${bms6_name} cell voltage 03" + cell_voltage_04: + name: "${bms6_name} cell voltage 04" + cell_voltage_05: + name: "${bms6_name} cell voltage 05" + cell_voltage_06: + name: "${bms6_name} cell voltage 06" + cell_voltage_07: + name: "${bms6_name} cell voltage 07" + cell_voltage_08: + name: "${bms6_name} cell voltage 08" + cell_voltage_09: + name: "${bms6_name} cell voltage 09" + cell_voltage_10: + name: "${bms6_name} cell voltage 10" + cell_voltage_11: + name: "${bms6_name} cell voltage 11" + cell_voltage_12: + name: "${bms6_name} cell voltage 12" + cell_voltage_13: + name: "${bms6_name} cell voltage 13" + cell_voltage_14: + name: "${bms6_name} cell voltage 14" + cell_voltage_15: + name: "${bms6_name} cell voltage 15" + cell_voltage_16: + name: "${bms6_name} cell voltage 16" + cell_voltage_17: + name: "${bms6_name} cell voltage 17" + cell_voltage_18: + name: "${bms6_name} cell voltage 18" + cell_voltage_19: + name: "${bms6_name} cell voltage 19" + cell_voltage_20: + name: "${bms6_name} cell voltage 20" + cell_voltage_21: + name: "${bms6_name} cell voltage 21" + cell_voltage_22: + name: "${bms6_name} cell voltage 22" + cell_voltage_23: + name: "${bms6_name} cell voltage 23" + cell_voltage_24: + name: "${bms6_name} cell voltage 24" + cell_resistance_01: + name: "${bms6_name} cell resistance 01" + cell_resistance_02: + name: "${bms6_name} cell resistance 02" + cell_resistance_03: + name: "${bms6_name} cell resistance 03" + cell_resistance_04: + name: "${bms6_name} cell resistance 04" + cell_resistance_05: + name: "${bms6_name} cell resistance 05" + cell_resistance_06: + name: "${bms6_name} cell resistance 06" + cell_resistance_07: + name: "${bms6_name} cell resistance 07" + cell_resistance_08: + name: "${bms6_name} cell resistance 08" + cell_resistance_09: + name: "${bms6_name} cell resistance 09" + cell_resistance_10: + name: "${bms6_name} cell resistance 10" + cell_resistance_11: + name: "${bms6_name} cell resistance 11" + cell_resistance_12: + name: "${bms6_name} cell resistance 12" + cell_resistance_13: + name: "${bms6_name} cell resistance 13" + cell_resistance_14: + name: "${bms6_name} cell resistance 14" + cell_resistance_15: + name: "${bms6_name} cell resistance 15" + cell_resistance_16: + name: "${bms6_name} cell resistance 16" + cell_resistance_17: + name: "${bms6_name} cell resistance 17" + cell_resistance_18: + name: "${bms6_name} cell resistance 18" + cell_resistance_19: + name: "${bms6_name} cell resistance 19" + cell_resistance_20: + name: "${bms6_name} cell resistance 20" + cell_resistance_21: + name: "${bms6_name} cell resistance 21" + cell_resistance_22: + name: "${bms6_name} cell resistance 22" + cell_resistance_23: + name: "${bms6_name} cell resistance 23" + cell_resistance_24: + name: "${bms6_name} cell resistance 24" + battery_voltage: + name: "${bms6_name} battery voltage" + battery_current: + name: "${bms6_name} battery current" + battery_power: + name: "${bms6_name} battery power" + battery_power_charging: + name: "${bms6_name} battery power charging" + battery_power_discharging: + name: "${bms6_name} battery power discharging" + temperature_sensor_1: + name: "${bms6_name} temperature sensor 1" + temperature_sensor_2: + name: "${bms6_name} temperature sensor 2" + temperature_sensor_3: + name: "${bms6_name} temperature sensor 3" + temperature_sensor_4: + name: "${bms6_name} temperature sensor 4" + temperature_sensor_5: + name: "${bms6_name} temperature sensor 5" + temperature_powertube: + name: "${bms6_name} temperature powertube" + battery_capacity_state_of_charge: + name: "${bms6_name} battery capacity state of charge" + battery_capacity_remaining: + name: "${bms6_name} battery capacity remaining" + charging_cycles: + name: "${bms6_name} charging cycles" + battery_capacity_total_charging_cycle: + name: "${bms6_name} battery capacity total charging cycle" + battery_total_runtime: + name: "${bms6_name} battery total runtime" + balancing_current: + name: "${bms6_name} balancing current" + errors_bitmask: + name: "${bms6_name} errors bitmask" + cell_count_real: + name: "${bms6_name} cell count real" + smart_sleep_time: + name: "${bms6_name} smart sleep time" + powertube_temperature_protection: + name: "${bms6_name} powertube temperature protection" + powertube_temperature_protection_recovery: + name: "${bms6_name} powertube temperature protection recovery" + battery_total_alarms_count: + name: "${bms6_name} battery total alarms count" + battery_total_alarms_active: + name: "${bms6_name} battery total alarms active" + emergency_time_countdown: + name: "${bms6_name} emergency time countdown" + uart1_protocol_number: + name: "${bms6_name} uart1 protocol number" + uart2_protocol_number: + name: "${bms6_name} uart2 protocol number" + battery_soh_valuation: + name: "${bms6_name} battery soh valuation" + discharging_overcurrent_protection_release_time: + name: "${bms6_name} discharging overcurrent protection release time" + discharging_short_circuit_protection_release_time: + name: "${bms6_name} discharging short circuit protection release time" + charging_overcurrent_protection_release_time: + name: "${bms6_name} charging overcurrent protection release time" + charging_short_circuit_protection_release_time: + name: "${bms6_name} charging short circuit protection release time" + cell_undervoltage_protection_release_time: + name: "${bms6_name} cell undervoltage protection release time" + cell_overvoltage_protection_release_time: + name: "${bms6_name} cell overvoltage protection release time" + +switch: + - platform: template + name: "Broadcast changes to all BMSs" + id: broadcast_active + icon: "mdi:cast" + restore_mode: RESTORE_DEFAULT_ON + optimistic: true + turn_on_action: + - lambda: |- + id(sniffer0).set_broadcast_changes_to_all_bms(true); + turn_off_action: + - lambda: |- + id(sniffer0).set_broadcast_changes_to_all_bms(false); + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms0 + precharging: + name: "${bms0_name} precharging" + charging: + name: "${bms0_name} charging" + discharging: + name: "${bms0_name} discharging" + balancing: + name: "${bms0_name} balancing" + emergency: + name: "${bms0_name} emergency" + heating: + name: "${bms0_name} heating" + display_always_on: + name: "${bms0_name} display_always_on" + charging_float_mode: + name: "${bms0_name} charging float mode" + timed_stored_data: + name: "${bms0_name} timed stored data" + disable_temperature_sensors: + name: "${bms0_name} disable temperature sensors" + smart_sleep_on: + name: "${bms0_name} smart sleep on" + disable_pcl_module: + name: "${bms0_name} disable pcl module" + gps_heartbeat: + name: "${bms0_name} gps heartbeat" + port_selection: + name: "${bms0_name} port selection" + special_charger: + name: "${bms0_name} special charger" + + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms1 + precharging: + name: "${bms1_name} precharging" + charging: + name: "${bms1_name} charging" + discharging: + name: "${bms1_name} discharging" + balancing: + name: "${bms1_name} balancing" + emergency: + name: "${bms1_name} emergency" + heating: + name: "${bms1_name} heating" + display_always_on: + name: "${bms1_name} display_always_on" + charging_float_mode: + name: "${bms1_name} charging float mode" + timed_stored_data: + name: "${bms1_name} timed stored data" + disable_temperature_sensors: + name: "${bms1_name} disable temperature sensors" + smart_sleep_on: + name: "${bms1_name} smart sleep on" + disable_pcl_module: + name: "${bms1_name} disable pcl module" + gps_heartbeat: + name: "${bms1_name} gps heartbeat" + port_selection: + name: "${bms1_name} port selection" + special_charger: + name: "${bms1_name} special charger" + + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms2 + precharging: + name: "${bms2_name} precharging" + charging: + name: "${bms2_name} charging" + discharging: + name: "${bms2_name} discharging" + balancing: + name: "${bms2_name} balancing" + emergency: + name: "${bms2_name} emergency" + heating: + name: "${bms2_name} heating" + display_always_on: + name: "${bms2_name} display_always_on" + charging_float_mode: + name: "${bms2_name} charging float mode" + timed_stored_data: + name: "${bms2_name} timed stored data" + disable_temperature_sensors: + name: "${bms2_name} disable temperature sensors" + smart_sleep_on: + name: "${bms2_name} smart sleep on" + disable_pcl_module: + name: "${bms2_name} disable pcl module" + gps_heartbeat: + name: "${bms2_name} gps heartbeat" + port_selection: + name: "${bms2_name} port selection" + special_charger: + name: "${bms2_name} special charger" + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms3 + precharging: + name: "${bms3_name} precharging" + charging: + name: "${bms3_name} charging" + discharging: + name: "${bms3_name} discharging" + balancing: + name: "${bms3_name} balancing" + emergency: + name: "${bms3_name} emergency" + heating: + name: "${bms3_name} heating" + display_always_on: + name: "${bms3_name} display_always_on" + charging_float_mode: + name: "${bms3_name} charging float mode" + timed_stored_data: + name: "${bms3_name} timed stored data" + disable_temperature_sensors: + name: "${bms3_name} disable temperature sensors" + smart_sleep_on: + name: "${bms3_name} smart sleep on" + disable_pcl_module: + name: "${bms3_name} disable pcl module" + gps_heartbeat: + name: "${bms3_name} gps heartbeat" + port_selection: + name: "${bms3_name} port selection" + special_charger: + name: "${bms3_name} special charger" + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms4 + precharging: + name: "${bms4_name} precharging" + charging: + name: "${bms4_name} charging" + discharging: + name: "${bms4_name} discharging" + balancing: + name: "${bms4_name} balancing" + emergency: + name: "${bms4_name} emergency" + heating: + name: "${bms4_name} heating" + display_always_on: + name: "${bms4_name} display_always_on" + charging_float_mode: + name: "${bms4_name} charging float mode" + timed_stored_data: + name: "${bms4_name} timed stored data" + disable_temperature_sensors: + name: "${bms4_name} disable temperature sensors" + smart_sleep_on: + name: "${bms4_name} smart sleep on" + disable_pcl_module: + name: "${bms4_name} disable pcl module" + gps_heartbeat: + name: "${bms4_name} gps heartbeat" + port_selection: + name: "${bms4_name} port selection" + special_charger: + name: "${bms4_name} special charger" + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms5 + precharging: + name: "${bms5_name} precharging" + charging: + name: "${bms5_name} charging" + discharging: + name: "${bms5_name} discharging" + balancing: + name: "${bms5_name} balancing" + emergency: + name: "${bms5_name} emergency" + heating: + name: "${bms5_name} heating" + display_always_on: + name: "${bms5_name} display_always_on" + charging_float_mode: + name: "${bms5_name} charging float mode" + timed_stored_data: + name: "${bms5_name} timed stored data" + disable_temperature_sensors: + name: "${bms5_name} disable temperature sensors" + smart_sleep_on: + name: "${bms5_name} smart sleep on" + disable_pcl_module: + name: "${bms5_name} disable pcl module" + gps_heartbeat: + name: "${bms5_name} gps heartbeat" + port_selection: + name: "${bms5_name} port selection" + special_charger: + name: "${bms5_name} special charger" + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms6 + precharging: + name: "${bms6_name} precharging" + charging: + name: "${bms6_name} charging" + discharging: + name: "${bms6_name} discharging" + balancing: + name: "${bms6_name} balancing" + emergency: + name: "${bms6_name} emergency" + heating: + name: "${bms6_name} heating" + display_always_on: + name: "${bms6_name} display_always_on" + charging_float_mode: + name: "${bms6_name} charging float mode" + timed_stored_data: + name: "${bms6_name} timed stored data" + disable_temperature_sensors: + name: "${bms6_name} disable temperature sensors" + smart_sleep_on: + name: "${bms6_name} smart sleep on" + disable_pcl_module: + name: "${bms6_name} disable pcl module" + gps_heartbeat: + name: "${bms6_name} gps heartbeat" + port_selection: + name: "${bms6_name} port selection" + special_charger: + name: "${bms6_name} special charger" + +text_sensor: + # +--------------------------------------+ + # | Uptime Human Readable | + # +--------------------------------------+ + - platform: template + name: ${esp_name} Uptime Human Readable + id: uptime_human + icon: mdi:clock-start + entity_category: diagnostic + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms0 + errors: + name: "${bms0_name} errors" + operation_status: + name: "${bms0_name} operation status" + battery_type: + name: "${bms0_name} battery type" + total_runtime_formatted: + name: "${bms0_name} total runtime formatted" + info_vendorid: + name: "${bms0_name} info vendorid" + info_hardware_version: + name: "${bms0_name} info hardware version" + info_software_version: + name: "${bms0_name} info software version" + info_device_name: + name: "${bms0_name} info device name" + info_device_password: + name: "${bms0_name} info device password" + network_nodes_available: + name: "${bms0_name} network nodes available" + info_device_serial_number: + name: "${bms0_name} info device serial number" + info_device_setup_passcode: + name: "${bms0_name} info device setup passcode" + # ... + - platform: jk_rs485_bms + jk_rs485_bms_id: bms1 + errors: + name: "${bms1_name} errors" + operation_status: + name: "${bms1_name} operation status" + battery_type: + name: "${bms1_name} battery type" + total_runtime_formatted: + name: "${bms1_name} total runtime formatted" + info_vendorid: + name: "${bms1_name} info vendorid" + info_hardware_version: + name: "${bms1_name} info hardware version" + info_software_version: + name: "${bms1_name} info software version" + info_device_name: + name: "${bms1_name} info device name" + info_device_password: + name: "${bms1_name} info device password" + network_nodes_available: + name: "${bms1_name} network nodes available" + info_device_serial_number: + name: "${bms1_name} info device serial number" + info_device_setup_passcode: + name: "${bms1_name} info device setup passcode" + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms2 + errors: + name: "${bms2_name} errors" + operation_status: + name: "${bms2_name} operation status" + battery_type: + name: "${bms2_name} battery type" + total_runtime_formatted: + name: "${bms2_name} total runtime formatted" + info_vendorid: + name: "${bms2_name} info vendorid" + info_hardware_version: + name: "${bms2_name} info hardware version" + info_software_version: + name: "${bms2_name} info software version" + info_device_name: + name: "${bms2_name} info device name" + info_device_password: + name: "${bms2_name} info device password" + network_nodes_available: + name: "${bms2_name} network nodes available" + info_device_serial_number: + name: "${bms2_name} info device serial number" + info_device_setup_passcode: + name: "${bms2_name} info device setup passcode" + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms3 + errors: + name: "${bms3_name} errors" + operation_status: + name: "${bms3_name} operation status" + battery_type: + name: "${bms3_name} battery type" + total_runtime_formatted: + name: "${bms3_name} total runtime formatted" + info_vendorid: + name: "${bms3_name} info vendorid" + info_hardware_version: + name: "${bms3_name} info hardware version" + info_software_version: + name: "${bms3_name} info software version" + info_device_name: + name: "${bms3_name} info device name" + info_device_password: + name: "${bms3_name} info device password" + network_nodes_available: + name: "${bms3_name} network nodes available" + info_device_serial_number: + name: "${bms3_name} info device serial number" + info_device_setup_passcode: + name: "${bms3_name} info device setup passcode" + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms4 + errors: + name: "${bms4_name} errors" + operation_status: + name: "${bms4_name} operation status" + battery_type: + name: "${bms4_name} battery type" + total_runtime_formatted: + name: "${bms4_name} total runtime formatted" + info_vendorid: + name: "${bms4_name} info vendorid" + info_hardware_version: + name: "${bms4_name} info hardware version" + info_software_version: + name: "${bms4_name} info software version" + info_device_name: + name: "${bms4_name} info device name" + info_device_password: + name: "${bms4_name} info device password" + network_nodes_available: + name: "${bms4_name} network nodes available" + info_device_serial_number: + name: "${bms4_name} info device serial number" + info_device_setup_passcode: + name: "${bms4_name} info device setup passcode" + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms5 + errors: + name: "${bms5_name} errors" + operation_status: + name: "${bms5_name} operation status" + battery_type: + name: "${bms5_name} battery type" + total_runtime_formatted: + name: "${bms5_name} total runtime formatted" + info_vendorid: + name: "${bms5_name} info vendorid" + info_hardware_version: + name: "${bms5_name} info hardware version" + info_software_version: + name: "${bms5_name} info software version" + info_device_name: + name: "${bms5_name} info device name" + info_device_password: + name: "${bms5_name} info device password" + network_nodes_available: + name: "${bms5_name} network nodes available" + info_device_serial_number: + name: "${bms5_name} info device serial number" + info_device_setup_passcode: + name: "${bms5_name} info device setup passcode" + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms6 + errors: + name: "${bms6_name} errors" + operation_status: + name: "${bms6_name} operation status" + battery_type: + name: "${bms6_name} battery type" + total_runtime_formatted: + name: "${bms6_name} total runtime formatted" + info_vendorid: + name: "${bms6_name} info vendorid" + info_hardware_version: + name: "${bms6_name} info hardware version" + info_software_version: + name: "${bms6_name} info software version" + info_device_name: + name: "${bms6_name} info device name" + info_device_password: + name: "${bms6_name} info device password" + network_nodes_available: + name: "${bms6_name} network nodes available" + info_device_serial_number: + name: "${bms6_name} info device serial number" + info_device_setup_passcode: + name: "${bms6_name} info device setup passcode" + +number: + - platform: jk_rs485_bms + jk_rs485_bms_id: bms0 + cell_smart_sleep_voltage: + name: "${bms0_name} cell smart sleep voltage" + cell_undervoltage_protection: + name: "${bms0_name} cell undervoltage protection" + cell_undervoltage_protection_recovery: + name: "${bms0_name} cell undervoltage protection recovery" + cell_overvoltage_protection: + name: "${bms0_name} cell overvoltage protection" + cell_overvoltage_protection_recovery: + name: "${bms0_name} cell overvoltage protection recovery" + cell_balancing_trigger_voltage: + name: "${bms0_name} cell balancing trigger voltage" + cell_soc100_voltage: + name: "${bms0_name} cell soc100 voltage" + cell_soc0_voltage: + name: "${bms0_name} cell soc0 voltage" + cell_request_charge_voltage: + name: "${bms0_name} cell request charge voltage" + cell_request_float_voltage: + name: "${bms0_name} cell request float voltage" + cell_power_off_voltage: + name: "${bms0_name} cell power off voltage" + cell_balancing_starting_voltage: + name: "${bms0_name} cell balancing starting voltage" + max_charging_current: + name: "${bms0_name} max charging current" + charging_overcurrent_protection_delay: + name: "${bms0_name} charging overcurrent protection delay" + charging_overcurrent_protection_recovery_delay: + name: "${bms0_name} charging overcurrent protection recovery delay" + max_discharging_current: + name: "${bms0_name} max discharging current" + discharging_overcurrent_protection_delay: + name: "${bms0_name} discharging overcurrent protection delay" + discharging_overcurrent_protection_recovery_delay: + name: "${bms0_name} discharging overcurrent protection recovery delay" + short_circuit_protection_delay: + name: "${bms0_name} short circuit protection delay" + short_circuit_protection_recovery_delay: + name: "${bms0_name} short circuit protection recovery delay" + max_balancing_current: + name: "${bms0_name} max balancing current" + charging_overtemperature_protection: + name: "${bms0_name} charging overtemperature protection" + charging_overtemperature_protection_recovery: + name: "${bms0_name} charging overtemperature protection recovery" + discharging_overtemperature_protection: + name: "${bms0_name} discharging overtemperature protection" + discharging_overtemperature_protection_recovery: + name: "${bms0_name} discharging overtemperature protection recovery" + charging_lowtemperature_protection: + name: "${bms0_name} charging lowtemperature protection" + charging_lowtemperature_protection_recovery: + name: "${bms0_name} charging lowtemperature protection recovery" + mos_overtemperature_protection: + name: "${bms0_name} mos overtemperature protection" + mos_overtemperature_protection_recovery: + name: "${bms0_name} mos overtemperature protection recovery" + cell_count_settings: + name: "${bms0_name} cell count settings" + battery_capacity_total_settings: + name: "${bms0_name} battery capacity total settings" + precharging_time_from_discharge: + name: "${bms0_name} precharging time from discharge" + cell_request_charge_voltage_time: + name: "${bms0_name} cell request charge voltage time" + cell_request_float_voltage_time: + name: "${bms0_name} cell request float voltage time" + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms1 + cell_smart_sleep_voltage: + name: "${bms1_name} cell smart sleep voltage" + cell_undervoltage_protection: + name: "${bms1_name} cell undervoltage protection" + cell_undervoltage_protection_recovery: + name: "${bms1_name} cell undervoltage protection recovery" + cell_overvoltage_protection: + name: "${bms1_name} cell overvoltage protection" + cell_overvoltage_protection_recovery: + name: "${bms1_name} cell overvoltage protection recovery" + cell_balancing_trigger_voltage: + name: "${bms1_name} cell balancing trigger voltage" + cell_soc100_voltage: + name: "${bms1_name} cell soc100 voltage" + cell_soc0_voltage: + name: "${bms1_name} cell soc0 voltage" + cell_request_charge_voltage: + name: "${bms1_name} cell request charge voltage" + cell_request_float_voltage: + name: "${bms1_name} cell request float voltage" + cell_power_off_voltage: + name: "${bms1_name} cell power off voltage" + cell_balancing_starting_voltage: + name: "${bms1_name} cell balancing starting voltage" + max_charging_current: + name: "${bms1_name} max charging current" + charging_overcurrent_protection_delay: + name: "${bms1_name} charging overcurrent protection delay" + charging_overcurrent_protection_recovery_delay: + name: "${bms1_name} charging overcurrent protection recovery delay" + max_discharging_current: + name: "${bms1_name} max discharging current" + discharging_overcurrent_protection_delay: + name: "${bms1_name} discharging overcurrent protection delay" + discharging_overcurrent_protection_recovery_delay: + name: "${bms1_name} discharging overcurrent protection recovery delay" + short_circuit_protection_delay: + name: "${bms1_name} short circuit protection delay" + short_circuit_protection_recovery_delay: + name: "${bms1_name} short circuit protection recovery delay" + max_balancing_current: + name: "${bms1_name} max balancing current" + charging_overtemperature_protection: + name: "${bms1_name} charging overtemperature protection" + charging_overtemperature_protection_recovery: + name: "${bms1_name} charging overtemperature protection recovery" + discharging_overtemperature_protection: + name: "${bms1_name} discharging overtemperature protection" + discharging_overtemperature_protection_recovery: + name: "${bms1_name} discharging overtemperature protection recovery" + charging_lowtemperature_protection: + name: "${bms1_name} charging lowtemperature protection" + charging_lowtemperature_protection_recovery: + name: "${bms1_name} charging lowtemperature protection recovery" + mos_overtemperature_protection: + name: "${bms1_name} mos overtemperature protection" + mos_overtemperature_protection_recovery: + name: "${bms1_name} mos overtemperature protection recovery" + cell_count_settings: + name: "${bms1_name} cell count settings" + battery_capacity_total_settings: + name: "${bms1_name} battery capacity total settings" + precharging_time_from_discharge: + name: "${bms1_name} precharging time from discharge" + cell_request_charge_voltage_time: + name: "${bms1_name} cell request charge voltage time" + cell_request_float_voltage_time: + name: "${bms1_name} cell request float voltage time" + + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms2 + cell_smart_sleep_voltage: + name: "${bms2_name} cell smart sleep voltage" + cell_undervoltage_protection: + name: "${bms2_name} cell undervoltage protection" + cell_undervoltage_protection_recovery: + name: "${bms2_name} cell undervoltage protection recovery" + cell_overvoltage_protection: + name: "${bms2_name} cell overvoltage protection" + cell_overvoltage_protection_recovery: + name: "${bms2_name} cell overvoltage protection recovery" + cell_balancing_trigger_voltage: + name: "${bms2_name} cell balancing trigger voltage" + cell_soc100_voltage: + name: "${bms2_name} cell soc100 voltage" + cell_soc0_voltage: + name: "${bms2_name} cell soc0 voltage" + cell_request_charge_voltage: + name: "${bms2_name} cell request charge voltage" + cell_request_float_voltage: + name: "${bms2_name} cell request float voltage" + cell_power_off_voltage: + name: "${bms2_name} cell power off voltage" + cell_balancing_starting_voltage: + name: "${bms2_name} cell balancing starting voltage" + max_charging_current: + name: "${bms2_name} max charging current" + charging_overcurrent_protection_delay: + name: "${bms2_name} charging overcurrent protection delay" + charging_overcurrent_protection_recovery_delay: + name: "${bms2_name} charging overcurrent protection recovery delay" + max_discharging_current: + name: "${bms2_name} max discharging current" + discharging_overcurrent_protection_delay: + name: "${bms2_name} discharging overcurrent protection delay" + discharging_overcurrent_protection_recovery_delay: + name: "${bms2_name} discharging overcurrent protection recovery delay" + short_circuit_protection_delay: + name: "${bms2_name} short circuit protection delay" + short_circuit_protection_recovery_delay: + name: "${bms2_name} short circuit protection recovery delay" + max_balancing_current: + name: "${bms2_name} max balancing current" + charging_overtemperature_protection: + name: "${bms2_name} charging overtemperature protection" + charging_overtemperature_protection_recovery: + name: "${bms2_name} charging overtemperature protection recovery" + discharging_overtemperature_protection: + name: "${bms2_name} discharging overtemperature protection" + discharging_overtemperature_protection_recovery: + name: "${bms2_name} discharging overtemperature protection recovery" + charging_lowtemperature_protection: + name: "${bms2_name} charging lowtemperature protection" + charging_lowtemperature_protection_recovery: + name: "${bms2_name} charging lowtemperature protection recovery" + mos_overtemperature_protection: + name: "${bms2_name} mos overtemperature protection" + mos_overtemperature_protection_recovery: + name: "${bms2_name} mos overtemperature protection recovery" + cell_count_settings: + name: "${bms2_name} cell count settings" + battery_capacity_total_settings: + name: "${bms2_name} battery capacity total settings" + precharging_time_from_discharge: + name: "${bms2_name} precharging time from discharge" + cell_request_charge_voltage_time: + name: "${bms2_name} cell request charge voltage time" + cell_request_float_voltage_time: + name: "${bms2_name} cell request float voltage time" + + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms3 + cell_smart_sleep_voltage: + name: "${bms3_name} cell smart sleep voltage" + cell_undervoltage_protection: + name: "${bms3_name} cell undervoltage protection" + cell_undervoltage_protection_recovery: + name: "${bms3_name} cell undervoltage protection recovery" + cell_overvoltage_protection: + name: "${bms3_name} cell overvoltage protection" + cell_overvoltage_protection_recovery: + name: "${bms3_name} cell overvoltage protection recovery" + cell_balancing_trigger_voltage: + name: "${bms3_name} cell balancing trigger voltage" + cell_soc100_voltage: + name: "${bms3_name} cell soc100 voltage" + cell_soc0_voltage: + name: "${bms3_name} cell soc0 voltage" + cell_request_charge_voltage: + name: "${bms3_name} cell request charge voltage" + cell_request_float_voltage: + name: "${bms3_name} cell request float voltage" + cell_power_off_voltage: + name: "${bms3_name} cell power off voltage" + cell_balancing_starting_voltage: + name: "${bms3_name} cell balancing starting voltage" + max_charging_current: + name: "${bms3_name} max charging current" + charging_overcurrent_protection_delay: + name: "${bms3_name} charging overcurrent protection delay" + charging_overcurrent_protection_recovery_delay: + name: "${bms3_name} charging overcurrent protection recovery delay" + max_discharging_current: + name: "${bms3_name} max discharging current" + discharging_overcurrent_protection_delay: + name: "${bms3_name} discharging overcurrent protection delay" + discharging_overcurrent_protection_recovery_delay: + name: "${bms3_name} discharging overcurrent protection recovery delay" + short_circuit_protection_delay: + name: "${bms3_name} short circuit protection delay" + short_circuit_protection_recovery_delay: + name: "${bms3_name} short circuit protection recovery delay" + max_balancing_current: + name: "${bms3_name} max balancing current" + charging_overtemperature_protection: + name: "${bms3_name} charging overtemperature protection" + charging_overtemperature_protection_recovery: + name: "${bms3_name} charging overtemperature protection recovery" + discharging_overtemperature_protection: + name: "${bms3_name} discharging overtemperature protection" + discharging_overtemperature_protection_recovery: + name: "${bms3_name} discharging overtemperature protection recovery" + charging_lowtemperature_protection: + name: "${bms3_name} charging lowtemperature protection" + charging_lowtemperature_protection_recovery: + name: "${bms3_name} charging lowtemperature protection recovery" + mos_overtemperature_protection: + name: "${bms3_name} mos overtemperature protection" + mos_overtemperature_protection_recovery: + name: "${bms3_name} mos overtemperature protection recovery" + cell_count_settings: + name: "${bms3_name} cell count settings" + battery_capacity_total_settings: + name: "${bms3_name} battery capacity total settings" + precharging_time_from_discharge: + name: "${bms3_name} precharging time from discharge" + cell_request_charge_voltage_time: + name: "${bms3_name} cell request charge voltage time" + cell_request_float_voltage_time: + name: "${bms3_name} cell request float voltage time" + + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms4 + cell_smart_sleep_voltage: + name: "${bms4_name} cell smart sleep voltage" + cell_undervoltage_protection: + name: "${bms4_name} cell undervoltage protection" + cell_undervoltage_protection_recovery: + name: "${bms4_name} cell undervoltage protection recovery" + cell_overvoltage_protection: + name: "${bms4_name} cell overvoltage protection" + cell_overvoltage_protection_recovery: + name: "${bms4_name} cell overvoltage protection recovery" + cell_balancing_trigger_voltage: + name: "${bms4_name} cell balancing trigger voltage" + cell_soc100_voltage: + name: "${bms4_name} cell soc100 voltage" + cell_soc0_voltage: + name: "${bms4_name} cell soc0 voltage" + cell_request_charge_voltage: + name: "${bms4_name} cell request charge voltage" + cell_request_float_voltage: + name: "${bms4_name} cell request float voltage" + cell_power_off_voltage: + name: "${bms4_name} cell power off voltage" + cell_balancing_starting_voltage: + name: "${bms4_name} cell balancing starting voltage" + max_charging_current: + name: "${bms4_name} max charging current" + charging_overcurrent_protection_delay: + name: "${bms4_name} charging overcurrent protection delay" + charging_overcurrent_protection_recovery_delay: + name: "${bms4_name} charging overcurrent protection recovery delay" + max_discharging_current: + name: "${bms4_name} max discharging current" + discharging_overcurrent_protection_delay: + name: "${bms4_name} discharging overcurrent protection delay" + discharging_overcurrent_protection_recovery_delay: + name: "${bms4_name} discharging overcurrent protection recovery delay" + short_circuit_protection_delay: + name: "${bms4_name} short circuit protection delay" + short_circuit_protection_recovery_delay: + name: "${bms4_name} short circuit protection recovery delay" + max_balancing_current: + name: "${bms4_name} max balancing current" + charging_overtemperature_protection: + name: "${bms4_name} charging overtemperature protection" + charging_overtemperature_protection_recovery: + name: "${bms4_name} charging overtemperature protection recovery" + discharging_overtemperature_protection: + name: "${bms4_name} discharging overtemperature protection" + discharging_overtemperature_protection_recovery: + name: "${bms4_name} discharging overtemperature protection recovery" + charging_lowtemperature_protection: + name: "${bms4_name} charging lowtemperature protection" + charging_lowtemperature_protection_recovery: + name: "${bms4_name} charging lowtemperature protection recovery" + mos_overtemperature_protection: + name: "${bms4_name} mos overtemperature protection" + mos_overtemperature_protection_recovery: + name: "${bms4_name} mos overtemperature protection recovery" + cell_count_settings: + name: "${bms4_name} cell count settings" + battery_capacity_total_settings: + name: "${bms4_name} battery capacity total settings" + precharging_time_from_discharge: + name: "${bms4_name} precharging time from discharge" + cell_request_charge_voltage_time: + name: "${bms4_name} cell request charge voltage time" + cell_request_float_voltage_time: + name: "${bms4_name} cell request float voltage time" + + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms5 + cell_smart_sleep_voltage: + name: "${bms5_name} cell smart sleep voltage" + cell_undervoltage_protection: + name: "${bms5_name} cell undervoltage protection" + cell_undervoltage_protection_recovery: + name: "${bms5_name} cell undervoltage protection recovery" + cell_overvoltage_protection: + name: "${bms5_name} cell overvoltage protection" + cell_overvoltage_protection_recovery: + name: "${bms5_name} cell overvoltage protection recovery" + cell_balancing_trigger_voltage: + name: "${bms5_name} cell balancing trigger voltage" + cell_soc100_voltage: + name: "${bms5_name} cell soc100 voltage" + cell_soc0_voltage: + name: "${bms5_name} cell soc0 voltage" + cell_request_charge_voltage: + name: "${bms5_name} cell request charge voltage" + cell_request_float_voltage: + name: "${bms5_name} cell request float voltage" + cell_power_off_voltage: + name: "${bms5_name} cell power off voltage" + cell_balancing_starting_voltage: + name: "${bms5_name} cell balancing starting voltage" + max_charging_current: + name: "${bms5_name} max charging current" + charging_overcurrent_protection_delay: + name: "${bms5_name} charging overcurrent protection delay" + charging_overcurrent_protection_recovery_delay: + name: "${bms5_name} charging overcurrent protection recovery delay" + max_discharging_current: + name: "${bms5_name} max discharging current" + discharging_overcurrent_protection_delay: + name: "${bms5_name} discharging overcurrent protection delay" + discharging_overcurrent_protection_recovery_delay: + name: "${bms5_name} discharging overcurrent protection recovery delay" + short_circuit_protection_delay: + name: "${bms5_name} short circuit protection delay" + short_circuit_protection_recovery_delay: + name: "${bms5_name} short circuit protection recovery delay" + max_balancing_current: + name: "${bms5_name} max balancing current" + charging_overtemperature_protection: + name: "${bms5_name} charging overtemperature protection" + charging_overtemperature_protection_recovery: + name: "${bms5_name} charging overtemperature protection recovery" + discharging_overtemperature_protection: + name: "${bms5_name} discharging overtemperature protection" + discharging_overtemperature_protection_recovery: + name: "${bms5_name} discharging overtemperature protection recovery" + charging_lowtemperature_protection: + name: "${bms5_name} charging lowtemperature protection" + charging_lowtemperature_protection_recovery: + name: "${bms5_name} charging lowtemperature protection recovery" + mos_overtemperature_protection: + name: "${bms5_name} mos overtemperature protection" + mos_overtemperature_protection_recovery: + name: "${bms5_name} mos overtemperature protection recovery" + cell_count_settings: + name: "${bms5_name} cell count settings" + battery_capacity_total_settings: + name: "${bms5_name} battery capacity total settings" + precharging_time_from_discharge: + name: "${bms5_name} precharging time from discharge" + cell_request_charge_voltage_time: + name: "${bms5_name} cell request charge voltage time" + cell_request_float_voltage_time: + name: "${bms5_name} cell request float voltage time" + + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms6 + cell_smart_sleep_voltage: + name: "${bms6_name} cell smart sleep voltage" + cell_undervoltage_protection: + name: "${bms6_name} cell undervoltage protection" + cell_undervoltage_protection_recovery: + name: "${bms6_name} cell undervoltage protection recovery" + cell_overvoltage_protection: + name: "${bms6_name} cell overvoltage protection" + cell_overvoltage_protection_recovery: + name: "${bms6_name} cell overvoltage protection recovery" + cell_balancing_trigger_voltage: + name: "${bms6_name} cell balancing trigger voltage" + cell_soc100_voltage: + name: "${bms6_name} cell soc100 voltage" + cell_soc0_voltage: + name: "${bms6_name} cell soc0 voltage" + cell_request_charge_voltage: + name: "${bms6_name} cell request charge voltage" + cell_request_float_voltage: + name: "${bms6_name} cell request float voltage" + cell_power_off_voltage: + name: "${bms6_name} cell power off voltage" + cell_balancing_starting_voltage: + name: "${bms6_name} cell balancing starting voltage" + max_charging_current: + name: "${bms6_name} max charging current" + charging_overcurrent_protection_delay: + name: "${bms6_name} charging overcurrent protection delay" + charging_overcurrent_protection_recovery_delay: + name: "${bms6_name} charging overcurrent protection recovery delay" + max_discharging_current: + name: "${bms6_name} max discharging current" + discharging_overcurrent_protection_delay: + name: "${bms6_name} discharging overcurrent protection delay" + discharging_overcurrent_protection_recovery_delay: + name: "${bms6_name} discharging overcurrent protection recovery delay" + short_circuit_protection_delay: + name: "${bms6_name} short circuit protection delay" + short_circuit_protection_recovery_delay: + name: "${bms6_name} short circuit protection recovery delay" + max_balancing_current: + name: "${bms6_name} max balancing current" + charging_overtemperature_protection: + name: "${bms6_name} charging overtemperature protection" + charging_overtemperature_protection_recovery: + name: "${bms6_name} charging overtemperature protection recovery" + discharging_overtemperature_protection: + name: "${bms6_name} discharging overtemperature protection" + discharging_overtemperature_protection_recovery: + name: "${bms6_name} discharging overtemperature protection recovery" + charging_lowtemperature_protection: + name: "${bms6_name} charging lowtemperature protection" + charging_lowtemperature_protection_recovery: + name: "${bms6_name} charging lowtemperature protection recovery" + mos_overtemperature_protection: + name: "${bms6_name} mos overtemperature protection" + mos_overtemperature_protection_recovery: + name: "${bms6_name} mos overtemperature protection recovery" + cell_count_settings: + name: "${bms6_name} cell count settings" + battery_capacity_total_settings: + name: "${bms6_name} battery capacity total settings" + precharging_time_from_discharge: + name: "${bms6_name} precharging time from discharge" + cell_request_charge_voltage_time: + name: "${bms6_name} cell request charge voltage time" + cell_request_float_voltage_time: + name: "${bms6_name} cell request float voltage time" + diff --git a/esp32-example-jkpb-rs485_1master_1slave.yaml b/esp32-example-jkpb-rs485_1master_1slave.yaml index 3b8f9678..5bce8e3a 100644 --- a/esp32-example-jkpb-rs485_1master_1slave.yaml +++ b/esp32-example-jkpb-rs485_1master_1slave.yaml @@ -13,11 +13,14 @@ esphome: comment: ${device_description} project: name: "txubelaxu.esphome-jk-bms" - version: 1.0.0 - #includes: - #- ./components/output/binary_output.h - #- ./components/jk_rs485_sniffer/gpio.h - + version: 2.0.1 +# libraries: +# - "ArduinoJson" +# includes: + #- ./components/ArduinoJson/ArduinoJson.h + #- ./components/ArduinoJson/ArduinoJson.hpp + #- ./components/ArduinoJson/Configuration.hpp +# - ./components/json/json_util.h esp32: board: esp32dev #nodemcu-32s #wemos_d1_mini32 @@ -28,22 +31,30 @@ esp32: # board: d1_mini external_components: - - source: ${external_components_source} - refresh: 0s -# - source: ./components -# refresh: 0s +# - source: ${external_components_source} +# refresh: 0s + #- source: + # type: git + # url: https://github.com/esphome/esphome + # ref: dev + # components: [ json ] + + - source: ./components + refresh: 0s + components: [ jk_rs485_sniffer , jk_rs485_bms ] + wifi: ssid: !secret wifi_ssid password: !secret wifi_password - ota: + platform: esphome api: logger: - level: INFO #VERY_VERBOSE #VERBOSE #DEBUG #INFO #DEBUG - tx_buffer_size: 1024 + level: DEBUG #VERBOSE #DEBUG #INFO #VERY_VERBOSE #VERBOSE #DEBUG #INFO #DEBUG + tx_buffer_size: 2048 # If you use Home Assistant please remove this `mqtt` section and uncomment the `api` component! # The native API has many advantages over MQTT: https://esphome.io/components/api.html#advantages-over-mqtt @@ -53,19 +64,21 @@ logger: # password: !secret mqtt_password # id: mqtt_client # log_topic: null -web_server: - local: true - port: 80 - auth: - username: !secret web_server_user - password: !secret web_server_password + +#web_server: +# local: true +# port: 80 +# auth: +# username: !secret web_server_user +# password: !secret web_server_password uart: - id: uart_0 baud_rate: 115200 - rx_buffer_size: 1000 + rx_buffer_size: 500 tx_pin: ${tx_pin_uart_0} rx_pin: ${rx_pin_uart_0} + jk_rs485_sniffer: - id: sniffer0 protocol_version: "JK02_32S" @@ -77,11 +90,11 @@ jk_rs485_bms: - id: bms0 rs485_address: 0x00 jk_rs485_sniffer_id: sniffer0 - update_interval: 5s + update_interval: 180s - id: bms1 rs485_address: 0x01 jk_rs485_sniffer_id: sniffer0 - update_interval: 5s + update_interval: 180s binary_sensor: - platform: jk_rs485_bms @@ -236,13 +249,43 @@ binary_sensor: + sensor: + - platform: uptime + id: uptime_sec + # +--------------------------------------+ + # | Uptime sensor | + # +--------------------------------------+ + - platform: uptime + name: ${esp_name} Uptime Sensor + id: uptime_sensor + update_interval: 5s + entity_category: diagnostic + on_raw_value: + then: + - text_sensor.template.publish: + id: uptime_human + state: !lambda |- + char buf[10]; + int uptime_sec = round(id(uptime_sensor).raw_state); + int days = (int)(uptime_sec / 86400); + int hours = (int)((uptime_sec % 86400) / 3600); + int minutes = (int)((uptime_sec % 3600) / 60); + int seconds = (int)(uptime_sec % 60); + + return( + ( + (days ? sprintf(buf, "%02dd ", days), std::string(buf) : "") + + (hours ? sprintf(buf, "%02dh ", hours), std::string(buf) : "") + + (minutes ? sprintf(buf, "%02dm ", minutes), std::string(buf) : "") + + (sprintf(buf, "%02ds", seconds), std::string(buf)) + ).c_str() + ); + - platform: jk_rs485_bms jk_rs485_bms_id: bms0 balancing_direction: name: "${bms0_name} balancing direction" - cell_smart_sleep_voltage: - name: "${bms0_name} cell smart sleep voltage" cell_voltage_min: name: "${bms0_name} cell voltage min" cell_voltage_max: @@ -385,8 +428,6 @@ sensor: name: "${bms0_name} battery capacity state of charge" battery_capacity_remaining: name: "${bms0_name} battery capacity remaining" - battery_capacity_total_setting: - name: "${bms0_name} battery capacity total setting" charging_cycles: name: "${bms0_name} charging cycles" battery_capacity_total_charging_cycle: @@ -397,74 +438,10 @@ sensor: name: "${bms0_name} balancing current" errors_bitmask: name: "${bms0_name} errors bitmask" - cell_count_settings: - name: "${bms0_name} cell count settings" cell_count_real: - name: "${bms0_name} cell count real" - cell_overvoltage_protection: - name: "${bms0_name} cell overvoltage protection" - cell_overvoltage_protection_recovery: - name: "${bms0_name} cell overvoltage protection recovery" - cell_request_charge_voltage: - name: "${bms0_name} cell request charge voltage" - cell_request_charge_voltage_time: - name: "${bms0_name} cell request charge voltage time" - cell_request_float_voltage: - name: "${bms0_name} cell request float voltage" - cell_request_float_voltage_time: - name: "${bms0_name} cell request float voltage time" - balancing_trigger_voltage: - name: "${bms0_name} balancing trigger voltage" - cell_balancing_starting_voltage: - name: "${bms0_name} cell balancing starting voltage" - max_balancing_current: - name: "${bms0_name} max balancing current" - cell_soc100_voltage: - name: "${bms0_name} cell soc100 voltage" - cell_soc0_voltage: - name: "${bms0_name} cell soc0 voltage" - cell_undervoltage_protection: - name: "${bms0_name} cell undervoltage protection" - cell_undervoltage_protection_recovery: - name: "${bms0_name} cell undervoltage protection recovery" - cell_power_off_voltage: - name: "${bms0_name} cell power off voltage" + name: "${bms0_name} cell count real" smart_sleep_time: - name: "${bms0_name} smart sleep time" - max_charging_current: - name: "${bms0_name} max charging current" - max_discharging_current: - name: "${bms0_name} max discharging current" - charging_overcurrent_protection_delay: - name: "${bms0_name} charging overcurrent protection delay" - charging_overcurrent_protection_recovery_delay: - name: "${bms0_name} charging overcurrent protection recovery delay" - discharging_overcurrent_protection_delay: - name: "${bms0_name} discharging overcurrent protection delay" - discharging_overcurrent_protection_recovery_delay: - name: "${bms0_name} discharging overcurrent protection recovery delay" - short_circuit_protection_delay: - name: "${bms0_name} short circuit protection delay" - short_circuit_protection_recovery_delay: - name: "${bms0_name} short circuit protection recovery delay" - precharging_time_from_discharge: - name: "${bms0_name} precharging time from discharge" - charging_overtemperature_protection: - name: "${bms0_name} charging overtemperature protection" - charging_overtemperature_protection_recovery: - name: "${bms0_name} charging overtemperature protection recovery" - discharging_overtemperature_protection: - name: "${bms0_name} discharging overtemperature protection" - discharging_overtemperature_protection_recovery: - name: "${bms0_name} discharging overtemperature protection recovery" - charging_lowtemperature_protection: - name: "${bms0_name} charging lowtemperature protection" - charging_lowtemperature_protection_recovery: - name: "${bms0_name} charging lowtemperature protection recovery" - mos_overtemperature_protection: - name: "${bms0_name} mos overtemperature protection" - mos_overtemperature_protection_recovery: - name: "${bms0_name} mos overtemperature protection recovery" + name: "${bms0_name} smart sleep time" powertube_temperature_protection: name: "${bms0_name} powertube temperature protection" powertube_temperature_protection_recovery: @@ -499,8 +476,6 @@ sensor: jk_rs485_bms_id: bms1 balancing_direction: name: "${bms1_name} balancing direction" - cell_smart_sleep_voltage: - name: "${bms1_name} cell smart sleep voltage" cell_voltage_min: name: "${bms1_name} cell voltage min" cell_voltage_max: @@ -643,8 +618,6 @@ sensor: name: "${bms1_name} battery capacity state of charge" battery_capacity_remaining: name: "${bms1_name} battery capacity remaining" - battery_capacity_total_setting: - name: "${bms1_name} battery capacity total setting" charging_cycles: name: "${bms1_name} charging cycles" battery_capacity_total_charging_cycle: @@ -655,74 +628,10 @@ sensor: name: "${bms1_name} balancing current" errors_bitmask: name: "${bms1_name} errors bitmask" - cell_count_settings: - name: "${bms1_name} cell count settings" cell_count_real: - name: "${bms1_name} cell count real" - cell_overvoltage_protection: - name: "${bms1_name} cell overvoltage protection" - cell_overvoltage_protection_recovery: - name: "${bms1_name} cell overvoltage protection recovery" - cell_request_charge_voltage: - name: "${bms1_name} cell request charge voltage" - cell_request_charge_voltage_time: - name: "${bms1_name} cell request charge voltage time" - cell_request_float_voltage: - name: "${bms1_name} cell request float voltage" - cell_request_float_voltage_time: - name: "${bms1_name} cell request float voltage time" - balancing_trigger_voltage: - name: "${bms1_name} balancing trigger voltage" - cell_balancing_starting_voltage: - name: "${bms1_name} cell balancing starting voltage" - max_balancing_current: - name: "${bms1_name} max balancing current" - cell_soc100_voltage: - name: "${bms1_name} cell soc100 voltage" - cell_soc0_voltage: - name: "${bms1_name} cell soc0 voltage" - cell_undervoltage_protection: - name: "${bms1_name} cell undervoltage protection" - cell_undervoltage_protection_recovery: - name: "${bms1_name} cell undervoltage protection recovery" - cell_power_off_voltage: - name: "${bms1_name} cell power off voltage" + name: "${bms1_name} cell count real" smart_sleep_time: - name: "${bms1_name} smart sleep time" - max_charging_current: - name: "${bms1_name} max_charging_current" - max_discharging_current: - name: "${bms1_name} max discharging current" - charging_overcurrent_protection_delay: - name: "${bms1_name} charging overcurrent protection delay" - charging_overcurrent_protection_recovery_delay: - name: "${bms1_name} charging overcurrent protection recovery delay" - discharging_overcurrent_protection_delay: - name: "${bms1_name} discharging overcurrent protection delay" - discharging_overcurrent_protection_recovery_delay: - name: "${bms1_name} discharging overcurrent protection recovery delay" - short_circuit_protection_delay: - name: "${bms1_name} short circuit protection delay" - short_circuit_protection_recovery_delay: - name: "${bms1_name} short circuit protection recovery delay" - precharging_time_from_discharge: - name: "${bms1_name} precharging time from discharge" - charging_overtemperature_protection: - name: "${bms1_name} charging overtemperature protection" - charging_overtemperature_protection_recovery: - name: "${bms1_name} charging overtemperature protection recovery" - discharging_overtemperature_protection: - name: "${bms1_name} discharging overtemperature protection" - discharging_overtemperature_protection_recovery: - name: "${bms1_name} discharging overtemperature protection recovery" - charging_lowtemperature_protection: - name: "${bms1_name} charging lowtemperature protection" - charging_lowtemperature_protection_recovery: - name: "${bms1_name} charging lowtemperature protection recovery" - mos_overtemperature_protection: - name: "${bms1_name} mos overtemperature protection" - mos_overtemperature_protection_recovery: - name: "${bms1_name} mos overtemperature protection recovery" + name: "${bms1_name} smart sleep time" powertube_temperature_protection: name: "${bms1_name} powertube temperature protection" powertube_temperature_protection_recovery: @@ -752,8 +661,20 @@ sensor: cell_overvoltage_protection_release_time: name: "${bms1_name} cell overvoltage protection release time" - switch: + - platform: template + name: "Broadcast changes to all BMSs" + id: broadcast_active + icon: "mdi:cast" + restore_mode: RESTORE_DEFAULT_ON + optimistic: true + turn_on_action: + - lambda: |- + id(sniffer0).set_broadcast_changes_to_all_bms(true); + turn_off_action: + - lambda: |- + id(sniffer0).set_broadcast_changes_to_all_bms(false); + - platform: jk_rs485_bms jk_rs485_bms_id: bms0 precharging: @@ -820,8 +741,18 @@ switch: name: "${bms1_name} port selection" special_charger: name: "${bms1_name} special charger" + text_sensor: + # +--------------------------------------+ + # | Uptime Human Readable | + # +--------------------------------------+ + - platform: template + name: ${esp_name} Uptime Human Readable + id: uptime_human + icon: mdi:clock-start + entity_category: diagnostic + - platform: jk_rs485_bms jk_rs485_bms_id: bms0 errors: @@ -847,7 +778,8 @@ text_sensor: name: "${bms0_name} network nodes available" info_device_serial_number: name: "${bms0_name} info device serial number" - + info_device_setup_passcode: + name: "${bms0_name} info device setup passcode" # ... - platform: jk_rs485_bms jk_rs485_bms_id: bms1 @@ -872,4 +804,150 @@ text_sensor: network_nodes_available: name: "${bms1_name} network nodes available" info_device_serial_number: - name: "${bms1_name} info device serial number" \ No newline at end of file + name: "${bms1_name} info device serial number" + info_device_setup_passcode: + name: "${bms1_name} info device setup passcode" + +number: + - platform: jk_rs485_bms + jk_rs485_bms_id: bms0 + cell_smart_sleep_voltage: + name: "${bms0_name} cell smart sleep voltage" + cell_undervoltage_protection: + name: "${bms0_name} cell undervoltage protection" + cell_undervoltage_protection_recovery: + name: "${bms0_name} cell undervoltage protection recovery" + cell_overvoltage_protection: + name: "${bms0_name} cell overvoltage protection" + cell_overvoltage_protection_recovery: + name: "${bms0_name} cell overvoltage protection recovery" + cell_balancing_trigger_voltage: + name: "${bms0_name} cell balancing trigger voltage" + cell_soc100_voltage: + name: "${bms0_name} cell soc100 voltage" + cell_soc0_voltage: + name: "${bms0_name} cell soc0 voltage" + cell_request_charge_voltage: + name: "${bms0_name} cell request charge voltage" + cell_request_float_voltage: + name: "${bms0_name} cell request float voltage" + cell_power_off_voltage: + name: "${bms0_name} cell power off voltage" + cell_balancing_starting_voltage: + name: "${bms0_name} cell balancing starting voltage" + max_charging_current: + name: "${bms0_name} max charging current" + charging_overcurrent_protection_delay: + name: "${bms0_name} charging overcurrent protection delay" + charging_overcurrent_protection_recovery_delay: + name: "${bms0_name} charging overcurrent protection recovery delay" + max_discharging_current: + name: "${bms0_name} max discharging current" + discharging_overcurrent_protection_delay: + name: "${bms0_name} discharging overcurrent protection delay" + discharging_overcurrent_protection_recovery_delay: + name: "${bms0_name} discharging overcurrent protection recovery delay" + short_circuit_protection_delay: + name: "${bms0_name} short circuit protection delay" + short_circuit_protection_recovery_delay: + name: "${bms0_name} short circuit protection recovery delay" + max_balancing_current: + name: "${bms0_name} max balancing current" + charging_overtemperature_protection: + name: "${bms0_name} charging overtemperature protection" + charging_overtemperature_protection_recovery: + name: "${bms0_name} charging overtemperature protection recovery" + discharging_overtemperature_protection: + name: "${bms0_name} discharging overtemperature protection" + discharging_overtemperature_protection_recovery: + name: "${bms0_name} discharging overtemperature protection recovery" + charging_lowtemperature_protection: + name: "${bms0_name} charging lowtemperature protection" + charging_lowtemperature_protection_recovery: + name: "${bms0_name} charging lowtemperature protection recovery" + mos_overtemperature_protection: + name: "${bms0_name} mos overtemperature protection" + mos_overtemperature_protection_recovery: + name: "${bms0_name} mos overtemperature protection recovery" + cell_count_settings: + name: "${bms0_name} cell count settings" + battery_capacity_total_settings: + name: "${bms0_name} battery capacity total settings" + precharging_time_from_discharge: + name: "${bms0_name} precharging time from discharge" + cell_request_charge_voltage_time: + name: "${bms0_name} cell request charge voltage time" + cell_request_float_voltage_time: + name: "${bms0_name} cell request float voltage time" + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms1 + cell_smart_sleep_voltage: + name: "${bms1_name} cell smart sleep voltage" + cell_undervoltage_protection: + name: "${bms1_name} cell undervoltage protection" + cell_undervoltage_protection_recovery: + name: "${bms1_name} cell undervoltage protection recovery" + cell_overvoltage_protection: + name: "${bms1_name} cell overvoltage protection" + cell_overvoltage_protection_recovery: + name: "${bms1_name} cell overvoltage protection recovery" + cell_balancing_trigger_voltage: + name: "${bms1_name} cell balancing trigger voltage" + cell_soc100_voltage: + name: "${bms1_name} cell soc100 voltage" + cell_soc0_voltage: + name: "${bms1_name} cell soc0 voltage" + cell_request_charge_voltage: + name: "${bms1_name} cell request charge voltage" + cell_request_float_voltage: + name: "${bms1_name} cell request float voltage" + cell_power_off_voltage: + name: "${bms1_name} cell power off voltage" + cell_balancing_starting_voltage: + name: "${bms1_name} cell balancing starting voltage" + max_charging_current: + name: "${bms1_name} max charging current" + charging_overcurrent_protection_delay: + name: "${bms1_name} charging overcurrent protection delay" + charging_overcurrent_protection_recovery_delay: + name: "${bms1_name} charging overcurrent protection recovery delay" + max_discharging_current: + name: "${bms1_name} max discharging current" + discharging_overcurrent_protection_delay: + name: "${bms1_name} discharging overcurrent protection delay" + discharging_overcurrent_protection_recovery_delay: + name: "${bms1_name} discharging overcurrent protection recovery delay" + short_circuit_protection_delay: + name: "${bms1_name} short circuit protection delay" + short_circuit_protection_recovery_delay: + name: "${bms1_name} short circuit protection recovery delay" + max_balancing_current: + name: "${bms1_name} max balancing current" + charging_overtemperature_protection: + name: "${bms1_name} charging overtemperature protection" + charging_overtemperature_protection_recovery: + name: "${bms1_name} charging overtemperature protection recovery" + discharging_overtemperature_protection: + name: "${bms1_name} discharging overtemperature protection" + discharging_overtemperature_protection_recovery: + name: "${bms1_name} discharging overtemperature protection recovery" + charging_lowtemperature_protection: + name: "${bms1_name} charging lowtemperature protection" + charging_lowtemperature_protection_recovery: + name: "${bms1_name} charging lowtemperature protection recovery" + mos_overtemperature_protection: + name: "${bms1_name} mos overtemperature protection" + mos_overtemperature_protection_recovery: + name: "${bms1_name} mos overtemperature protection recovery" + cell_count_settings: + name: "${bms1_name} cell count settings" + battery_capacity_total_settings: + name: "${bms1_name} battery capacity total settings" + precharging_time_from_discharge: + name: "${bms1_name} precharging time from discharge" + cell_request_charge_voltage_time: + name: "${bms1_name} cell request charge voltage time" + cell_request_float_voltage_time: + name: "${bms1_name} cell request float voltage time" + diff --git a/esp32-example-jkpb-rs485_1master_6slaves.yaml b/esp32-example-jkpb-rs485_1master_6slaves.yaml index 87f79d21..a159fe22 100644 --- a/esp32-example-jkpb-rs485_1master_6slaves.yaml +++ b/esp32-example-jkpb-rs485_1master_6slaves.yaml @@ -40,14 +40,14 @@ wifi: ssid: !secret wifi_ssid password: !secret wifi_password - ota: + platform: esphome api: logger: - level: INFO #VERY_VERBOSE #VERBOSE #DEBUG #INFO #DEBUG - tx_buffer_size: 1024 + level: DEBUG #VERBOSE #DEBUG #INFO #VERY_VERBOSE #VERBOSE #DEBUG #INFO #DEBUG + tx_buffer_size: 2048 # If you use Home Assistant please remove this `mqtt` section and uncomment the `api` component! # The native API has many advantages over MQTT: https://esphome.io/components/api.html#advantages-over-mqtt @@ -57,19 +57,21 @@ logger: # password: !secret mqtt_password # id: mqtt_client # log_topic: null -web_server: - local: true - port: 80 - auth: - username: !secret web_server_user - password: !secret web_server_password + +#web_server: +# local: true +# port: 80 +# auth: +# username: !secret web_server_user +# password: !secret web_server_password uart: - id: uart_0 baud_rate: 115200 - rx_buffer_size: 1000 + rx_buffer_size: 500 tx_pin: ${tx_pin_uart_0} rx_pin: ${rx_pin_uart_0} + jk_rs485_sniffer: - id: sniffer0 protocol_version: "JK02_32S" @@ -81,31 +83,31 @@ jk_rs485_bms: - id: bms0 rs485_address: 0x00 jk_rs485_sniffer_id: sniffer0 - update_interval: 5s + update_interval: 180s - id: bms1 rs485_address: 0x01 jk_rs485_sniffer_id: sniffer0 - update_interval: 5s + update_interval: 180s - id: bms2 rs485_address: 0x02 jk_rs485_sniffer_id: sniffer0 - update_interval: 5s + update_interval: 180s - id: bms3 rs485_address: 0x03 jk_rs485_sniffer_id: sniffer0 - update_interval: 5s + update_interval: 180s - id: bms4 rs485_address: 0x04 jk_rs485_sniffer_id: sniffer0 - update_interval: 5s + update_interval: 180s - id: bms5 rs485_address: 0x05 jk_rs485_sniffer_id: sniffer0 - update_interval: 5s + update_interval: 180s - id: bms6 rs485_address: 0x06 jk_rs485_sniffer_id: sniffer0 - update_interval: 5s + update_interval: 180s binary_sensor: - platform: jk_rs485_bms @@ -182,6 +184,7 @@ binary_sensor: name: "${bms0_name} alarm BATTempSensor4Absent" alarm_battempsensor5absent: name: "${bms0_name} alarm BATTempSensor5Absent" + - platform: jk_rs485_bms jk_rs485_bms_id: bms1 status_balancing: @@ -256,6 +259,7 @@ binary_sensor: name: "${bms1_name} alarm BATTempSensor4Absent" alarm_battempsensor5absent: name: "${bms1_name} alarm BATTempSensor5Absent" + - platform: jk_rs485_bms jk_rs485_bms_id: bms2 status_balancing: @@ -330,6 +334,7 @@ binary_sensor: name: "${bms2_name} alarm BATTempSensor4Absent" alarm_battempsensor5absent: name: "${bms2_name} alarm BATTempSensor5Absent" + - platform: jk_rs485_bms jk_rs485_bms_id: bms3 status_balancing: @@ -404,6 +409,7 @@ binary_sensor: name: "${bms3_name} alarm BATTempSensor4Absent" alarm_battempsensor5absent: name: "${bms3_name} alarm BATTempSensor5Absent" + - platform: jk_rs485_bms jk_rs485_bms_id: bms4 status_balancing: @@ -478,6 +484,7 @@ binary_sensor: name: "${bms4_name} alarm BATTempSensor4Absent" alarm_battempsensor5absent: name: "${bms4_name} alarm BATTempSensor5Absent" + - platform: jk_rs485_bms jk_rs485_bms_id: bms5 status_balancing: @@ -552,6 +559,7 @@ binary_sensor: name: "${bms5_name} alarm BATTempSensor4Absent" alarm_battempsensor5absent: name: "${bms5_name} alarm BATTempSensor5Absent" + - platform: jk_rs485_bms jk_rs485_bms_id: bms6 status_balancing: @@ -628,13 +636,43 @@ binary_sensor: name: "${bms6_name} alarm BATTempSensor5Absent" + sensor: + - platform: uptime + id: uptime_sec + # +--------------------------------------+ + # | Uptime sensor | + # +--------------------------------------+ + - platform: uptime + name: ${esp_name} Uptime Sensor + id: uptime_sensor + update_interval: 5s + entity_category: diagnostic + on_raw_value: + then: + - text_sensor.template.publish: + id: uptime_human + state: !lambda |- + char buf[10]; + int uptime_sec = round(id(uptime_sensor).raw_state); + int days = (int)(uptime_sec / 86400); + int hours = (int)((uptime_sec % 86400) / 3600); + int minutes = (int)((uptime_sec % 3600) / 60); + int seconds = (int)(uptime_sec % 60); + + return( + ( + (days ? sprintf(buf, "%02dd ", days), std::string(buf) : "") + + (hours ? sprintf(buf, "%02dh ", hours), std::string(buf) : "") + + (minutes ? sprintf(buf, "%02dm ", minutes), std::string(buf) : "") + + (sprintf(buf, "%02ds", seconds), std::string(buf)) + ).c_str() + ); + - platform: jk_rs485_bms jk_rs485_bms_id: bms0 balancing_direction: name: "${bms0_name} balancing direction" - cell_smart_sleep_voltage: - name: "${bms0_name} cell smart sleep voltage" cell_voltage_min: name: "${bms0_name} cell voltage min" cell_voltage_max: @@ -777,8 +815,6 @@ sensor: name: "${bms0_name} battery capacity state of charge" battery_capacity_remaining: name: "${bms0_name} battery capacity remaining" - battery_capacity_total_setting: - name: "${bms0_name} battery capacity total setting" charging_cycles: name: "${bms0_name} charging cycles" battery_capacity_total_charging_cycle: @@ -789,74 +825,10 @@ sensor: name: "${bms0_name} balancing current" errors_bitmask: name: "${bms0_name} errors bitmask" - cell_count_settings: - name: "${bms0_name} cell count settings" cell_count_real: - name: "${bms0_name} cell count real" - cell_overvoltage_protection: - name: "${bms0_name} cell overvoltage protection" - cell_overvoltage_protection_recovery: - name: "${bms0_name} cell overvoltage protection recovery" - cell_request_charge_voltage: - name: "${bms0_name} cell request charge voltage" - cell_request_charge_voltage_time: - name: "${bms0_name} cell request charge voltage time" - cell_request_float_voltage: - name: "${bms0_name} cell request float voltage" - cell_request_float_voltage_time: - name: "${bms0_name} cell request float voltage time" - balancing_trigger_voltage: - name: "${bms0_name} balancing trigger voltage" - cell_balancing_starting_voltage: - name: "${bms0_name} cell balancing starting voltage" - max_balancing_current: - name: "${bms0_name} max balancing current" - cell_soc100_voltage: - name: "${bms0_name} cell soc100 voltage" - cell_soc0_voltage: - name: "${bms0_name} cell soc0 voltage" - cell_undervoltage_protection: - name: "${bms0_name} cell undervoltage protection" - cell_undervoltage_protection_recovery: - name: "${bms0_name} cell undervoltage protection recovery" - cell_power_off_voltage: - name: "${bms0_name} cell power off voltage" + name: "${bms0_name} cell count real" smart_sleep_time: - name: "${bms0_name} smart sleep time" - max_charging_current: - name: "${bms0_name} max charging current" - max_discharging_current: - name: "${bms0_name} max discharging current" - charging_overcurrent_protection_delay: - name: "${bms0_name} charging overcurrent protection delay" - charging_overcurrent_protection_recovery_delay: - name: "${bms0_name} charging overcurrent protection recovery delay" - discharging_overcurrent_protection_delay: - name: "${bms0_name} discharging overcurrent protection delay" - discharging_overcurrent_protection_recovery_delay: - name: "${bms0_name} discharging overcurrent protection recovery delay" - short_circuit_protection_delay: - name: "${bms0_name} short circuit protection delay" - short_circuit_protection_recovery_delay: - name: "${bms0_name} short circuit protection recovery delay" - precharging_time_from_discharge: - name: "${bms0_name} precharging time from discharge" - charging_overtemperature_protection: - name: "${bms0_name} charging overtemperature protection" - charging_overtemperature_protection_recovery: - name: "${bms0_name} charging overtemperature protection recovery" - discharging_overtemperature_protection: - name: "${bms0_name} discharging overtemperature protection" - discharging_overtemperature_protection_recovery: - name: "${bms0_name} discharging overtemperature protection recovery" - charging_lowtemperature_protection: - name: "${bms0_name} charging lowtemperature protection" - charging_lowtemperature_protection_recovery: - name: "${bms0_name} charging lowtemperature protection recovery" - mos_overtemperature_protection: - name: "${bms0_name} mos overtemperature protection" - mos_overtemperature_protection_recovery: - name: "${bms0_name} mos overtemperature protection recovery" + name: "${bms0_name} smart sleep time" powertube_temperature_protection: name: "${bms0_name} powertube temperature protection" powertube_temperature_protection_recovery: @@ -870,7 +842,7 @@ sensor: uart1_protocol_number: name: "${bms0_name} uart1 protocol number" uart2_protocol_number: - name: "${bms0_name} uart2 protocol number" + name: "${bms0_name} uart2 protocol number" battery_soh_valuation: name: "${bms0_name} battery soh valuation" discharging_overcurrent_protection_release_time: @@ -886,12 +858,11 @@ sensor: cell_overvoltage_protection_release_time: name: "${bms0_name} cell overvoltage protection release time" + - platform: jk_rs485_bms jk_rs485_bms_id: bms1 balancing_direction: name: "${bms1_name} balancing direction" - cell_smart_sleep_voltage: - name: "${bms1_name} cell smart sleep voltage" cell_voltage_min: name: "${bms1_name} cell voltage min" cell_voltage_max: @@ -1034,8 +1005,6 @@ sensor: name: "${bms1_name} battery capacity state of charge" battery_capacity_remaining: name: "${bms1_name} battery capacity remaining" - battery_capacity_total_setting: - name: "${bms1_name} battery capacity total setting" charging_cycles: name: "${bms1_name} charging cycles" battery_capacity_total_charging_cycle: @@ -1046,74 +1015,10 @@ sensor: name: "${bms1_name} balancing current" errors_bitmask: name: "${bms1_name} errors bitmask" - cell_count_settings: - name: "${bms1_name} cell count settings" cell_count_real: - name: "${bms1_name} cell count real" - cell_overvoltage_protection: - name: "${bms1_name} cell overvoltage protection" - cell_overvoltage_protection_recovery: - name: "${bms1_name} cell overvoltage protection recovery" - cell_request_charge_voltage: - name: "${bms1_name} cell request charge voltage" - cell_request_charge_voltage_time: - name: "${bms1_name} cell request charge voltage time" - cell_request_float_voltage: - name: "${bms1_name} cell request float voltage" - cell_request_float_voltage_time: - name: "${bms1_name} cell request float voltage time" - balancing_trigger_voltage: - name: "${bms1_name} balancing trigger voltage" - cell_balancing_starting_voltage: - name: "${bms1_name} cell balancing starting voltage" - max_balancing_current: - name: "${bms1_name} max balancing current" - cell_soc100_voltage: - name: "${bms1_name} cell soc100 voltage" - cell_soc0_voltage: - name: "${bms1_name} cell soc0 voltage" - cell_undervoltage_protection: - name: "${bms1_name} cell undervoltage protection" - cell_undervoltage_protection_recovery: - name: "${bms1_name} cell undervoltage protection recovery" - cell_power_off_voltage: - name: "${bms1_name} cell power off voltage" + name: "${bms1_name} cell count real" smart_sleep_time: - name: "${bms1_name} smart sleep time" - max_charging_current: - name: "${bms1_name} max_charging_current" - max_discharging_current: - name: "${bms1_name} max discharging current" - charging_overcurrent_protection_delay: - name: "${bms1_name} charging overcurrent protection delay" - charging_overcurrent_protection_recovery_delay: - name: "${bms1_name} charging overcurrent protection recovery delay" - discharging_overcurrent_protection_delay: - name: "${bms1_name} discharging overcurrent protection delay" - discharging_overcurrent_protection_recovery_delay: - name: "${bms1_name} discharging overcurrent protection recovery delay" - short_circuit_protection_delay: - name: "${bms1_name} short circuit protection delay" - short_circuit_protection_recovery_delay: - name: "${bms1_name} short circuit protection recovery delay" - precharging_time_from_discharge: - name: "${bms1_name} precharging time from discharge" - charging_overtemperature_protection: - name: "${bms1_name} charging overtemperature protection" - charging_overtemperature_protection_recovery: - name: "${bms1_name} charging overtemperature protection recovery" - discharging_overtemperature_protection: - name: "${bms1_name} discharging overtemperature protection" - discharging_overtemperature_protection_recovery: - name: "${bms1_name} discharging overtemperature protection recovery" - charging_lowtemperature_protection: - name: "${bms1_name} charging lowtemperature protection" - charging_lowtemperature_protection_recovery: - name: "${bms1_name} charging lowtemperature protection recovery" - mos_overtemperature_protection: - name: "${bms1_name} mos overtemperature protection" - mos_overtemperature_protection_recovery: - name: "${bms1_name} mos overtemperature protection recovery" + name: "${bms1_name} smart sleep time" powertube_temperature_protection: name: "${bms1_name} powertube temperature protection" powertube_temperature_protection_recovery: @@ -1148,8 +1053,6 @@ sensor: jk_rs485_bms_id: bms2 balancing_direction: name: "${bms2_name} balancing direction" - cell_smart_sleep_voltage: - name: "${bms2_name} cell smart sleep voltage" cell_voltage_min: name: "${bms2_name} cell voltage min" cell_voltage_max: @@ -1292,8 +1195,6 @@ sensor: name: "${bms2_name} battery capacity state of charge" battery_capacity_remaining: name: "${bms2_name} battery capacity remaining" - battery_capacity_total_setting: - name: "${bms2_name} battery capacity total setting" charging_cycles: name: "${bms2_name} charging cycles" battery_capacity_total_charging_cycle: @@ -1304,74 +1205,10 @@ sensor: name: "${bms2_name} balancing current" errors_bitmask: name: "${bms2_name} errors bitmask" - cell_count_settings: - name: "${bms2_name} cell count settings" cell_count_real: - name: "${bms2_name} cell count real" - cell_overvoltage_protection: - name: "${bms2_name} cell overvoltage protection" - cell_overvoltage_protection_recovery: - name: "${bms2_name} cell overvoltage protection recovery" - cell_request_charge_voltage: - name: "${bms2_name} cell request charge voltage" - cell_request_charge_voltage_time: - name: "${bms2_name} cell request charge voltage time" - cell_request_float_voltage: - name: "${bms2_name} cell request float voltage" - cell_request_float_voltage_time: - name: "${bms2_name} cell request float voltage time" - balancing_trigger_voltage: - name: "${bms2_name} balancing trigger voltage" - cell_balancing_starting_voltage: - name: "${bms2_name} cell balancing starting voltage" - max_balancing_current: - name: "${bms2_name} max balancing current" - cell_soc100_voltage: - name: "${bms2_name} cell soc100 voltage" - cell_soc0_voltage: - name: "${bms2_name} cell soc0 voltage" - cell_undervoltage_protection: - name: "${bms2_name} cell undervoltage protection" - cell_undervoltage_protection_recovery: - name: "${bms2_name} cell undervoltage protection recovery" - cell_power_off_voltage: - name: "${bms2_name} cell power off voltage" + name: "${bms2_name} cell count real" smart_sleep_time: - name: "${bms2_name} smart sleep time" - max_charging_current: - name: "${bms2_name} max_charging_current" - max_discharging_current: - name: "${bms2_name} max discharging current" - charging_overcurrent_protection_delay: - name: "${bms2_name} charging overcurrent protection delay" - charging_overcurrent_protection_recovery_delay: - name: "${bms2_name} charging overcurrent protection recovery delay" - discharging_overcurrent_protection_delay: - name: "${bms2_name} discharging overcurrent protection delay" - discharging_overcurrent_protection_recovery_delay: - name: "${bms2_name} discharging overcurrent protection recovery delay" - short_circuit_protection_delay: - name: "${bms2_name} short circuit protection delay" - short_circuit_protection_recovery_delay: - name: "${bms2_name} short circuit protection recovery delay" - precharging_time_from_discharge: - name: "${bms2_name} precharging time from discharge" - charging_overtemperature_protection: - name: "${bms2_name} charging overtemperature protection" - charging_overtemperature_protection_recovery: - name: "${bms2_name} charging overtemperature protection recovery" - discharging_overtemperature_protection: - name: "${bms2_name} discharging overtemperature protection" - discharging_overtemperature_protection_recovery: - name: "${bms2_name} discharging overtemperature protection recovery" - charging_lowtemperature_protection: - name: "${bms2_name} charging lowtemperature protection" - charging_lowtemperature_protection_recovery: - name: "${bms2_name} charging lowtemperature protection recovery" - mos_overtemperature_protection: - name: "${bms2_name} mos overtemperature protection" - mos_overtemperature_protection_recovery: - name: "${bms2_name} mos overtemperature protection recovery" + name: "${bms2_name} smart sleep time" powertube_temperature_protection: name: "${bms2_name} powertube temperature protection" powertube_temperature_protection_recovery: @@ -1401,12 +1238,11 @@ sensor: cell_overvoltage_protection_release_time: name: "${bms2_name} cell overvoltage protection release time" + - platform: jk_rs485_bms jk_rs485_bms_id: bms3 balancing_direction: name: "${bms3_name} balancing direction" - cell_smart_sleep_voltage: - name: "${bms3_name} cell smart sleep voltage" cell_voltage_min: name: "${bms3_name} cell voltage min" cell_voltage_max: @@ -1549,8 +1385,6 @@ sensor: name: "${bms3_name} battery capacity state of charge" battery_capacity_remaining: name: "${bms3_name} battery capacity remaining" - battery_capacity_total_setting: - name: "${bms3_name} battery capacity total setting" charging_cycles: name: "${bms3_name} charging cycles" battery_capacity_total_charging_cycle: @@ -1561,74 +1395,10 @@ sensor: name: "${bms3_name} balancing current" errors_bitmask: name: "${bms3_name} errors bitmask" - cell_count_settings: - name: "${bms3_name} cell count settings" cell_count_real: - name: "${bms3_name} cell count real" - cell_overvoltage_protection: - name: "${bms3_name} cell overvoltage protection" - cell_overvoltage_protection_recovery: - name: "${bms3_name} cell overvoltage protection recovery" - cell_request_charge_voltage: - name: "${bms3_name} cell request charge voltage" - cell_request_charge_voltage_time: - name: "${bms3_name} cell request charge voltage time" - cell_request_float_voltage: - name: "${bms3_name} cell request float voltage" - cell_request_float_voltage_time: - name: "${bms3_name} cell request float voltage time" - balancing_trigger_voltage: - name: "${bms3_name} balancing trigger voltage" - cell_balancing_starting_voltage: - name: "${bms3_name} cell balancing starting voltage" - max_balancing_current: - name: "${bms3_name} max balancing current" - cell_soc100_voltage: - name: "${bms3_name} cell soc100 voltage" - cell_soc0_voltage: - name: "${bms3_name} cell soc0 voltage" - cell_undervoltage_protection: - name: "${bms3_name} cell undervoltage protection" - cell_undervoltage_protection_recovery: - name: "${bms3_name} cell undervoltage protection recovery" - cell_power_off_voltage: - name: "${bms3_name} cell power off voltage" + name: "${bms3_name} cell count real" smart_sleep_time: - name: "${bms3_name} smart sleep time" - max_charging_current: - name: "${bms3_name} max_charging_current" - max_discharging_current: - name: "${bms3_name} max discharging current" - charging_overcurrent_protection_delay: - name: "${bms3_name} charging overcurrent protection delay" - charging_overcurrent_protection_recovery_delay: - name: "${bms3_name} charging overcurrent protection recovery delay" - discharging_overcurrent_protection_delay: - name: "${bms3_name} discharging overcurrent protection delay" - discharging_overcurrent_protection_recovery_delay: - name: "${bms3_name} discharging overcurrent protection recovery delay" - short_circuit_protection_delay: - name: "${bms3_name} short circuit protection delay" - short_circuit_protection_recovery_delay: - name: "${bms3_name} short circuit protection recovery delay" - precharging_time_from_discharge: - name: "${bms3_name} precharging time from discharge" - charging_overtemperature_protection: - name: "${bms3_name} charging overtemperature protection" - charging_overtemperature_protection_recovery: - name: "${bms3_name} charging overtemperature protection recovery" - discharging_overtemperature_protection: - name: "${bms3_name} discharging overtemperature protection" - discharging_overtemperature_protection_recovery: - name: "${bms3_name} discharging overtemperature protection recovery" - charging_lowtemperature_protection: - name: "${bms3_name} charging lowtemperature protection" - charging_lowtemperature_protection_recovery: - name: "${bms3_name} charging lowtemperature protection recovery" - mos_overtemperature_protection: - name: "${bms3_name} mos overtemperature protection" - mos_overtemperature_protection_recovery: - name: "${bms3_name} mos overtemperature protection recovery" + name: "${bms3_name} smart sleep time" powertube_temperature_protection: name: "${bms3_name} powertube temperature protection" powertube_temperature_protection_recovery: @@ -1658,12 +1428,11 @@ sensor: cell_overvoltage_protection_release_time: name: "${bms3_name} cell overvoltage protection release time" + - platform: jk_rs485_bms jk_rs485_bms_id: bms4 balancing_direction: name: "${bms4_name} balancing direction" - cell_smart_sleep_voltage: - name: "${bms4_name} cell smart sleep voltage" cell_voltage_min: name: "${bms4_name} cell voltage min" cell_voltage_max: @@ -1806,8 +1575,6 @@ sensor: name: "${bms4_name} battery capacity state of charge" battery_capacity_remaining: name: "${bms4_name} battery capacity remaining" - battery_capacity_total_setting: - name: "${bms4_name} battery capacity total setting" charging_cycles: name: "${bms4_name} charging cycles" battery_capacity_total_charging_cycle: @@ -1818,74 +1585,10 @@ sensor: name: "${bms4_name} balancing current" errors_bitmask: name: "${bms4_name} errors bitmask" - cell_count_settings: - name: "${bms4_name} cell count settings" cell_count_real: - name: "${bms4_name} cell count real" - cell_overvoltage_protection: - name: "${bms4_name} cell overvoltage protection" - cell_overvoltage_protection_recovery: - name: "${bms4_name} cell overvoltage protection recovery" - cell_request_charge_voltage: - name: "${bms4_name} cell request charge voltage" - cell_request_charge_voltage_time: - name: "${bms4_name} cell request charge voltage time" - cell_request_float_voltage: - name: "${bms4_name} cell request float voltage" - cell_request_float_voltage_time: - name: "${bms4_name} cell request float voltage time" - balancing_trigger_voltage: - name: "${bms4_name} balancing trigger voltage" - cell_balancing_starting_voltage: - name: "${bms4_name} cell balancing starting voltage" - max_balancing_current: - name: "${bms4_name} max balancing current" - cell_soc100_voltage: - name: "${bms4_name} cell soc100 voltage" - cell_soc0_voltage: - name: "${bms4_name} cell soc0 voltage" - cell_undervoltage_protection: - name: "${bms4_name} cell undervoltage protection" - cell_undervoltage_protection_recovery: - name: "${bms4_name} cell undervoltage protection recovery" - cell_power_off_voltage: - name: "${bms4_name} cell power off voltage" + name: "${bms4_name} cell count real" smart_sleep_time: - name: "${bms4_name} smart sleep time" - max_charging_current: - name: "${bms4_name} max_charging_current" - max_discharging_current: - name: "${bms4_name} max discharging current" - charging_overcurrent_protection_delay: - name: "${bms4_name} charging overcurrent protection delay" - charging_overcurrent_protection_recovery_delay: - name: "${bms4_name} charging overcurrent protection recovery delay" - discharging_overcurrent_protection_delay: - name: "${bms4_name} discharging overcurrent protection delay" - discharging_overcurrent_protection_recovery_delay: - name: "${bms4_name} discharging overcurrent protection recovery delay" - short_circuit_protection_delay: - name: "${bms4_name} short circuit protection delay" - short_circuit_protection_recovery_delay: - name: "${bms4_name} short circuit protection recovery delay" - precharging_time_from_discharge: - name: "${bms4_name} precharging time from discharge" - charging_overtemperature_protection: - name: "${bms4_name} charging overtemperature protection" - charging_overtemperature_protection_recovery: - name: "${bms4_name} charging overtemperature protection recovery" - discharging_overtemperature_protection: - name: "${bms4_name} discharging overtemperature protection" - discharging_overtemperature_protection_recovery: - name: "${bms4_name} discharging overtemperature protection recovery" - charging_lowtemperature_protection: - name: "${bms4_name} charging lowtemperature protection" - charging_lowtemperature_protection_recovery: - name: "${bms4_name} charging lowtemperature protection recovery" - mos_overtemperature_protection: - name: "${bms4_name} mos overtemperature protection" - mos_overtemperature_protection_recovery: - name: "${bms4_name} mos overtemperature protection recovery" + name: "${bms4_name} smart sleep time" powertube_temperature_protection: name: "${bms4_name} powertube temperature protection" powertube_temperature_protection_recovery: @@ -1915,12 +1618,11 @@ sensor: cell_overvoltage_protection_release_time: name: "${bms4_name} cell overvoltage protection release time" + - platform: jk_rs485_bms jk_rs485_bms_id: bms5 balancing_direction: name: "${bms5_name} balancing direction" - cell_smart_sleep_voltage: - name: "${bms5_name} cell smart sleep voltage" cell_voltage_min: name: "${bms5_name} cell voltage min" cell_voltage_max: @@ -2063,8 +1765,6 @@ sensor: name: "${bms5_name} battery capacity state of charge" battery_capacity_remaining: name: "${bms5_name} battery capacity remaining" - battery_capacity_total_setting: - name: "${bms5_name} battery capacity total setting" charging_cycles: name: "${bms5_name} charging cycles" battery_capacity_total_charging_cycle: @@ -2075,74 +1775,10 @@ sensor: name: "${bms5_name} balancing current" errors_bitmask: name: "${bms5_name} errors bitmask" - cell_count_settings: - name: "${bms5_name} cell count settings" cell_count_real: - name: "${bms5_name} cell count real" - cell_overvoltage_protection: - name: "${bms5_name} cell overvoltage protection" - cell_overvoltage_protection_recovery: - name: "${bms5_name} cell overvoltage protection recovery" - cell_request_charge_voltage: - name: "${bms5_name} cell request charge voltage" - cell_request_charge_voltage_time: - name: "${bms5_name} cell request charge voltage time" - cell_request_float_voltage: - name: "${bms5_name} cell request float voltage" - cell_request_float_voltage_time: - name: "${bms5_name} cell request float voltage time" - balancing_trigger_voltage: - name: "${bms5_name} balancing trigger voltage" - cell_balancing_starting_voltage: - name: "${bms5_name} cell balancing starting voltage" - max_balancing_current: - name: "${bms5_name} max balancing current" - cell_soc100_voltage: - name: "${bms5_name} cell soc100 voltage" - cell_soc0_voltage: - name: "${bms5_name} cell soc0 voltage" - cell_undervoltage_protection: - name: "${bms5_name} cell undervoltage protection" - cell_undervoltage_protection_recovery: - name: "${bms5_name} cell undervoltage protection recovery" - cell_power_off_voltage: - name: "${bms5_name} cell power off voltage" + name: "${bms5_name} cell count real" smart_sleep_time: - name: "${bms5_name} smart sleep time" - max_charging_current: - name: "${bms5_name} max_charging_current" - max_discharging_current: - name: "${bms5_name} max discharging current" - charging_overcurrent_protection_delay: - name: "${bms5_name} charging overcurrent protection delay" - charging_overcurrent_protection_recovery_delay: - name: "${bms5_name} charging overcurrent protection recovery delay" - discharging_overcurrent_protection_delay: - name: "${bms5_name} discharging overcurrent protection delay" - discharging_overcurrent_protection_recovery_delay: - name: "${bms5_name} discharging overcurrent protection recovery delay" - short_circuit_protection_delay: - name: "${bms5_name} short circuit protection delay" - short_circuit_protection_recovery_delay: - name: "${bms5_name} short circuit protection recovery delay" - precharging_time_from_discharge: - name: "${bms5_name} precharging time from discharge" - charging_overtemperature_protection: - name: "${bms5_name} charging overtemperature protection" - charging_overtemperature_protection_recovery: - name: "${bms5_name} charging overtemperature protection recovery" - discharging_overtemperature_protection: - name: "${bms5_name} discharging overtemperature protection" - discharging_overtemperature_protection_recovery: - name: "${bms5_name} discharging overtemperature protection recovery" - charging_lowtemperature_protection: - name: "${bms5_name} charging lowtemperature protection" - charging_lowtemperature_protection_recovery: - name: "${bms5_name} charging lowtemperature protection recovery" - mos_overtemperature_protection: - name: "${bms5_name} mos overtemperature protection" - mos_overtemperature_protection_recovery: - name: "${bms5_name} mos overtemperature protection recovery" + name: "${bms5_name} smart sleep time" powertube_temperature_protection: name: "${bms5_name} powertube temperature protection" powertube_temperature_protection_recovery: @@ -2172,12 +1808,11 @@ sensor: cell_overvoltage_protection_release_time: name: "${bms5_name} cell overvoltage protection release time" + - platform: jk_rs485_bms jk_rs485_bms_id: bms6 balancing_direction: name: "${bms6_name} balancing direction" - cell_smart_sleep_voltage: - name: "${bms6_name} cell smart sleep voltage" cell_voltage_min: name: "${bms6_name} cell voltage min" cell_voltage_max: @@ -2320,8 +1955,6 @@ sensor: name: "${bms6_name} battery capacity state of charge" battery_capacity_remaining: name: "${bms6_name} battery capacity remaining" - battery_capacity_total_setting: - name: "${bms6_name} battery capacity total setting" charging_cycles: name: "${bms6_name} charging cycles" battery_capacity_total_charging_cycle: @@ -2332,74 +1965,10 @@ sensor: name: "${bms6_name} balancing current" errors_bitmask: name: "${bms6_name} errors bitmask" - cell_count_settings: - name: "${bms6_name} cell count settings" cell_count_real: - name: "${bms6_name} cell count real" - cell_overvoltage_protection: - name: "${bms6_name} cell overvoltage protection" - cell_overvoltage_protection_recovery: - name: "${bms6_name} cell overvoltage protection recovery" - cell_request_charge_voltage: - name: "${bms6_name} cell request charge voltage" - cell_request_charge_voltage_time: - name: "${bms6_name} cell request charge voltage time" - cell_request_float_voltage: - name: "${bms6_name} cell request float voltage" - cell_request_float_voltage_time: - name: "${bms6_name} cell request float voltage time" - balancing_trigger_voltage: - name: "${bms6_name} balancing trigger voltage" - cell_balancing_starting_voltage: - name: "${bms6_name} cell balancing starting voltage" - max_balancing_current: - name: "${bms6_name} max balancing current" - cell_soc100_voltage: - name: "${bms6_name} cell soc100 voltage" - cell_soc0_voltage: - name: "${bms6_name} cell soc0 voltage" - cell_undervoltage_protection: - name: "${bms6_name} cell undervoltage protection" - cell_undervoltage_protection_recovery: - name: "${bms6_name} cell undervoltage protection recovery" - cell_power_off_voltage: - name: "${bms6_name} cell power off voltage" + name: "${bms6_name} cell count real" smart_sleep_time: - name: "${bms6_name} smart sleep time" - max_charging_current: - name: "${bms6_name} max_charging_current" - max_discharging_current: - name: "${bms6_name} max discharging current" - charging_overcurrent_protection_delay: - name: "${bms6_name} charging overcurrent protection delay" - charging_overcurrent_protection_recovery_delay: - name: "${bms6_name} charging overcurrent protection recovery delay" - discharging_overcurrent_protection_delay: - name: "${bms6_name} discharging overcurrent protection delay" - discharging_overcurrent_protection_recovery_delay: - name: "${bms6_name} discharging overcurrent protection recovery delay" - short_circuit_protection_delay: - name: "${bms6_name} short circuit protection delay" - short_circuit_protection_recovery_delay: - name: "${bms6_name} short circuit protection recovery delay" - precharging_time_from_discharge: - name: "${bms6_name} precharging time from discharge" - charging_overtemperature_protection: - name: "${bms6_name} charging overtemperature protection" - charging_overtemperature_protection_recovery: - name: "${bms6_name} charging overtemperature protection recovery" - discharging_overtemperature_protection: - name: "${bms6_name} discharging overtemperature protection" - discharging_overtemperature_protection_recovery: - name: "${bms6_name} discharging overtemperature protection recovery" - charging_lowtemperature_protection: - name: "${bms6_name} charging lowtemperature protection" - charging_lowtemperature_protection_recovery: - name: "${bms6_name} charging lowtemperature protection recovery" - mos_overtemperature_protection: - name: "${bms6_name} mos overtemperature protection" - mos_overtemperature_protection_recovery: - name: "${bms6_name} mos overtemperature protection recovery" + name: "${bms6_name} smart sleep time" powertube_temperature_protection: name: "${bms6_name} powertube temperature protection" powertube_temperature_protection_recovery: @@ -2430,6 +1999,19 @@ sensor: name: "${bms6_name} cell overvoltage protection release time" switch: + - platform: template + name: "Broadcast changes to all BMSs" + id: broadcast_active + icon: "mdi:cast" + restore_mode: RESTORE_DEFAULT_ON + optimistic: true + turn_on_action: + - lambda: |- + id(sniffer0).set_broadcast_changes_to_all_bms(true); + turn_off_action: + - lambda: |- + id(sniffer0).set_broadcast_changes_to_all_bms(false); + - platform: jk_rs485_bms jk_rs485_bms_id: bms0 precharging: @@ -2462,6 +2044,8 @@ switch: name: "${bms0_name} port selection" special_charger: name: "${bms0_name} special charger" + + - platform: jk_rs485_bms jk_rs485_bms_id: bms1 precharging: @@ -2494,6 +2078,8 @@ switch: name: "${bms1_name} port selection" special_charger: name: "${bms1_name} special charger" + + - platform: jk_rs485_bms jk_rs485_bms_id: bms2 precharging: @@ -2526,6 +2112,7 @@ switch: name: "${bms2_name} port selection" special_charger: name: "${bms2_name} special charger" + - platform: jk_rs485_bms jk_rs485_bms_id: bms3 precharging: @@ -2558,6 +2145,7 @@ switch: name: "${bms3_name} port selection" special_charger: name: "${bms3_name} special charger" + - platform: jk_rs485_bms jk_rs485_bms_id: bms4 precharging: @@ -2590,6 +2178,7 @@ switch: name: "${bms4_name} port selection" special_charger: name: "${bms4_name} special charger" + - platform: jk_rs485_bms jk_rs485_bms_id: bms5 precharging: @@ -2622,6 +2211,7 @@ switch: name: "${bms5_name} port selection" special_charger: name: "${bms5_name} special charger" + - platform: jk_rs485_bms jk_rs485_bms_id: bms6 precharging: @@ -2653,10 +2243,18 @@ switch: port_selection: name: "${bms6_name} port selection" special_charger: - name: "${bms6_name} special charger" - + name: "${bms6_name} special charger" text_sensor: + # +--------------------------------------+ + # | Uptime Human Readable | + # +--------------------------------------+ + - platform: template + name: ${esp_name} Uptime Human Readable + id: uptime_human + icon: mdi:clock-start + entity_category: diagnostic + - platform: jk_rs485_bms jk_rs485_bms_id: bms0 errors: @@ -2665,7 +2263,6 @@ text_sensor: name: "${bms0_name} operation status" battery_type: name: "${bms0_name} battery type" - total_runtime_formatted: name: "${bms0_name} total runtime formatted" info_vendorid: @@ -2682,10 +2279,11 @@ text_sensor: name: "${bms0_name} network nodes available" info_device_serial_number: name: "${bms0_name} info device serial number" - + info_device_setup_passcode: + name: "${bms0_name} info device setup passcode" # ... - platform: jk_rs485_bms - jk_rs485_bms_id: bms1 + jk_rs485_bms_id: bms1 errors: name: "${bms1_name} errors" operation_status: @@ -2707,9 +2305,12 @@ text_sensor: network_nodes_available: name: "${bms1_name} network nodes available" info_device_serial_number: - name: "${bms1_name} info device serial number" + name: "${bms1_name} info device serial number" + info_device_setup_passcode: + name: "${bms1_name} info device setup passcode" + - platform: jk_rs485_bms - jk_rs485_bms_id: bms2 + jk_rs485_bms_id: bms2 errors: name: "${bms2_name} errors" operation_status: @@ -2731,9 +2332,12 @@ text_sensor: network_nodes_available: name: "${bms2_name} network nodes available" info_device_serial_number: - name: "${bms2_name} info device serial number" + name: "${bms2_name} info device serial number" + info_device_setup_passcode: + name: "${bms2_name} info device setup passcode" + - platform: jk_rs485_bms - jk_rs485_bms_id: bms3 + jk_rs485_bms_id: bms3 errors: name: "${bms3_name} errors" operation_status: @@ -2755,9 +2359,12 @@ text_sensor: network_nodes_available: name: "${bms3_name} network nodes available" info_device_serial_number: - name: "${bms3_name} info device serial number" + name: "${bms3_name} info device serial number" + info_device_setup_passcode: + name: "${bms3_name} info device setup passcode" + - platform: jk_rs485_bms - jk_rs485_bms_id: bms4 + jk_rs485_bms_id: bms4 errors: name: "${bms4_name} errors" operation_status: @@ -2779,9 +2386,12 @@ text_sensor: network_nodes_available: name: "${bms4_name} network nodes available" info_device_serial_number: - name: "${bms4_name} info device serial number" + name: "${bms4_name} info device serial number" + info_device_setup_passcode: + name: "${bms4_name} info device setup passcode" + - platform: jk_rs485_bms - jk_rs485_bms_id: bms5 + jk_rs485_bms_id: bms5 errors: name: "${bms5_name} errors" operation_status: @@ -2803,9 +2413,12 @@ text_sensor: network_nodes_available: name: "${bms5_name} network nodes available" info_device_serial_number: - name: "${bms5_name} info device serial number" + name: "${bms5_name} info device serial number" + info_device_setup_passcode: + name: "${bms5_name} info device setup passcode" + - platform: jk_rs485_bms - jk_rs485_bms_id: bms6 + jk_rs485_bms_id: bms6 errors: name: "${bms6_name} errors" operation_status: @@ -2827,5 +2440,510 @@ text_sensor: network_nodes_available: name: "${bms6_name} network nodes available" info_device_serial_number: - name: "${bms6_name} info device serial number" - \ No newline at end of file + name: "${bms6_name} info device serial number" + info_device_setup_passcode: + name: "${bms6_name} info device setup passcode" + +number: + - platform: jk_rs485_bms + jk_rs485_bms_id: bms0 + cell_smart_sleep_voltage: + name: "${bms0_name} cell smart sleep voltage" + cell_undervoltage_protection: + name: "${bms0_name} cell undervoltage protection" + cell_undervoltage_protection_recovery: + name: "${bms0_name} cell undervoltage protection recovery" + cell_overvoltage_protection: + name: "${bms0_name} cell overvoltage protection" + cell_overvoltage_protection_recovery: + name: "${bms0_name} cell overvoltage protection recovery" + cell_balancing_trigger_voltage: + name: "${bms0_name} cell balancing trigger voltage" + cell_soc100_voltage: + name: "${bms0_name} cell soc100 voltage" + cell_soc0_voltage: + name: "${bms0_name} cell soc0 voltage" + cell_request_charge_voltage: + name: "${bms0_name} cell request charge voltage" + cell_request_float_voltage: + name: "${bms0_name} cell request float voltage" + cell_power_off_voltage: + name: "${bms0_name} cell power off voltage" + cell_balancing_starting_voltage: + name: "${bms0_name} cell balancing starting voltage" + max_charging_current: + name: "${bms0_name} max charging current" + charging_overcurrent_protection_delay: + name: "${bms0_name} charging overcurrent protection delay" + charging_overcurrent_protection_recovery_delay: + name: "${bms0_name} charging overcurrent protection recovery delay" + max_discharging_current: + name: "${bms0_name} max discharging current" + discharging_overcurrent_protection_delay: + name: "${bms0_name} discharging overcurrent protection delay" + discharging_overcurrent_protection_recovery_delay: + name: "${bms0_name} discharging overcurrent protection recovery delay" + short_circuit_protection_delay: + name: "${bms0_name} short circuit protection delay" + short_circuit_protection_recovery_delay: + name: "${bms0_name} short circuit protection recovery delay" + max_balancing_current: + name: "${bms0_name} max balancing current" + charging_overtemperature_protection: + name: "${bms0_name} charging overtemperature protection" + charging_overtemperature_protection_recovery: + name: "${bms0_name} charging overtemperature protection recovery" + discharging_overtemperature_protection: + name: "${bms0_name} discharging overtemperature protection" + discharging_overtemperature_protection_recovery: + name: "${bms0_name} discharging overtemperature protection recovery" + charging_lowtemperature_protection: + name: "${bms0_name} charging lowtemperature protection" + charging_lowtemperature_protection_recovery: + name: "${bms0_name} charging lowtemperature protection recovery" + mos_overtemperature_protection: + name: "${bms0_name} mos overtemperature protection" + mos_overtemperature_protection_recovery: + name: "${bms0_name} mos overtemperature protection recovery" + cell_count_settings: + name: "${bms0_name} cell count settings" + battery_capacity_total_settings: + name: "${bms0_name} battery capacity total settings" + precharging_time_from_discharge: + name: "${bms0_name} precharging time from discharge" + cell_request_charge_voltage_time: + name: "${bms0_name} cell request charge voltage time" + cell_request_float_voltage_time: + name: "${bms0_name} cell request float voltage time" + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms1 + cell_smart_sleep_voltage: + name: "${bms1_name} cell smart sleep voltage" + cell_undervoltage_protection: + name: "${bms1_name} cell undervoltage protection" + cell_undervoltage_protection_recovery: + name: "${bms1_name} cell undervoltage protection recovery" + cell_overvoltage_protection: + name: "${bms1_name} cell overvoltage protection" + cell_overvoltage_protection_recovery: + name: "${bms1_name} cell overvoltage protection recovery" + cell_balancing_trigger_voltage: + name: "${bms1_name} cell balancing trigger voltage" + cell_soc100_voltage: + name: "${bms1_name} cell soc100 voltage" + cell_soc0_voltage: + name: "${bms1_name} cell soc0 voltage" + cell_request_charge_voltage: + name: "${bms1_name} cell request charge voltage" + cell_request_float_voltage: + name: "${bms1_name} cell request float voltage" + cell_power_off_voltage: + name: "${bms1_name} cell power off voltage" + cell_balancing_starting_voltage: + name: "${bms1_name} cell balancing starting voltage" + max_charging_current: + name: "${bms1_name} max charging current" + charging_overcurrent_protection_delay: + name: "${bms1_name} charging overcurrent protection delay" + charging_overcurrent_protection_recovery_delay: + name: "${bms1_name} charging overcurrent protection recovery delay" + max_discharging_current: + name: "${bms1_name} max discharging current" + discharging_overcurrent_protection_delay: + name: "${bms1_name} discharging overcurrent protection delay" + discharging_overcurrent_protection_recovery_delay: + name: "${bms1_name} discharging overcurrent protection recovery delay" + short_circuit_protection_delay: + name: "${bms1_name} short circuit protection delay" + short_circuit_protection_recovery_delay: + name: "${bms1_name} short circuit protection recovery delay" + max_balancing_current: + name: "${bms1_name} max balancing current" + charging_overtemperature_protection: + name: "${bms1_name} charging overtemperature protection" + charging_overtemperature_protection_recovery: + name: "${bms1_name} charging overtemperature protection recovery" + discharging_overtemperature_protection: + name: "${bms1_name} discharging overtemperature protection" + discharging_overtemperature_protection_recovery: + name: "${bms1_name} discharging overtemperature protection recovery" + charging_lowtemperature_protection: + name: "${bms1_name} charging lowtemperature protection" + charging_lowtemperature_protection_recovery: + name: "${bms1_name} charging lowtemperature protection recovery" + mos_overtemperature_protection: + name: "${bms1_name} mos overtemperature protection" + mos_overtemperature_protection_recovery: + name: "${bms1_name} mos overtemperature protection recovery" + cell_count_settings: + name: "${bms1_name} cell count settings" + battery_capacity_total_settings: + name: "${bms1_name} battery capacity total settings" + precharging_time_from_discharge: + name: "${bms1_name} precharging time from discharge" + cell_request_charge_voltage_time: + name: "${bms1_name} cell request charge voltage time" + cell_request_float_voltage_time: + name: "${bms1_name} cell request float voltage time" + + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms2 + cell_smart_sleep_voltage: + name: "${bms2_name} cell smart sleep voltage" + cell_undervoltage_protection: + name: "${bms2_name} cell undervoltage protection" + cell_undervoltage_protection_recovery: + name: "${bms2_name} cell undervoltage protection recovery" + cell_overvoltage_protection: + name: "${bms2_name} cell overvoltage protection" + cell_overvoltage_protection_recovery: + name: "${bms2_name} cell overvoltage protection recovery" + cell_balancing_trigger_voltage: + name: "${bms2_name} cell balancing trigger voltage" + cell_soc100_voltage: + name: "${bms2_name} cell soc100 voltage" + cell_soc0_voltage: + name: "${bms2_name} cell soc0 voltage" + cell_request_charge_voltage: + name: "${bms2_name} cell request charge voltage" + cell_request_float_voltage: + name: "${bms2_name} cell request float voltage" + cell_power_off_voltage: + name: "${bms2_name} cell power off voltage" + cell_balancing_starting_voltage: + name: "${bms2_name} cell balancing starting voltage" + max_charging_current: + name: "${bms2_name} max charging current" + charging_overcurrent_protection_delay: + name: "${bms2_name} charging overcurrent protection delay" + charging_overcurrent_protection_recovery_delay: + name: "${bms2_name} charging overcurrent protection recovery delay" + max_discharging_current: + name: "${bms2_name} max discharging current" + discharging_overcurrent_protection_delay: + name: "${bms2_name} discharging overcurrent protection delay" + discharging_overcurrent_protection_recovery_delay: + name: "${bms2_name} discharging overcurrent protection recovery delay" + short_circuit_protection_delay: + name: "${bms2_name} short circuit protection delay" + short_circuit_protection_recovery_delay: + name: "${bms2_name} short circuit protection recovery delay" + max_balancing_current: + name: "${bms2_name} max balancing current" + charging_overtemperature_protection: + name: "${bms2_name} charging overtemperature protection" + charging_overtemperature_protection_recovery: + name: "${bms2_name} charging overtemperature protection recovery" + discharging_overtemperature_protection: + name: "${bms2_name} discharging overtemperature protection" + discharging_overtemperature_protection_recovery: + name: "${bms2_name} discharging overtemperature protection recovery" + charging_lowtemperature_protection: + name: "${bms2_name} charging lowtemperature protection" + charging_lowtemperature_protection_recovery: + name: "${bms2_name} charging lowtemperature protection recovery" + mos_overtemperature_protection: + name: "${bms2_name} mos overtemperature protection" + mos_overtemperature_protection_recovery: + name: "${bms2_name} mos overtemperature protection recovery" + cell_count_settings: + name: "${bms2_name} cell count settings" + battery_capacity_total_settings: + name: "${bms2_name} battery capacity total settings" + precharging_time_from_discharge: + name: "${bms2_name} precharging time from discharge" + cell_request_charge_voltage_time: + name: "${bms2_name} cell request charge voltage time" + cell_request_float_voltage_time: + name: "${bms2_name} cell request float voltage time" + + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms3 + cell_smart_sleep_voltage: + name: "${bms3_name} cell smart sleep voltage" + cell_undervoltage_protection: + name: "${bms3_name} cell undervoltage protection" + cell_undervoltage_protection_recovery: + name: "${bms3_name} cell undervoltage protection recovery" + cell_overvoltage_protection: + name: "${bms3_name} cell overvoltage protection" + cell_overvoltage_protection_recovery: + name: "${bms3_name} cell overvoltage protection recovery" + cell_balancing_trigger_voltage: + name: "${bms3_name} cell balancing trigger voltage" + cell_soc100_voltage: + name: "${bms3_name} cell soc100 voltage" + cell_soc0_voltage: + name: "${bms3_name} cell soc0 voltage" + cell_request_charge_voltage: + name: "${bms3_name} cell request charge voltage" + cell_request_float_voltage: + name: "${bms3_name} cell request float voltage" + cell_power_off_voltage: + name: "${bms3_name} cell power off voltage" + cell_balancing_starting_voltage: + name: "${bms3_name} cell balancing starting voltage" + max_charging_current: + name: "${bms3_name} max charging current" + charging_overcurrent_protection_delay: + name: "${bms3_name} charging overcurrent protection delay" + charging_overcurrent_protection_recovery_delay: + name: "${bms3_name} charging overcurrent protection recovery delay" + max_discharging_current: + name: "${bms3_name} max discharging current" + discharging_overcurrent_protection_delay: + name: "${bms3_name} discharging overcurrent protection delay" + discharging_overcurrent_protection_recovery_delay: + name: "${bms3_name} discharging overcurrent protection recovery delay" + short_circuit_protection_delay: + name: "${bms3_name} short circuit protection delay" + short_circuit_protection_recovery_delay: + name: "${bms3_name} short circuit protection recovery delay" + max_balancing_current: + name: "${bms3_name} max balancing current" + charging_overtemperature_protection: + name: "${bms3_name} charging overtemperature protection" + charging_overtemperature_protection_recovery: + name: "${bms3_name} charging overtemperature protection recovery" + discharging_overtemperature_protection: + name: "${bms3_name} discharging overtemperature protection" + discharging_overtemperature_protection_recovery: + name: "${bms3_name} discharging overtemperature protection recovery" + charging_lowtemperature_protection: + name: "${bms3_name} charging lowtemperature protection" + charging_lowtemperature_protection_recovery: + name: "${bms3_name} charging lowtemperature protection recovery" + mos_overtemperature_protection: + name: "${bms3_name} mos overtemperature protection" + mos_overtemperature_protection_recovery: + name: "${bms3_name} mos overtemperature protection recovery" + cell_count_settings: + name: "${bms3_name} cell count settings" + battery_capacity_total_settings: + name: "${bms3_name} battery capacity total settings" + precharging_time_from_discharge: + name: "${bms3_name} precharging time from discharge" + cell_request_charge_voltage_time: + name: "${bms3_name} cell request charge voltage time" + cell_request_float_voltage_time: + name: "${bms3_name} cell request float voltage time" + + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms4 + cell_smart_sleep_voltage: + name: "${bms4_name} cell smart sleep voltage" + cell_undervoltage_protection: + name: "${bms4_name} cell undervoltage protection" + cell_undervoltage_protection_recovery: + name: "${bms4_name} cell undervoltage protection recovery" + cell_overvoltage_protection: + name: "${bms4_name} cell overvoltage protection" + cell_overvoltage_protection_recovery: + name: "${bms4_name} cell overvoltage protection recovery" + cell_balancing_trigger_voltage: + name: "${bms4_name} cell balancing trigger voltage" + cell_soc100_voltage: + name: "${bms4_name} cell soc100 voltage" + cell_soc0_voltage: + name: "${bms4_name} cell soc0 voltage" + cell_request_charge_voltage: + name: "${bms4_name} cell request charge voltage" + cell_request_float_voltage: + name: "${bms4_name} cell request float voltage" + cell_power_off_voltage: + name: "${bms4_name} cell power off voltage" + cell_balancing_starting_voltage: + name: "${bms4_name} cell balancing starting voltage" + max_charging_current: + name: "${bms4_name} max charging current" + charging_overcurrent_protection_delay: + name: "${bms4_name} charging overcurrent protection delay" + charging_overcurrent_protection_recovery_delay: + name: "${bms4_name} charging overcurrent protection recovery delay" + max_discharging_current: + name: "${bms4_name} max discharging current" + discharging_overcurrent_protection_delay: + name: "${bms4_name} discharging overcurrent protection delay" + discharging_overcurrent_protection_recovery_delay: + name: "${bms4_name} discharging overcurrent protection recovery delay" + short_circuit_protection_delay: + name: "${bms4_name} short circuit protection delay" + short_circuit_protection_recovery_delay: + name: "${bms4_name} short circuit protection recovery delay" + max_balancing_current: + name: "${bms4_name} max balancing current" + charging_overtemperature_protection: + name: "${bms4_name} charging overtemperature protection" + charging_overtemperature_protection_recovery: + name: "${bms4_name} charging overtemperature protection recovery" + discharging_overtemperature_protection: + name: "${bms4_name} discharging overtemperature protection" + discharging_overtemperature_protection_recovery: + name: "${bms4_name} discharging overtemperature protection recovery" + charging_lowtemperature_protection: + name: "${bms4_name} charging lowtemperature protection" + charging_lowtemperature_protection_recovery: + name: "${bms4_name} charging lowtemperature protection recovery" + mos_overtemperature_protection: + name: "${bms4_name} mos overtemperature protection" + mos_overtemperature_protection_recovery: + name: "${bms4_name} mos overtemperature protection recovery" + cell_count_settings: + name: "${bms4_name} cell count settings" + battery_capacity_total_settings: + name: "${bms4_name} battery capacity total settings" + precharging_time_from_discharge: + name: "${bms4_name} precharging time from discharge" + cell_request_charge_voltage_time: + name: "${bms4_name} cell request charge voltage time" + cell_request_float_voltage_time: + name: "${bms4_name} cell request float voltage time" + + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms5 + cell_smart_sleep_voltage: + name: "${bms5_name} cell smart sleep voltage" + cell_undervoltage_protection: + name: "${bms5_name} cell undervoltage protection" + cell_undervoltage_protection_recovery: + name: "${bms5_name} cell undervoltage protection recovery" + cell_overvoltage_protection: + name: "${bms5_name} cell overvoltage protection" + cell_overvoltage_protection_recovery: + name: "${bms5_name} cell overvoltage protection recovery" + cell_balancing_trigger_voltage: + name: "${bms5_name} cell balancing trigger voltage" + cell_soc100_voltage: + name: "${bms5_name} cell soc100 voltage" + cell_soc0_voltage: + name: "${bms5_name} cell soc0 voltage" + cell_request_charge_voltage: + name: "${bms5_name} cell request charge voltage" + cell_request_float_voltage: + name: "${bms5_name} cell request float voltage" + cell_power_off_voltage: + name: "${bms5_name} cell power off voltage" + cell_balancing_starting_voltage: + name: "${bms5_name} cell balancing starting voltage" + max_charging_current: + name: "${bms5_name} max charging current" + charging_overcurrent_protection_delay: + name: "${bms5_name} charging overcurrent protection delay" + charging_overcurrent_protection_recovery_delay: + name: "${bms5_name} charging overcurrent protection recovery delay" + max_discharging_current: + name: "${bms5_name} max discharging current" + discharging_overcurrent_protection_delay: + name: "${bms5_name} discharging overcurrent protection delay" + discharging_overcurrent_protection_recovery_delay: + name: "${bms5_name} discharging overcurrent protection recovery delay" + short_circuit_protection_delay: + name: "${bms5_name} short circuit protection delay" + short_circuit_protection_recovery_delay: + name: "${bms5_name} short circuit protection recovery delay" + max_balancing_current: + name: "${bms5_name} max balancing current" + charging_overtemperature_protection: + name: "${bms5_name} charging overtemperature protection" + charging_overtemperature_protection_recovery: + name: "${bms5_name} charging overtemperature protection recovery" + discharging_overtemperature_protection: + name: "${bms5_name} discharging overtemperature protection" + discharging_overtemperature_protection_recovery: + name: "${bms5_name} discharging overtemperature protection recovery" + charging_lowtemperature_protection: + name: "${bms5_name} charging lowtemperature protection" + charging_lowtemperature_protection_recovery: + name: "${bms5_name} charging lowtemperature protection recovery" + mos_overtemperature_protection: + name: "${bms5_name} mos overtemperature protection" + mos_overtemperature_protection_recovery: + name: "${bms5_name} mos overtemperature protection recovery" + cell_count_settings: + name: "${bms5_name} cell count settings" + battery_capacity_total_settings: + name: "${bms5_name} battery capacity total settings" + precharging_time_from_discharge: + name: "${bms5_name} precharging time from discharge" + cell_request_charge_voltage_time: + name: "${bms5_name} cell request charge voltage time" + cell_request_float_voltage_time: + name: "${bms5_name} cell request float voltage time" + + + - platform: jk_rs485_bms + jk_rs485_bms_id: bms6 + cell_smart_sleep_voltage: + name: "${bms6_name} cell smart sleep voltage" + cell_undervoltage_protection: + name: "${bms6_name} cell undervoltage protection" + cell_undervoltage_protection_recovery: + name: "${bms6_name} cell undervoltage protection recovery" + cell_overvoltage_protection: + name: "${bms6_name} cell overvoltage protection" + cell_overvoltage_protection_recovery: + name: "${bms6_name} cell overvoltage protection recovery" + cell_balancing_trigger_voltage: + name: "${bms6_name} cell balancing trigger voltage" + cell_soc100_voltage: + name: "${bms6_name} cell soc100 voltage" + cell_soc0_voltage: + name: "${bms6_name} cell soc0 voltage" + cell_request_charge_voltage: + name: "${bms6_name} cell request charge voltage" + cell_request_float_voltage: + name: "${bms6_name} cell request float voltage" + cell_power_off_voltage: + name: "${bms6_name} cell power off voltage" + cell_balancing_starting_voltage: + name: "${bms6_name} cell balancing starting voltage" + max_charging_current: + name: "${bms6_name} max charging current" + charging_overcurrent_protection_delay: + name: "${bms6_name} charging overcurrent protection delay" + charging_overcurrent_protection_recovery_delay: + name: "${bms6_name} charging overcurrent protection recovery delay" + max_discharging_current: + name: "${bms6_name} max discharging current" + discharging_overcurrent_protection_delay: + name: "${bms6_name} discharging overcurrent protection delay" + discharging_overcurrent_protection_recovery_delay: + name: "${bms6_name} discharging overcurrent protection recovery delay" + short_circuit_protection_delay: + name: "${bms6_name} short circuit protection delay" + short_circuit_protection_recovery_delay: + name: "${bms6_name} short circuit protection recovery delay" + max_balancing_current: + name: "${bms6_name} max balancing current" + charging_overtemperature_protection: + name: "${bms6_name} charging overtemperature protection" + charging_overtemperature_protection_recovery: + name: "${bms6_name} charging overtemperature protection recovery" + discharging_overtemperature_protection: + name: "${bms6_name} discharging overtemperature protection" + discharging_overtemperature_protection_recovery: + name: "${bms6_name} discharging overtemperature protection recovery" + charging_lowtemperature_protection: + name: "${bms6_name} charging lowtemperature protection" + charging_lowtemperature_protection_recovery: + name: "${bms6_name} charging lowtemperature protection recovery" + mos_overtemperature_protection: + name: "${bms6_name} mos overtemperature protection" + mos_overtemperature_protection_recovery: + name: "${bms6_name} mos overtemperature protection recovery" + cell_count_settings: + name: "${bms6_name} cell count settings" + battery_capacity_total_settings: + name: "${bms6_name} battery capacity total settings" + precharging_time_from_discharge: + name: "${bms6_name} precharging time from discharge" + cell_request_charge_voltage_time: + name: "${bms6_name} cell request charge voltage time" + cell_request_float_voltage_time: + name: "${bms6_name} cell request float voltage time" +