Ich möchte einen ESP32c3 mit Akku betreiben. dazu soll er lange im Tiefschaf bleiben.
Um dennoch updates machen zu können, möchte ich über MQTT dieses stoppen können (https://esphome.io/components/deep_sleep/#deep_sleepprevent-action)
das scheint aber nicht zu funktionieren:
INFO ESPHome 2025.12.5
INFO Reading configuration /config/esphome/dr-esph-lufttemperatur.yaml...
INFO Starting looking for IP in topic esphome/discover/dr-esph-lufttemperatur
INFO Connected to MQTT broker!
INFO Send discover via MQTT broker topic: esphome/ping/dr-esph-lufttemperatur
INFO Successfully reconnected to the MQTT server
INFO Connected to MQTT broker!
INFO Send discover via MQTT broker topic: esphome/ping/dr-esph-lufttemperatur
INFO Successfully reconnected to the MQTT server
INFO Connected to MQTT broker!
INFO Send discover via MQTT broker topic: esphome/ping/dr-esph-lufttemperatur
INFO Successfully reconnected to the MQTT server
INFO Connected to MQTT broker!
INFO Send discover via MQTT broker topic: esphome/ping/dr-esph-lufttemperatur
INFO Successfully reconnected to the MQTT server
INFO Connected to MQTT broker!
INFO Send discover via MQTT broker topic: esphome/ping/dr-esph-lufttemperatur
INFO Successfully reconnected to the MQTT server
WARNING MQTT IP discovery failed (Failed to find IP via MQTT), will try other devices if available
INFO Starting log output from 192.168.2.150 using esphome API
INFO Successfully resolved dr-esph-lufttemperatur @ 192.168.2.150 in 0.000s
INFO Successfully connected to dr-esph-lufttemperatur @ 192.168.2.150 in 0.061s
INFO Successful handshake with dr-esph-lufttemperatur @ 192.168.2.150 in 0.093s
[06:11:06.036][I][app:194]: ESPHome version 2025.12.5 compiled on Jan 11 2026, 20:35:38
weiterhin
[06:11:07.473][D][sensor:135]: 'Akku Spannung': Sending state 3.88800 V with 2 decimals of accuracy
[06:11:08.142][D][sensor:135]: 'Akkustand': Sending state 68.80000 % with 1 decimals of accuracy
[06:11:09.838][I][deep_sleep:061]: Beginning sleep
[06:11:09.841][I][deep_sleep:063]: Sleeping for 10000000us
[06:11:09.851][D][esp32.preferences:149]: Writing 1 items: 0 cached, 1 written, 0 failed
INFO Processing expected disconnect from ESPHome API for dr-esph-lufttemperatur @ 192.168.2.150
WARNING Disconnected from API
INFO Successfully resolved dr-esph-lufttemperatur @ 192.168.2.150 in 0.000s
INFO Successfully connected to dr-esph-lufttemperatur @ 192.168.2.150 in 19.393s
INFO Successful handshake with dr-esph-lufttemperatur @ 192.168.2.150 in 0.113s
[06:11:34.532][W][mqtt:238]: Couldn't resolve IP address for 'homeassistant.local'
[06:11:34.536][W][mqtt:360]: Disconnected: Unknown
[06:11:34.541][D][mqtt:218]: Resolving broker IP address
[06:11:34.555][D][mqtt:249]: Resolved broker IP address to 192.168.2.111
[06:11:34.559][I][mqtt:270]: Connecting
[06:11:34.584][E][mqtt.idf:167]: MQTT_EVENT_ERROR
[06:11:34.585][E][mqtt.idf:174]: Connection refused error: 0x5
[06:11:34.594][D][esp-idf:000][mqtt_task]: E (14753) mqtt_client: MQTT connect failed
[06:11:34.600][W][mqtt:360]: Disconnected: TCP disconnected
[06:11:35.533][D][sensor:135]: 'Akkustand': Sending state 72.39998 % with 1 decimals of accuracy
[06:11:36.334][D][sensor:135]: 'Akku Spannung': Sending state 3.94200 V with 2 decimals of accuracy
Das alles passiert im laufenden Betrieb ständig, noch ohne das eine Message gesendet wurde.
das ist die Konfiguration:
captive_portal:
i2c:
- id: bus_a
sda: GPIO06
scl: GPIO07
scan: true
sensor:
- platform: bme280_i2c
i2c_id: bus_a
address: 0x76
temperature:
name: "Außen Temperatur"
pressure:
name: "Außen Luftdruck"
humidity:
name: "Außen Luftfeuchtigkeit"
update_interval: 3s
- platform: adc
pin: GPIO00
name: "Akku Spannung"
id: akkuspannung
filters:
- multiply: 6
update_interval: 3s
- platform: template
name: "Akkustand"
unit_of_measurement: '%'
update_interval: 3s
lambda: |-
return ((id(akkuspannung).state - 3.20) * 100.00);
deep_sleep:
run_duration: 45s
sleep_duration: 10s
id: deep_sleep_1
mqtt:
broker: homeassistant.local
port: 1883
on_message:
- topic: home/draussen/ota_mode
payload: "ON"
then:
- deep_sleep.prevent: deep_sleep_1
- topic: home/draussen/deepsleep_mode
payload: "ON"
then:
- deep_sleep.enter: deep_sleep_1
das ganze solange er am USB Port hängt.
Im Akkubetrieb sieht es dann so aus:
INFO ESPHome 2025.12.5
INFO Reading configuration /config/esphome/dr-esph-lufttemperatur.yaml...
INFO Starting looking for IP in topic esphome/discover/dr-esph-lufttemperatur
INFO Connected to MQTT broker!
INFO Send discover via MQTT broker topic: esphome/ping/dr-esph-lufttemperatur
INFO Successfully reconnected to the MQTT server
INFO Connected to MQTT broker!
INFO Send discover via MQTT broker topic: esphome/ping/dr-esph-lufttemperatur
INFO Successfully reconnected to the MQTT server
INFO Connected to MQTT broker!
INFO Send discover via MQTT broker topic: esphome/ping/dr-esph-lufttemperatur
INFO Successfully reconnected to the MQTT server
INFO Connected to MQTT broker!
INFO Send discover via MQTT broker topic: esphome/ping/dr-esph-lufttemperatur
INFO Successfully reconnected to the MQTT server
INFO Connected to MQTT broker!
INFO Send discover via MQTT broker topic: esphome/ping/dr-esph-lufttemperatur
INFO Successfully reconnected to the MQTT server
WARNING MQTT IP discovery failed (Failed to find IP via MQTT), will try other devices if available
INFO Starting log output from dr-esph-lufttemperatur.local using esphome API
WARNING Can't connect to ESPHome API for dr-esph-lufttemperatur.local: Timeout while resolving IP address for ['dr-esph-lufttemperatur.local'] (ResolveTimeoutAPIError)
INFO Trying to connect to dr-esph-lufttemperatur.local in the background
er sendet dann auch keine Daten mehr.
Solange der MQTT Block auskommentiert ist, funktioniert alles super.
Hat einer eine Idee, wo der fehler liegt ?