Skip to content

Instantly share code, notes, and snippets.

@adlerweb
Created April 27, 2025 02:47
Show Gist options
  • Save adlerweb/2074d7611904e99934f1d75beb990f24 to your computer and use it in GitHub Desktop.
Save adlerweb/2074d7611904e99934f1d75beb990f24 to your computer and use it in GitHub Desktop.
battest.yaml
esphome:
name: battest
friendly_name: battest
esp32:
board: esp32-c3-devkitm-1
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "XXXXX"
ota:
- platform: esphome
password: "XXXXX"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
output_power: 8.5
captive_portal:
web_server:
version: 3
i2c:
sda: 8
scl: 9
scan: true
id: bus_a
sensor:
- platform: ina219
address: 0x40
shunt_resistance: 0.1 ohm
current:
name: "Bat Current"
filters:
- median:
window_size: 5
- sliding_window_moving_average:
window_size: 10
send_every: 10
power:
name: "Bat Power"
filters:
- median:
window_size: 5
- sliding_window_moving_average:
window_size: 10
send_every: 10
bus_voltage:
name: "Bat_Cell_Pack"
id: bat_cell_pack
filters:
- median:
window_size: 5
- sliding_window_moving_average:
window_size: 10
send_every: 10
max_voltage: 32.0V
max_current: 3.2A
update_interval: 1s
- platform: adc
pin: 0
name: "Bat_Cell_1_RAW"
id: bat_cell_1_raw
update_interval: 1s
filters:
- median:
window_size: 5
- sliding_window_moving_average:
window_size: 10
send_every: 10
unit_of_measurement: V
attenuation: auto
internal: true
- platform: adc
pin: 1
name: "Bat_Cell_12_RAW"
update_interval: 1s
filters:
- median:
window_size: 5
- sliding_window_moving_average:
window_size: 10
send_every: 10
unit_of_measurement: V
id: bat_cell_12_raw
attenuation: auto
internal: true
- platform: adc
pin: 3
name: "Bat_Cell_123_RAW"
update_interval: 1s
filters:
- median:
window_size: 5
- sliding_window_moving_average:
window_size: 10
send_every: 10
unit_of_measurement: V
id: bat_cell_123_raw
attenuation: auto
internal: true
- platform: template
name: "Bat_Cell_1"
id: bat_cell_1
unit_of_measurement: V
update_interval: 10s
accuracy_decimals: 2
lambda: |-
const float factor = (1 * (5.6+47) / 5.6);
if (id(bat_cell_1_raw).has_state()) {
return (id(bat_cell_1_raw).state * factor);
}else{
return {};
}
- platform: template
name: "Bat_Cell_12"
id: bat_cell_12
unit_of_measurement: V
update_interval: 10s
accuracy_decimals: 2
internal: true
lambda: |-
const float factor = (1 * (5.6+47) / 5.6);
if (id(bat_cell_12_raw).has_state()) {
return (id(bat_cell_12_raw).state * factor);
}else{
return {};
}
- platform: template
name: "Bat_Cell_123"
id: bat_cell_123
unit_of_measurement: V
update_interval: 10s
accuracy_decimals: 2
internal: true
lambda: |-
const float factor = (1 * (5.6+47) / 5.6);
if (id(bat_cell_123_raw).has_state()) {
return (id(bat_cell_123_raw).state * factor);
}else{
return {};
}
- platform: template
name: "Bat_Cell_2"
unit_of_measurement: V
update_interval: 10s
accuracy_decimals: 2
lambda: |-
if(id(bat_cell_12).has_state() && id(bat_cell_1).has_state()) {
return id(bat_cell_12).state - id(bat_cell_1).state;
}else{
return {};
}
- platform: template
name: "Bat_Cell_3"
unit_of_measurement: V
update_interval: 10s
accuracy_decimals: 2
lambda: |-
if(id(bat_cell_123).has_state() && id(bat_cell_12).has_state()) {
return id(bat_cell_123).state - id(bat_cell_12).state;
}else{
return {};
}
- platform: template
name: "Bat_Cell_4"
unit_of_measurement: V
update_interval: 10s
accuracy_decimals: 2
lambda: |-
if(id(bat_cell_pack).has_state() && id(bat_cell_123).has_state()) {
return id(bat_cell_pack).state - id(bat_cell_123).state;
}else{
return {};
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment