esphome / issues

Issue Tracker for ESPHome
https://esphome.io/
290 stars 34 forks source link

2024.5.x broke number component #5851

Closed yanivf38 closed 2 months ago

yanivf38 commented 2 months ago

The problem

After upgrading to 2024.5.x, upgrading the firmware on the node(s) cause them to stop working. Wireless fails to connect, and no watchdog output shows up when clicking on log. Downgrading back to 2024.4.2 and updating the firmware causes the node to work again.

I did some troubleshooting and created a simpler yaml just with number component as shown in the documentation example and it also behaves the same away. removing number section in either my original yaml or the sample seems to work correctly.

Which version of ESPHome has the issue?

2024.5.x

What type of installation are you using?

Home Assistant Add-on

Which version of Home Assistant has the issue?

Any version. I'm currently using 2024.5.5

What platform are you using?

ESP8266

Board

d1-mini

Component causing the issue

number

Example YAML snippet

esphome:
  name: test-mmwave
  friendly_name: test-mmwave

esp8266:
  board: d1_mini

# Enable logging
logger:
  baud_rate: 0

# Enable Home Assistant API
api:
  encryption:
    key: xxxx

ota:
  password: xxx

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Test-Mmwave Fallback Hotspot"
    password: xxx

captive_portal:

globals:
  - id: last_illuminance
    type: float
    restore_value: no
    initial_value: "-1"

i2c:
  sda: D2
  scl: D1
  id: bus_a

ld2410:
  uart_id: ld2410_uart
  #throttle: 1500ms
  id: ld2410_comp

uart:
  id: ld2410_uart
  tx_pin: GPIO15
  rx_pin: GPIO13
  baud_rate: 256000
  parity: NONE
  stop_bits: 1

binary_sensor:
  - platform: ld2410
    has_target:
      name: Presence
    has_moving_target:
      name: Moving Target
    has_still_target:
      name: Still Target

sensor:
  - platform: bh1750
    name: "Light sensor"
    address: 0x23
    accuracy_decimals: 1
    id: bh1750_light
    update_interval: 1s
    filters:
      - lambda: !lambda |-
          if (id(last_illuminance) == x){
            return {};
          }
          if (abs(id(last_illuminance) - x) > 1){

              id(last_illuminance) = x;
              return x;
          }
          return {};  

  - platform: ld2410
    light:
      name: light
    moving_distance:
      name : Moving Distance
    still_distance:
      name: Still Distance
    moving_energy:
      name: Move Energy
    still_energy:
      name: Still Energy
    detection_distance:
      name: Detection Distance
    g0:
      move_energy:
        name: g0 move energy
      still_energy:
        name: g0 still energy
    g1:
      move_energy:
        name: g1 move energy
      still_energy:
        name: g1 still energy
    g2:
      move_energy:
        name: g2 move energy
      still_energy:
        name: g2 still energy
    g3:
      move_energy:
        name: g3 move energy
      still_energy:
        name: g3 still energy
    g4:
      move_energy:
        name: g4 move energy
      still_energy:
        name: g4 still energy
    g5:
      move_energy:
        name: g5 move energy
      still_energy:
        name: g5 still energy
    g6:
      move_energy:
        name: g6 move energy
      still_energy:
        name: g6 still energy
    g7:
      move_energy:
        name: g7 move energy
      still_energy:
        name: g7 still energy
    g8:
      move_energy:
        name: g8 move energy
      still_energy:
        name: g8 still energy

switch:
  - platform: ld2410
    engineering_mode:
      name: "engineering mode"
    bluetooth:
      name: "control bluetooth"

number:
  - platform: ld2410
    timeout:
      name: timeout
    light_threshold:
      name: light threshold
    max_move_distance_gate:
      name: max move distance gate
    max_still_distance_gate:
      name: max still distance gate
    g0:
      move_threshold:
        name: g0 move threshold
      still_threshold:
        name: g0 still threshold
    g1:
      move_threshold:
        name: g1 move threshold
      still_threshold:
        name: g1 still threshold
    g2:
      move_threshold:
        name: g2 move threshold
      still_threshold:
        name: g2 still threshold
    g3:
      move_threshold:
        name: g3 move threshold
      still_threshold:
        name: g3 still threshold
    g4:
      move_threshold:
        name: g4 move threshold
      still_threshold:
        name: g4 still threshold
    g5:
      move_threshold:
        name: g5 move threshold
      still_threshold:
        name: g5 still threshold
    g6:
      move_threshold:
        name: g6 move threshold
      still_threshold:
        name: g6 still threshold
    g7:
      move_threshold:
        name: g7 move threshold
      still_threshold:
        name: g7 still threshold
    g8:
      move_threshold:
        name: g8 move threshold
      still_threshold:
        name: g8 still threshold

button:
  - platform: ld2410
    factory_reset:
      name: "factory reset"
    restart:
      name: "restart"
    query_params:
      name: query params

text_sensor:
  - platform: ld2410
    version:
      name: "firmware version"
    mac_address:
      name: "mac address"

select:
  - platform: ld2410
    distance_resolution:
      name: "distance resolution"
    baud_rate:
      name: "baud rate"
    light_function:
      name: light function

Anything in the logs that might be useful for us?

nothing shows up except connection errors

Additional information

It seems like number component is broken. I tried the following yaml and got similar problem

esphome:
  name: test-mmwave
  friendly_name: test-mmwave

esp8266:
  board: d1_mini

logger:
  baud_rate: 0

api:
  encryption:
    key: "xxxx"

ota:
  password: "xxxx"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  ap:
    ssid: "Test-Mmwave Fallback Hotspot"
    password: "xxx"

captive_portal:

globals:
  - id: my_global
    type: float
    restore_value: no
    initial_value: '0'  
number:
  - platform: template
    id: my_number
    name: My Number
    min_value: 0
    max_value: 100
    step: 1
    optimistic: true
    on_value:
      then:
        - lambda: |-
            id(my_global) = float(1);
gabest11 commented 2 months ago

I think it was this one https://github.com/esphome/esphome/pull/4866, creating a new issue for it.

yanivf38 commented 2 months ago

2024.5.4 fixed my issue of no responsive