#19371·esphome

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

yaml
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?

txt
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: 0x40254F7E

Additional 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: 0x4010345B