From bd75edeb8d09553992c6c860b59351566eacc35c Mon Sep 17 00:00:00 2001 From: Floke Date: Wed, 23 Jul 2025 10:19:02 +0000 Subject: [PATCH] =?UTF-8?q?HA=5Fjbd=5Fbms.yaml=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HA_jbd_bms.yaml | 260 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 260 insertions(+) create mode 100644 HA_jbd_bms.yaml diff --git a/HA_jbd_bms.yaml b/HA_jbd_bms.yaml new file mode 100644 index 00000000..c0360d06 --- /dev/null +++ b/HA_jbd_bms.yaml @@ -0,0 +1,260 @@ +substitutions: + name: esphome-web-39b3f0 + device_description: "Monitor and control a Xiaoxiang Battery Management System (JBD-BMS) via BLE" + external_components_source: github://syssi/esphome-jbd-bms@main + mac_address: A4:C1:37:00:86:5A + +esphome: + name: ${name} + comment: ${device_description} + min_version: 2024.6.0 + project: + name: "syssi.esphome-jbd-bms" + version: 2.1.0 + +esp32: + board: esp32dev + framework: + type: esp-idf + +external_components: + - source: ${external_components_source} + refresh: 0s + +wifi: + ssid: !secret wifi_ssid + password: !secret wifi_password + +ota: + platform: esphome + +logger: + level: DEBUG + +# 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 + +# api: + +esp32_ble_tracker: + scan_parameters: + active: false + +ble_client: + - id: client0 + mac_address: ${mac_address} + +jbd_bms_ble: + - id: bms0 + ble_client_id: client0 + # Some Liontron BMS models require an update interval of less than 8s + update_interval: 2s + +button: + - platform: jbd_bms_ble + jbd_bms_ble_id: bms0 + retrieve_hardware_version: + name: "${name} retrieve hardware version" + force_soc_reset: + name: "${name} force soc reset" + +binary_sensor: + - platform: jbd_bms_ble + jbd_bms_ble_id: bms0 + balancing: + name: "${name} balancing" + charging: + name: "${name} charging" + discharging: + name: "${name} discharging" + online_status: + name: "${name} online status" + +sensor: + - platform: jbd_bms_ble + jbd_bms_ble_id: bms0 + battery_strings: + name: "${name} battery strings" + current: + name: "${name} current" + power: + name: "${name} power" + charging_power: + name: "${name} charging power" + discharging_power: + name: "${name} discharging power" + state_of_charge: + name: "${name} state of charge" + nominal_capacity: + name: "${name} nominal capacity" + charging_cycles: + name: "${name} charging cycles" + capacity_remaining: + name: "${name} capacity remaining" + battery_cycle_capacity: + name: "${name} battery cycle capacity" + total_voltage: + name: "${name} total voltage" + average_cell_voltage: + name: "${name} average cell voltage" + delta_cell_voltage: + name: "${name} delta cell voltage" + min_cell_voltage: + name: "${name} min cell voltage" + max_cell_voltage: + name: "${name} max cell voltage" + min_voltage_cell: + name: "${name} min voltage cell" + max_voltage_cell: + name: "${name} max voltage cell" + temperature_1: + name: "${name} temperature 1" + temperature_2: + name: "${name} temperature 2" + temperature_3: + name: "${name} temperature 3" + temperature_4: + name: "${name} temperature 4" + temperature_5: + name: "${name} temperature 5" + temperature_6: + name: "${name} temperature 6" + cell_voltage_1: + name: "${name} cell voltage 1" + cell_voltage_2: + name: "${name} cell voltage 2" + cell_voltage_3: + name: "${name} cell voltage 3" + cell_voltage_4: + name: "${name} cell voltage 4" + cell_voltage_5: + name: "${name} cell voltage 5" + cell_voltage_6: + name: "${name} cell voltage 6" + cell_voltage_7: + name: "${name} cell voltage 7" + cell_voltage_8: + name: "${name} cell voltage 8" + cell_voltage_9: + name: "${name} cell voltage 9" + cell_voltage_10: + name: "${name} cell voltage 10" + cell_voltage_11: + name: "${name} cell voltage 11" + cell_voltage_12: + name: "${name} cell voltage 12" + cell_voltage_13: + name: "${name} cell voltage 13" + cell_voltage_14: + name: "${name} cell voltage 14" + cell_voltage_15: + name: "${name} cell voltage 15" + cell_voltage_16: + name: "${name} cell voltage 16" + cell_voltage_17: + name: "${name} cell voltage 17" + cell_voltage_18: + name: "${name} cell voltage 18" + cell_voltage_19: + name: "${name} cell voltage 19" + cell_voltage_20: + name: "${name} cell voltage 20" + cell_voltage_21: + name: "${name} cell voltage 21" + cell_voltage_22: + name: "${name} cell voltage 22" + cell_voltage_23: + name: "${name} cell voltage 23" + cell_voltage_24: + name: "${name} cell voltage 24" + cell_voltage_25: + name: "${name} cell voltage 25" + cell_voltage_26: + name: "${name} cell voltage 26" + cell_voltage_27: + name: "${name} cell voltage 27" + cell_voltage_28: + name: "${name} cell voltage 28" + cell_voltage_29: + name: "${name} cell voltage 29" + cell_voltage_30: + name: "${name} cell voltage 30" + cell_voltage_31: + name: "${name} cell voltage 31" + cell_voltage_32: + name: "${name} cell voltage 32" + operation_status_bitmask: + name: "${name} operation status bitmask" + errors_bitmask: + name: "${name} errors bitmask" + balancer_status_bitmask: + name: "${name} balancer status bitmask" + software_version: + name: "${name} software version" + short_circuit_error_count: + name: "${name} short circuit error count" + charge_overcurrent_error_count: + name: "${name} charge overcurrent error count" + discharge_overcurrent_error_count: + name: "${name} discharge overcurrent error count" + cell_overvoltage_error_count: + name: "${name} cell overvoltage error count" + cell_undervoltage_error_count: + name: "${name} cell undervoltage error count" + charge_overtemperature_error_count: + name: "${name} charge overtemperature error count" + charge_undertemperature_error_count: + name: "${name} charge undertemperature error count" + discharge_overtemperature_error_count: + name: "${name} discharge overtemperature error count" + discharge_undertemperature_error_count: + name: "${name} discharge undertemperature error count" + battery_overvoltage_error_count: + name: "${name} battery overvoltage error count" + battery_undervoltage_error_count: + name: "${name} battery undervoltage error count" + +text_sensor: + - platform: jbd_bms_ble + jbd_bms_ble_id: bms0 + errors: + name: "${name} errors" + operation_status: + name: "${name} operation status" + device_model: + name: "${name} device model" + +select: + - platform: jbd_bms_ble + jbd_bms_ble_id: bms0 + read_eeprom_register: + name: "${name} read eeprom register" + id: read_eeprom_register0 + optionsmap: + 0xAA: "Error Counts" + +switch: + - platform: ble_client + ble_client_id: client0 + name: "${name} enable bluetooth connection" + + - platform: jbd_bms_ble + jbd_bms_ble_id: bms0 + charging: + name: "${name} charging" + discharging: + name: "${name} discharging" + +# Uncomment this section if you want to update the error count sensors periodically +# +# interval: +# - interval: 30min +# then: +# - select.set: +# id: read_eeprom_register0 +# option: "Error Counts" \ No newline at end of file