mirror of
https://github.com/RichieCahill/dotfiles.git
synced 2026-04-17 04:58:19 -04:00
setting up esphome
This commit is contained in:
2
.vscode/settings.json
vendored
2
.vscode/settings.json
vendored
@@ -149,10 +149,12 @@
|
||||
"mklabel",
|
||||
"mkpart",
|
||||
"modbus",
|
||||
"modbuss",
|
||||
"modesetting",
|
||||
"mountpoint",
|
||||
"mountpoints",
|
||||
"mousewheel",
|
||||
"mqtt",
|
||||
"mtxr",
|
||||
"ncdu",
|
||||
"nemo",
|
||||
|
||||
3
esphome/.gitignore
vendored
Normal file
3
esphome/.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
# esphome
|
||||
/.esphome/
|
||||
/secrets.yaml
|
||||
129
esphome/batteries.yml
Normal file
129
esphome/batteries.yml
Normal file
@@ -0,0 +1,129 @@
|
||||
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"
|
||||
@@ -28,6 +28,7 @@
|
||||
temperature_unit = "F";
|
||||
packages = {
|
||||
victron_modbuss = "!include ${./home_assistant/victron_modbuss.yaml}";
|
||||
battery_sensors = "!include ${./home_assistant/battery_sensors.yaml}";
|
||||
};
|
||||
};
|
||||
recorder = {
|
||||
@@ -67,6 +68,8 @@
|
||||
forecast-solar # for solar forecast
|
||||
aioesphomeapi # for esphome
|
||||
esphome-dashboard-api # for esphome
|
||||
py-improv-ble-client # for esphome
|
||||
bleak-esphome # for esphome
|
||||
];
|
||||
extraComponents = [ "isal" ];
|
||||
};
|
||||
|
||||
99
systems/brain/services/home_assistant/battery_sensors.yaml
Normal file
99
systems/brain/services/home_assistant/battery_sensors.yaml
Normal file
@@ -0,0 +1,99 @@
|
||||
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:
|
||||
# Battery 0
|
||||
- platform: integration
|
||||
source: sensor.jk0_charge_power_w
|
||||
name: "JK0 energy in"
|
||||
unique_id: jk0_energy_in_kwh
|
||||
unit_prefix: k
|
||||
method: trapezoidal
|
||||
round: 3
|
||||
max_sub_interval:
|
||||
minutes: 5
|
||||
- platform: integration
|
||||
source: sensor.jk0_discharge_power_w
|
||||
name: "JK0 energy out"
|
||||
unique_id: jk0_energy_out_kwh
|
||||
unit_prefix: k
|
||||
method: trapezoidal
|
||||
round: 3
|
||||
max_sub_interval:
|
||||
minutes: 5
|
||||
|
||||
# Battery 1
|
||||
- platform: integration
|
||||
source: sensor.jk1_charge_power_w
|
||||
name: "JK1 energy in"
|
||||
unique_id: jk1_energy_in_kwh
|
||||
unit_prefix: k
|
||||
method: trapezoidal
|
||||
round: 3
|
||||
max_sub_interval:
|
||||
minutes: 5
|
||||
- platform: integration
|
||||
source: sensor.jk1_discharge_power_w
|
||||
name: "JK1 energy out"
|
||||
unique_id: jk1_energy_out_kwh
|
||||
unit_prefix: k
|
||||
method: trapezoidal
|
||||
round: 3
|
||||
max_sub_interval:
|
||||
minutes: 5
|
||||
|
||||
utility_meter:
|
||||
# Battery 0
|
||||
jk0_energy_in_daily:
|
||||
source: sensor.jk0_energy_in
|
||||
name: "JK0 Energy In Daily"
|
||||
cycle: daily
|
||||
jk0_energy_out_daily:
|
||||
source: sensor.jk0_energy_out
|
||||
name: "JK0 Energy Out Daily"
|
||||
cycle: daily
|
||||
|
||||
# Battery 1
|
||||
jk1_energy_in_daily:
|
||||
source: sensor.jk1_energy_in
|
||||
name: "JK1 Energy In Daily"
|
||||
cycle: daily
|
||||
jk1_energy_out_daily:
|
||||
source: sensor.jk1_energy_out
|
||||
name: "JK1 Energy Out Daily"
|
||||
cycle: daily
|
||||
@@ -24,6 +24,8 @@
|
||||
unzip
|
||||
yazi
|
||||
zoxide
|
||||
# Home Assistant
|
||||
esphome
|
||||
# data recovery
|
||||
testdisk
|
||||
# system info
|
||||
|
||||
Reference in New Issue
Block a user