esphome 2025.6.2__py3-none-any.whl → 2025.7.0b1__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.
Potentially problematic release.
This version of esphome might be problematic. Click here for more details.
- 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 +42 -20
- esphome/components/api/api_connection.cpp +318 -391
- esphome/components/api/api_connection.h +206 -126
- esphome/components/api/api_frame_helper.cpp +89 -124
- esphome/components/api/api_frame_helper.h +57 -45
- esphome/components/api/api_pb2.cpp +414 -4350
- esphome/components/api/api_pb2.h +287 -198
- esphome/components/api/api_pb2_dump.cpp +4333 -0
- esphome/components/api/api_pb2_service.cpp +180 -425
- esphome/components/api/api_pb2_service.h +7 -6
- esphome/components/api/api_pb2_size.h +2 -4
- esphome/components/api/api_server.cpp +138 -167
- esphome/components/api/api_server.h +66 -12
- esphome/components/api/client.py +10 -4
- esphome/components/api/list_entities.cpp +36 -105
- esphome/components/api/list_entities.h +31 -23
- esphome/components/api/proto.h +26 -3
- esphome/components/api/subscribe_state.cpp +23 -29
- esphome/components/api/subscribe_state.h +26 -19
- 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/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 +102 -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 +111 -97
- 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 +238 -0
- esphome/components/esp32_touch/esp32_touch_v2.cpp +397 -0
- esphome/components/esp8266/__init__.py +1 -0
- esphome/components/esp8266/gpio.cpp +10 -10
- esphome/components/esp8266/helpers.cpp +31 -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/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 +17 -0
- 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 +2 -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 +28 -9
- 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/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/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 +430 -261
- 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/ld2420.cpp +196 -100
- esphome/components/ld2420/ld2420.h +46 -118
- esphome/components/ld2420/number/__init__.py +2 -2
- esphome/components/ld2420/sensor/__init__.py +6 -2
- esphome/components/ld2420/sensor/ld2420_sensor.h +1 -1
- 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 +4 -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_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/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_backend.h +2 -1
- esphome/components/mqtt/mqtt_backend_esp32.cpp +126 -45
- esphome/components/mqtt/mqtt_backend_esp32.h +106 -4
- esphome/components/mqtt/mqtt_client.cpp +15 -9
- esphome/components/mqtt/mqtt_client.h +8 -3
- 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 +5 -0
- esphome/components/online_image/online_image.cpp +6 -2
- esphome/components/online_image/online_image.h +4 -1
- esphome/components/opentherm/opentherm.cpp +7 -12
- 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 +31 -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 +1 -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.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 +76 -19
- 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/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 +311 -430
- 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 +162 -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 +163 -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 +151 -18
- esphome/core/component.h +98 -4
- esphome/core/component_iterator.cpp +7 -7
- esphome/core/component_iterator.h +9 -7
- 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 +162 -1
- esphome/core/event_pool.h +81 -0
- esphome/core/helpers.cpp +75 -230
- esphome/core/helpers.h +164 -104
- 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 +278 -103
- esphome/core/scheduler.h +157 -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/wizard.py +16 -3
- esphome/writer.py +21 -3
- esphome/yaml_util.py +0 -2
- {esphome-2025.6.2.dist-info → esphome-2025.7.0b1.dist-info}/METADATA +10 -9
- {esphome-2025.6.2.dist-info → esphome-2025.7.0b1.dist-info}/RECORD +593 -533
- 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.0b1.dist-info}/WHEEL +0 -0
- {esphome-2025.6.2.dist-info → esphome-2025.7.0b1.dist-info}/entry_points.txt +0 -0
- {esphome-2025.6.2.dist-info → esphome-2025.7.0b1.dist-info}/licenses/LICENSE +0 -0
- {esphome-2025.6.2.dist-info → esphome-2025.7.0b1.dist-info}/top_level.txt +0 -0
esphome/__main__.py
CHANGED
|
@@ -34,11 +34,9 @@ from esphome.const import (
|
|
|
34
34
|
CONF_PORT,
|
|
35
35
|
CONF_SUBSTITUTIONS,
|
|
36
36
|
CONF_TOPIC,
|
|
37
|
-
PLATFORM_BK72XX,
|
|
38
37
|
PLATFORM_ESP32,
|
|
39
38
|
PLATFORM_ESP8266,
|
|
40
39
|
PLATFORM_RP2040,
|
|
41
|
-
PLATFORM_RTL87XX,
|
|
42
40
|
SECRETS_FILES,
|
|
43
41
|
)
|
|
44
42
|
from esphome.core import CORE, EsphomeError, coroutine
|
|
@@ -354,7 +352,7 @@ def upload_program(config, args, host):
|
|
|
354
352
|
if CORE.target_platform in (PLATFORM_RP2040):
|
|
355
353
|
return upload_using_platformio(config, args.device)
|
|
356
354
|
|
|
357
|
-
if CORE.
|
|
355
|
+
if CORE.is_libretiny:
|
|
358
356
|
return upload_using_platformio(config, host)
|
|
359
357
|
|
|
360
358
|
return 1 # Unknown target platform
|
esphome/codegen.py
CHANGED
|
@@ -22,6 +22,7 @@ from esphome.cpp_generator import ( # noqa: F401
|
|
|
22
22
|
TemplateArguments,
|
|
23
23
|
add,
|
|
24
24
|
add_build_flag,
|
|
25
|
+
add_build_unflag,
|
|
25
26
|
add_define,
|
|
26
27
|
add_global,
|
|
27
28
|
add_library,
|
|
@@ -34,6 +35,7 @@ from esphome.cpp_generator import ( # noqa: F401
|
|
|
34
35
|
process_lambda,
|
|
35
36
|
progmem_array,
|
|
36
37
|
safe_exp,
|
|
38
|
+
set_cpp_standard,
|
|
37
39
|
statement,
|
|
38
40
|
static_const_array,
|
|
39
41
|
templatable,
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
#include "esphome/core/helpers.h"
|
|
5
5
|
#include "esphome/core/log.h"
|
|
6
6
|
#include <cmath>
|
|
7
|
+
#include <numbers>
|
|
7
8
|
|
|
8
9
|
#ifdef USE_ESP8266
|
|
9
10
|
#include <core_esp8266_waveform.h>
|
|
@@ -193,18 +194,17 @@ void AcDimmer::setup() {
|
|
|
193
194
|
setTimer1Callback(&timer_interrupt);
|
|
194
195
|
#endif
|
|
195
196
|
#ifdef USE_ESP32
|
|
196
|
-
//
|
|
197
|
-
dimmer_timer = timerBegin(
|
|
198
|
-
timerAttachInterrupt(dimmer_timer, &AcDimmerDataStore::s_timer_intr
|
|
197
|
+
// timer frequency of 1mhz
|
|
198
|
+
dimmer_timer = timerBegin(1000000);
|
|
199
|
+
timerAttachInterrupt(dimmer_timer, &AcDimmerDataStore::s_timer_intr);
|
|
199
200
|
// For ESP32, we can't use dynamic interval calculation because the timerX functions
|
|
200
201
|
// are not callable from ISR (placed in flash storage).
|
|
201
202
|
// Here we just use an interrupt firing every 50 µs.
|
|
202
|
-
|
|
203
|
-
timerAlarmEnable(dimmer_timer);
|
|
203
|
+
timerAlarm(dimmer_timer, 50, true, 0);
|
|
204
204
|
#endif
|
|
205
205
|
}
|
|
206
206
|
void AcDimmer::write_state(float state) {
|
|
207
|
-
state = std::acos(1 - (2 * state)) /
|
|
207
|
+
state = std::acos(1 - (2 * state)) / std::numbers::pi; // RMS power compensation
|
|
208
208
|
auto new_value = static_cast<uint16_t>(roundf(state * 65535));
|
|
209
209
|
if (new_value != 0 && this->store_.value == 0)
|
|
210
210
|
this->store_.init_cycle = this->init_with_half_cycle_;
|
|
@@ -10,8 +10,15 @@ from esphome.components.esp32.const import (
|
|
|
10
10
|
VARIANT_ESP32S2,
|
|
11
11
|
VARIANT_ESP32S3,
|
|
12
12
|
)
|
|
13
|
+
from esphome.config_helpers import filter_source_files_from_platform
|
|
13
14
|
import esphome.config_validation as cv
|
|
14
|
-
from esphome.const import
|
|
15
|
+
from esphome.const import (
|
|
16
|
+
CONF_ANALOG,
|
|
17
|
+
CONF_INPUT,
|
|
18
|
+
CONF_NUMBER,
|
|
19
|
+
PLATFORM_ESP8266,
|
|
20
|
+
PlatformFramework,
|
|
21
|
+
)
|
|
15
22
|
from esphome.core import CORE
|
|
16
23
|
|
|
17
24
|
CODEOWNERS = ["@esphome/core"]
|
|
@@ -229,3 +236,20 @@ def validate_adc_pin(value):
|
|
|
229
236
|
)(value)
|
|
230
237
|
|
|
231
238
|
raise NotImplementedError
|
|
239
|
+
|
|
240
|
+
|
|
241
|
+
FILTER_SOURCE_FILES = filter_source_files_from_platform(
|
|
242
|
+
{
|
|
243
|
+
"adc_sensor_esp32.cpp": {
|
|
244
|
+
PlatformFramework.ESP32_ARDUINO,
|
|
245
|
+
PlatformFramework.ESP32_IDF,
|
|
246
|
+
},
|
|
247
|
+
"adc_sensor_esp8266.cpp": {PlatformFramework.ESP8266_ARDUINO},
|
|
248
|
+
"adc_sensor_rp2040.cpp": {PlatformFramework.RP2040_ARDUINO},
|
|
249
|
+
"adc_sensor_libretiny.cpp": {
|
|
250
|
+
PlatformFramework.BK72XX_ARDUINO,
|
|
251
|
+
PlatformFramework.RTL87XX_ARDUINO,
|
|
252
|
+
PlatformFramework.LN882X_ARDUINO,
|
|
253
|
+
},
|
|
254
|
+
}
|
|
255
|
+
)
|
|
@@ -15,8 +15,7 @@ namespace adc {
|
|
|
15
15
|
|
|
16
16
|
#ifdef USE_ESP32
|
|
17
17
|
// clang-format off
|
|
18
|
-
#if (ESP_IDF_VERSION_MAJOR ==
|
|
19
|
-
(ESP_IDF_VERSION_MAJOR == 5 && \
|
|
18
|
+
#if (ESP_IDF_VERSION_MAJOR == 5 && \
|
|
20
19
|
((ESP_IDF_VERSION_MINOR == 0 && ESP_IDF_VERSION_PATCH >= 5) || \
|
|
21
20
|
(ESP_IDF_VERSION_MINOR == 1 && ESP_IDF_VERSION_PATCH >= 3) || \
|
|
22
21
|
(ESP_IDF_VERSION_MINOR >= 2)) \
|
|
@@ -28,19 +27,24 @@ static const adc_atten_t ADC_ATTEN_DB_12_COMPAT = ADC_ATTEN_DB_11;
|
|
|
28
27
|
#endif
|
|
29
28
|
#endif // USE_ESP32
|
|
30
29
|
|
|
31
|
-
enum class SamplingMode : uint8_t {
|
|
30
|
+
enum class SamplingMode : uint8_t {
|
|
31
|
+
AVG = 0,
|
|
32
|
+
MIN = 1,
|
|
33
|
+
MAX = 2,
|
|
34
|
+
};
|
|
35
|
+
|
|
32
36
|
const LogString *sampling_mode_to_str(SamplingMode mode);
|
|
33
37
|
|
|
34
38
|
class Aggregator {
|
|
35
39
|
public:
|
|
40
|
+
Aggregator(SamplingMode mode);
|
|
36
41
|
void add_sample(uint32_t value);
|
|
37
42
|
uint32_t aggregate();
|
|
38
|
-
Aggregator(SamplingMode mode);
|
|
39
43
|
|
|
40
44
|
protected:
|
|
41
|
-
SamplingMode mode_{SamplingMode::AVG};
|
|
42
45
|
uint32_t aggr_{0};
|
|
43
46
|
uint32_t samples_{0};
|
|
47
|
+
SamplingMode mode_{SamplingMode::AVG};
|
|
44
48
|
};
|
|
45
49
|
|
|
46
50
|
class ADCSensor : public sensor::Sensor, public PollingComponent, public voltage_sampler::VoltageSampler {
|
|
@@ -81,9 +85,9 @@ class ADCSensor : public sensor::Sensor, public PollingComponent, public voltage
|
|
|
81
85
|
#endif // USE_RP2040
|
|
82
86
|
|
|
83
87
|
protected:
|
|
84
|
-
InternalGPIOPin *pin_;
|
|
85
|
-
bool output_raw_{false};
|
|
86
88
|
uint8_t sample_count_{1};
|
|
89
|
+
bool output_raw_{false};
|
|
90
|
+
InternalGPIOPin *pin_;
|
|
87
91
|
SamplingMode sampling_mode_{SamplingMode::AVG};
|
|
88
92
|
|
|
89
93
|
#ifdef USE_RP2040
|
|
@@ -95,11 +99,7 @@ class ADCSensor : public sensor::Sensor, public PollingComponent, public voltage
|
|
|
95
99
|
adc1_channel_t channel1_{ADC1_CHANNEL_MAX};
|
|
96
100
|
adc2_channel_t channel2_{ADC2_CHANNEL_MAX};
|
|
97
101
|
bool autorange_{false};
|
|
98
|
-
#if ESP_IDF_VERSION_MAJOR >= 5
|
|
99
102
|
esp_adc_cal_characteristics_t cal_characteristics_[SOC_ADC_ATTEN_NUM] = {};
|
|
100
|
-
#else
|
|
101
|
-
esp_adc_cal_characteristics_t cal_characteristics_[ADC_ATTEN_MAX] = {};
|
|
102
|
-
#endif // ESP_IDF_VERSION_MAJOR
|
|
103
103
|
#endif // USE_ESP32
|
|
104
104
|
};
|
|
105
105
|
|
|
@@ -61,7 +61,7 @@ uint32_t Aggregator::aggregate() {
|
|
|
61
61
|
|
|
62
62
|
void ADCSensor::update() {
|
|
63
63
|
float value_v = this->sample();
|
|
64
|
-
ESP_LOGV(TAG, "'%s':
|
|
64
|
+
ESP_LOGV(TAG, "'%s': Voltage=%.4fV", this->get_name().c_str(), value_v);
|
|
65
65
|
this->publish_state(value_v);
|
|
66
66
|
}
|
|
67
67
|
|
|
@@ -55,32 +55,40 @@ void ADCSensor::setup() {
|
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
void ADCSensor::dump_config() {
|
|
58
|
+
static const char *const ATTEN_AUTO_STR = "auto";
|
|
59
|
+
static const char *const ATTEN_0DB_STR = "0 db";
|
|
60
|
+
static const char *const ATTEN_2_5DB_STR = "2.5 db";
|
|
61
|
+
static const char *const ATTEN_6DB_STR = "6 db";
|
|
62
|
+
static const char *const ATTEN_12DB_STR = "12 db";
|
|
63
|
+
const char *atten_str = ATTEN_AUTO_STR;
|
|
64
|
+
|
|
58
65
|
LOG_SENSOR("", "ADC Sensor", this);
|
|
59
66
|
LOG_PIN(" Pin: ", this->pin_);
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
} else {
|
|
67
|
+
|
|
68
|
+
if (!this->autorange_) {
|
|
63
69
|
switch (this->attenuation_) {
|
|
64
70
|
case ADC_ATTEN_DB_0:
|
|
65
|
-
|
|
71
|
+
atten_str = ATTEN_0DB_STR;
|
|
66
72
|
break;
|
|
67
73
|
case ADC_ATTEN_DB_2_5:
|
|
68
|
-
|
|
74
|
+
atten_str = ATTEN_2_5DB_STR;
|
|
69
75
|
break;
|
|
70
76
|
case ADC_ATTEN_DB_6:
|
|
71
|
-
|
|
77
|
+
atten_str = ATTEN_6DB_STR;
|
|
72
78
|
break;
|
|
73
79
|
case ADC_ATTEN_DB_12_COMPAT:
|
|
74
|
-
|
|
80
|
+
atten_str = ATTEN_12DB_STR;
|
|
75
81
|
break;
|
|
76
82
|
default: // This is to satisfy the unused ADC_ATTEN_MAX
|
|
77
83
|
break;
|
|
78
84
|
}
|
|
79
85
|
}
|
|
86
|
+
|
|
80
87
|
ESP_LOGCONFIG(TAG,
|
|
88
|
+
" Attenuation: %s\n"
|
|
81
89
|
" Samples: %i\n"
|
|
82
90
|
" Sampling mode: %s",
|
|
83
|
-
this->sample_count_, LOG_STR_ARG(sampling_mode_to_str(this->sampling_mode_)));
|
|
91
|
+
atten_str, this->sample_count_, LOG_STR_ARG(sampling_mode_to_str(this->sampling_mode_)));
|
|
84
92
|
LOG_UPDATE_INTERVAL(this);
|
|
85
93
|
}
|
|
86
94
|
|
|
@@ -85,8 +85,6 @@ class ADE7880 : public i2c::I2CDevice, public PollingComponent {
|
|
|
85
85
|
|
|
86
86
|
void dump_config() override;
|
|
87
87
|
|
|
88
|
-
float get_setup_priority() const override { return setup_priority::DATA; }
|
|
89
|
-
|
|
90
88
|
protected:
|
|
91
89
|
ADE7880Store store_{};
|
|
92
90
|
InternalGPIOPin *irq0_pin_{nullptr};
|
|
@@ -49,7 +49,6 @@ class ADS1115Component : public Component, public i2c::I2CDevice {
|
|
|
49
49
|
void setup() override;
|
|
50
50
|
void dump_config() override;
|
|
51
51
|
/// HARDWARE_LATE setup priority
|
|
52
|
-
float get_setup_priority() const override { return setup_priority::DATA; }
|
|
53
52
|
void set_continuous_mode(bool continuous_mode) { continuous_mode_ = continuous_mode; }
|
|
54
53
|
|
|
55
54
|
/// Helper method to request a measurement from a sensor.
|
|
@@ -34,7 +34,6 @@ class ADS1118 : public Component,
|
|
|
34
34
|
ADS1118() = default;
|
|
35
35
|
void setup() override;
|
|
36
36
|
void dump_config() override;
|
|
37
|
-
float get_setup_priority() const override { return setup_priority::DATA; }
|
|
38
37
|
/// Helper method to request a measurement from a sensor.
|
|
39
38
|
float request_measurement(ADS1118Multiplexer multiplexer, ADS1118Gain gain, bool temperature_mode);
|
|
40
39
|
|
esphome/components/ags10/ags10.h
CHANGED
|
@@ -66,7 +66,6 @@ class AIC3204 : public audio_dac::AudioDac, public Component, public i2c::I2CDev
|
|
|
66
66
|
public:
|
|
67
67
|
void setup() override;
|
|
68
68
|
void dump_config() override;
|
|
69
|
-
float get_setup_priority() const override { return setup_priority::DATA; }
|
|
70
69
|
|
|
71
70
|
bool set_mute_off() override;
|
|
72
71
|
bool set_mute_on() override;
|
|
@@ -14,8 +14,8 @@ from esphome.const import (
|
|
|
14
14
|
CONF_WEB_SERVER,
|
|
15
15
|
)
|
|
16
16
|
from esphome.core import CORE, coroutine_with_priority
|
|
17
|
+
from esphome.core.entity_helpers import entity_duplicate_validator, setup_entity
|
|
17
18
|
from esphome.cpp_generator import MockObjClass
|
|
18
|
-
from esphome.cpp_helpers import setup_entity
|
|
19
19
|
|
|
20
20
|
CODEOWNERS = ["@grahambrown11", "@hwstar"]
|
|
21
21
|
IS_PLATFORM_COMPONENT = True
|
|
@@ -149,6 +149,9 @@ _ALARM_CONTROL_PANEL_SCHEMA = (
|
|
|
149
149
|
)
|
|
150
150
|
|
|
151
151
|
|
|
152
|
+
_ALARM_CONTROL_PANEL_SCHEMA.add_extra(entity_duplicate_validator("alarm_control_panel"))
|
|
153
|
+
|
|
154
|
+
|
|
152
155
|
def alarm_control_panel_schema(
|
|
153
156
|
class_: MockObjClass,
|
|
154
157
|
*,
|
|
@@ -190,7 +193,7 @@ ALARM_CONTROL_PANEL_CONDITION_SCHEMA = maybe_simple_id(
|
|
|
190
193
|
|
|
191
194
|
|
|
192
195
|
async def setup_alarm_control_panel_core_(var, config):
|
|
193
|
-
await setup_entity(var, config)
|
|
196
|
+
await setup_entity(var, config, "alarm_control_panel")
|
|
194
197
|
for conf in config.get(CONF_ON_STATE, []):
|
|
195
198
|
trigger = cg.new_Pvariable(conf[CONF_TRIGGER_ID], var)
|
|
196
199
|
await automation.build_automation(trigger, [], conf)
|
|
@@ -41,7 +41,6 @@ class Alpha3 : public esphome::ble_client::BLEClientNode, public PollingComponen
|
|
|
41
41
|
void gattc_event_handler(esp_gattc_cb_event_t event, esp_gatt_if_t gattc_if,
|
|
42
42
|
esp_ble_gattc_cb_param_t *param) override;
|
|
43
43
|
void dump_config() override;
|
|
44
|
-
float get_setup_priority() const override { return setup_priority::DATA; }
|
|
45
44
|
void set_flow_sensor(sensor::Sensor *sensor) { this->flow_sensor_ = sensor; }
|
|
46
45
|
void set_head_sensor(sensor::Sensor *sensor) { this->head_sensor_ = sensor; }
|
|
47
46
|
void set_power_sensor(sensor::Sensor *sensor) { this->power_sensor_ = sensor; }
|
|
@@ -22,7 +22,6 @@ class Am43Component : public cover::Cover, public esphome::ble_client::BLEClient
|
|
|
22
22
|
void gattc_event_handler(esp_gattc_cb_event_t event, esp_gatt_if_t gattc_if,
|
|
23
23
|
esp_ble_gattc_cb_param_t *param) override;
|
|
24
24
|
void dump_config() override;
|
|
25
|
-
float get_setup_priority() const override { return setup_priority::DATA; }
|
|
26
25
|
cover::CoverTraits get_traits() override;
|
|
27
26
|
void set_pin(uint16_t pin) { this->pin_ = pin; }
|
|
28
27
|
void set_invert_position(bool invert_position) { this->invert_position_ = invert_position; }
|
|
@@ -22,7 +22,6 @@ class Am43 : public esphome::ble_client::BLEClientNode, public PollingComponent
|
|
|
22
22
|
void gattc_event_handler(esp_gattc_cb_event_t event, esp_gatt_if_t gattc_if,
|
|
23
23
|
esp_ble_gattc_cb_param_t *param) override;
|
|
24
24
|
void dump_config() override;
|
|
25
|
-
float get_setup_priority() const override { return setup_priority::DATA; }
|
|
26
25
|
void set_battery(sensor::Sensor *battery) { battery_ = battery; }
|
|
27
26
|
void set_illuminance(sensor::Sensor *illuminance) { illuminance_ = illuminance; }
|
|
28
27
|
|
|
@@ -12,8 +12,6 @@ class AnalogThresholdBinarySensor : public Component, public binary_sensor::Bina
|
|
|
12
12
|
void dump_config() override;
|
|
13
13
|
void setup() override;
|
|
14
14
|
|
|
15
|
-
float get_setup_priority() const override { return setup_priority::DATA; }
|
|
16
|
-
|
|
17
15
|
void set_sensor(sensor::Sensor *analog_sensor);
|
|
18
16
|
template<typename T> void set_upper_threshold(T upper_threshold) { this->upper_threshold_ = upper_threshold; }
|
|
19
17
|
template<typename T> void set_lower_threshold(T lower_threshold) { this->lower_threshold_ = lower_threshold; }
|
|
@@ -17,7 +17,11 @@ void Anova::setup() {
|
|
|
17
17
|
this->current_request_ = 0;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
void Anova::loop() {
|
|
20
|
+
void Anova::loop() {
|
|
21
|
+
// Parent BLEClientNode has a loop() method, but this component uses
|
|
22
|
+
// polling via update() and BLE callbacks so loop isn't needed
|
|
23
|
+
this->disable_loop();
|
|
24
|
+
}
|
|
21
25
|
|
|
22
26
|
void Anova::control(const ClimateCall &call) {
|
|
23
27
|
if (call.get_mode().has_value()) {
|
esphome/components/anova/anova.h
CHANGED
|
@@ -26,7 +26,6 @@ class Anova : public climate::Climate, public esphome::ble_client::BLEClientNode
|
|
|
26
26
|
void gattc_event_handler(esp_gattc_cb_event_t event, esp_gatt_if_t gattc_if,
|
|
27
27
|
esp_ble_gattc_cb_param_t *param) override;
|
|
28
28
|
void dump_config() override;
|
|
29
|
-
float get_setup_priority() const override { return setup_priority::DATA; }
|
|
30
29
|
climate::ClimateTraits traits() override {
|
|
31
30
|
auto traits = climate::ClimateTraits();
|
|
32
31
|
traits.set_supports_current_temperature(true);
|
|
@@ -23,7 +23,7 @@ void APDS9960::setup() {
|
|
|
23
23
|
return;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
if (id != 0xAB && id != 0x9C && id != 0xA8) { // APDS9960 all should have one of these IDs
|
|
26
|
+
if (id != 0xAB && id != 0x9C && id != 0xA8 && id != 0x9E) { // APDS9960 all should have one of these IDs
|
|
27
27
|
this->error_code_ = WRONG_ID;
|
|
28
28
|
this->mark_failed();
|
|
29
29
|
return;
|
|
@@ -3,6 +3,7 @@ import base64
|
|
|
3
3
|
from esphome import automation
|
|
4
4
|
from esphome.automation import Condition
|
|
5
5
|
import esphome.codegen as cg
|
|
6
|
+
from esphome.config_helpers import get_logger_level
|
|
6
7
|
import esphome.config_validation as cv
|
|
7
8
|
from esphome.const import (
|
|
8
9
|
CONF_ACTION,
|
|
@@ -110,9 +111,10 @@ CONFIG_SCHEMA = cv.All(
|
|
|
110
111
|
): ACTIONS_SCHEMA,
|
|
111
112
|
cv.Exclusive(CONF_ACTIONS, group_of_exclusion=CONF_ACTIONS): ACTIONS_SCHEMA,
|
|
112
113
|
cv.Optional(CONF_ENCRYPTION): _encryption_schema,
|
|
113
|
-
cv.Optional(
|
|
114
|
-
|
|
115
|
-
|
|
114
|
+
cv.Optional(CONF_BATCH_DELAY, default="100ms"): cv.All(
|
|
115
|
+
cv.positive_time_period_milliseconds,
|
|
116
|
+
cv.Range(max=cv.TimePeriod(milliseconds=65535)),
|
|
117
|
+
),
|
|
116
118
|
cv.Optional(CONF_ON_CLIENT_CONNECTED): automation.validate_automation(
|
|
117
119
|
single=True
|
|
118
120
|
),
|
|
@@ -131,27 +133,32 @@ async def to_code(config):
|
|
|
131
133
|
await cg.register_component(var, config)
|
|
132
134
|
|
|
133
135
|
cg.add(var.set_port(config[CONF_PORT]))
|
|
134
|
-
|
|
136
|
+
if config[CONF_PASSWORD]:
|
|
137
|
+
cg.add_define("USE_API_PASSWORD")
|
|
138
|
+
cg.add(var.set_password(config[CONF_PASSWORD]))
|
|
135
139
|
cg.add(var.set_reboot_timeout(config[CONF_REBOOT_TIMEOUT]))
|
|
136
140
|
cg.add(var.set_batch_delay(config[CONF_BATCH_DELAY]))
|
|
137
141
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
142
|
+
if actions := config.get(CONF_ACTIONS, []):
|
|
143
|
+
cg.add_define("USE_API_YAML_SERVICES")
|
|
144
|
+
for conf in actions:
|
|
145
|
+
template_args = []
|
|
146
|
+
func_args = []
|
|
147
|
+
service_arg_names = []
|
|
148
|
+
for name, var_ in conf[CONF_VARIABLES].items():
|
|
149
|
+
native = SERVICE_ARG_NATIVE_TYPES[var_]
|
|
150
|
+
template_args.append(native)
|
|
151
|
+
func_args.append((native, name))
|
|
152
|
+
service_arg_names.append(name)
|
|
153
|
+
templ = cg.TemplateArguments(*template_args)
|
|
154
|
+
trigger = cg.new_Pvariable(
|
|
155
|
+
conf[CONF_TRIGGER_ID], templ, conf[CONF_ACTION], service_arg_names
|
|
156
|
+
)
|
|
157
|
+
cg.add(var.register_user_service(trigger))
|
|
158
|
+
await automation.build_automation(trigger, func_args, conf)
|
|
153
159
|
|
|
154
160
|
if CONF_ON_CLIENT_CONNECTED in config:
|
|
161
|
+
cg.add_define("USE_API_CLIENT_CONNECTED_TRIGGER")
|
|
155
162
|
await automation.build_automation(
|
|
156
163
|
var.get_client_connected_trigger(),
|
|
157
164
|
[(cg.std_string, "client_info"), (cg.std_string, "client_address")],
|
|
@@ -159,6 +166,7 @@ async def to_code(config):
|
|
|
159
166
|
)
|
|
160
167
|
|
|
161
168
|
if CONF_ON_CLIENT_DISCONNECTED in config:
|
|
169
|
+
cg.add_define("USE_API_CLIENT_DISCONNECTED_TRIGGER")
|
|
162
170
|
await automation.build_automation(
|
|
163
171
|
var.get_client_disconnected_trigger(),
|
|
164
172
|
[(cg.std_string, "client_info"), (cg.std_string, "client_address")],
|
|
@@ -177,7 +185,7 @@ async def to_code(config):
|
|
|
177
185
|
# and plaintext disabled. Only a factory reset can remove it.
|
|
178
186
|
cg.add_define("USE_API_PLAINTEXT")
|
|
179
187
|
cg.add_define("USE_API_NOISE")
|
|
180
|
-
cg.add_library("esphome/noise-c", "0.1.
|
|
188
|
+
cg.add_library("esphome/noise-c", "0.1.10")
|
|
181
189
|
else:
|
|
182
190
|
cg.add_define("USE_API_PLAINTEXT")
|
|
183
191
|
|
|
@@ -306,3 +314,17 @@ async def homeassistant_tag_scanned_to_code(config, action_id, template_arg, arg
|
|
|
306
314
|
@automation.register_condition("api.connected", APIConnectedCondition, {})
|
|
307
315
|
async def api_connected_to_code(config, condition_id, template_arg, args):
|
|
308
316
|
return cg.new_Pvariable(condition_id, template_arg)
|
|
317
|
+
|
|
318
|
+
|
|
319
|
+
def FILTER_SOURCE_FILES() -> list[str]:
|
|
320
|
+
"""Filter out api_pb2_dump.cpp when proto message dumping is not enabled."""
|
|
321
|
+
# api_pb2_dump.cpp is only needed when HAS_PROTO_MESSAGE_DUMP is defined
|
|
322
|
+
# This is a particularly large file that still needs to be opened and read
|
|
323
|
+
# all the way to the end even when ifdef'd out
|
|
324
|
+
#
|
|
325
|
+
# HAS_PROTO_MESSAGE_DUMP is defined when ESPHOME_LOG_HAS_VERY_VERBOSE is set,
|
|
326
|
+
# which happens when the logger level is VERY_VERBOSE
|
|
327
|
+
if get_logger_level() != "VERY_VERBOSE":
|
|
328
|
+
return ["api_pb2_dump.cpp"]
|
|
329
|
+
|
|
330
|
+
return []
|