ESP8266: Soft WDT in pm_send_nullfunc
Author: marekkuleszynski-cloudCreated Sep 17, 2026Updated Sep 18, 2026
The problem
The device crashes on regular basis at least once a day. After an automatic restart it works normally zntil the next crash.(Crash detected in the Device Builder log viewer.)
- Platform: ESP8266
- Installation: Home Assistant Add-on
- ESPHome 2026.9.0 (compiled)
- 2026.8.1 (running)
- Board: d1_mini
Decoded backtrace: 0x40254f7e: pm_send_nullfunc 0x402433b2: sta_input 0x40254d98: pm_keep_active_enable 0x40100844: ets_post 0x4025b081: ets_timer_handler_isr 0x4025b0c6: ets_timer_handler_isr 0x4022822e: loop_task(ETSEventTag*) at core_esp8266_main.cpp 0x40105c49: call_user_start_local 0x40105c4f: call_user_start_local 0x4010000d: call_user_start 0x401000ab: app_entry_redefinable 0x4024b3d4: cont_ret at cont.S.o 0x4024b385: cont_continue at cont.S.o 0x40100844: ets_post 0x401028d0: pp_post 0x40105b67: lmacRxDone 0x4010345b: rcReachRetryLimit
Which version of ESPHome has the issue?
2026.9.0
What type of installation are you using?
Home Assistant Add-on
What platform are you using?
ESP8266
Component causing the issue
No response
YAML Config
esphome:
name: rainwater-sensor
friendly_name: Rainwater Sensor
esp8266:
board: d1_mini
logger:
baud_rate: 0
level: DEBUG
api:
encryption:
key: !secret api_encryption_key
#mqtt:
# broker: 192.168.2.200
# username: mqtt_user
# password: !secret mqtt_password
ota:
platform: esphome
password: !secret ota_password
wifi:
ssid: MagentaWLAN-FRH3-G
password: !secret wifi_password
ap:
ssid: Rainwater Fallback
password: !secret fallback_password
fast_connect: true
power_save_mode: NONE
post_connect_roaming: false
captive_portal:
uart:
rx_pin: GPIO1
#tx_pin: GPIO3
baud_rate: 9600
i2c:
sda: GPIO4
scl: GPIO5
scan: true
button:
- platform: restart
name: "Rainwater Restart"
sensor:
- platform: a02yyuw
id: distance
name: "Rainwater Distance"
unit_of_measurement: cm
accuracy_decimals: 1
filters:
- lambda: |-
float cm = x / 10.0;
return roundf(cm);
- throttle_average: 15s
- platform: wifi_signal
name: "WiFi Signal"
id: wifi_rssi
update_interval: 15s
- platform: template
name: "Rainwater Level"
id: water_level
unit_of_measurement: "%"
accuracy_decimals: 0
lambda: |-
const float empty_distance = 168.0;
const float full_distance = 40.0;
float level =
(empty_distance - id(distance).state) /
(empty_distance - full_distance) * 100.0;
if (level > 100) level = 100;
if (level < 0) level = 0;
return roundf(level);
update_interval: 15s
display:
- platform: lcd_pcf8574
dimensions: 16x2
address: 0x27
update_interval: 15s
lambda: |-
it.printf(0, 0, "Tank: %3.0f %%", id(water_level).state);
it.printf(0, 1, "WiFi: %3.0f dBm", id(wifi_rssi).state);Anything in the logs that might be useful for us?
INFO ESPHome 2026.9.0
INFO Reading configuration /config/esphome/rainwater-sensor.yaml...
WARNING 'ota' password wastes significant flash and RAM (about 3.5 KB and 60 bytes plus the password on the heap): the device already offers encryption with the 'api' encryption key, which authenticates any uploader that takes it, and a password only matters for uploaders without encryption support; remove 'password' and add 'encryption' under 'ota' so uploads use the key and encryption is required
INFO Starting log output from 192.168.2.212 using esphome API
INFO Successfully resolved rainwater-sensor @ 192.168.2.212 in 0.000s
INFO Successfully connected to rainwater-sensor @ 192.168.2.212 in 0.017s
INFO Successful handshake with rainwater-sensor @ 192.168.2.212 in 0.574s
[E][esp8266:163]: *** CRASH DETECTED ON PREVIOUS BOOT ***
[E][esp8266:191]: Reason: Soft WDT - Level1Int (exccause=4)
[E][esp8266:196]: PC: 0x40254F7EAdditional information
(Truncated to fit; full report available on request.)
Warnings and errors:
[E][esp8266:163]: *** CRASH DETECTED ON PREVIOUS BOOT ***
[E][esp8266:191]: Reason: Soft WDT - Level1Int (exccause=4)
[E][esp8266:196]: PC: 0x40254F7E
[E][esp8266:201]: BT0: 0x402433B2
[E][esp8266:201]: BT1: 0x40254D98
[E][esp8266:201]: BT2: 0x40100844
[E][esp8266:201]: BT3: 0x4025B081
[E][esp8266:201]: BT4: 0x4025B0C6
[E][esp8266:201]: BT5: 0x4022822E
[E][esp8266:201]: BT6: 0x40105C49
[E][esp8266:201]: BT7: 0x40105C4F
[E][esp8266:201]: BT8: 0x4010000D
[E][esp8266:201]: BT9: 0x401000AB
[E][esp8266:201]: BT10: 0x4024B3D4
[E][esp8266:201]: BT11: 0x4024B385
[E][esp8266:201]: BT12: 0x40100844
[E][esp8266:201]: BT13: 0x401028D0
[E][esp8266:201]: BT14: 0x40105B67
[E][esp8266:201]: BT15: 0x4010345BSource: esphome/esphome