Skip to content

Randomly crashed while idle #19954

Description

@MysteriousWolf

The problem

Sitting idle

(Crash detected in the Device Builder log viewer.)

  • Platform: ESP32
  • Installation: Home Assistant Add-on
  • ESPHome 2026.9.1 (compiled)
  • 2026.9.1 (running)
  • Board: esp32-c3-devkitm-1

Which version of ESPHome has the issue?

2026.9.1

What type of installation are you using?

Home Assistant Add-on

What platform are you using?

ESP32

Component causing the issue

No response

YAML Config

esphome:
  name: entrance-door
  friendly_name: Entrance Door
  on_boot:
    priority: -100
    then:
      # Set the LED to reflect the real door state once everything is up.
      - script.execute:
          id: led_state
          state: !lambda 'return id(door_sensor).state ? std::string("open") : std::string("closed");'

esp32:
  board: esp32-c3-devkitm-1
  framework:
    type: esp-idf
logger:
api:
  encryption:
    key: •
ota:
  - platform: esphome
    encryption:
wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  ap:
    ssid: "Entrance-Door Fallback Hotspot"
    password: •
captive_portal:

light:
  - platform: esp32_rmt_led_strip
    id: status_led
    internal: true          # driven only by the led_state script
    pin: GPIO8
    num_leds: 1
    channel_colors: GRB
    chipset: WS2812
    default_transition_length: 0s
    restore_mode: ALWAYS_OFF
    effects:
      - pulse:
          name: pulse_slow
          transition_length: 500ms
          update_interval: 500ms
          min_brightness: 10%
          max_brightness: 60%

# Single source of truth for the LED. Call with one of:
#   "open" | "closed" | "moving" | "fault"
script:
  - id: led_state
    parameters:
      state: string
    mode: restart          # a new state cancels any in-progress animation
    then:
      - lambda: |-
          auto call = id(status_led).turn_on();
          if (state == "closed") {
            call.set_effect("None");
            call.set_rgb(0.0, 1.0, 0.0);          // green
            call.set_brightness(0.3);
          } else if (state == "open") {
            call.set_effect("None");
            call.set_rgb(1.0, 0.0, 0.0);          // red
            call.set_brightness(0.3);
          } else if (state == "moving") {
            call.set_rgb(1.0, 0.6, 0.0);          // amber, pulsing
            call.set_effect("pulse_slow");
          } else if (state == "fault") {
            call.set_effect("None");
            call.set_rgb(1.0, 0.0, 1.0);          // magenta
            call.set_brightness(0.5);
          }
          call.perform();

binary_sensor:
  # Reed switch: HIGH = open (any non-shut state), LOW = fully closed.
  - platform: gpio
    pin:
      number: GPIO0
      mode:
        input: true
    id: door_sensor
    name: "Door Sensor"
    device_class: door
    filters:
      - delayed_on: 100ms
      - delayed_off: 100ms
    on_state:
      # Mirror reality straight to the cover, exactly like the HomeSpan loop().
      - cover.template.publish:
          id: entrance_door
          state: !lambda 'return id(door_sensor).state ? COVER_OPEN : COVER_CLOSED;'
          current_operation: IDLE
      # Tell the LED the settled state; this cancels any "moving" animation.
      - script.execute:
          id: led_state
          state: !lambda 'return id(door_sensor).state ? std::string("open") : std::string("closed");'

switch:
  - platform: gpio
    pin:
      number: GPIO1
      mode:
        output: true
    id: door_relay
    name: "Door Relay (debug)"
    icon: "mdi:gate"
    restore_mode: ALWAYS_OFF
    on_turn_on:
      - delay: 1000ms          # matches HomeSpan's 1s pulse
      - switch.turn_off: door_relay

button:
  - platform: template
    name: "Pulse Relay (debug)"
    icon: "mdi:flash"
    on_press:
      - switch.turn_on: door_relay

cover:
  - platform: template
    name: "Entrance Door"
    id: entrance_door
    device_class: garage          # matches HomeKit GarageDoorOpener
    assumed_state: false
    optimistic: false
    has_position: false
    open_action:
      - if:
          condition:
            binary_sensor.is_off: door_sensor
          then:
            - script.execute:
                id: led_state
                state: "moving"
            - switch.turn_on: door_relay
    close_action:
      - if:
          condition:
            binary_sensor.is_on: door_sensor
          then:
            - script.execute:
                id: led_state
                state: "moving"
            - switch.turn_on: door_relay
    stop_action: []

Anything in the logs that might be useful for us?

INFO ESPHome 2026.9.1
INFO Loaded validated config cache for entrance-door.yaml, skipping validation.
INFO Starting log output from 10.0.0.81 using esphome API
INFO Successfully resolved entrance-door @ 10.0.0.81 in 0.000s
INFO Successfully connected to entrance-door @ 10.0.0.81 in 0.007s
INFO Successful handshake with entrance-door @ 10.0.0.81 in 0.078s
[E][esp32.crash:436]: *** CRASH DETECTED ON PREVIOUS BOOT ***
[E][esp32.crash:441]:   Reason: Interrupt wdt
[E][esp32.crash:443]:   Crashed core: 0
[E][esp32.crash:410]:   Captured by a different firmware build; addresses belong to that build's ELF
[E][esp32.crash:411]:   pc: 0x40385BC2
[E][esp32.crash:404]:   bt0: 0x40385BC2
[E][esp32.crash:404]:   bt1: 0x40386008
[E][esp32.crash:404]:   bt2: 0x40386082
[E][esp32.crash:404]:   bt3: 0x4038026E
[E][esp32.crash:404]:   bt4: 0x40384B74
[E][esp32.crash:404]:   bt5: 0x40384B80

Additional information

(Truncated to fit; full report available on request.)

Warnings and errors:

[E][esp32.crash:436]: *** CRASH DETECTED ON PREVIOUS BOOT ***
[E][esp32.crash:441]:   Reason: Interrupt wdt
[E][esp32.crash:443]:   Crashed core: 0
[E][esp32.crash:410]:   Captured by a different firmware build; addresses belong to that build's ELF
[E][esp32.crash:411]:   pc: 0x40385BC2
[E][esp32.crash:404]:   bt0: 0x40385BC2
[E][esp32.crash:404]:   bt1: 0x40386008
[E][esp32.crash:404]:   bt2: 0x40386082
[E][esp32.crash:404]:   bt3: 0x4038026E
[E][esp32.crash:404]:   bt4: 0x40384B74
[E][esp32.crash:404]:   bt5: 0x40384B80

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions