Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- substitutions:
- name: "jk-bms"
- device_description: "Monitor a JK-BMS via UART-TTL"
- external_components_source: github://syssi/esphome-jk-bms@main
- tx_pin: GPIO1
- rx_pin: GPIO3
- esphome:
- name: ${name}
- comment: ${device_description}
- project:
- name: "syssi.esphome-jk-bms"
- version: 2.0.0
- esp8266:
- board: d1_mini
- # Enable Home Assistant API
- api:
- encryption:
- key: "xxx"
- ota:
- password: "xxx"
- wifi:
- reboot_timeout: 5min
- power_save_mode: NONE
- fast_connect: True
- networks:
- - ssid: !secret wifi_ssid
- password: !secret wifi_password
- # - ssid: !secret wifi2_ssid
- # password: !secret wifi2_password
- # Enable fallback hotspot (captive portal) in case wifi connection fails
- # ap:
- # ssid: "Jk-Bms Fallback Hotspot"
- # password: "xxx"
- external_components:
- - source: ${external_components_source}
- refresh: 0s
- logger:
- baud_rate: 0
- level: DEBUG
- uart:
- - id: uart_0
- baud_rate: 115200
- rx_buffer_size: 384
- tx_pin: ${tx_pin}
- rx_pin: ${rx_pin}
- jk_modbus:
- - id: modbus0
- uart_id: uart_0
- rx_timeout: 50ms
- jk_bms:
- - id: bms0
- jk_modbus_id: modbus0
- update_interval: 5s
- binary_sensor:
- - platform: jk_bms
- balancing:
- name: "${name} balancing"
- balancing_switch:
- name: "${name} balancing switch"
- charging:
- name: "${name} charging"
- discharging:
- name: "${name} discharging"
- dedicated_charger_switch:
- name: "${name} dedicated charger switch"
- online_status:
- name: "${name} online status"
- sensor:
- - platform: jk_bms
- 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"
- delta_cell_voltage:
- id: delta_cell_v
- name: "${name} delta cell voltage"
- average_cell_voltage:
- name: "${name} average cell voltage"
- cell_voltage_1:
- id: cell_1_v
- name: "${name} cell voltage 1"
- cell_voltage_2:
- id: cell_2_v
- name: "${name} cell voltage 2"
- cell_voltage_3:
- id: cell_3_v
- name: "${name} cell voltage 3"
- cell_voltage_4:
- id: cell_4_v
- name: "${name} cell voltage 4"
- cell_voltage_5:
- id: cell_5_v
- name: "${name} cell voltage 5"
- cell_voltage_6:
- id: cell_6_v
- name: "${name} cell voltage 6"
- cell_voltage_7:
- id: cell_7_v
- name: "${name} cell voltage 7"
- cell_voltage_8:
- id: cell_8_v
- name: "${name} cell voltage 8"
- cell_voltage_9:
- name: "${name} cell voltage 9"
- cell_voltage_10:
- name: "${name} cell voltage 10"
- power_tube_temperature:
- name: "${name} power tube temperature"
- temperature_sensor_1:
- name: "${name} temperature sensor 1"
- temperature_sensor_2:
- name: "${name} temperature sensor 2"
- total_voltage:
- name: "${name} total voltage"
- current:
- name: "${name} current"
- power:
- id: battery_power
- name: "${name} power"
- capacity_remaining:
- id: remain_battery
- name: "${name} capacity remaining"
- actual_battery_capacity:
- name: "${name} actual battery capacity"
- total_battery_capacity_setting:
- name: "${name} total battery capacity setting"
- total_charging_cycle_capacity:
- name: "${name} total charging cycle capacity"
- charging_cycles:
- name: "${name} charging cycles"
- capacity_remaining_derived:
- name: "${name} capacity remaining derived"
- total_runtime:
- name: "${name} total runtime"
- - platform: homeassistant
- id: active_power
- entity_id: sensor.shellypro3em_xxx_total_active_power
- internal: true
- - platform: homeassistant
- id: batt_volt
- entity_id: sensor.hm_400_ch1_u_dc
- internal: true
- - platform: dallas
- address: 0x203c01b5569fcb28
- name: "Battery Box"
- switch:
- - platform: jk_bms
- charging:
- name: "${name} charging"
- discharging:
- name: "${name} discharging"
- text_sensor:
- - platform: jk_bms
- errors:
- name: "${name} errors"
- operation_mode:
- name: "${name} operation mode"
- total_runtime_formatted:
- name: "${name} total runtime formatted"
- #captive_portal:
- dallas:
- - pin: 14
- time:
- - platform: homeassistant
- id: esptime
- font:
- - file: 'slkscr.ttf'
- id: font1
- size: 8
- - file: 'arial.ttf'
- id: font2
- size: 36
- - file: 'arial.ttf'
- id: font3
- size: 16
- i2c:
- sda: D2
- scl: D1
- scan: True
- id: bus_a
- frequency: 400kHz
- display:
- - platform: ssd1306_i2c
- model: "SSD1306 128x64"
- reset_pin: D0
- address: 0x3C
- lambda: |-
- it.strftime(45, 0, id(font1), TextAlign::TOP_LEFT, "JK-BMS %H:%M %S", id(esptime).now());
- if (id(cell_1_v).has_state()) {
- it.printf(1, 0, id(font1), TextAlign::TOP_LEFT , "1: %.3fV", id(cell_1_v).state);
- }
- if (id(cell_2_v).has_state()) {
- it.printf(0, 8, id(font1), TextAlign::TOP_LEFT , "2: %.3fV", id(cell_2_v).state);
- }
- if (id(cell_3_v).has_state()) {
- it.printf(0, 16, id(font1), TextAlign::TOP_LEFT , "3: %.3fV", id(cell_3_v).state);
- }
- if (id(cell_4_v).has_state()) {
- it.printf(0, 24, id(font1), TextAlign::TOP_LEFT , "4: %.3fV", id(cell_4_v).state);
- }
- if (id(cell_5_v).has_state()) {
- it.printf(0, 32, id(font1), TextAlign::TOP_LEFT , "5: %.3fV", id(cell_5_v).state);
- }
- if (id(cell_6_v).has_state()) {
- it.printf(0, 40, id(font1), TextAlign::TOP_LEFT , "6: %.3fV", id(cell_6_v).state);
- }
- if (id(cell_7_v).has_state()) {
- it.printf(0, 48, id(font1), TextAlign::TOP_LEFT , "7: %.3fV", id(cell_7_v).state);
- }
- if (id(cell_8_v).has_state()) {
- it.printf(0, 56, id(font1), TextAlign::TOP_LEFT , "8: %.3fV", id(cell_8_v).state);
- }
- if (id(delta_cell_v).has_state()) {
- it.printf(48, 8, id(font1), TextAlign::TOP_LEFT , "D: %.3fV", id(delta_cell_v).state);
- }
- if (id(battery_power).has_state()) {
- it.printf(48, 31, id(font3), TextAlign::BASELINE_LEFT , "P: %.1fW", id(battery_power).state);
- }
- if (id(remain_battery).has_state()) {
- it.printf(48, 47, id(font3), TextAlign::BASELINE_LEFT , "C: %.1f%%", id(remain_battery).state);
- }
- if (id(active_power).has_state()) {
- it.printf(48, 63, id(font3), TextAlign::BASELINE_LEFT , "N: %.1fW", id(active_power).state);
- }
- if (id(batt_volt).has_state()) {
- it.printf(91, 8, id(font1), TextAlign::TOP_LEFT , "B: %.1f", id(batt_volt).state);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement