esphome 2025.6.2__py3-none-any.whl → 2025.7.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- esphome/__main__.py +1 -3
- esphome/codegen.py +2 -0
- esphome/components/ac_dimmer/ac_dimmer.cpp +6 -6
- esphome/components/adc/__init__.py +25 -1
- esphome/components/adc/adc_sensor.h +11 -11
- esphome/components/adc/adc_sensor_common.cpp +1 -1
- esphome/components/adc/adc_sensor_esp32.cpp +16 -8
- esphome/components/ade7880/ade7880.h +0 -2
- esphome/components/ads1115/ads1115.h +0 -1
- esphome/components/ads1118/ads1118.h +0 -1
- esphome/components/ags10/ags10.h +0 -2
- esphome/components/aic3204/aic3204.h +0 -1
- esphome/components/alarm_control_panel/__init__.py +5 -2
- esphome/components/alpha3/alpha3.h +0 -1
- esphome/components/am43/cover/am43_cover.h +0 -1
- esphome/components/am43/sensor/am43_sensor.h +0 -1
- esphome/components/analog_threshold/analog_threshold_binary_sensor.h +0 -2
- esphome/components/anova/anova.cpp +5 -1
- esphome/components/anova/anova.h +0 -1
- esphome/components/apds9960/apds9960.cpp +1 -1
- esphome/components/api/__init__.py +57 -21
- esphome/components/api/api_connection.cpp +344 -539
- esphome/components/api/api_connection.h +224 -141
- esphome/components/api/api_frame_helper.cpp +91 -127
- esphome/components/api/api_frame_helper.h +64 -54
- esphome/components/api/api_pb2.cpp +1837 -9044
- esphome/components/api/api_pb2.h +532 -685
- esphome/components/api/api_pb2_dump.cpp +4432 -0
- esphome/components/api/api_pb2_service.cpp +184 -425
- esphome/components/api/api_pb2_service.h +13 -6
- esphome/components/api/api_server.cpp +131 -167
- esphome/components/api/api_server.h +38 -10
- esphome/components/api/client.py +10 -4
- esphome/components/api/custom_api_device.h +8 -0
- esphome/components/api/list_entities.cpp +37 -104
- esphome/components/api/list_entities.h +33 -23
- esphome/components/api/proto.h +532 -26
- esphome/components/api/subscribe_state.cpp +23 -29
- esphome/components/api/subscribe_state.h +26 -19
- esphome/components/api/user_services.h +2 -0
- esphome/components/as3935_spi/as3935_spi.h +0 -2
- esphome/components/as5600/as5600.h +0 -1
- esphome/components/async_tcp/__init__.py +14 -5
- esphome/components/atc_mithermometer/atc_mithermometer.h +0 -1
- esphome/components/atm90e32/atm90e32.cpp +2 -1
- esphome/components/audio/audio_decoder.cpp +1 -1
- esphome/components/audio/audio_transfer_buffer.cpp +2 -2
- esphome/components/b_parasite/b_parasite.h +0 -1
- esphome/components/bedjet/bedjet_hub.cpp +5 -1
- esphome/components/bedjet/climate/bedjet_climate.cpp +5 -1
- esphome/components/beken_spi_led_strip/led_strip.cpp +4 -2
- esphome/components/bh1750/bh1750.cpp +5 -5
- esphome/components/binary_sensor/__init__.py +82 -5
- esphome/components/binary_sensor/automation.h +19 -1
- esphome/components/binary_sensor/binary_sensor.cpp +12 -30
- esphome/components/binary_sensor/binary_sensor.h +11 -25
- esphome/components/binary_sensor/filter.cpp +29 -24
- esphome/components/binary_sensor/filter.h +20 -10
- esphome/components/ble_client/output/ble_binary_output.h +0 -1
- esphome/components/ble_client/sensor/ble_rssi_sensor.cpp +5 -1
- esphome/components/ble_client/sensor/ble_rssi_sensor.h +0 -1
- esphome/components/ble_client/sensor/ble_sensor.cpp +5 -1
- esphome/components/ble_client/sensor/ble_sensor.h +0 -1
- esphome/components/ble_client/switch/ble_switch.h +0 -1
- esphome/components/ble_client/text_sensor/ble_text_sensor.cpp +5 -1
- esphome/components/ble_client/text_sensor/ble_text_sensor.h +0 -1
- esphome/components/ble_presence/ble_presence_device.h +0 -1
- esphome/components/ble_rssi/ble_rssi_sensor.h +0 -1
- esphome/components/ble_scanner/ble_scanner.h +0 -1
- esphome/components/bluetooth_proxy/bluetooth_connection.h +9 -2
- esphome/components/bluetooth_proxy/bluetooth_proxy.cpp +16 -6
- esphome/components/bluetooth_proxy/bluetooth_proxy.h +8 -2
- esphome/components/bme680/sensor.py +1 -1
- esphome/components/bmp581/bmp581.h +0 -2
- esphome/components/button/__init__.py +5 -2
- esphome/components/camera/__init__.py +1 -0
- esphome/components/camera/camera.cpp +22 -0
- esphome/components/camera/camera.h +80 -0
- esphome/components/canbus/__init__.py +1 -0
- esphome/components/cap1188/cap1188.h +0 -1
- esphome/components/captive_portal/__init__.py +12 -2
- esphome/components/captive_portal/captive_portal.cpp +12 -2
- esphome/components/captive_portal/captive_portal.h +5 -2
- esphome/components/ccs811/ccs811.h +0 -2
- esphome/components/climate/__init__.py +5 -2
- esphome/components/cm1106/sensor.py +2 -2
- esphome/components/const/__init__.py +2 -0
- esphome/components/copy/binary_sensor/copy_binary_sensor.h +0 -1
- esphome/components/copy/button/copy_button.h +0 -1
- esphome/components/copy/cover/copy_cover.h +0 -1
- esphome/components/copy/fan/copy_fan.h +0 -1
- esphome/components/copy/lock/copy_lock.h +0 -1
- esphome/components/copy/number/copy_number.h +0 -1
- esphome/components/copy/select/copy_select.h +0 -1
- esphome/components/copy/sensor/copy_sensor.h +0 -1
- esphome/components/copy/switch/copy_switch.h +0 -1
- esphome/components/copy/text/copy_text.h +0 -1
- esphome/components/copy/text_sensor/copy_text_sensor.h +0 -1
- esphome/components/cover/__init__.py +5 -2
- esphome/components/cs5460a/cs5460a.h +0 -1
- esphome/components/datetime/__init__.py +4 -2
- esphome/components/debug/__init__.py +20 -0
- esphome/components/debug/debug_esp32.cpp +2 -0
- esphome/components/deep_sleep/__init__.py +43 -9
- esphome/components/demo/__init__.py +2 -2
- esphome/components/display/display.cpp +4 -3
- esphome/components/display/display.h +0 -2
- esphome/components/display/display_buffer.cpp +1 -1
- esphome/components/ds2484/__init__.py +1 -0
- esphome/components/ds2484/ds2484.cpp +209 -0
- esphome/components/ds2484/ds2484.h +43 -0
- esphome/components/ds2484/one_wire.py +37 -0
- esphome/components/duty_time/duty_time_sensor.h +0 -1
- esphome/components/ens160_base/ens160_base.h +0 -1
- esphome/components/es7210/es7210.h +0 -1
- esphome/components/es7243e/es7243e.h +0 -1
- esphome/components/es8156/es8156.h +0 -1
- esphome/components/es8311/es8311.h +0 -1
- esphome/components/es8388/es8388.h +0 -1
- esphome/components/esp32/__init__.py +103 -135
- esphome/components/esp32/core.cpp +0 -4
- esphome/components/esp32/gpio.h +1 -1
- esphome/components/esp32/helpers.cpp +69 -0
- esphome/components/esp32_ble/ble.cpp +5 -6
- esphome/components/esp32_ble/ble.h +29 -14
- esphome/components/esp32_ble/ble_event.h +6 -6
- esphome/components/esp32_ble_client/ble_client_base.cpp +21 -6
- esphome/components/esp32_ble_client/ble_client_base.h +24 -9
- esphome/components/esp32_ble_tracker/__init__.py +2 -8
- esphome/components/esp32_ble_tracker/esp32_ble_tracker.cpp +5 -5
- esphome/components/esp32_ble_tracker/esp32_ble_tracker.h +11 -7
- esphome/components/esp32_camera/__init__.py +112 -98
- esphome/components/esp32_camera/esp32_camera.cpp +41 -31
- esphome/components/esp32_camera/esp32_camera.h +35 -30
- esphome/components/esp32_camera_web_server/__init__.py +2 -1
- esphome/components/esp32_camera_web_server/camera_web_server.cpp +8 -8
- esphome/components/esp32_camera_web_server/camera_web_server.h +3 -3
- esphome/components/esp32_hall/sensor.py +2 -21
- esphome/components/esp32_hosted/__init__.py +101 -0
- esphome/components/esp32_hosted/esp32_hosted.py.script +12 -0
- esphome/components/esp32_improv/esp32_improv_component.cpp +3 -0
- esphome/components/esp32_rmt/__init__.py +0 -58
- esphome/components/esp32_rmt_led_strip/led_strip.cpp +77 -63
- esphome/components/esp32_rmt_led_strip/led_strip.h +11 -17
- esphome/components/esp32_rmt_led_strip/light.py +14 -76
- esphome/components/esp32_touch/esp32_touch.h +174 -28
- esphome/components/esp32_touch/esp32_touch_common.cpp +162 -0
- esphome/components/esp32_touch/esp32_touch_v1.cpp +240 -0
- esphome/components/esp32_touch/esp32_touch_v2.cpp +397 -0
- esphome/components/esp8266/__init__.py +2 -0
- esphome/components/esp8266/gpio.cpp +10 -10
- esphome/components/esp8266/helpers.cpp +31 -0
- esphome/components/esp_ldo/__init__.py +10 -8
- esphome/components/esp_ldo/esp_ldo.h +3 -0
- esphome/components/esphome/ota/__init__.py +1 -0
- esphome/components/esphome/ota/ota_esphome.cpp +24 -19
- esphome/components/ethernet/__init__.py +42 -23
- esphome/components/ethernet/esp_eth_phy_jl1101.c +0 -16
- esphome/components/ethernet/ethernet_component.cpp +69 -29
- esphome/components/ethernet/ethernet_component.h +18 -10
- esphome/components/event/__init__.py +5 -2
- esphome/components/ezo/ezo.h +0 -1
- esphome/components/ezo_pmp/ezo_pmp.h +0 -1
- esphome/components/fan/__init__.py +5 -2
- esphome/components/fan/fan.cpp +4 -0
- esphome/components/feedback/feedback_cover.h +0 -1
- esphome/components/font/__init__.py +92 -82
- esphome/components/font/font.cpp +9 -2
- esphome/components/font/font.h +20 -5
- esphome/components/fs3000/fs3000.h +0 -1
- esphome/components/gcja5/gcja5.h +0 -1
- esphome/components/gl_r01_i2c/__init__.py +0 -0
- esphome/components/gl_r01_i2c/gl_r01_i2c.cpp +68 -0
- esphome/components/gl_r01_i2c/gl_r01_i2c.h +22 -0
- esphome/components/gl_r01_i2c/sensor.py +36 -0
- esphome/components/gp8403/gp8403.h +0 -1
- esphome/components/gpio/binary_sensor/__init__.py +39 -1
- esphome/components/gpio/binary_sensor/gpio_binary_sensor.cpp +77 -3
- esphome/components/gpio/binary_sensor/gpio_binary_sensor.h +40 -0
- esphome/components/grove_gas_mc_v2/grove_gas_mc_v2.h +0 -2
- esphome/components/he60r/he60r.h +0 -1
- esphome/components/heatpumpir/climate.py +2 -1
- esphome/components/heatpumpir/heatpumpir.cpp +1 -0
- esphome/components/heatpumpir/heatpumpir.h +1 -0
- esphome/components/honeywellabp2_i2c/honeywellabp2.h +0 -1
- esphome/components/host/__init__.py +3 -1
- esphome/components/host/helpers.cpp +57 -0
- esphome/components/http_request/__init__.py +19 -1
- esphome/components/http_request/http_request.h +1 -1
- esphome/components/http_request/http_request_arduino.cpp +0 -1
- esphome/components/http_request/http_request_arduino.h +1 -0
- esphome/components/http_request/http_request_idf.cpp +0 -1
- esphome/components/http_request/ota/ota_http_request.cpp +1 -1
- esphome/components/http_request/update/http_request_update.cpp +35 -16
- esphome/components/hydreon_rgxx/hydreon_rgxx.cpp +3 -9
- esphome/components/hydreon_rgxx/sensor.py +1 -1
- esphome/components/i2c/__init__.py +23 -11
- esphome/components/i2c/i2c_bus.h +8 -1
- esphome/components/i2c/i2c_bus_arduino.cpp +4 -3
- esphome/components/i2c/i2c_bus_arduino.h +6 -3
- esphome/components/i2c/i2c_bus_esp_idf.h +5 -3
- esphome/components/i2c_device/i2c_device.h +0 -1
- esphome/components/i2s_audio/__init__.py +2 -10
- esphome/components/i2s_audio/i2s_audio.cpp +1 -5
- esphome/components/i2s_audio/media_player/__init__.py +2 -2
- esphome/components/i2s_audio/speaker/__init__.py +1 -1
- esphome/components/i2s_audio/speaker/i2s_audio_speaker.cpp +2 -2
- esphome/components/iaqcore/iaqcore.h +0 -2
- esphome/components/image/__init__.py +123 -24
- esphome/components/improv_serial/improv_serial_component.cpp +0 -4
- esphome/components/ina219/ina219.cpp +7 -0
- esphome/components/ina219/ina219.h +1 -0
- esphome/components/ina260/ina260.h +0 -2
- esphome/components/inkbird_ibsth1_mini/inkbird_ibsth1_mini.h +0 -1
- esphome/components/inkplate6/display.py +15 -0
- esphome/components/inkplate6/inkplate.cpp +2 -2
- esphome/components/integration/integration_sensor.h +0 -1
- esphome/components/internal_temperature/internal_temperature.cpp +8 -27
- esphome/components/internal_temperature/sensor.py +0 -26
- esphome/components/interval/interval.h +0 -2
- esphome/components/json/__init__.py +1 -1
- esphome/components/json/json_util.cpp +56 -63
- esphome/components/ld2410/button/__init__.py +3 -3
- esphome/components/ld2410/button/factory_reset_button.cpp +9 -0
- esphome/components/ld2410/button/{reset_button.h → factory_reset_button.h} +2 -2
- esphome/components/ld2410/ld2410.cpp +421 -268
- esphome/components/ld2410/ld2410.h +44 -146
- esphome/components/ld2410/number/__init__.py +2 -2
- esphome/components/ld2410/sensor.py +1 -1
- esphome/components/ld2410/switch/__init__.py +1 -1
- esphome/components/ld2420/binary_sensor/ld2420_binary_sensor.cpp +2 -2
- esphome/components/ld2420/button/reconfig_buttons.cpp +1 -1
- esphome/components/ld2420/ld2420.cpp +252 -147
- esphome/components/ld2420/ld2420.h +52 -126
- esphome/components/ld2420/number/__init__.py +2 -2
- esphome/components/ld2420/number/gate_config_number.cpp +1 -1
- esphome/components/ld2420/select/operating_mode_select.cpp +1 -1
- esphome/components/ld2420/sensor/__init__.py +6 -2
- esphome/components/ld2420/sensor/ld2420_sensor.cpp +2 -2
- esphome/components/ld2420/sensor/ld2420_sensor.h +1 -1
- esphome/components/ld2420/text_sensor/text_sensor.cpp +2 -2
- esphome/components/ld2450/button/__init__.py +3 -3
- esphome/components/ld2450/button/factory_reset_button.cpp +9 -0
- esphome/components/ld2450/button/{reset_button.h → factory_reset_button.h} +2 -2
- esphome/components/ld2450/ld2450.cpp +384 -232
- esphome/components/ld2450/ld2450.h +60 -69
- esphome/components/ld2450/switch/__init__.py +1 -1
- esphome/components/ledc/ledc_output.cpp +1 -63
- esphome/components/libretiny/__init__.py +5 -3
- esphome/components/libretiny/const.py +5 -0
- esphome/components/libretiny/generate_components.py +1 -0
- esphome/components/libretiny/helpers.cpp +35 -0
- esphome/components/libretiny/lt_component.cpp +5 -3
- esphome/components/light/__init__.py +4 -2
- esphome/components/light/addressable_light.h +3 -3
- esphome/components/light/light_call.cpp +180 -243
- esphome/components/light/light_call.h +72 -20
- esphome/components/light/light_color_values.h +14 -14
- esphome/components/light/light_json_schema.cpp +17 -16
- esphome/components/light/light_state.h +15 -13
- esphome/components/light/transformers.h +2 -2
- esphome/components/ln882x/__init__.py +52 -0
- esphome/components/ln882x/boards.py +285 -0
- esphome/components/lock/__init__.py +5 -2
- esphome/components/logger/__init__.py +40 -3
- esphome/components/logger/logger.cpp +47 -12
- esphome/components/logger/logger.h +80 -49
- esphome/components/logger/logger_esp32.cpp +3 -3
- esphome/components/lps22/__init__.py +0 -0
- esphome/components/lps22/lps22.cpp +75 -0
- esphome/components/lps22/lps22.h +27 -0
- esphome/components/lps22/sensor.py +58 -0
- esphome/components/ltr390/ltr390.h +0 -1
- esphome/components/ltr501/ltr501.h +0 -1
- esphome/components/ltr_als_ps/ltr_als_ps.h +0 -1
- esphome/components/lvgl/__init__.py +1 -1
- esphome/components/lvgl/schemas.py +66 -6
- esphome/components/lvgl/styles.py +24 -16
- esphome/components/lvgl/widgets/__init__.py +12 -2
- esphome/components/lvgl/widgets/lv_bar.py +40 -19
- esphome/components/lvgl/widgets/meter.py +20 -13
- esphome/components/m5stack_8angle/light/m5stack_8angle_light.cpp +1 -1
- esphome/components/max9611/max9611.h +0 -1
- esphome/components/mcp23016/__init__.py +1 -1
- esphome/components/mcp23xxx_base/__init__.py +1 -1
- esphome/components/mcp4461/__init__.py +1 -1
- esphome/components/mcp4461/output/__init__.py +3 -2
- esphome/components/mcp9600/mcp9600.h +0 -2
- esphome/components/md5/md5.cpp +3 -3
- esphome/components/md5/md5.h +1 -6
- esphome/components/mdns/__init__.py +22 -11
- esphome/components/media_player/__init__.py +4 -3
- esphome/components/micro_wake_word/__init__.py +1 -5
- esphome/components/micro_wake_word/streaming_model.cpp +2 -2
- esphome/components/microphone/microphone.cpp +7 -9
- esphome/components/microphone/microphone.h +0 -2
- esphome/components/mipi_spi/display.py +1 -0
- esphome/components/mmc5603/mmc5603.cpp +1 -1
- esphome/components/modbus/modbus.cpp +33 -15
- esphome/components/modbus/modbus.h +9 -0
- esphome/components/modbus_controller/__init__.py +42 -10
- esphome/components/modbus_controller/modbus_controller.cpp +92 -11
- esphome/components/modbus_controller/modbus_controller.h +61 -7
- esphome/components/mopeka_pro_check/mopeka_pro_check.h +0 -1
- esphome/components/mopeka_std_check/mopeka_std_check.h +0 -1
- esphome/components/mpl3115a2/mpl3115a2.h +0 -2
- esphome/components/mqtt/__init__.py +16 -0
- esphome/components/mqtt/mqtt_alarm_control_panel.cpp +2 -1
- esphome/components/mqtt/mqtt_backend.h +2 -1
- esphome/components/mqtt/mqtt_backend_esp32.cpp +132 -47
- esphome/components/mqtt/mqtt_backend_esp32.h +106 -4
- esphome/components/mqtt/mqtt_binary_sensor.cpp +1 -0
- esphome/components/mqtt/mqtt_button.cpp +4 -1
- esphome/components/mqtt/mqtt_client.cpp +17 -9
- esphome/components/mqtt/mqtt_client.h +8 -3
- esphome/components/mqtt/mqtt_climate.cpp +6 -4
- esphome/components/mqtt/mqtt_component.cpp +3 -1
- esphome/components/mqtt/mqtt_cover.cpp +1 -0
- esphome/components/mqtt/mqtt_date.cpp +4 -3
- esphome/components/mqtt/mqtt_datetime.cpp +7 -6
- esphome/components/mqtt/mqtt_event.cpp +6 -3
- esphome/components/mqtt/mqtt_fan.cpp +1 -0
- esphome/components/mqtt/mqtt_light.cpp +8 -4
- esphome/components/mqtt/mqtt_lock.cpp +3 -1
- esphome/components/mqtt/mqtt_number.cpp +1 -0
- esphome/components/mqtt/mqtt_select.cpp +2 -1
- esphome/components/mqtt/mqtt_sensor.cpp +3 -1
- esphome/components/mqtt/mqtt_switch.cpp +3 -1
- esphome/components/mqtt/mqtt_text.cpp +1 -0
- esphome/components/mqtt/mqtt_text_sensor.cpp +3 -1
- esphome/components/mqtt/mqtt_time.cpp +4 -3
- esphome/components/mqtt/mqtt_update.cpp +1 -0
- esphome/components/mqtt/mqtt_valve.cpp +3 -1
- esphome/components/ms8607/ms8607.cpp +1 -1
- esphome/components/ms8607/ms8607.h +0 -1
- esphome/components/neopixelbus/light.py +4 -1
- esphome/components/neopixelbus/neopixelbus_light.h +1 -1
- esphome/components/network/__init__.py +4 -1
- esphome/components/network/ip_address.h +1 -0
- esphome/components/nextion/__init__.py +16 -0
- esphome/components/nextion/base_component.py +1 -0
- esphome/components/nextion/binary_sensor/nextion_binarysensor.cpp +1 -1
- esphome/components/nextion/display.py +14 -4
- esphome/components/nextion/nextion.cpp +166 -101
- esphome/components/nextion/nextion.h +84 -53
- esphome/components/nextion/nextion_commands.cpp +11 -10
- esphome/components/nextion/nextion_component.cpp +28 -28
- esphome/components/nextion/nextion_component.h +53 -18
- esphome/components/nextion/nextion_component_base.h +3 -0
- esphome/components/nextion/nextion_upload.cpp +36 -0
- esphome/components/nextion/nextion_upload_arduino.cpp +10 -35
- esphome/components/nextion/nextion_upload_idf.cpp +9 -33
- esphome/components/nextion/sensor/nextion_sensor.cpp +1 -1
- esphome/components/nextion/switch/nextion_switch.cpp +1 -1
- esphome/components/nextion/text_sensor/nextion_textsensor.cpp +1 -1
- esphome/components/nfc/nfc.cpp +3 -22
- esphome/components/nfc/nfc.h +3 -3
- esphome/components/number/__init__.py +5 -2
- esphome/components/online_image/__init__.py +9 -1
- esphome/components/online_image/online_image.cpp +17 -7
- esphome/components/online_image/online_image.h +10 -2
- esphome/components/opentherm/opentherm.cpp +7 -12
- esphome/components/opentherm/output/output.cpp +1 -1
- esphome/components/openthread/__init__.py +47 -40
- esphome/components/openthread/const.py +1 -0
- esphome/components/openthread/openthread_esp.cpp +27 -5
- esphome/components/opt3001/__init__.py +0 -0
- esphome/components/opt3001/opt3001.cpp +122 -0
- esphome/components/opt3001/opt3001.h +27 -0
- esphome/components/opt3001/sensor.py +35 -0
- esphome/components/ota/__init__.py +17 -0
- esphome/components/ota/ota_backend.h +27 -1
- esphome/components/ota/ota_backend_arduino_esp32.cpp +12 -2
- esphome/components/ota/ota_backend_arduino_esp32.h +3 -0
- esphome/components/ota/ota_backend_arduino_esp8266.cpp +18 -4
- esphome/components/ota/ota_backend_arduino_esp8266.h +3 -0
- esphome/components/ota/ota_backend_arduino_libretiny.cpp +12 -2
- esphome/components/ota/ota_backend_arduino_libretiny.h +3 -0
- esphome/components/ota/ota_backend_arduino_rp2040.cpp +9 -2
- esphome/components/ota/ota_backend_arduino_rp2040.h +3 -0
- esphome/components/ota/ota_backend_esp_idf.cpp +10 -16
- esphome/components/ota/ota_backend_esp_idf.h +1 -0
- esphome/components/packages/__init__.py +5 -2
- esphome/components/packet_transport/binary_sensor.py +61 -4
- esphome/components/packet_transport/packet_transport.cpp +34 -1
- esphome/components/packet_transport/packet_transport.h +11 -5
- esphome/components/pcf8574/__init__.py +1 -1
- esphome/components/pi4ioe5v6408/__init__.py +84 -0
- esphome/components/pi4ioe5v6408/pi4ioe5v6408.cpp +171 -0
- esphome/components/pi4ioe5v6408/pi4ioe5v6408.h +70 -0
- esphome/components/pmsa003i/pmsa003i.h +0 -1
- esphome/components/pmsx003/pmsx003.h +0 -1
- esphome/components/pn7150/pn7150.cpp +7 -7
- esphome/components/pn7150/pn7150.h +0 -1
- esphome/components/pn7160/pn7160.cpp +7 -7
- esphome/components/pn7160/pn7160.h +0 -1
- esphome/components/preferences/syncer.h +2 -0
- esphome/components/prometheus/prometheus_handler.h +1 -1
- esphome/components/psram/psram.cpp +0 -20
- esphome/components/pulse_counter/pulse_counter_sensor.h +0 -1
- esphome/components/pulse_meter/pulse_meter_sensor.cpp +8 -4
- esphome/components/pulse_width/pulse_width.h +0 -1
- esphome/components/pvvx_mithermometer/display/pvvx_display.cpp +0 -4
- esphome/components/pvvx_mithermometer/display/pvvx_display.h +0 -2
- esphome/components/pvvx_mithermometer/pvvx_mithermometer.h +0 -1
- esphome/components/qr_code/__init__.py +13 -10
- esphome/components/qwiic_pir/qwiic_pir.h +0 -1
- esphome/components/radon_eye_ble/radon_eye_listener.cpp +1 -1
- esphome/components/rc522/rc522.h +0 -1
- esphome/components/rdm6300/rdm6300.h +0 -2
- esphome/components/remote_base/__init__.py +7 -5
- esphome/components/remote_base/remote_base.cpp +24 -21
- esphome/components/remote_base/remote_base.h +3 -26
- esphome/components/remote_receiver/__init__.py +40 -46
- esphome/components/remote_receiver/remote_receiver.h +4 -18
- esphome/components/remote_receiver/remote_receiver_esp32.cpp +0 -87
- esphome/components/remote_receiver/remote_receiver_esp8266.cpp +1 -1
- esphome/components/remote_transmitter/__init__.py +42 -43
- esphome/components/remote_transmitter/remote_transmitter.h +2 -14
- esphome/components/remote_transmitter/remote_transmitter_esp32.cpp +0 -77
- esphome/components/resistance/resistance_sensor.h +0 -1
- esphome/components/rp2040/__init__.py +2 -0
- esphome/components/rp2040/helpers.cpp +55 -0
- esphome/components/rp2040_pio_led_strip/led_strip.cpp +2 -2
- esphome/components/rpi_dpi_rgb/rpi_dpi_rgb.cpp +0 -4
- esphome/components/rtttl/__init__.py +4 -4
- esphome/components/rtttl/rtttl.cpp +10 -1
- esphome/components/ruuvitag/ruuvitag.h +0 -1
- esphome/components/safe_mode/safe_mode.cpp +2 -0
- esphome/components/safe_mode/safe_mode.h +4 -1
- esphome/components/scd30/scd30.h +0 -1
- esphome/components/scd30/sensor.py +2 -2
- esphome/components/scd4x/scd4x.cpp +61 -54
- esphome/components/scd4x/scd4x.h +17 -15
- esphome/components/scd4x/sensor.py +4 -4
- esphome/components/script/script.h +0 -2
- esphome/components/sdp3x/sensor.py +1 -1
- esphome/components/select/__init__.py +5 -2
- esphome/components/sen5x/sen5x.h +0 -1
- esphome/components/senseair/senseair.h +0 -1
- esphome/components/sensor/__init__.py +4 -2
- esphome/components/sensor/filter.cpp +1 -1
- esphome/components/sensor/sensor.cpp +12 -6
- esphome/components/sensor/sensor.h +13 -5
- esphome/components/servo/servo.cpp +2 -2
- esphome/components/servo/servo.h +0 -1
- esphome/components/sfa30/sfa30.h +0 -1
- esphome/components/sgp30/sgp30.h +0 -1
- esphome/components/sgp4x/sgp4x.h +0 -1
- esphome/components/shelly_dimmer/stm32flash.cpp +1 -2
- esphome/components/sht4x/sht4x.h +0 -1
- esphome/components/sm300d2/sm300d2.h +0 -2
- esphome/components/smt100/sensor.py +8 -4
- esphome/components/smt100/smt100.cpp +5 -5
- esphome/components/smt100/smt100.h +3 -3
- esphome/components/sn74hc595/__init__.py +1 -1
- esphome/components/sn74hc595/sn74hc595.cpp +5 -4
- esphome/components/sntp/sntp_component.cpp +9 -3
- esphome/components/sntp/time.py +2 -0
- esphome/components/socket/__init__.py +17 -0
- esphome/components/spi/__init__.py +27 -6
- esphome/components/spi/spi.cpp +3 -2
- esphome/components/spi/spi.h +9 -3
- esphome/components/spi/spi_arduino.cpp +3 -5
- esphome/components/spi/spi_esp_idf.cpp +40 -21
- esphome/components/spi_led_strip/spi_led_strip.cpp +1 -1
- esphome/components/sps30/sps30.h +0 -1
- esphome/components/ssd1306_base/ssd1306_base.cpp +1 -1
- esphome/components/st7701s/st7701s.cpp +0 -4
- esphome/components/status/status_binary_sensor.h +0 -2
- esphome/components/substitutions/__init__.py +81 -21
- esphome/components/substitutions/jinja.py +99 -0
- esphome/components/sun/sun.cpp +3 -4
- esphome/components/switch/__init__.py +5 -2
- esphome/components/switch/binary_sensor/switch_binary_sensor.h +0 -1
- esphome/components/sx126x/__init__.py +317 -0
- esphome/components/sx126x/automation.h +62 -0
- esphome/components/sx126x/packet_transport/__init__.py +26 -0
- esphome/components/sx126x/packet_transport/sx126x_transport.cpp +26 -0
- esphome/components/sx126x/packet_transport/sx126x_transport.h +25 -0
- esphome/components/sx126x/sx126x.cpp +523 -0
- esphome/components/sx126x/sx126x.h +140 -0
- esphome/components/sx126x/sx126x_reg.h +163 -0
- esphome/components/sx127x/__init__.py +325 -0
- esphome/components/sx127x/automation.h +62 -0
- esphome/components/sx127x/packet_transport/__init__.py +26 -0
- esphome/components/sx127x/packet_transport/sx127x_transport.cpp +26 -0
- esphome/components/sx127x/packet_transport/sx127x_transport.h +25 -0
- esphome/components/sx127x/sx127x.cpp +498 -0
- esphome/components/sx127x/sx127x.h +128 -0
- esphome/components/sx127x/sx127x_reg.h +295 -0
- esphome/components/syslog/esphome_syslog.cpp +5 -3
- esphome/components/syslog/esphome_syslog.h +1 -1
- esphome/components/tca9555/__init__.py +1 -1
- esphome/components/template/binary_sensor/template_binary_sensor.cpp +1 -9
- esphome/components/text/__init__.py +5 -2
- esphome/components/text_sensor/__init__.py +5 -2
- esphome/components/thermostat/thermostat_climate.cpp +34 -31
- esphome/components/thermostat/thermostat_climate.h +43 -39
- esphome/components/time/__init__.py +16 -2
- esphome/components/time/real_time_clock.cpp +4 -0
- esphome/components/time/real_time_clock.h +5 -1
- esphome/components/tlc5971/tlc5971.cpp +4 -1
- esphome/components/tmp1075/tmp1075.h +0 -2
- esphome/components/tof10120/tof10120_sensor.h +0 -1
- esphome/components/tormatic/tormatic_cover.h +0 -1
- esphome/components/total_daily_energy/total_daily_energy.h +0 -1
- esphome/components/tsl2591/tsl2591.cpp +1 -1
- esphome/components/ttp229_bsf/ttp229_bsf.h +0 -1
- esphome/components/ttp229_lsf/ttp229_lsf.h +0 -1
- esphome/components/tx20/tx20.cpp +2 -2
- esphome/components/uart/__init__.py +18 -0
- esphome/components/uart/uart_component_esp_idf.cpp +1 -5
- esphome/components/update/__init__.py +5 -2
- esphome/components/update/update_entity.h +8 -0
- esphome/components/usb_host/__init__.py +5 -2
- esphome/components/usb_host/usb_host_client.cpp +10 -10
- esphome/components/usb_uart/cp210x.cpp +1 -1
- esphome/components/usb_uart/usb_uart.cpp +41 -44
- esphome/components/usb_uart/usb_uart.h +4 -3
- esphome/components/valve/__init__.py +5 -2
- esphome/components/vbus/vbus.h +0 -1
- esphome/components/veml3235/veml3235.h +0 -1
- esphome/components/veml7700/veml7700.h +0 -1
- esphome/components/vl53l0x/vl53l0x_sensor.h +0 -1
- esphome/components/voice_assistant/voice_assistant.cpp +4 -4
- esphome/components/watchdog/watchdog.cpp +0 -4
- esphome/components/waveshare_epaper/waveshare_epaper.cpp +6 -6
- esphome/components/web_server/__init__.py +34 -19
- esphome/components/web_server/ota/__init__.py +32 -0
- esphome/components/web_server/ota/ota_web_server.cpp +210 -0
- esphome/components/web_server/ota/ota_web_server.h +26 -0
- esphome/components/web_server/web_server.cpp +324 -439
- esphome/components/web_server/web_server.h +33 -23
- esphome/components/web_server/web_server_v1.cpp +4 -5
- esphome/components/web_server_base/__init__.py +5 -2
- esphome/components/web_server_base/web_server_base.cpp +2 -94
- esphome/components/web_server_base/web_server_base.h +5 -25
- esphome/components/web_server_idf/multipart.cpp +254 -0
- esphome/components/web_server_idf/multipart.h +86 -0
- esphome/components/web_server_idf/utils.cpp +32 -0
- esphome/components/web_server_idf/utils.h +10 -0
- esphome/components/web_server_idf/web_server_idf.cpp +164 -16
- esphome/components/web_server_idf/web_server_idf.h +11 -10
- esphome/components/wiegand/wiegand.cpp +2 -2
- esphome/components/wifi/__init__.py +18 -0
- esphome/components/wifi/wifi_component.cpp +17 -22
- esphome/components/wifi/wifi_component.h +27 -23
- esphome/components/wifi/wifi_component_esp32_arduino.cpp +52 -59
- esphome/components/wifi/wifi_component_esp8266.cpp +46 -46
- esphome/components/wifi/wifi_component_esp_idf.cpp +35 -36
- esphome/components/wifi/wifi_component_libretiny.cpp +26 -27
- esphome/components/wifi/wifi_component_pico_w.cpp +3 -3
- esphome/components/wifi_info/wifi_info_text_sensor.cpp +6 -6
- esphome/components/wireguard/__init__.py +2 -11
- esphome/components/xiaomi_ble/xiaomi_ble.cpp +13 -1
- esphome/components/xiaomi_ble/xiaomi_ble.h +1 -0
- esphome/components/xiaomi_cgd1/xiaomi_cgd1.h +0 -1
- esphome/components/xiaomi_cgdk2/xiaomi_cgdk2.h +0 -1
- esphome/components/xiaomi_cgg1/xiaomi_cgg1.h +0 -1
- esphome/components/xiaomi_cgpr1/xiaomi_cgpr1.h +0 -1
- esphome/components/xiaomi_gcls002/xiaomi_gcls002.h +0 -1
- esphome/components/xiaomi_hhccjcy01/xiaomi_hhccjcy01.h +0 -1
- esphome/components/xiaomi_hhccjcy10/xiaomi_hhccjcy10.h +0 -1
- esphome/components/xiaomi_hhccpot002/xiaomi_hhccpot002.h +0 -1
- esphome/components/xiaomi_jqjcy01ym/xiaomi_jqjcy01ym.h +0 -1
- esphome/components/xiaomi_lywsd02/xiaomi_lywsd02.h +0 -1
- esphome/components/xiaomi_lywsd02mmc/xiaomi_lywsd02mmc.h +0 -1
- esphome/components/xiaomi_lywsd03mmc/xiaomi_lywsd03mmc.h +0 -1
- esphome/components/xiaomi_lywsdcgq/xiaomi_lywsdcgq.h +0 -1
- esphome/components/xiaomi_mhoc303/xiaomi_mhoc303.h +0 -1
- esphome/components/xiaomi_mhoc401/xiaomi_mhoc401.h +0 -1
- esphome/components/xiaomi_miscale/xiaomi_miscale.h +0 -1
- esphome/components/xiaomi_mjyd02yla/xiaomi_mjyd02yla.h +0 -1
- esphome/components/xiaomi_mue4094rt/xiaomi_mue4094rt.h +0 -1
- esphome/components/xiaomi_rtcgq02lm/xiaomi_rtcgq02lm.h +0 -1
- esphome/components/xiaomi_wx08zm/xiaomi_wx08zm.h +0 -1
- esphome/components/xiaomi_xmwsdj04mmc/__init__.py +0 -0
- esphome/components/xiaomi_xmwsdj04mmc/sensor.py +77 -0
- esphome/components/xiaomi_xmwsdj04mmc/xiaomi_xmwsdj04mmc.cpp +77 -0
- esphome/components/xiaomi_xmwsdj04mmc/xiaomi_xmwsdj04mmc.h +36 -0
- esphome/components/zio_ultrasonic/zio_ultrasonic.h +0 -2
- esphome/components/zyaura/zyaura.h +0 -1
- esphome/config.py +88 -22
- esphome/config_helpers.py +74 -1
- esphome/config_validation.py +12 -1
- esphome/const.py +65 -10
- esphome/core/__init__.py +18 -2
- esphome/core/application.cpp +169 -10
- esphome/core/application.h +145 -165
- esphome/core/area.h +19 -0
- esphome/core/automation.h +58 -9
- esphome/core/color.cpp +3 -5
- esphome/core/color.h +16 -16
- esphome/core/component.cpp +156 -22
- esphome/core/component.h +98 -4
- esphome/core/component_iterator.cpp +11 -9
- esphome/core/component_iterator.h +12 -10
- esphome/core/config.py +155 -6
- esphome/core/controller.cpp +4 -2
- esphome/core/controller.h +1 -1
- esphome/core/datatypes.h +2 -2
- esphome/core/defines.h +17 -2
- esphome/core/device.h +20 -0
- esphome/core/entity_base.cpp +20 -15
- esphome/core/entity_base.h +76 -0
- esphome/core/entity_helpers.py +168 -1
- esphome/core/event_pool.h +81 -0
- esphome/core/helpers.cpp +75 -230
- esphome/core/helpers.h +165 -105
- esphome/core/lock_free_queue.h +151 -0
- esphome/core/log.cpp +2 -2
- esphome/core/log.h +2 -0
- esphome/core/optional.h +5 -0
- esphome/core/ring_buffer.cpp +2 -2
- esphome/core/scheduler.cpp +275 -103
- esphome/core/scheduler.h +154 -17
- esphome/core/time.cpp +5 -5
- esphome/core/time.h +5 -5
- esphome/cpp_generator.py +17 -0
- esphome/cpp_helpers.py +0 -22
- esphome/cpp_types.py +3 -1
- esphome/dashboard/entries.py +1 -1
- esphome/dashboard/util/text.py +5 -21
- esphome/dashboard/web_server.py +9 -1
- esphome/helpers.py +47 -0
- esphome/loader.py +15 -1
- esphome/pins.py +14 -8
- esphome/platformio_api.py +2 -0
- esphome/wizard.py +17 -4
- esphome/writer.py +44 -3
- esphome/yaml_util.py +0 -2
- {esphome-2025.6.2.dist-info → esphome-2025.7.0.dist-info}/METADATA +10 -9
- {esphome-2025.6.2.dist-info → esphome-2025.7.0.dist-info}/RECORD +639 -580
- esphome/components/api/api_pb2_size.h +0 -361
- esphome/components/esp32_ble/ble_event_pool.h +0 -72
- esphome/components/esp32_ble/queue.h +0 -85
- esphome/components/esp32_hall/esp32_hall.cpp +0 -25
- esphome/components/esp32_hall/esp32_hall.h +0 -23
- esphome/components/esp32_touch/esp32_touch.cpp +0 -355
- esphome/components/ld2410/button/reset_button.cpp +0 -9
- esphome/components/ld2450/button/reset_button.cpp +0 -9
- esphome/components/openthread/tlv.py +0 -65
- /esphome/{dashboard/enum.py → enum.py} +0 -0
- {esphome-2025.6.2.dist-info → esphome-2025.7.0.dist-info}/WHEEL +0 -0
- {esphome-2025.6.2.dist-info → esphome-2025.7.0.dist-info}/entry_points.txt +0 -0
- {esphome-2025.6.2.dist-info → esphome-2025.7.0.dist-info}/licenses/LICENSE +0 -0
- {esphome-2025.6.2.dist-info → esphome-2025.7.0.dist-info}/top_level.txt +0 -0
|
@@ -16,88 +16,19 @@
|
|
|
16
16
|
#ifdef USE_BUTTON
|
|
17
17
|
#include "esphome/components/button/button.h"
|
|
18
18
|
#endif
|
|
19
|
-
#include <map>
|
|
20
|
-
#include <functional>
|
|
21
19
|
|
|
22
20
|
namespace esphome {
|
|
23
21
|
namespace ld2420 {
|
|
24
22
|
|
|
25
|
-
// Local const's
|
|
26
|
-
static const uint16_t REFRESH_RATE_MS = 1000;
|
|
27
|
-
|
|
28
|
-
// Command sets
|
|
29
|
-
static const uint8_t CMD_ABD_DATA_REPLY_SIZE = 0x04;
|
|
30
|
-
static const uint8_t CMD_ABD_DATA_REPLY_START = 0x0A;
|
|
31
|
-
static const uint16_t CMD_DISABLE_CONF = 0x00FE;
|
|
32
|
-
static const uint16_t CMD_ENABLE_CONF = 0x00FF;
|
|
33
|
-
static const uint8_t CMD_MAX_BYTES = 0x64;
|
|
34
|
-
static const uint16_t CMD_PARM_HIGH_TRESH = 0x0012;
|
|
35
|
-
static const uint16_t CMD_PARM_LOW_TRESH = 0x0021;
|
|
36
|
-
static const uint16_t CMD_PROTOCOL_VER = 0x0002;
|
|
37
|
-
static const uint16_t CMD_READ_ABD_PARAM = 0x0008;
|
|
38
|
-
static const uint16_t CMD_READ_REG_ADDR = 0x0020;
|
|
39
|
-
static const uint16_t CMD_READ_REGISTER = 0x0002;
|
|
40
|
-
static const uint16_t CMD_READ_SERIAL_NUM = 0x0011;
|
|
41
|
-
static const uint16_t CMD_READ_SYS_PARAM = 0x0013;
|
|
42
|
-
static const uint16_t CMD_READ_VERSION = 0x0000;
|
|
43
|
-
static const uint8_t CMD_REG_DATA_REPLY_SIZE = 0x02;
|
|
44
|
-
static const uint16_t CMD_RESTART = 0x0068;
|
|
45
|
-
static const uint16_t CMD_SYSTEM_MODE = 0x0000;
|
|
46
|
-
static const uint16_t CMD_SYSTEM_MODE_GR = 0x0003;
|
|
47
|
-
static const uint16_t CMD_SYSTEM_MODE_MTT = 0x0001;
|
|
48
|
-
static const uint16_t CMD_SYSTEM_MODE_SIMPLE = 0x0064;
|
|
49
|
-
static const uint16_t CMD_SYSTEM_MODE_DEBUG = 0x0000;
|
|
50
|
-
static const uint16_t CMD_SYSTEM_MODE_ENERGY = 0x0004;
|
|
51
|
-
static const uint16_t CMD_SYSTEM_MODE_VS = 0x0002;
|
|
52
|
-
static const uint16_t CMD_WRITE_ABD_PARAM = 0x0007;
|
|
53
|
-
static const uint16_t CMD_WRITE_REGISTER = 0x0001;
|
|
54
|
-
static const uint16_t CMD_WRITE_SYS_PARAM = 0x0012;
|
|
55
|
-
|
|
56
|
-
static const uint8_t LD2420_ERROR_NONE = 0x00;
|
|
57
|
-
static const uint8_t LD2420_ERROR_TIMEOUT = 0x02;
|
|
58
|
-
static const uint8_t LD2420_ERROR_UNKNOWN = 0x01;
|
|
59
|
-
static const uint8_t LD2420_TOTAL_GATES = 16;
|
|
60
23
|
static const uint8_t CALIBRATE_SAMPLES = 64;
|
|
24
|
+
static const uint8_t MAX_LINE_LENGTH = 46; // Max characters for serial buffer
|
|
25
|
+
static const uint8_t TOTAL_GATES = 16;
|
|
61
26
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
0x0016, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B,
|
|
68
|
-
0x001C, 0x001D, 0x001E, 0x001F};
|
|
69
|
-
static const uint16_t CMD_GATE_STILL_THRESH[LD2420_TOTAL_GATES] = {0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025,
|
|
70
|
-
0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B,
|
|
71
|
-
0x002C, 0x002D, 0x002E, 0x002F};
|
|
72
|
-
static const uint32_t FACTORY_MOVE_THRESH[LD2420_TOTAL_GATES] = {60000, 30000, 400, 250, 250, 250, 250, 250,
|
|
73
|
-
250, 250, 250, 250, 250, 250, 250, 250};
|
|
74
|
-
static const uint32_t FACTORY_STILL_THRESH[LD2420_TOTAL_GATES] = {40000, 20000, 200, 200, 200, 200, 200, 150,
|
|
75
|
-
150, 100, 100, 100, 100, 100, 100, 100};
|
|
76
|
-
static const uint16_t FACTORY_TIMEOUT = 120;
|
|
77
|
-
static const uint16_t FACTORY_MIN_GATE = 1;
|
|
78
|
-
static const uint16_t FACTORY_MAX_GATE = 12;
|
|
79
|
-
|
|
80
|
-
// COMMAND_BYTE Header & Footer
|
|
81
|
-
static const uint8_t CMD_FRAME_COMMAND = 6;
|
|
82
|
-
static const uint8_t CMD_FRAME_DATA_LENGTH = 4;
|
|
83
|
-
static const uint32_t CMD_FRAME_FOOTER = 0x01020304;
|
|
84
|
-
static const uint32_t CMD_FRAME_HEADER = 0xFAFBFCFD;
|
|
85
|
-
static const uint32_t DEBUG_FRAME_FOOTER = 0xFAFBFCFD;
|
|
86
|
-
static const uint32_t DEBUG_FRAME_HEADER = 0x1410BFAA;
|
|
87
|
-
static const uint32_t ENERGY_FRAME_FOOTER = 0xF5F6F7F8;
|
|
88
|
-
static const uint32_t ENERGY_FRAME_HEADER = 0xF1F2F3F4;
|
|
89
|
-
static const uint8_t CMD_FRAME_STATUS = 7;
|
|
90
|
-
static const uint8_t CMD_ERROR_WORD = 8;
|
|
91
|
-
static const uint8_t ENERGY_SENSOR_START = 9;
|
|
92
|
-
static const uint8_t CALIBRATE_REPORT_INTERVAL = 4;
|
|
93
|
-
static const int CALIBRATE_VERSION_MIN = 154;
|
|
94
|
-
static const std::string OP_NORMAL_MODE_STRING = "Normal";
|
|
95
|
-
static const std::string OP_SIMPLE_MODE_STRING = "Simple";
|
|
96
|
-
|
|
97
|
-
enum OpModeStruct : uint8_t { OP_NORMAL_MODE = 1, OP_CALIBRATE_MODE = 2, OP_SIMPLE_MODE = 3 };
|
|
98
|
-
static const std::map<std::string, uint8_t> OP_MODE_TO_UINT{
|
|
99
|
-
{"Normal", OP_NORMAL_MODE}, {"Calibrate", OP_CALIBRATE_MODE}, {"Simple", OP_SIMPLE_MODE}};
|
|
100
|
-
static constexpr const char *ERR_MESSAGE[] = {"None", "Unknown", "Timeout"};
|
|
27
|
+
enum OpMode : uint8_t {
|
|
28
|
+
OP_NORMAL_MODE = 1,
|
|
29
|
+
OP_CALIBRATE_MODE = 2,
|
|
30
|
+
OP_SIMPLE_MODE = 3,
|
|
31
|
+
};
|
|
101
32
|
|
|
102
33
|
class LD2420Listener {
|
|
103
34
|
public:
|
|
@@ -109,6 +40,23 @@ class LD2420Listener {
|
|
|
109
40
|
|
|
110
41
|
class LD2420Component : public Component, public uart::UARTDevice {
|
|
111
42
|
public:
|
|
43
|
+
struct CmdFrameT {
|
|
44
|
+
uint32_t header{0};
|
|
45
|
+
uint32_t footer{0};
|
|
46
|
+
uint16_t length{0};
|
|
47
|
+
uint16_t command{0};
|
|
48
|
+
uint16_t data_length{0};
|
|
49
|
+
uint8_t data[18];
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
struct RegConfigT {
|
|
53
|
+
uint32_t move_thresh[TOTAL_GATES];
|
|
54
|
+
uint32_t still_thresh[TOTAL_GATES];
|
|
55
|
+
uint16_t min_gate{0};
|
|
56
|
+
uint16_t max_gate{0};
|
|
57
|
+
uint16_t timeout{0};
|
|
58
|
+
};
|
|
59
|
+
|
|
112
60
|
void setup() override;
|
|
113
61
|
void dump_config() override;
|
|
114
62
|
void loop() override;
|
|
@@ -150,23 +98,6 @@ class LD2420Component : public Component, public uart::UARTDevice {
|
|
|
150
98
|
#endif
|
|
151
99
|
void register_listener(LD2420Listener *listener) { this->listeners_.push_back(listener); }
|
|
152
100
|
|
|
153
|
-
struct CmdFrameT {
|
|
154
|
-
uint32_t header{0};
|
|
155
|
-
uint16_t length{0};
|
|
156
|
-
uint16_t command{0};
|
|
157
|
-
uint8_t data[18];
|
|
158
|
-
uint16_t data_length{0};
|
|
159
|
-
uint32_t footer{0};
|
|
160
|
-
};
|
|
161
|
-
|
|
162
|
-
struct RegConfigT {
|
|
163
|
-
uint16_t min_gate{0};
|
|
164
|
-
uint16_t max_gate{0};
|
|
165
|
-
uint16_t timeout{0};
|
|
166
|
-
uint32_t move_thresh[LD2420_TOTAL_GATES];
|
|
167
|
-
uint32_t still_thresh[LD2420_TOTAL_GATES];
|
|
168
|
-
};
|
|
169
|
-
|
|
170
101
|
void send_module_restart();
|
|
171
102
|
void restart_module_action();
|
|
172
103
|
void apply_config_action();
|
|
@@ -179,23 +110,28 @@ class LD2420Component : public Component, public uart::UARTDevice {
|
|
|
179
110
|
void set_operating_mode(const std::string &state);
|
|
180
111
|
void auto_calibrate_sensitivity();
|
|
181
112
|
void update_radar_data(uint16_t const *gate_energy, uint8_t sample_number);
|
|
182
|
-
uint8_t
|
|
113
|
+
uint8_t set_config_mode(bool enable);
|
|
114
|
+
void set_min_max_distances_timeout(uint32_t max_gate_distance, uint32_t min_gate_distance, uint32_t timeout);
|
|
115
|
+
void set_gate_threshold(uint8_t gate);
|
|
116
|
+
void set_reg_value(uint16_t reg, uint16_t value);
|
|
117
|
+
void set_system_mode(uint16_t mode);
|
|
118
|
+
void ld2420_restart();
|
|
183
119
|
|
|
184
|
-
RegConfigT current_config;
|
|
185
|
-
RegConfigT new_config;
|
|
186
|
-
int32_t last_periodic_millis = millis();
|
|
187
|
-
int32_t report_periodic_millis = millis();
|
|
188
|
-
int32_t monitor_periodic_millis = millis();
|
|
189
|
-
int32_t last_normal_periodic_millis = millis();
|
|
190
|
-
bool output_energy_state{false};
|
|
191
|
-
uint8_t current_operating_mode{OP_NORMAL_MODE};
|
|
192
|
-
uint16_t radar_data[LD2420_TOTAL_GATES][CALIBRATE_SAMPLES];
|
|
193
|
-
uint16_t gate_avg[LD2420_TOTAL_GATES];
|
|
194
|
-
uint16_t gate_peak[LD2420_TOTAL_GATES];
|
|
195
|
-
uint8_t sample_number_counter{0};
|
|
196
|
-
uint16_t total_sample_number_counter{0};
|
|
197
120
|
float gate_move_sensitivity_factor{0.5};
|
|
198
121
|
float gate_still_sensitivity_factor{0.5};
|
|
122
|
+
int32_t last_periodic_millis{0};
|
|
123
|
+
int32_t report_periodic_millis{0};
|
|
124
|
+
int32_t monitor_periodic_millis{0};
|
|
125
|
+
int32_t last_normal_periodic_millis{0};
|
|
126
|
+
uint16_t radar_data[TOTAL_GATES][CALIBRATE_SAMPLES];
|
|
127
|
+
uint16_t gate_avg[TOTAL_GATES];
|
|
128
|
+
uint16_t gate_peak[TOTAL_GATES];
|
|
129
|
+
uint16_t total_sample_number_counter{0};
|
|
130
|
+
uint8_t current_operating_mode{OP_NORMAL_MODE};
|
|
131
|
+
uint8_t sample_number_counter{0};
|
|
132
|
+
bool output_energy_state{false};
|
|
133
|
+
RegConfigT current_config;
|
|
134
|
+
RegConfigT new_config;
|
|
199
135
|
#ifdef USE_SELECT
|
|
200
136
|
select::Select *operating_selector_{nullptr};
|
|
201
137
|
#endif
|
|
@@ -205,24 +141,17 @@ class LD2420Component : public Component, public uart::UARTDevice {
|
|
|
205
141
|
button::Button *restart_module_button_{nullptr};
|
|
206
142
|
button::Button *factory_reset_button_{nullptr};
|
|
207
143
|
#endif
|
|
208
|
-
void set_min_max_distances_timeout(uint32_t max_gate_distance, uint32_t min_gate_distance, uint32_t timeout);
|
|
209
|
-
void set_gate_threshold(uint8_t gate);
|
|
210
|
-
void set_reg_value(uint16_t reg, uint16_t value);
|
|
211
|
-
uint8_t set_config_mode(bool enable);
|
|
212
|
-
void set_system_mode(uint16_t mode);
|
|
213
|
-
void ld2420_restart();
|
|
214
144
|
|
|
215
145
|
protected:
|
|
216
146
|
struct CmdReplyT {
|
|
147
|
+
uint32_t data[4];
|
|
148
|
+
uint16_t error;
|
|
217
149
|
uint8_t command;
|
|
218
150
|
uint8_t status;
|
|
219
|
-
uint32_t data[4];
|
|
220
151
|
uint8_t length;
|
|
221
|
-
uint16_t error;
|
|
222
152
|
volatile bool ack;
|
|
223
153
|
};
|
|
224
154
|
|
|
225
|
-
int get_firmware_int_(const char *version_string);
|
|
226
155
|
void get_firmware_version_();
|
|
227
156
|
int get_gate_threshold_(uint8_t gate);
|
|
228
157
|
void get_reg_value_(uint16_t reg);
|
|
@@ -233,8 +162,6 @@ class LD2420Component : public Component, public uart::UARTDevice {
|
|
|
233
162
|
void set_presence_(bool presence) { this->presence_ = presence; };
|
|
234
163
|
uint16_t get_distance_() { return this->distance_; };
|
|
235
164
|
void set_distance_(uint16_t distance) { this->distance_ = distance; };
|
|
236
|
-
bool get_cmd_active_() { return this->cmd_active_; };
|
|
237
|
-
void set_cmd_active_(bool active) { this->cmd_active_ = active; };
|
|
238
165
|
void handle_simple_mode_(const uint8_t *inbuf, int len);
|
|
239
166
|
void handle_energy_mode_(uint8_t *buffer, int len);
|
|
240
167
|
void handle_ack_data_(uint8_t *buffer, int len);
|
|
@@ -253,17 +180,16 @@ class LD2420Component : public Component, public uart::UARTDevice {
|
|
|
253
180
|
std::vector<number::Number *> gate_move_threshold_numbers_ = std::vector<number::Number *>(16);
|
|
254
181
|
#endif
|
|
255
182
|
|
|
256
|
-
uint16_t
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
183
|
+
uint16_t distance_{0};
|
|
184
|
+
uint16_t system_mode_;
|
|
185
|
+
uint16_t gate_energy_[TOTAL_GATES];
|
|
186
|
+
uint8_t buffer_pos_{0}; // where to resume processing/populating buffer
|
|
187
|
+
uint8_t buffer_data_[MAX_LINE_LENGTH];
|
|
188
|
+
char firmware_ver_[8]{"v0.0.0"};
|
|
261
189
|
bool cmd_active_{false};
|
|
262
|
-
char ld2420_firmware_ver_[8]{"v0.0.0"};
|
|
263
190
|
bool presence_{false};
|
|
264
191
|
bool calibration_{false};
|
|
265
|
-
|
|
266
|
-
uint8_t config_checksum_{0};
|
|
192
|
+
CmdReplyT cmd_reply_;
|
|
267
193
|
std::vector<LD2420Listener *> listeners_{};
|
|
268
194
|
};
|
|
269
195
|
|
|
@@ -3,6 +3,8 @@ from esphome.components import number
|
|
|
3
3
|
import esphome.config_validation as cv
|
|
4
4
|
from esphome.const import (
|
|
5
5
|
CONF_ID,
|
|
6
|
+
CONF_MOVE_THRESHOLD,
|
|
7
|
+
CONF_STILL_THRESHOLD,
|
|
6
8
|
DEVICE_CLASS_DISTANCE,
|
|
7
9
|
ENTITY_CATEGORY_CONFIG,
|
|
8
10
|
ICON_MOTION_SENSOR,
|
|
@@ -31,8 +33,6 @@ LD2420StillThresholdNumbers = ld2420_ns.class_(
|
|
|
31
33
|
)
|
|
32
34
|
CONF_MIN_GATE_DISTANCE = "min_gate_distance"
|
|
33
35
|
CONF_MAX_GATE_DISTANCE = "max_gate_distance"
|
|
34
|
-
CONF_STILL_THRESHOLD = "still_threshold"
|
|
35
|
-
CONF_MOVE_THRESHOLD = "move_threshold"
|
|
36
36
|
CONF_GATE_MOVE_SENSITIVITY = "gate_move_sensitivity"
|
|
37
37
|
CONF_GATE_STILL_SENSITIVITY = "gate_still_sensitivity"
|
|
38
38
|
CONF_GATE_SELECT = "gate_select"
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import esphome.codegen as cg
|
|
2
2
|
from esphome.components import sensor
|
|
3
3
|
import esphome.config_validation as cv
|
|
4
|
-
from esphome.const import
|
|
4
|
+
from esphome.const import (
|
|
5
|
+
CONF_ID,
|
|
6
|
+
CONF_MOVING_DISTANCE,
|
|
7
|
+
DEVICE_CLASS_DISTANCE,
|
|
8
|
+
UNIT_CENTIMETER,
|
|
9
|
+
)
|
|
5
10
|
|
|
6
11
|
from .. import CONF_LD2420_ID, LD2420Component, ld2420_ns
|
|
7
12
|
|
|
8
13
|
LD2420Sensor = ld2420_ns.class_("LD2420Sensor", sensor.Sensor, cg.Component)
|
|
9
14
|
|
|
10
|
-
CONF_MOVING_DISTANCE = "moving_distance"
|
|
11
15
|
CONF_GATE_ENERGY = "gate_energy"
|
|
12
16
|
|
|
13
17
|
CONFIG_SCHEMA = cv.All(
|
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
namespace esphome {
|
|
6
6
|
namespace ld2420 {
|
|
7
7
|
|
|
8
|
-
static const char *const TAG = "
|
|
8
|
+
static const char *const TAG = "ld2420.sensor";
|
|
9
9
|
|
|
10
10
|
void LD2420Sensor::dump_config() {
|
|
11
|
-
ESP_LOGCONFIG(TAG, "
|
|
11
|
+
ESP_LOGCONFIG(TAG, "Sensor:");
|
|
12
12
|
LOG_SENSOR(" ", "Distance", this->distance_sensor_);
|
|
13
13
|
}
|
|
14
14
|
|
|
@@ -27,7 +27,7 @@ class LD2420Sensor : public LD2420Listener, public Component, sensor::Sensor {
|
|
|
27
27
|
|
|
28
28
|
protected:
|
|
29
29
|
sensor::Sensor *distance_sensor_{nullptr};
|
|
30
|
-
std::vector<sensor::Sensor *> energy_sensors_ = std::vector<sensor::Sensor *>(
|
|
30
|
+
std::vector<sensor::Sensor *> energy_sensors_ = std::vector<sensor::Sensor *>(TOTAL_GATES);
|
|
31
31
|
};
|
|
32
32
|
|
|
33
33
|
} // namespace ld2420
|
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
namespace esphome {
|
|
6
6
|
namespace ld2420 {
|
|
7
7
|
|
|
8
|
-
static const char *const TAG = "
|
|
8
|
+
static const char *const TAG = "ld2420.text_sensor";
|
|
9
9
|
|
|
10
10
|
void LD2420TextSensor::dump_config() {
|
|
11
|
-
ESP_LOGCONFIG(TAG, "
|
|
11
|
+
ESP_LOGCONFIG(TAG, "Text Sensor:");
|
|
12
12
|
LOG_TEXT_SENSOR(" ", "Firmware", this->fw_version_text_sensor_);
|
|
13
13
|
}
|
|
14
14
|
|
|
@@ -13,13 +13,13 @@ from esphome.const import (
|
|
|
13
13
|
|
|
14
14
|
from .. import CONF_LD2450_ID, LD2450Component, ld2450_ns
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
FactoryResetButton = ld2450_ns.class_("FactoryResetButton", button.Button)
|
|
17
17
|
RestartButton = ld2450_ns.class_("RestartButton", button.Button)
|
|
18
18
|
|
|
19
19
|
CONFIG_SCHEMA = {
|
|
20
20
|
cv.GenerateID(CONF_LD2450_ID): cv.use_id(LD2450Component),
|
|
21
21
|
cv.Optional(CONF_FACTORY_RESET): button.button_schema(
|
|
22
|
-
|
|
22
|
+
FactoryResetButton,
|
|
23
23
|
device_class=DEVICE_CLASS_RESTART,
|
|
24
24
|
entity_category=ENTITY_CATEGORY_CONFIG,
|
|
25
25
|
icon=ICON_RESTART_ALERT,
|
|
@@ -38,7 +38,7 @@ async def to_code(config):
|
|
|
38
38
|
if factory_reset_config := config.get(CONF_FACTORY_RESET):
|
|
39
39
|
b = await button.new_button(factory_reset_config)
|
|
40
40
|
await cg.register_parented(b, config[CONF_LD2450_ID])
|
|
41
|
-
cg.add(ld2450_component.
|
|
41
|
+
cg.add(ld2450_component.set_factory_reset_button(b))
|
|
42
42
|
if restart_config := config.get(CONF_RESTART):
|
|
43
43
|
b = await button.new_button(restart_config)
|
|
44
44
|
await cg.register_parented(b, config[CONF_LD2450_ID])
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
namespace esphome {
|
|
7
7
|
namespace ld2450 {
|
|
8
8
|
|
|
9
|
-
class
|
|
9
|
+
class FactoryResetButton : public button::Button, public Parented<LD2450Component> {
|
|
10
10
|
public:
|
|
11
|
-
|
|
11
|
+
FactoryResetButton() = default;
|
|
12
12
|
|
|
13
13
|
protected:
|
|
14
14
|
void press_action() override;
|