ESP32 Deep Sleep optimieren: 5 Fehler, die deinen Akku leeren
Du hast Deep Sleep in ESPHome aktiviert, aber dein Akku ist trotzdem nach wenigen Tagen leer? Genau das passiert bei vielen ESP32-Projekten.
Der Grund: Deep Sleep allein macht dein gesamtes Board noch lange nicht stromsparend. LEDs, Spannungsregler, Sensoren, die Stromversorgung und selbst einzelne GPIO-Pins können weiterhin Energie verbrauchen.
Bei meinen Tests lag ein typisches ESP32-Entwicklungsboard im Deep Sleep bei rund 3,42 Milliampere. Ein optimiertes Low-Power-Board kam dagegen auf ungefähr 38 Mikroampere. Allein durch die richtige Hardware lässt sich die Laufzeit dadurch von wenigen Wochen auf mehrere Monate verlängern.
In diesem Artikel zeige ich dir die fünf häufigsten Fehler und wie du den Stromverbrauch deines ESP32 deutlich reduzierst.
Warum ESP32 Deep Sleep allein nicht reicht
Im Deep Sleep werden große Teile des ESP32-Chips deaktiviert. Das bedeutet aber nicht automatisch, dass auch alle anderen Komponenten auf dem Board schlafen.
Auf einem normalen ESP32-Board befinden sich häufig:
- eine dauerhaft aktive Power-LED
- ein Spannungsregler
- ein USB-zu-Seriell-Wandler
- Widerstände und weitere Zusatzbauteile
- angeschlossene Sensoren
Diese Komponenten können weiterhin Strom verbrauchen. Deshalb zählt nicht nur der Verbrauch des ESP32-Chips, sondern der Verbrauch des gesamten Projekts.
Fehler 1: Du verwendest das falsche ESP32-Board
Die Board-Auswahl entscheidet über die spätere Akkulaufzeit.
Ein klassisches ESP32-DevKit eignet sich hervorragend für erste Projekte, Tests und kabelgebundene Anwendungen. Für einen dauerhaft batteriebetriebenen Sensor ist es jedoch oft ungeeignet.
Die Power-LED bleibt eingeschaltet
Viele günstige Boards besitzen eine LED, die dauerhaft leuchtet, sobald das Board mit Strom versorgt wird. Diese LED bleibt auch im Deep Sleep aktiv.
Bei einem Netzteil ist das kein großes Problem. Bei einem Akku kann diese kleine LED aber mehr Energie verbrauchen als der ESP32 während der eigentlichen Messung.
Der Spannungsregler verbraucht selbst Strom
Ein weiterer wichtiger Punkt ist der Spannungsregler. Er wandelt die Akkuspannung in die benötigte Betriebsspannung um.
Günstige Spannungsregler haben häufig einen relativ hohen Ruhestrom. Dieser Verbrauch bleibt auch dann bestehen, wenn der ESP32 schläft.
Bei meinen Messungen zeigte sich der Unterschied sehr deutlich:
| Board | Stromverbrauch im Deep Sleep |
|---|---|
| Normales ESP32-Entwicklungsboard | ca. 3,42 mA |
| Optimiertes Low-Power-Board | ca. 38 µA |
Mit einem Akku mit 2.500 mAh kann das ungeeignete Board bereits nach wenigen Wochen leer sein. Mit einem optimierten Board sind dagegen mehrere Monate möglich.
Beispiel für meine Boards die gut sind:
ESP32 https://amzn.to/4fgmLez *
oder hier https://eckstein-shop.de/DFRobot-FireBeetle-2-ESP32-C6-IoT-Development-Board?ref=ALEXKLY *
Alternative ( nicht selber getestet ) https://amzn.to/4f2CGOZ *
Solar: https://eckstein-shop.de/SeeedStudioSmallSolarPanel80x100mm1W2CTypischeSpannung52C5V?ref=ALEXKLY *
Solar Laderegler https://amzn.to/4aWglQD *
Darauf solltest du achten
Für ein Akku-Projekt sollte dein Board möglichst folgende Eigenschaften besitzen:
- keine dauerhaft leuchtende LED
- sparsamer Spannungsregler
- direkter Akkuanschluss
- integrierte Ladeschaltung
- Möglichkeit zur Messung der Akkuspannung
- gute Unterstützung durch ESPHome
Ich nutze für solche Projekte bevorzugt ein auf Low-Power-Anwendungen ausgelegtes FireBeetle-Board. Wichtig ist dabei immer die genaue Boardversion, da sich Pinbelegung und Schaltung unterscheiden können.
Nach vielen Tests waren meine Testresultate sehr vielversprechend mit dem ESP32 C6 Fire Beetle DFRobot.

