Überwachung der Batteriespannung und Berechnung des Ladezustands für batteriebetriebene ESPHome-Geräte. Spannungsteiler für Batterieüberwachung: ```
Überwachung der Batteriespannung und Berechnung des Ladezustands für batteriebetriebene ESPHome-Geräte.
Spannungsteiler für Batterieüberwachung:
Batterie+ ---- [10kΩ] ---- [Analog Pin] ---- [10kΩ] ---- GND
LiPo/Li-Ion ESP32
B...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# Batteriespannung Überwachung
sensor:
- platform: adc
pin: A0
name: "${friendly_name} Battery Voltage"
id: battery_voltage
attenuation: 11db
update_interval: 10s
accuracy_decimals: 3
filters:
- multiply: 2.0 # Spannungsteiler-Korrektur (R1=R2)
- sliding_window_average:
window_size: 3
send_every: 3
# Batterie-Prozentsatz (für LiPo 3.7V)
- platform: template
name: "${friendly_name} Battery Level"
id: battery_level
unit_of_measurement: "%"
device_class: battery
state_class: measurement
accuracy_decimals: 0
lambda: |-
float voltage = id(battery_voltage).state;
float percentage;
// LiPo Entladekurve (3.7V nominal)
if (voltage >= 4.15) {
percentage = 100.0;
} else if (voltage >= 4.0) {
percentage = 90.0 + (voltage - 4.0) / 0.15 * 10.0;
} else if (voltage >= 3.8) {
percentage = 70.0 + (voltage - 3.8) / 0.2 * 20.0;
} else if (voltage >= 3.7) {
percentage = 40.0 + (voltage - 3.7) / 0.1 * 30.0;
} else if (voltage >= 3.6) {
percentage = 20.0 + (voltage - 3.6) / 0.1 * 20.0;
} else if (voltage >= 3.4) {
percentage = 5.0 + (voltage - 3.4) / 0.2 * 15.0;
} else {
percentage = 0.0;
}
return max(0.0f, min(100.0f, percentage));
update_interval: 10s