mirror of
https://github.com/RichieCahill/dotfiles.git
synced 2026-04-18 05:18:20 -04:00
splint HA battery monitoring
This commit is contained in:
@@ -1,129 +0,0 @@
|
|||||||
esphome:
|
|
||||||
name: batteries
|
|
||||||
friendly_name: batteries
|
|
||||||
|
|
||||||
esp32:
|
|
||||||
board: esp32dev
|
|
||||||
framework:
|
|
||||||
type: arduino
|
|
||||||
|
|
||||||
logger:
|
|
||||||
|
|
||||||
api:
|
|
||||||
encryption:
|
|
||||||
key: !secret api_key
|
|
||||||
|
|
||||||
external_components:
|
|
||||||
- source: github://syssi/esphome-jk-bms@main
|
|
||||||
|
|
||||||
ota:
|
|
||||||
- platform: esphome
|
|
||||||
password: !secret ota_password
|
|
||||||
|
|
||||||
wifi:
|
|
||||||
ssid: !secret wifi_ssid
|
|
||||||
password: !secret wifi_password
|
|
||||||
|
|
||||||
captive_portal:
|
|
||||||
|
|
||||||
esp32_ble_tracker:
|
|
||||||
scan_parameters:
|
|
||||||
interval: 1100ms
|
|
||||||
window: 1100ms
|
|
||||||
active: true
|
|
||||||
|
|
||||||
ble_client:
|
|
||||||
- mac_address: "C8:47:80:29:0F:DB"
|
|
||||||
id: jk_ble0
|
|
||||||
- mac_address: "C8:47:80:37:9D:DD"
|
|
||||||
id: jk_ble1
|
|
||||||
|
|
||||||
jk_bms_ble:
|
|
||||||
- ble_client_id: jk_ble0
|
|
||||||
protocol_version: JK02_32S
|
|
||||||
throttle: 1s
|
|
||||||
id: jk_bms0
|
|
||||||
|
|
||||||
- ble_client_id: jk_ble1
|
|
||||||
protocol_version: JK02_32S
|
|
||||||
throttle: 1s
|
|
||||||
id: jk_bms1
|
|
||||||
|
|
||||||
sensor:
|
|
||||||
# BMS1 sensors
|
|
||||||
- platform: jk_bms_ble
|
|
||||||
jk_bms_ble_id: jk_bms0
|
|
||||||
total_voltage:
|
|
||||||
name: "JK0 Total Voltage"
|
|
||||||
current:
|
|
||||||
name: "JK0 Current"
|
|
||||||
state_of_charge:
|
|
||||||
name: "JK0 SoC"
|
|
||||||
power:
|
|
||||||
name: "JK0 Power"
|
|
||||||
temperature_sensor_1:
|
|
||||||
name: "JK0 Temp 1"
|
|
||||||
temperature_sensor_2:
|
|
||||||
name: "JK0 Temp 2"
|
|
||||||
balancing:
|
|
||||||
name: "JK0 balancing"
|
|
||||||
charging_cycles:
|
|
||||||
name: "JK0 charging cycles"
|
|
||||||
total_runtime:
|
|
||||||
name: "JK0 total runtime"
|
|
||||||
balancing_current:
|
|
||||||
name: "JK0 balancing current"
|
|
||||||
|
|
||||||
# BMS2 sensors
|
|
||||||
- platform: jk_bms_ble
|
|
||||||
jk_bms_ble_id: jk_bms1
|
|
||||||
total_voltage:
|
|
||||||
name: "JK1 Total Voltage"
|
|
||||||
current:
|
|
||||||
name: "JK1 Current"
|
|
||||||
state_of_charge:
|
|
||||||
name: "JK1 SoC"
|
|
||||||
power:
|
|
||||||
name: "Jk1 Power"
|
|
||||||
temperature_sensor_1:
|
|
||||||
name: "JK1 Temp 1"
|
|
||||||
temperature_sensor_2:
|
|
||||||
name: "Jk1 Temp 2"
|
|
||||||
balancing:
|
|
||||||
name: "JK1 balancing"
|
|
||||||
charging_cycles:
|
|
||||||
name: "JK1 charging cycles"
|
|
||||||
total_runtime:
|
|
||||||
name: "JK1 total runtime"
|
|
||||||
balancing_current:
|
|
||||||
name: "JK1 balancing current"
|
|
||||||
|
|
||||||
text_sensor:
|
|
||||||
- platform: jk_bms_ble
|
|
||||||
jk_bms_ble_id: jk_bms0
|
|
||||||
errors:
|
|
||||||
name: "JK0 Errors"
|
|
||||||
|
|
||||||
- platform: jk_bms_ble
|
|
||||||
jk_bms_ble_id: jk_bms1
|
|
||||||
errors:
|
|
||||||
name: "JK1 Errors"
|
|
||||||
|
|
||||||
switch:
|
|
||||||
- platform: jk_bms_ble
|
|
||||||
jk_bms_ble_id: jk_bms0
|
|
||||||
charging:
|
|
||||||
name: "JK0 Charging"
|
|
||||||
discharging:
|
|
||||||
name: "JK0 Discharging"
|
|
||||||
balancer:
|
|
||||||
name: "JK0 Balancing"
|
|
||||||
|
|
||||||
- platform: jk_bms_ble
|
|
||||||
jk_bms_ble_id: jk_bms1
|
|
||||||
charging:
|
|
||||||
name: "JK1 Charging"
|
|
||||||
discharging:
|
|
||||||
name: "JK1 Discharging"
|
|
||||||
balancer:
|
|
||||||
name: "JK1 Balancing"
|
|
||||||
132
esphome/battery0.yml
Normal file
132
esphome/battery0.yml
Normal file
@@ -0,0 +1,132 @@
|
|||||||
|
esphome:
|
||||||
|
name: batteries
|
||||||
|
friendly_name: batteries
|
||||||
|
|
||||||
|
esp32:
|
||||||
|
board: esp32dev
|
||||||
|
framework:
|
||||||
|
type: arduino
|
||||||
|
|
||||||
|
logger:
|
||||||
|
|
||||||
|
api:
|
||||||
|
encryption:
|
||||||
|
key: !secret api_key
|
||||||
|
|
||||||
|
external_components:
|
||||||
|
- source: github://syssi/esphome-jk-bms@main
|
||||||
|
|
||||||
|
ota:
|
||||||
|
- platform: esphome
|
||||||
|
password: !secret ota_password
|
||||||
|
|
||||||
|
wifi:
|
||||||
|
ssid: !secret wifi_ssid
|
||||||
|
password: !secret wifi_password
|
||||||
|
fast_connect: on
|
||||||
|
|
||||||
|
captive_portal:
|
||||||
|
|
||||||
|
esp32_ble_tracker:
|
||||||
|
scan_parameters:
|
||||||
|
interval: 1100ms
|
||||||
|
window: 1100ms
|
||||||
|
active: true
|
||||||
|
|
||||||
|
ble_client:
|
||||||
|
- mac_address: "C8:47:80:29:0F:DB"
|
||||||
|
id: jk_ble0
|
||||||
|
|
||||||
|
jk_bms_ble:
|
||||||
|
- ble_client_id: jk_ble0
|
||||||
|
protocol_version: JK02_32S
|
||||||
|
throttle: 1s
|
||||||
|
id: jk_bms0
|
||||||
|
|
||||||
|
button:
|
||||||
|
- platform: jk_bms_ble
|
||||||
|
retrieve_settings:
|
||||||
|
name: "JK0 retrieve settings"
|
||||||
|
retrieve_device_info:
|
||||||
|
name: "JK0 retrieve device info"
|
||||||
|
|
||||||
|
sensor:
|
||||||
|
- platform: jk_bms_ble
|
||||||
|
jk_bms_ble_id: jk_bms0
|
||||||
|
total_voltage:
|
||||||
|
name: "JK0 Total Voltage"
|
||||||
|
state_of_charge:
|
||||||
|
name: "JK0 SoC"
|
||||||
|
charging_power:
|
||||||
|
name: "JK0 charging power"
|
||||||
|
discharging_power:
|
||||||
|
name: "JK0 discharging power"
|
||||||
|
temperature_sensor_1:
|
||||||
|
name: "JK0 Temp 1"
|
||||||
|
temperature_sensor_2:
|
||||||
|
name: "JK0 Temp 2"
|
||||||
|
balancing:
|
||||||
|
name: "JK0 balancing"
|
||||||
|
total_runtime:
|
||||||
|
name: "JK0 total runtime"
|
||||||
|
balancing_current:
|
||||||
|
name: "JK0 balancing current"
|
||||||
|
delta_cell_voltage:
|
||||||
|
name: "JK0 cell delta voltage"
|
||||||
|
average_cell_voltage:
|
||||||
|
name: "JK0 cell average voltage"
|
||||||
|
cell_voltage_1:
|
||||||
|
name: "JK0 cell voltage 1"
|
||||||
|
cell_voltage_2:
|
||||||
|
name: "JK0 cell voltage 2"
|
||||||
|
cell_voltage_3:
|
||||||
|
name: "JK0 cell voltage 3"
|
||||||
|
cell_voltage_4:
|
||||||
|
name: "JK0 cell voltage 4"
|
||||||
|
cell_voltage_5:
|
||||||
|
name: "JK0 cell voltage 5"
|
||||||
|
cell_voltage_6:
|
||||||
|
name: "JK0 cell voltage 6"
|
||||||
|
cell_voltage_7:
|
||||||
|
name: "JK0 cell voltage 7"
|
||||||
|
cell_voltage_8:
|
||||||
|
name: "JK0 cell voltage 8"
|
||||||
|
cell_resistance_1:
|
||||||
|
name: "JK0 cell resistance 1"
|
||||||
|
cell_resistance_2:
|
||||||
|
name: "JK0 cell resistance 2"
|
||||||
|
cell_resistance_3:
|
||||||
|
name: "JK0 cell resistance 3"
|
||||||
|
cell_resistance_4:
|
||||||
|
name: "JK0 cell resistance 4"
|
||||||
|
cell_resistance_5:
|
||||||
|
name: "JK0 cell resistance 5"
|
||||||
|
cell_resistance_6:
|
||||||
|
name: "JK0 cell resistance 6"
|
||||||
|
cell_resistance_7:
|
||||||
|
name: "JK0 cell resistance 7"
|
||||||
|
cell_resistance_8:
|
||||||
|
name: "JK0 cell resistance 8"
|
||||||
|
total_charging_cycle_capacity:
|
||||||
|
name: "JK0 total charging cycle capacity"
|
||||||
|
|
||||||
|
text_sensor:
|
||||||
|
- platform: jk_bms_ble
|
||||||
|
jk_bms_ble_id: jk_bms0
|
||||||
|
errors:
|
||||||
|
name: "JK0 Errors"
|
||||||
|
|
||||||
|
switch:
|
||||||
|
- platform: jk_bms_ble
|
||||||
|
jk_bms_ble_id: jk_bms0
|
||||||
|
charging:
|
||||||
|
name: "JK0 Charging"
|
||||||
|
discharging:
|
||||||
|
name: "JK0 Discharging"
|
||||||
|
balancer:
|
||||||
|
name: "JK0 Balancing"
|
||||||
|
|
||||||
|
- platform: ble_client
|
||||||
|
ble_client_id: jk_ble0
|
||||||
|
name: "JK0 enable bluetooth connection"
|
||||||
|
id: ble_client_switch0
|
||||||
132
esphome/battery1.yml
Normal file
132
esphome/battery1.yml
Normal file
@@ -0,0 +1,132 @@
|
|||||||
|
esphome:
|
||||||
|
name: battery1
|
||||||
|
friendly_name: battery1
|
||||||
|
|
||||||
|
esp32:
|
||||||
|
board: esp32dev
|
||||||
|
framework:
|
||||||
|
type: arduino
|
||||||
|
|
||||||
|
logger:
|
||||||
|
|
||||||
|
api:
|
||||||
|
encryption:
|
||||||
|
key: !secret api_key
|
||||||
|
|
||||||
|
external_components:
|
||||||
|
- source: github://syssi/esphome-jk-bms@main
|
||||||
|
|
||||||
|
ota:
|
||||||
|
- platform: esphome
|
||||||
|
password: !secret ota_password
|
||||||
|
|
||||||
|
wifi:
|
||||||
|
ssid: !secret wifi_ssid
|
||||||
|
password: !secret wifi_password
|
||||||
|
fast_connect: on
|
||||||
|
|
||||||
|
captive_portal:
|
||||||
|
|
||||||
|
esp32_ble_tracker:
|
||||||
|
scan_parameters:
|
||||||
|
interval: 1100ms
|
||||||
|
window: 1100ms
|
||||||
|
active: true
|
||||||
|
|
||||||
|
ble_client:
|
||||||
|
- mac_address: "C8:47:80:37:9D:DD"
|
||||||
|
id: jk_ble1
|
||||||
|
|
||||||
|
jk_bms_ble:
|
||||||
|
- ble_client_id: jk_ble1
|
||||||
|
protocol_version: JK02_32S
|
||||||
|
throttle: 1s
|
||||||
|
id: jk_bms1
|
||||||
|
|
||||||
|
button:
|
||||||
|
- platform: jk_bms_ble
|
||||||
|
retrieve_settings:
|
||||||
|
name: "JK1 retrieve settings"
|
||||||
|
retrieve_device_info:
|
||||||
|
name: "JK1 retrieve device info"
|
||||||
|
|
||||||
|
sensor:
|
||||||
|
- platform: jk_bms_ble
|
||||||
|
jk_bms_ble_id: jk_bms1
|
||||||
|
total_voltage:
|
||||||
|
name: "JK1 Total Voltage"
|
||||||
|
state_of_charge:
|
||||||
|
name: "JK1 SoC"
|
||||||
|
charging_power:
|
||||||
|
name: "JK1 charging power"
|
||||||
|
discharging_power:
|
||||||
|
name: "JK1 discharging power"
|
||||||
|
temperature_sensor_1:
|
||||||
|
name: "JK1 Temp 1"
|
||||||
|
temperature_sensor_2:
|
||||||
|
name: "JK1 Temp 2"
|
||||||
|
balancing:
|
||||||
|
name: "JK1 balancing"
|
||||||
|
total_runtime:
|
||||||
|
name: "JK1 total runtime"
|
||||||
|
balancing_current:
|
||||||
|
name: "JK1 balancing current"
|
||||||
|
delta_cell_voltage:
|
||||||
|
name: "JK1 cell delta voltage"
|
||||||
|
average_cell_voltage:
|
||||||
|
name: "JK1 cell average voltage"
|
||||||
|
cell_voltage_1:
|
||||||
|
name: "JK1 cell voltage 1"
|
||||||
|
cell_voltage_2:
|
||||||
|
name: "JK1 cell voltage 2"
|
||||||
|
cell_voltage_3:
|
||||||
|
name: "JK1 cell voltage 3"
|
||||||
|
cell_voltage_4:
|
||||||
|
name: "JK1 cell voltage 4"
|
||||||
|
cell_voltage_5:
|
||||||
|
name: "JK1 cell voltage 5"
|
||||||
|
cell_voltage_6:
|
||||||
|
name: "JK1 cell voltage 6"
|
||||||
|
cell_voltage_7:
|
||||||
|
name: "JK1 cell voltage 7"
|
||||||
|
cell_voltage_8:
|
||||||
|
name: "JK1 cell voltage 8"
|
||||||
|
cell_resistance_1:
|
||||||
|
name: "JK1 cell resistance 1"
|
||||||
|
cell_resistance_2:
|
||||||
|
name: "JK1 cell resistance 2"
|
||||||
|
cell_resistance_3:
|
||||||
|
name: "JK1 cell resistance 3"
|
||||||
|
cell_resistance_4:
|
||||||
|
name: "JK1 cell resistance 4"
|
||||||
|
cell_resistance_5:
|
||||||
|
name: "JK1 cell resistance 5"
|
||||||
|
cell_resistance_6:
|
||||||
|
name: "JK1 cell resistance 6"
|
||||||
|
cell_resistance_7:
|
||||||
|
name: "JK1 cell resistance 7"
|
||||||
|
cell_resistance_8:
|
||||||
|
name: "JK1 cell resistance 8"
|
||||||
|
total_charging_cycle_capacity:
|
||||||
|
name: "JK1 total charging cycle capacity"
|
||||||
|
|
||||||
|
text_sensor:
|
||||||
|
- platform: jk_bms_ble
|
||||||
|
jk_bms_ble_id: jk_bms1
|
||||||
|
errors:
|
||||||
|
name: "JK1 Errors"
|
||||||
|
|
||||||
|
switch:
|
||||||
|
- platform: jk_bms_ble
|
||||||
|
jk_bms_ble_id: jk_bms1
|
||||||
|
charging:
|
||||||
|
name: "JK1 Charging"
|
||||||
|
discharging:
|
||||||
|
name: "JK1 Discharging"
|
||||||
|
balancer:
|
||||||
|
name: "JK1 Balancing"
|
||||||
|
|
||||||
|
- platform: ble_client
|
||||||
|
ble_client_id: jk_ble1
|
||||||
|
name: "JK1 enable bluetooth connection"
|
||||||
|
id: ble_client_switch0
|
||||||
@@ -1,45 +1,7 @@
|
|||||||
template:
|
|
||||||
- sensor:
|
|
||||||
# Battery 0
|
|
||||||
- name: "JK0 charge power W"
|
|
||||||
unique_id: jk0_charge_power_w
|
|
||||||
unit_of_measurement: W
|
|
||||||
device_class: power
|
|
||||||
state_class: measurement
|
|
||||||
state: >
|
|
||||||
{% set p = states('sensor.batteries_jk0_power')|float(0) %}
|
|
||||||
{{ max(0, p) }}
|
|
||||||
- name: "JK0 discharge power W"
|
|
||||||
unique_id: jk0_discharge_power_w
|
|
||||||
unit_of_measurement: W
|
|
||||||
device_class: power
|
|
||||||
state_class: measurement
|
|
||||||
state: >
|
|
||||||
{% set p = states('sensor.batteries_jk0_power')|float(0) %}
|
|
||||||
{{ max(0, -p) }}
|
|
||||||
|
|
||||||
# Battery 1
|
|
||||||
- name: "JK1 charge power W"
|
|
||||||
unique_id: jk1_charge_power_w
|
|
||||||
unit_of_measurement: W
|
|
||||||
device_class: power
|
|
||||||
state_class: measurement
|
|
||||||
state: >
|
|
||||||
{% set p = states('sensor.batteries_jk1_power')|float(0) %}
|
|
||||||
{{ max(0, p) }}
|
|
||||||
- name: "JK1 discharge power W"
|
|
||||||
unique_id: jk1_discharge_power_w
|
|
||||||
unit_of_measurement: W
|
|
||||||
device_class: power
|
|
||||||
state_class: measurement
|
|
||||||
state: >
|
|
||||||
{% set p = states('sensor.batteries_jk1_power')|float(0) %}
|
|
||||||
{{ max(0, -p) }}
|
|
||||||
|
|
||||||
sensor:
|
sensor:
|
||||||
# Battery 0
|
# Battery 0
|
||||||
- platform: integration
|
- platform: integration
|
||||||
source: sensor.jk0_charge_power_w
|
source: sensor.batteries_jk0_charging_power
|
||||||
name: "JK0 energy in"
|
name: "JK0 energy in"
|
||||||
unique_id: jk0_energy_in_kwh
|
unique_id: jk0_energy_in_kwh
|
||||||
unit_prefix: k
|
unit_prefix: k
|
||||||
@@ -48,7 +10,7 @@ sensor:
|
|||||||
max_sub_interval:
|
max_sub_interval:
|
||||||
minutes: 5
|
minutes: 5
|
||||||
- platform: integration
|
- platform: integration
|
||||||
source: sensor.jk0_discharge_power_w
|
source: sensor.batteries_jk0_charging_power
|
||||||
name: "JK0 energy out"
|
name: "JK0 energy out"
|
||||||
unique_id: jk0_energy_out_kwh
|
unique_id: jk0_energy_out_kwh
|
||||||
unit_prefix: k
|
unit_prefix: k
|
||||||
@@ -59,7 +21,7 @@ sensor:
|
|||||||
|
|
||||||
# Battery 1
|
# Battery 1
|
||||||
- platform: integration
|
- platform: integration
|
||||||
source: sensor.jk1_charge_power_w
|
source: sensor.battery1_jk1_charging_power
|
||||||
name: "JK1 energy in"
|
name: "JK1 energy in"
|
||||||
unique_id: jk1_energy_in_kwh
|
unique_id: jk1_energy_in_kwh
|
||||||
unit_prefix: k
|
unit_prefix: k
|
||||||
@@ -68,7 +30,7 @@ sensor:
|
|||||||
max_sub_interval:
|
max_sub_interval:
|
||||||
minutes: 5
|
minutes: 5
|
||||||
- platform: integration
|
- platform: integration
|
||||||
source: sensor.jk1_discharge_power_w
|
source: sensor.battery1_jk1_discharge_power
|
||||||
name: "JK1 energy out"
|
name: "JK1 energy out"
|
||||||
unique_id: jk1_energy_out_kwh
|
unique_id: jk1_energy_out_kwh
|
||||||
unit_prefix: k
|
unit_prefix: k
|
||||||
|
|||||||
Reference in New Issue
Block a user