Fehler 2: Du misst den Stromverbrauch nicht richtig
Ohne Messung weißt du nicht, ob deine Optimierungen tatsächlich funktionieren.
Ein einfaches Multimeter reicht häufig aus, um einen groben Stromverbrauch zu erkennen. Im Mikroamperebereich wird es jedoch schnell ungenau.
Das Problem: Ein ESP32 verbraucht nicht ständig gleich viel Strom.
Während eines Messzyklus passiert beispielsweise Folgendes:
- Der ESP32 startet.
- Ein Sensor wird eingeschaltet.
- WLAN wird aufgebaut.
- Daten werden an Home Assistant übertragen.
- Der Sensor wird ausgeschaltet.
- Der ESP32 wechselt in den Deep Sleep.
Beim Aufbau der WLAN-Verbindung können kurze Stromspitzen von weit über 100 Milliampere auftreten. Im Deep Sleep sollte der Verbrauch dagegen nur wenige Mikroampere betragen.
Ein normales Multimeter zeigt solche schnellen Veränderungen oft nicht sauber an.
Stromverbrauch mit einem Power Profiler messen

Für meine Tests nutze ich ein Nordic Power Profiler Kit. Damit kann ich den Stromverbrauch über die Zeit aufzeichnen und sehr kleine Unterschiede erkennen.
So sehe ich genau:
- wie lange der ESP32 aktiv bleibt
- wie hoch die WLAN-Stromspitzen sind
- ob der Sensor ausgeschaltet wird
- wie viel Strom im Deep Sleep fließt
- ob eine Codeänderung wirklich etwas verbessert
Du brauchst nicht zwingend genau dieses Gerät. Das Messgerät sollte aber Ströme im Mikroamperebereich zuverlässig messen können.
Gerade bei Deep-Sleep-Projekten können bereits 100 oder 200 zusätzliche Mikroampere die Akkulaufzeit deutlich verkürzen.
Fehler 3: Du verwendest eine Powerbank
Eine Powerbank klingt zunächst nach einer einfachen Lösung. Du schließt den ESP32 per USB an und musst dich nicht mit Akkus oder Ladeelektronik beschäftigen.
Für Deep-Sleep-Projekte ist eine Powerbank jedoch meistens ungeeignet.
Warum Powerbanks abschalten
Viele Powerbanks besitzen eine automatische Abschaltung. Sinkt der Stromverbrauch unter einen bestimmten Wert, geht die Powerbank davon aus, dass kein Gerät mehr angeschlossen ist.
Ein optimierter ESP32 benötigt im Deep Sleep möglicherweise nur 30 bis 50 Mikroampere. Das ist für viele Powerbanks zu wenig.
Die Powerbank schaltet sich aus und der ESP32 kann anschließend nicht mehr selbstständig aufwachen.
Für einen kurzfristigen Test oder ein Projekt, das nur einige Stunden läuft, kann eine Powerbank trotzdem funktionieren. Für einen Sensor, der mehrere Monate laufen soll, empfehle ich einen direkt angeschlossenen Akku.
Geeignete Akkus für ESP32-Projekte
Besonders gut geeignet sind:
- Lithium-Polymer-Akkus, die sich direkt ans Board anschließen lassen

Ein Board mit integriertem Akkuanschluss und Ladeschaltung ist dabei besonders praktisch. Du kannst den Akku direkt verbinden und über den USB-Anschluss des Boards laden.
Solarbetriebene Projekte
Für Sensoren im Garten oder an einer Zisterne kann zusätzlich eine kleine Solarzelle verwendet werden.
Dafür benötigst du einen geeigneten Solar-Laderegler, der die Solarzelle, den Akku und den ESP32 miteinander verbindet.
Eine Solarzelle sollte nicht direkt an den Akku angeschlossen werden. Der Laderegler übernimmt das sichere Laden und schützt den Akku vor Überladung.
In meinem Live-Workshop bauen wir gemeinsam diesen Solar Zisternen-Sensor mit Deep Sleep. Melde dich jetzt an und sei dabei.


Fehler 4: Du hast keinen OTA-Modus eingeplant
OTA bedeutet „Over the Air“. Damit kannst du eine neue ESPHome-Konfiguration per WLAN installieren, ohne den ESP32 per USB-Kabel anzuschließen.

Bei einem Deep-Sleep-Sensor ist das allerdings schwierig. Das Gerät ist oft nur wenige Sekunden online und geht danach sofort wieder schlafen.
Bis du das Update gestartet hast, ist der ESP32 möglicherweise bereits nicht mehr erreichbar.
OTA-Modus über Home Assistant
Deshalb solltest du von Anfang an einen eigenen OTA-Modus einplanen. Dafür kannst du in Home Assistant einen Helfer beziehungsweise einen Schalter anlegen, mit dem du den Deep Sleep vorübergehend deaktivierst. Ist dieser Schalter aktiv, prüft der ESP32 den Zustand nach dem Verbindungsaufbau und bleibt eingeschaltet, anstatt wieder in den Tiefschlaf zu wechseln.
So hast du ausreichend Zeit, eine neue Konfiguration aufzuspielen, Änderungen zu testen oder Fehler zu beheben. Nach dem erfolgreichen Update schaltest du den OTA-Modus wieder aus. Beim nächsten Start arbeitet der Sensor erneut wie gewohnt und wechselt nach der Messung zurück in den Deep Sleep.
Diese Funktion solltest du nicht erst später ergänzen. Sobald der Sensor fest installiert, schwer zugänglich oder in einem wetterfesten Gehäuse verbaut ist, wird jedes Update ohne vorbereiteten OTA-Modus unnötig umständlich. Im schlimmsten Fall musst du das Gerät ausbauen und per USB-Kabel neu flashen.
Ein sauber geplanter OTA-Modus spart deshalb nicht direkt Strom, ist aber entscheidend für die Wartbarkeit deines Deep-Sleep-Projekts. Er sorgt dafür, dass du deinen Sensor jederzeit aktualisieren kannst, ohne auf die Vorteile der langen Akkulaufzeit verzichten zu müssen.
Im Live-Workshop erstellen wir gemeinsam den OTA-Modus inklusive Code.
Fehler 5: Dein ESPHome-Code lässt Komponenten eingeschaltet
Selbst mit einem sparsamen ESP32-Board kann der Stromverbrauch im Deep Sleep noch deutlich zu hoch sein. Häufig liegt die Ursache nicht mehr an der Hardware, sondern an der Software. Bestimmte Funktionen, Schnittstellen oder GPIO-Pins bleiben aktiv, obwohl der ESP32 eigentlich schlafen sollte.
Bei meinen Tests waren vor allem zwei Änderungen entscheidend. Zum einen musste das WLAN vor dem Wechsel in den Deep Sleep gezielt deaktiviert werden. Zum anderen musste ein bestimmter GPIO als Ausgang konfiguriert und auf 0 Volt gesetzt werden. Erst dadurch sank der Stromverbrauch auf den erwarteten niedrigen Wert.
Welche Anpassungen notwendig sind, hängt immer vom verwendeten Board und der angeschlossenen Hardware ab. Ein Sensor, Display, Spannungswandler oder Steuerpin kann weiterhin Energie verbrauchen, wenn er vor dem Schlafen nicht sauber abgeschaltet wird. Deshalb reicht es nicht, nur den Deep-Sleep-Befehl in ESPHome einzufügen. Der gesamte Ablauf vom Aufwachen über die Messung bis zum Herunterfahren muss sauber geplant sein.
Besonders wichtig ist, dass Sensoren nur dann eingeschaltet werden, wenn sie tatsächlich benötigt werden. Nach der Messung sollten sie vollständig deaktiviert werden, bevor der ESP32 in den Tiefschlaf wechselt. Auch die WLAN-Verbindung sollte nur so lange aktiv bleiben, wie es für die Übertragung der Messwerte notwendig ist. Je kürzer die Wachphase und je niedriger der Verbrauch während der Schlafphase, desto länger hält der Akku.
Gerade diese Softwareoptimierung hat bei meinem Projekt am meisten Zeit gekostet, weil kleine Details im ESPHome-Code einen großen Unterschied machen können. Die notwendigen Codeänderungen, die richtige Reihenfolge beim Abschalten und die Anpassung an das jeweilige Board erkläre ich deshalb im Workshop ganz genau. Dort schauen wir uns gemeinsam an, welche Komponenten deaktiviert werden müssen und wie du überprüfst, ob dein Projekt im Deep Sleep wirklich nur noch wenige Mikroampere verbraucht. Wenn du schon mal einen Blick auf den Code werfen willst, den habe ich dir hier verlinkt:
Beispiel Deep Sleep für Firebeetle C6
esphome:
name: 38deepsleep-beispiel02
friendly_name: 3.8.Deepsleep_Beispiel02
on_boot:
priority: 900
then:
- lambda: |-
gpio_hold_dis(GPIO_NUM_15); // Hold nach dem Aufwachen lösen
on_shutdown:
priority: -100
then:
- wifi.disable:
- lambda: |-
gpio_set_direction(GPIO_NUM_15, GPIO_MODE_OUTPUT);
gpio_set_level(GPIO_NUM_15, 0);
gpio_hold_en(GPIO_NUM_15); // beim C6 reicht das allein
esp32:
board: dfrobot_firebeetle2_esp32c6
framework:
type: esp-idf
#
# Enable logging
logger:
# baud_rate: 0 aktivieren für ESP32 C3 XIAO
# Enable Home Assistant API
api:
encryption:
key: "NasdasdasdasdoXs="
on_client_connected:
- logger.log: "=== HA verbunden! Lese Sensoren... ==="
- component.update: wassertemp
- delay: 1s # kurz warten, bis HA den Wert geschickt hat
- if:
condition:
binary_sensor.is_on: ota_ha_modus
then:
- deep_sleep.prevent: tiefschlaf
- logger.log: "OTA-Anfrage erkannt: bleibe wach"
else:
- logger.log: "Kein OTA: normaler Zyklus"
- deep_sleep.enter: tiefschlaf
ota:
- platform: esphome
password: "9asdasdasd2a"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
fast_connect: true
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "38Deepsleep-Beispiel02"
password: "tPegBrjTMWrz"
captive_portal:
safe_mode:
disabled: true
one_wire:
- platform: gpio
pin: GPIO06
sensor:
- platform: dallas_temp
name: "Wassertemperatur"
id: wassertemp
address: 0xf00000006e21b328
update_interval: 20s
deep_sleep:
id: tiefschlaf
sleep_duration: 30s
run_duration: 30s
binary_sensor:
- platform: homeassistant
id: ota_ha_modus
entity_id: input_boolean.3_8_deepsleep_beispiel01_ota
Laut meiner Community ist YAML-Code bei ESPHome-Projekten meist die größte Herausforderung. Nicht die Hardware, nicht das Löten und auch nicht die Verkabelung sorgen für die meisten Probleme, sondern das richtige Verständnis des Codes und der einzelnen Abläufe.
Genau hier setzt mein ESPHome-Meisterkurs an. Dort lernst du Schritt für Schritt, wie du eigene Sensoren aufbaust, ESPHome richtig konfigurierst und den YAML-Code wirklich verstehst, statt einzelne Lösungen immer wieder aus dem Internet oder von einer KI zusammenzusuchen.
Du erfährst, wie du Komponenten sauber einbindest, Messwerte an Home Assistant überträgst, typische Fehler findest und auch fortgeschrittene Funktionen wie Deep Sleep, Akkuüberwachung und OTA-Updates umsetzt.
Wenn du deine eigenen lokalen Smart-Home-Sensoren bauen möchtest und YAML endlich sicher verstehen willst, findest du alle Informationen zum ESPHome-Meisterkurs hier:
Wie lange hält dein ESP32-Akku?
Die einfachste Formel lautet:
Akkulaufzeit in Stunden = Akkukapazität in mAh ÷ durchschnittlicher Stromverbrauch in mA
Bei einem Akku mit 2.500 mAh und einem konstanten Verbrauch von 3,42 mA, wie zum Beispiel bei einem normalen ESP32-Entwicklungsboard ergibt sich:
2.500 ÷ 3,42 = ungefähr 731 Stunden
Das entspricht rund 30 Tagen.
In der Praxis kommen allerdings noch die Wachphasen hinzu. Der ESP32 benötigt beim Start, beim Messen und bei der WLAN-Verbindung deutlich mehr Strom.
Je seltener das Gerät aufwacht und je kürzer die aktive Phase ist, desto länger hält der Akku.
Ein Sensor, der nur einmal pro Stunde misst, kann deshalb deutlich länger laufen als ein Sensor mit einem Messintervall von fünf Minuten.
Das Ziel ist es die Akkulaufzeit durch alle Optimierungen auf bis zu einem Jahr zu bekommen.
Fazit: Diese fünf Fehler entscheiden über die Akkulaufzeit
Ein ESP32-Sensor kann durch die Optimierungen problemlos mehrere Monate bis zu einem Jahr mit einem Akku laufen. Dafür reicht es aber nicht, lediglich Deep Sleep in den Code einzufügen.
Die fünf wichtigsten Punkte sind:
- Verwende ein sparsames ESP32-Board.
- Miss den Stromverbrauch im Mikroamperebereich.
- Nutze einen geeigneten Akku statt einer Powerbank.
- Plane einen OTA-Modus für spätere Updates ein.
- Schalte WLAN, GPIOs und Sensoren vor dem Deep Sleep sauber aus.
Der größte Unterschied entsteht häufig bereits durch die Wahl des Boards. In meinem Test sank der Deep-Sleep-Verbrauch von rund 3,42 Milliampere auf etwa 38 Mikroampere.
Wenn du zusätzlich die Wachphase verkürzt, ein sinnvolles Messintervall wählst und alle angeschlossenen Komponenten abschaltest, sind Laufzeiten von mehreren Monaten oder sogar einem Jahr möglich.
Im Workshop bauen wir ein solches Solar/Akkubetriebenes ESPHome-Projekt (Füllstandsensor) gemeinsam Schritt für Schritt auf. Dabei schauen wir uns die passenden Komponenten, die Verkabelung, die Messung des Stromverbrauchs und alle wichtigen Codeänderungen genau an. Du lernst nicht nur, wie Deep Sleep grundsätzlich funktioniert, sondern auch, wie du typische Fehler findest und dein Projekt zuverlässig zum Laufen bringst.
Die Plätze im Workshop sind begrenzt, damit ich bei Fragen und beim Debugging individuell unterstützen kann. Melde dich deshalb am besten direkt an und sichere dir deinen Platz.

Alex Kly (Alkly)
Ich glaube an ein Smart Home, das dir gehört – nicht der Cloud. Ich zeige dir, wie du Technik nutzt, um Energie zu sparen, Solar optimal einzubinden und dein Zuhause nachhaltig zu steuern.
Ein Zuhause, das mitdenkt, dich entlastet – und dich jeden Tag ein Stück freier macht.
