esphome 2025.5.2__py3-none-any.whl → 2025.6.0b2__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 +20 -14
- esphome/components/a4988/a4988.cpp +1 -1
- esphome/components/absolute_humidity/absolute_humidity.cpp +6 -4
- esphome/components/ac_dimmer/ac_dimmer.cpp +4 -2
- esphome/components/adc/adc_sensor_esp32.cpp +5 -3
- esphome/components/adc/adc_sensor_esp8266.cpp +5 -3
- esphome/components/adc/adc_sensor_libretiny.cpp +5 -3
- esphome/components/adc/adc_sensor_rp2040.cpp +5 -3
- esphome/components/adc128s102/adc128s102.cpp +1 -1
- esphome/components/ade7880/ade7880.cpp +28 -17
- esphome/components/ade7953_base/ade7953_base.cpp +12 -9
- esphome/components/ade7953_i2c/ade7953_i2c.cpp +1 -1
- esphome/components/ade7953_spi/ade7953_spi.cpp +1 -1
- esphome/components/ads1115/ads1115.cpp +3 -5
- esphome/components/ads1118/ads1118.cpp +2 -1
- esphome/components/ags10/ags10.cpp +3 -2
- esphome/components/aht10/aht10.cpp +27 -29
- esphome/components/aic3204/aic3204.cpp +2 -2
- esphome/components/alarm_control_panel/__init__.py +1 -0
- esphome/components/am2315c/am2315c.cpp +2 -2
- esphome/components/am2320/am2320.cpp +2 -2
- esphome/components/am43/am43_base.h +1 -1
- esphome/components/am43/cover/am43_cover.cpp +4 -2
- esphome/components/analog_threshold/analog_threshold_binary_sensor.cpp +4 -2
- esphome/components/apds9306/apds9306.cpp +8 -5
- esphome/components/apds9960/apds9960.cpp +2 -2
- esphome/components/api/__init__.py +5 -0
- esphome/components/api/api_connection.cpp +753 -379
- esphome/components/api/api_connection.h +341 -283
- esphome/components/api/api_frame_helper.cpp +349 -344
- esphome/components/api/api_frame_helper.h +121 -94
- esphome/components/api/api_pb2.cpp +3 -0
- esphome/components/api/api_pb2.h +702 -227
- esphome/components/api/api_pb2_service.cpp +12 -688
- esphome/components/api/api_pb2_service.h +53 -207
- esphome/components/api/api_server.cpp +71 -29
- esphome/components/api/api_server.h +9 -0
- esphome/components/api/client.py +5 -4
- esphome/components/api/homeassistant_service.h +1 -1
- esphome/components/api/list_entities.cpp +1 -1
- esphome/components/api/proto.cpp +1 -0
- esphome/components/api/proto.h +5 -4
- esphome/components/api/subscribe_state.cpp +8 -16
- esphome/components/as3935/as3935.cpp +3 -3
- esphome/components/as5600/as5600.cpp +9 -7
- esphome/components/as7341/as7341.cpp +7 -5
- esphome/components/at581x/at581x.cpp +13 -10
- esphome/components/atm90e26/atm90e26.cpp +2 -2
- esphome/components/atm90e32/atm90e32.cpp +3 -3
- esphome/components/axs15231/touchscreen/axs15231_touchscreen.cpp +5 -3
- esphome/components/bang_bang/bang_bang_climate.cpp +8 -5
- esphome/components/bedjet/bedjet_hub.cpp +6 -4
- esphome/components/beken_spi_led_strip/led_strip.cpp +11 -7
- esphome/components/bh1750/bh1750.cpp +2 -2
- esphome/components/binary_sensor/__init__.py +1 -0
- esphome/components/binary_sensor/automation.cpp +1 -2
- esphome/components/bl0906/bl0906.cpp +1 -1
- esphome/components/bl0942/bl0942.cpp +11 -8
- esphome/components/bl0942/sensor.py +1 -1
- esphome/components/ble_client/__init__.py +5 -1
- esphome/components/ble_client/output/ble_binary_output.cpp +6 -3
- esphome/components/ble_client/sensor/ble_sensor.cpp +9 -6
- esphome/components/ble_client/text_sensor/ble_text_sensor.cpp +8 -5
- esphome/components/bluetooth_proxy/__init__.py +5 -1
- esphome/components/bluetooth_proxy/bluetooth_connection.cpp +5 -5
- esphome/components/bluetooth_proxy/bluetooth_proxy.cpp +18 -16
- esphome/components/bluetooth_proxy/bluetooth_proxy.h +1 -1
- esphome/components/bme280_base/bme280_base.cpp +5 -6
- esphome/components/bme680/bme680.cpp +3 -3
- esphome/components/bme680/sensor.py +2 -2
- esphome/components/bme680_bsec/bme680_bsec.cpp +11 -7
- esphome/components/bme680_bsec/sensor.py +7 -3
- esphome/components/bme68x_bsec2/__init__.py +6 -5
- esphome/components/bme68x_bsec2/bme68x_bsec2.cpp +17 -13
- esphome/components/bme68x_bsec2/sensor.py +4 -4
- esphome/components/bme68x_bsec2_i2c/bme68x_bsec2_i2c.cpp +1 -0
- esphome/components/bmi160/bmi160.cpp +11 -11
- esphome/components/bmp085/bmp085.cpp +2 -2
- esphome/components/bmp280_base/bmp280_base.cpp +3 -3
- esphome/components/bmp3xx_base/bmp3xx_base.cpp +13 -13
- esphome/components/bmp581/bmp581.cpp +33 -27
- esphome/components/bp1658cj/bp1658cj.cpp +5 -3
- esphome/components/bp5758d/bp5758d.cpp +1 -1
- esphome/components/button/__init__.py +1 -0
- esphome/components/canbus/canbus.cpp +1 -1
- esphome/components/cap1188/cap1188.cpp +6 -4
- esphome/components/captive_portal/captive_portal.cpp +1 -1
- esphome/components/ccs811/ccs811.cpp +3 -2
- esphome/components/cd74hc4067/cd74hc4067.cpp +1 -1
- esphome/components/ch422g/ch422g.cpp +2 -2
- esphome/components/chsc6x/chsc6x_touchscreen.cpp +6 -4
- esphome/components/climate/__init__.py +1 -0
- esphome/components/climate/climate.cpp +12 -7
- esphome/components/climate/climate.h +1 -1
- esphome/components/climate_ir/climate_ir.cpp +7 -4
- esphome/components/cm1106/__init__.py +1 -0
- esphome/components/cm1106/cm1106.cpp +112 -0
- esphome/components/cm1106/cm1106.h +40 -0
- esphome/components/cm1106/sensor.py +72 -0
- esphome/components/const/__init__.py +1 -0
- esphome/components/cover/__init__.py +1 -0
- esphome/components/cs5460a/cs5460a.cpp +16 -11
- esphome/components/cse7761/cse7761.cpp +2 -2
- esphome/components/cse7766/cse7766.cpp +0 -5
- esphome/components/cse7766/cse7766.h +5 -1
- esphome/components/cst226/touchscreen/cst226_touchscreen.cpp +1 -1
- esphome/components/cst816/touchscreen/cst816_touchscreen.cpp +6 -3
- esphome/components/current_based/current_based_cover.cpp +4 -2
- esphome/components/dac7678/dac7678_output.cpp +4 -4
- esphome/components/dallas_temp/dallas_temp.cpp +2 -3
- esphome/components/daly_bms/daly_bms.cpp +2 -1
- esphome/components/dashboard_import/__init__.py +1 -2
- esphome/components/datetime/__init__.py +3 -1
- esphome/components/datetime/date_entity.cpp +5 -5
- esphome/components/datetime/datetime_base.h +0 -5
- esphome/components/datetime/datetime_entity.cpp +8 -8
- esphome/components/datetime/time_entity.cpp +4 -4
- esphome/components/debug/debug_component.cpp +1 -1
- esphome/components/debug/debug_component.h +1 -1
- esphome/components/debug/debug_esp32.cpp +4 -2
- esphome/components/deep_sleep/deep_sleep_component.cpp +11 -5
- esphome/components/deep_sleep/deep_sleep_esp32.cpp +7 -5
- esphome/components/demo/__init__.py +206 -0
- esphome/components/demo/demo_alarm_control_panel.h +65 -0
- esphome/components/demo/demo_button.h +15 -0
- esphome/components/demo/demo_date.h +34 -0
- esphome/components/demo/demo_datetime.h +40 -0
- esphome/components/demo/demo_lock.h +17 -0
- esphome/components/demo/demo_select.h +15 -0
- esphome/components/demo/demo_text.h +18 -0
- esphome/components/demo/demo_time.h +34 -0
- esphome/components/demo/demo_valve.h +54 -0
- esphome/components/dfrobot_sen0395/commands.cpp +3 -3
- esphome/components/dht/dht.cpp +29 -50
- esphome/components/dht12/dht12.cpp +2 -2
- esphome/components/display/display.h +5 -3
- esphome/components/dps310/dps310.cpp +7 -5
- esphome/components/ds1307/ds1307.cpp +2 -2
- esphome/components/dsmr/dsmr.cpp +5 -3
- esphome/components/duty_cycle/duty_cycle_sensor.cpp +2 -2
- esphome/components/duty_time/duty_time_sensor.cpp +5 -3
- esphome/components/ee895/ee895.cpp +3 -3
- esphome/components/ektf2232/touchscreen/ektf2232.cpp +1 -1
- esphome/components/emc2101/emc2101.cpp +11 -9
- esphome/components/ens160_base/ens160_base.cpp +2 -2
- esphome/components/ens210/ens210.cpp +2 -2
- esphome/components/es7210/es7210.cpp +6 -4
- esphome/components/es7243e/es7243e.cpp +1 -1
- esphome/components/es8156/es8156.cpp +1 -1
- esphome/components/es8311/es8311.cpp +8 -6
- esphome/components/es8388/__init__.py +0 -0
- esphome/components/es8388/audio_dac.py +26 -0
- esphome/components/es8388/es8388.cpp +289 -0
- esphome/components/es8388/es8388.h +81 -0
- esphome/components/es8388/es8388_const.h +83 -0
- esphome/components/es8388/select/__init__.py +47 -0
- esphome/components/es8388/select/adc_input_mic_select.cpp +12 -0
- esphome/components/es8388/select/adc_input_mic_select.h +15 -0
- esphome/components/es8388/select/dac_output_select.cpp +12 -0
- esphome/components/es8388/select/dac_output_select.h +15 -0
- esphome/components/esp32/__init__.py +118 -23
- esphome/components/esp32/boards.py +208 -125
- esphome/components/esp32/const.py +6 -0
- esphome/components/esp32/gpio.py +14 -1
- esphome/components/esp32/gpio_esp32_c5.py +45 -0
- esphome/components/esp32/gpio_esp32_p4.py +43 -0
- esphome/components/esp32/preferences.cpp +7 -7
- esphome/components/esp32_ble/__init__.py +115 -0
- esphome/components/esp32_ble/ble.cpp +101 -54
- esphome/components/esp32_ble/ble.h +24 -5
- esphome/components/esp32_ble/ble_event.h +172 -32
- esphome/components/esp32_ble/ble_scan_result.h +24 -0
- esphome/components/esp32_ble/ble_uuid.h +1 -1
- esphome/components/esp32_ble/queue.h +53 -27
- esphome/components/esp32_ble_client/ble_client_base.cpp +4 -2
- esphome/components/esp32_ble_server/__init__.py +4 -1
- esphome/components/esp32_ble_server/ble_characteristic.cpp +1 -0
- esphome/components/esp32_ble_server/ble_server.h +0 -1
- esphome/components/esp32_ble_tracker/__init__.py +7 -2
- esphome/components/esp32_ble_tracker/esp32_ble_tracker.cpp +107 -75
- esphome/components/esp32_ble_tracker/esp32_ble_tracker.h +16 -16
- esphome/components/esp32_camera/esp32_camera.cpp +35 -27
- esphome/components/esp32_camera_web_server/camera_web_server.cpp +4 -2
- esphome/components/esp32_dac/esp32_dac.cpp +2 -2
- esphome/components/esp32_improv/__init__.py +5 -1
- esphome/components/esp32_improv/esp32_improv_component.cpp +2 -2
- esphome/components/esp32_rmt_led_strip/led_strip.cpp +11 -7
- esphome/components/esp32_rmt_led_strip/light.py +5 -1
- esphome/components/esp32_touch/esp32_touch.cpp +12 -8
- esphome/components/esp8266/preferences.cpp +6 -6
- esphome/components/esp8266_pwm/esp8266_pwm.cpp +3 -3
- esphome/components/esp_ldo/__init__.py +91 -0
- esphome/components/esp_ldo/esp_ldo.cpp +43 -0
- esphome/components/esp_ldo/esp_ldo.h +43 -0
- esphome/components/esphome/ota/ota_esphome.cpp +15 -8
- esphome/components/ethernet/ethernet_component.cpp +38 -26
- esphome/components/ethernet/ethernet_component.h +1 -1
- esphome/components/event/__init__.py +1 -0
- esphome/components/exposure_notifications/exposure_notifications.cpp +1 -1
- esphome/components/ezo/ezo.cpp +1 -1
- esphome/components/ezo_pmp/ezo_pmp.cpp +1 -1
- esphome/components/factory_reset/button/factory_reset_button.cpp +1 -1
- esphome/components/factory_reset/switch/factory_reset_switch.cpp +1 -1
- esphome/components/fan/__init__.py +1 -0
- esphome/components/fan/fan.cpp +30 -19
- esphome/components/fastled_base/fastled_light.cpp +7 -5
- esphome/components/fingerprint_grow/fingerprint_grow.cpp +8 -6
- esphome/components/fs3000/fs3000.cpp +1 -1
- esphome/components/ft5x06/touchscreen/ft5x06_touchscreen.cpp +7 -4
- esphome/components/ft63x6/ft63x6.cpp +5 -3
- esphome/components/gcja5/gcja5.cpp +0 -12
- esphome/components/gcja5/gcja5.h +8 -3
- esphome/components/gdk101/gdk101.cpp +2 -2
- esphome/components/globals/globals_component.h +13 -10
- esphome/components/gp2y1010au0f/gp2y1010au0f.cpp +4 -2
- esphome/components/gp8403/gp8403.cpp +4 -2
- esphome/components/gp8403/output/gp8403_output.cpp +4 -2
- esphome/components/gpio/one_wire/gpio_one_wire.cpp +2 -2
- esphome/components/gpio/output/gpio_binary_output.cpp +1 -1
- esphome/components/gpio/switch/gpio_switch.cpp +1 -1
- esphome/components/graphical_display_menu/graphical_display_menu.cpp +12 -8
- esphome/components/grove_gas_mc_v2/grove_gas_mc_v2.cpp +5 -6
- esphome/components/grove_tb6612fng/grove_tb6612fng.cpp +1 -1
- esphome/components/grove_tb6612fng/grove_tb6612fng.h +1 -1
- esphome/components/growatt_solar/growatt_solar.cpp +6 -3
- esphome/components/gt911/touchscreen/gt911_touchscreen.cpp +1 -1
- esphome/components/haier/haier_base.cpp +2 -2
- esphome/components/haier/hon_climate.cpp +13 -6
- esphome/components/havells_solar/havells_solar.cpp +5 -2
- esphome/components/hbridge/switch/hbridge_switch.cpp +1 -1
- esphome/components/hdc1080/hdc1080.cpp +2 -2
- esphome/components/he60r/he60r.cpp +4 -2
- esphome/components/hlw8012/hlw8012.cpp +6 -4
- esphome/components/hm3301/hm3301.cpp +2 -2
- esphome/components/hmc5883l/hmc5883l.cpp +2 -2
- esphome/components/homeassistant/time/homeassistant_time.cpp +4 -2
- esphome/components/honeywell_hih_i2c/honeywell_hih.cpp +4 -4
- esphome/components/honeywellabp/honeywellabp.cpp +4 -2
- esphome/components/honeywellabp2_i2c/honeywellabp2.cpp +8 -6
- esphome/components/hte501/hte501.cpp +3 -2
- esphome/components/http_request/__init__.py +2 -2
- esphome/components/http_request/http_request.cpp +7 -5
- esphome/components/http_request/http_request_idf.cpp +4 -2
- esphome/components/http_request/ota/ota_http_request.cpp +1 -1
- esphome/components/htu21d/htu21d.cpp +2 -2
- esphome/components/htu31d/htu31d.cpp +2 -2
- esphome/components/hx711/hx711.cpp +2 -2
- esphome/components/hydreon_rgxx/hydreon_rgxx.cpp +5 -3
- esphome/components/hyt271/hyt271.cpp +2 -2
- esphome/components/i2c/i2c_bus_arduino.cpp +14 -11
- esphome/components/i2c/i2c_bus_esp_idf.cpp +13 -11
- esphome/components/i2s_audio/__init__.py +2 -0
- esphome/components/i2s_audio/i2s_audio.cpp +3 -4
- esphome/components/i2s_audio/i2s_audio.h +1 -1
- esphome/components/i2s_audio/media_player/__init__.py +1 -1
- esphome/components/i2s_audio/media_player/i2s_audio_media_player.cpp +5 -3
- esphome/components/i2s_audio/microphone/i2s_audio_microphone.cpp +13 -10
- esphome/components/i2s_audio/speaker/i2s_audio_speaker.cpp +1 -1
- esphome/components/iaqcore/iaqcore.cpp +3 -3
- esphome/components/ili9xxx/ili9xxx_display.cpp +12 -7
- esphome/components/ili9xxx/ili9xxx_display.h +1 -1
- esphome/components/image/image.cpp +1 -0
- esphome/components/ina219/ina219.cpp +2 -2
- esphome/components/ina226/ina226.cpp +8 -5
- esphome/components/ina260/ina260.cpp +1 -1
- esphome/components/ina2xx_base/ina2xx_base.cpp +13 -9
- esphome/components/ina3221/ina3221.cpp +2 -2
- esphome/components/inkplate6/display.py +12 -2
- esphome/components/inkplate6/inkplate.cpp +13 -9
- esphome/components/inkplate6/inkplate.h +7 -6
- esphome/components/integration/integration_sensor.cpp +1 -1
- esphome/components/internal_temperature/internal_temperature.cpp +4 -4
- esphome/components/json/json_util.cpp +4 -5
- esphome/components/kamstrup_kmp/kamstrup_kmp.cpp +1 -1
- esphome/components/key_collector/key_collector.cpp +4 -2
- esphome/components/kmeteriso/kmeteriso.cpp +4 -4
- esphome/components/kuntze/kuntze.cpp +4 -2
- esphome/components/lc709203f/__init__.py +1 -0
- esphome/components/lc709203f/lc709203f.cpp +299 -0
- esphome/components/lc709203f/lc709203f.h +55 -0
- esphome/components/lc709203f/sensor.py +93 -0
- esphome/components/lcd_base/lcd_display.cpp +2 -2
- esphome/components/lcd_gpio/gpio_lcd_display.cpp +5 -3
- esphome/components/lcd_menu/lcd_menu.cpp +6 -4
- esphome/components/lcd_pcf8574/pcf8574_display.cpp +6 -4
- esphome/components/ld2410/ld2410.cpp +6 -7
- esphome/components/ld2420/ld2420.cpp +9 -7
- esphome/components/ld2450/ld2450.cpp +6 -4
- esphome/components/ld2450/sensor.py +2 -2
- esphome/components/ledc/ledc_output.cpp +32 -28
- esphome/components/libretiny/const.py +1 -1
- esphome/components/libretiny/preferences.cpp +6 -7
- esphome/components/light/__init__.py +2 -1
- esphome/components/light/esp_hsv_color.h +1 -1
- esphome/components/light/light_state.cpp +9 -5
- esphome/components/light/light_transformer.h +1 -1
- esphome/components/lightwaverf/LwTx.cpp +1 -1
- esphome/components/lightwaverf/lightwaverf.cpp +1 -1
- esphome/components/lilygo_t5_47/touchscreen/lilygo_t5_47_touchscreen.cpp +1 -1
- esphome/components/lock/__init__.py +1 -0
- esphome/components/lock/lock.h +1 -1
- esphome/components/logger/__init__.py +6 -0
- esphome/components/logger/logger.cpp +11 -20
- esphome/components/logger/logger.h +1 -2
- esphome/components/logger/logger_esp32.cpp +5 -5
- esphome/components/ltr390/ltr390.cpp +8 -5
- esphome/components/ltr501/ltr501.cpp +19 -14
- esphome/components/ltr_als_ps/ltr_als_ps.cpp +20 -13
- esphome/components/lvgl/__init__.py +2 -2
- esphome/components/lvgl/automation.py +5 -4
- esphome/components/lvgl/defines.py +0 -2
- esphome/components/lvgl/lv_validation.py +1 -3
- esphome/components/lvgl/lvcode.py +7 -8
- esphome/components/lvgl/lvgl_esphome.cpp +26 -10
- esphome/components/lvgl/schemas.py +22 -23
- esphome/components/lvgl/trigger.py +8 -3
- esphome/components/lvgl/widgets/__init__.py +2 -2
- esphome/components/lvgl/widgets/canvas.py +9 -3
- esphome/components/lvgl/widgets/line.py +2 -1
- esphome/components/lvgl/widgets/tabview.py +7 -0
- esphome/components/m5stack_8angle/m5stack_8angle.cpp +3 -3
- esphome/components/matrix_keypad/matrix_keypad.cpp +2 -2
- esphome/components/max17043/max17043.cpp +2 -2
- esphome/components/max31855/max31855.cpp +2 -1
- esphome/components/max31856/max31856.cpp +9 -11
- esphome/components/max31865/max31865.cpp +6 -4
- esphome/components/max44009/max44009.cpp +2 -2
- esphome/components/max6675/max6675.cpp +1 -1
- esphome/components/max6956/max6956.cpp +5 -3
- esphome/components/max7219/max7219.cpp +8 -6
- esphome/components/max7219digit/automation.h +52 -0
- esphome/components/max7219digit/display.py +93 -1
- esphome/components/max7219digit/max7219digit.cpp +16 -13
- esphome/components/max9611/max9611.cpp +9 -6
- esphome/components/mcp23008/mcp23008.cpp +1 -1
- esphome/components/mcp23016/mcp23016.cpp +1 -1
- esphome/components/mcp23017/mcp23017.cpp +1 -1
- esphome/components/mcp23s08/mcp23s08.cpp +1 -1
- esphome/components/mcp23s17/mcp23s17.cpp +1 -1
- esphome/components/mcp3008/mcp3008.cpp +1 -1
- esphome/components/mcp3008/sensor/mcp3008_sensor.cpp +5 -3
- esphome/components/mcp3204/mcp3204.cpp +1 -1
- esphome/components/mcp4461/mcp4461.cpp +2 -2
- esphome/components/mcp4725/mcp4725.cpp +2 -2
- esphome/components/mcp4728/mcp4728.cpp +2 -2
- esphome/components/mcp9600/mcp9600.cpp +1 -1
- esphome/components/mcp9808/mcp9808.cpp +4 -4
- esphome/components/mdns/mdns_component.cpp +8 -2
- esphome/components/mdns/mdns_component.h +3 -1
- esphome/components/mdns/mdns_esp32.cpp +2 -2
- esphome/components/media_player/__init__.py +1 -0
- esphome/components/micro_wake_word/micro_wake_word.cpp +1 -1
- esphome/components/micro_wake_word/streaming_model.cpp +10 -6
- esphome/components/micronova/micronova.h +2 -2
- esphome/components/mics_4514/mics_4514.cpp +2 -2
- esphome/components/midea/air_conditioner.cpp +7 -5
- esphome/components/midea_ir/midea_ir.cpp +1 -1
- esphome/components/mipi_spi/mipi_spi.cpp +24 -15
- esphome/components/mixer/speaker/mixer_speaker.cpp +8 -4
- esphome/components/mlx90393/sensor_mlx90393.cpp +2 -2
- esphome/components/mlx90614/mlx90614.cpp +4 -3
- esphome/components/mmc5603/mmc5603.cpp +2 -2
- esphome/components/mmc5983/mmc5983.cpp +1 -1
- esphome/components/modbus/modbus.cpp +7 -5
- esphome/components/modbus_controller/modbus_controller.cpp +6 -4
- esphome/components/modbus_controller/output/modbus_output.cpp +10 -6
- esphome/components/modbus_controller/switch/__init__.py +6 -2
- esphome/components/modbus_controller/switch/modbus_switch.cpp +4 -0
- esphome/components/modbus_controller/switch/modbus_switch.h +3 -0
- esphome/components/mpl3115a2/mpl3115a2.cpp +3 -2
- esphome/components/mpr121/mpr121.cpp +2 -2
- esphome/components/mpu6050/mpu6050.cpp +6 -6
- esphome/components/mpu6886/mpu6886.cpp +6 -6
- esphome/components/mqtt/mqtt_alarm_control_panel.cpp +7 -3
- esphome/components/mqtt/mqtt_backend_esp32.cpp +1 -1
- esphome/components/mqtt/mqtt_client.cpp +31 -24
- esphome/components/mqtt/mqtt_component.cpp +3 -3
- esphome/components/mqtt/mqtt_cover.cpp +8 -4
- esphome/components/mqtt/mqtt_fan.cpp +12 -6
- esphome/components/mqtt/mqtt_valve.cpp +4 -2
- esphome/components/ms5611/ms5611.cpp +2 -2
- esphome/components/ms8607/ms8607.cpp +2 -2
- esphome/components/msa3xx/msa3xx.cpp +16 -12
- esphome/components/my9231/my9231.cpp +7 -5
- esphome/components/nau7802/nau7802.cpp +6 -4
- esphome/components/neopixelbus/neopixelbus_light.h +2 -2
- esphome/components/network/ip_address.h +1 -1
- esphome/components/network/util.cpp +13 -0
- esphome/components/nextion/base_component.py +2 -0
- esphome/components/nextion/binary_sensor/nextion_binarysensor.cpp +3 -4
- esphome/components/nextion/display.py +34 -22
- esphome/components/nextion/nextion.cpp +182 -143
- esphome/components/nextion/nextion.h +36 -0
- esphome/components/nextion/nextion_commands.cpp +3 -3
- esphome/components/nextion/nextion_upload_arduino.cpp +69 -69
- esphome/components/nextion/nextion_upload_idf.cpp +79 -80
- esphome/components/nextion/sensor/nextion_sensor.cpp +5 -5
- esphome/components/nextion/switch/nextion_switch.cpp +2 -2
- esphome/components/nextion/text_sensor/nextion_textsensor.cpp +3 -3
- esphome/components/nfc/nci_message.h +1 -1
- esphome/components/nfc/ndef_record.h +1 -1
- esphome/components/nfc/ndef_record_text.h +1 -1
- esphome/components/nfc/ndef_record_uri.h +1 -1
- esphome/components/nfc/nfc.h +1 -1
- esphome/components/nfc/nfc_tag.h +1 -1
- esphome/components/noblex/noblex.cpp +1 -1
- esphome/components/npi19/npi19.cpp +5 -7
- esphome/components/number/__init__.py +11 -0
- esphome/components/number/number.cpp +1 -1
- esphome/components/number/number.h +0 -4
- esphome/components/online_image/__init__.py +13 -1
- esphome/components/online_image/online_image.cpp +26 -4
- esphome/components/online_image/online_image.h +21 -4
- esphome/components/opentherm/generate.py +3 -3
- esphome/components/opentherm/hub.cpp +11 -7
- esphome/components/opentherm/number/number.cpp +5 -3
- esphome/components/opentherm/opentherm.h +1 -1
- esphome/components/opentherm/schema.py +13 -13
- esphome/components/opentherm/validate.py +1 -1
- esphome/components/openthread/__init__.py +146 -0
- esphome/components/openthread/const.py +10 -0
- esphome/components/openthread/openthread.cpp +206 -0
- esphome/components/openthread/openthread.h +68 -0
- esphome/components/openthread/openthread_esp.cpp +164 -0
- esphome/components/openthread/tlv.py +58 -0
- esphome/components/openthread_info/__init__.py +0 -0
- esphome/components/openthread_info/openthread_info_text_sensor.cpp +24 -0
- esphome/components/openthread_info/openthread_info_text_sensor.h +218 -0
- esphome/components/openthread_info/text_sensor.py +105 -0
- esphome/components/output/float_output.cpp +1 -1
- esphome/components/output/switch/output_switch.cpp +1 -1
- esphome/components/packet_transport/packet_transport.cpp +6 -4
- esphome/components/pca6416a/pca6416a.cpp +2 -2
- esphome/components/pca9554/pca9554.cpp +6 -4
- esphome/components/pca9685/pca9685_output.cpp +12 -8
- esphome/components/pcd8544/pcd_8544.cpp +1 -1
- esphome/components/pcf85063/pcf85063.cpp +2 -2
- esphome/components/pcf8563/pcf8563.cpp +2 -2
- esphome/components/pcf8574/pcf8574.cpp +2 -2
- esphome/components/pid/pid_climate.cpp +8 -5
- esphome/components/pid/pid_climate.h +1 -1
- esphome/components/pid/sensor/pid_climate_sensor.cpp +1 -1
- esphome/components/pipsolar/output/pipsolar_output.cpp +1 -1
- esphome/components/pipsolar/pipsolar.cpp +3 -3
- esphome/components/pm1006/pm1006.cpp +3 -7
- esphome/components/pm1006/pm1006.h +4 -1
- esphome/components/pm2005/pm2005.cpp +12 -13
- esphome/components/pm2005/sensor.py +1 -1
- esphome/components/pmsa003i/pmsa003i.cpp +2 -2
- esphome/components/pmsx003/pmsx003.cpp +0 -4
- esphome/components/pmsx003/pmsx003.h +5 -2
- esphome/components/pmwcs3/pmwcs3.cpp +9 -13
- esphome/components/pmwcs3/pmwcs3.h +0 -1
- esphome/components/pn532/pn532.cpp +7 -7
- esphome/components/pn532/pn532.h +1 -1
- esphome/components/pn532_spi/pn532_spi.cpp +1 -1
- esphome/components/pn7150/pn7150.cpp +4 -4
- esphome/components/pn7160/pn7160.cpp +4 -4
- esphome/components/power_supply/power_supply.cpp +6 -4
- esphome/components/power_supply/power_supply.h +1 -1
- esphome/components/prometheus/__init__.py +0 -1
- esphome/components/psram/__init__.py +59 -35
- esphome/components/pulse_counter/pulse_counter_sensor.cpp +7 -4
- esphome/components/pvvx_mithermometer/display/pvvx_display.cpp +8 -5
- esphome/components/pylontech/pylontech.cpp +2 -2
- esphome/components/pylontech/sensor/pylontech_sensor.cpp +4 -2
- esphome/components/pylontech/text_sensor/pylontech_text_sensor.cpp +4 -2
- esphome/components/pzemac/pzemac.cpp +4 -2
- esphome/components/pzemdc/pzemdc.cpp +4 -2
- esphome/components/qmc5883l/qmc5883l.cpp +2 -2
- esphome/components/qmp6988/qmp6988.cpp +2 -2
- esphome/components/qmp6988/qmp6988.h +1 -1
- esphome/components/qr_code/qr_code.cpp +5 -3
- esphome/components/qspi_dbi/qspi_dbi.cpp +1 -1
- esphome/components/qwiic_pir/qwiic_pir.cpp +26 -28
- esphome/components/rc522/rc522.cpp +5 -5
- esphome/components/rdm6300/rdm6300.cpp +1 -0
- esphome/components/remote_receiver/__init__.py +10 -2
- esphome/components/remote_receiver/remote_receiver_esp32.cpp +22 -12
- esphome/components/remote_receiver/remote_receiver_esp8266.cpp +10 -7
- esphome/components/remote_receiver/remote_receiver_libretiny.cpp +10 -7
- esphome/components/remote_transmitter/__init__.py +10 -2
- esphome/components/remote_transmitter/remote_transmitter_esp32.cpp +10 -6
- esphome/components/remote_transmitter/remote_transmitter_esp8266.cpp +5 -3
- esphome/components/remote_transmitter/remote_transmitter_libretiny.cpp +5 -3
- esphome/components/resistance/resistance_sensor.cpp +6 -3
- esphome/components/restart/button/restart_button.cpp +1 -1
- esphome/components/restart/switch/restart_switch.cpp +1 -1
- esphome/components/rotary_encoder/rotary_encoder.cpp +2 -2
- esphome/components/rp2040/__init__.py +7 -0
- esphome/components/rp2040/core.cpp +8 -1
- esphome/components/rp2040/preferences.cpp +3 -3
- esphome/components/rp2040_pio_led_strip/led_strip.cpp +11 -8
- esphome/components/rp2040_pio_led_strip/light.py +1 -1
- esphome/components/rp2040_pwm/rp2040_pwm.cpp +1 -1
- esphome/components/rpi_dpi_rgb/rpi_dpi_rgb.cpp +1 -1
- esphome/components/rtttl/rtttl.cpp +11 -9
- esphome/components/safe_mode/button/safe_mode_button.cpp +1 -1
- esphome/components/safe_mode/safe_mode.cpp +9 -8
- esphome/components/safe_mode/switch/safe_mode_switch.cpp +1 -1
- esphome/components/scd30/scd30.cpp +11 -8
- esphome/components/scd4x/scd4x.cpp +12 -8
- esphome/components/sdl/display.py +40 -0
- esphome/components/sdl/sdl_esphome.cpp +2 -2
- esphome/components/sdl/sdl_esphome.h +8 -0
- esphome/components/sdm_meter/sdm_meter.cpp +5 -2
- esphome/components/sdp3x/sdp3x.cpp +11 -11
- esphome/components/sds011/sds011.cpp +5 -6
- esphome/components/sds011/sds011.h +4 -1
- esphome/components/seeed_mr24hpc1/seeed_mr24hpc1.cpp +3 -2
- esphome/components/seeed_mr60bha2/seeed_mr60bha2.cpp +1 -0
- esphome/components/seeed_mr60fda2/seeed_mr60fda2.cpp +3 -2
- esphome/components/selec_meter/selec_meter.cpp +5 -2
- esphome/components/select/__init__.py +1 -0
- esphome/components/select/select.cpp +1 -1
- esphome/components/select/select.h +0 -4
- esphome/components/sen0321/sen0321.cpp +2 -2
- esphome/components/sen21231/sen21231.cpp +1 -1
- esphome/components/sen5x/sen5x.cpp +10 -7
- esphome/components/sensirion_common/i2c_sensirion.cpp +2 -1
- esphome/components/sensirion_common/i2c_sensirion.h +1 -0
- esphome/components/sensor/__init__.py +11 -1
- esphome/components/sensor/filter.h +1 -1
- esphome/components/sensor/sensor.cpp +8 -4
- esphome/components/sensor/sensor.h +12 -11
- esphome/components/servo/servo.cpp +12 -9
- esphome/components/servo/servo.h +1 -1
- esphome/components/sfa30/sfa30.cpp +1 -1
- esphome/components/sgp30/sgp30.cpp +10 -8
- esphome/components/sgp4x/sgp4x.cpp +49 -61
- esphome/components/sgp4x/sgp4x.h +0 -1
- esphome/components/shelly_dimmer/shelly_dimmer.cpp +11 -7
- esphome/components/sht3xd/sht3xd.cpp +1 -1
- esphome/components/sht4x/sht4x.cpp +2 -2
- esphome/components/shtcx/shtcx.cpp +13 -16
- esphome/components/shutdown/button/shutdown_button.cpp +1 -1
- esphome/components/shutdown/switch/shutdown_switch.cpp +1 -1
- esphome/components/sim800l/sim800l.cpp +2 -2
- esphome/components/slow_pwm/slow_pwm_output.cpp +4 -2
- esphome/components/sm16716/sm16716.cpp +1 -1
- esphome/components/sm2135/sm2135.cpp +1 -1
- esphome/components/sm2235/sm2235.cpp +5 -3
- esphome/components/sm2335/sm2335.cpp +5 -3
- esphome/components/sml/sml.cpp +1 -1
- esphome/components/sn74hc165/sn74hc165.cpp +1 -2
- esphome/components/sn74hc595/sn74hc595.cpp +1 -2
- esphome/components/sntp/sntp_component.cpp +1 -1
- esphome/components/socket/__init__.py +2 -0
- esphome/components/socket/bsd_sockets_impl.cpp +51 -7
- esphome/components/socket/lwip_raw_tcp_impl.cpp +5 -0
- esphome/components/socket/lwip_sockets_impl.cpp +51 -7
- esphome/components/socket/socket.cpp +31 -0
- esphome/components/socket/socket.h +27 -1
- esphome/components/sonoff_d1/sonoff_d1.cpp +7 -4
- esphome/components/sonoff_d1/sonoff_d1.h +2 -2
- esphome/components/sound_level/sound_level.cpp +4 -2
- esphome/components/speaker/media_player/__init__.py +3 -0
- esphome/components/speaker/media_player/speaker_media_player.cpp +1 -3
- esphome/components/speaker/media_player/speaker_media_player.h +6 -0
- esphome/components/spi/__init__.py +10 -2
- esphome/components/spi/spi.cpp +4 -4
- esphome/components/spi_device/spi_device.cpp +1 -2
- esphome/components/sprinkler/sprinkler.cpp +9 -6
- esphome/components/sps30/sps30.cpp +16 -15
- esphome/components/ssd1306_base/ssd1306_base.cpp +1 -1
- esphome/components/ssd1306_i2c/ssd1306_i2c.cpp +11 -8
- esphome/components/ssd1306_spi/ssd1306_spi.cpp +10 -7
- esphome/components/ssd1322_base/ssd1322_base.cpp +1 -1
- esphome/components/ssd1322_spi/ssd1322_spi.cpp +1 -1
- esphome/components/ssd1325_base/ssd1325_base.cpp +1 -1
- esphome/components/ssd1325_spi/ssd1325_spi.cpp +1 -1
- esphome/components/ssd1327_base/ssd1327_base.cpp +1 -1
- esphome/components/ssd1327_i2c/ssd1327_i2c.cpp +2 -2
- esphome/components/ssd1327_spi/ssd1327_spi.cpp +1 -1
- esphome/components/ssd1331_base/ssd1331_base.cpp +1 -1
- esphome/components/ssd1331_spi/ssd1331_spi.cpp +1 -1
- esphome/components/ssd1351_base/ssd1351_base.cpp +1 -1
- esphome/components/ssd1351_spi/ssd1351_spi.cpp +1 -1
- esphome/components/st7567_base/st7567_base.cpp +3 -3
- esphome/components/st7567_i2c/st7567_i2c.cpp +7 -5
- esphome/components/st7567_spi/st7567_spi.cpp +1 -1
- esphome/components/st7701s/st7701s.cpp +4 -2
- esphome/components/st7735/st7735.cpp +3 -3
- esphome/components/st7789v/st7789v.cpp +10 -7
- esphome/components/st7920/st7920.cpp +6 -4
- esphome/components/statsd/statsd.cpp +9 -5
- esphome/components/status_led/light/status_led_light.cpp +3 -3
- esphome/components/status_led/light/status_led_light.h +1 -1
- esphome/components/status_led/status_led.cpp +1 -1
- esphome/components/stepper/stepper.h +5 -3
- esphome/components/sts3x/sts3x.cpp +2 -2
- esphome/components/switch/__init__.py +1 -0
- esphome/components/switch/switch.cpp +18 -12
- esphome/components/switch/switch.h +1 -1
- esphome/components/sx1509/__init__.py +53 -20
- esphome/components/sx1509/sx1509.cpp +29 -5
- esphome/components/sx1509/sx1509.h +9 -1
- esphome/components/t6615/t6615.cpp +1 -0
- esphome/components/tc74/tc74.cpp +1 -1
- esphome/components/tca9548a/tca9548a.cpp +1 -1
- esphome/components/tca9555/tca9555.cpp +2 -2
- esphome/components/tcs34725/tcs34725.cpp +4 -4
- esphome/components/tee501/tee501.cpp +3 -2
- esphome/components/tem3200/tem3200.cpp +5 -6
- esphome/components/template/alarm_control_panel/__init__.py +6 -0
- esphome/components/template/alarm_control_panel/template_alarm_control_panel.cpp +43 -12
- esphome/components/template/alarm_control_panel/template_alarm_control_panel.h +4 -1
- esphome/components/template/cover/template_cover.cpp +1 -1
- esphome/components/template/select/template_select.cpp +6 -4
- esphome/components/template/text/template_text.cpp +2 -3
- esphome/components/template/valve/template_valve.cpp +5 -3
- esphome/components/text/__init__.py +10 -11
- esphome/components/text/text.cpp +1 -1
- esphome/components/text/text.h +0 -4
- esphome/components/text_sensor/__init__.py +1 -0
- esphome/components/text_sensor/text_sensor.cpp +8 -4
- esphome/components/text_sensor/text_sensor.h +6 -6
- esphome/components/thermostat/thermostat_climate.cpp +67 -43
- esphome/components/time/__init__.py +1 -2
- esphome/components/time_based/time_based_cover.cpp +4 -2
- esphome/components/tlc59208f/tlc59208f_output.cpp +8 -6
- esphome/components/tm1621/tm1621.cpp +3 -3
- esphome/components/tm1637/tm1637.cpp +9 -7
- esphome/components/tm1638/tm1638.cpp +7 -5
- esphome/components/tm1651/tm1651.cpp +2 -2
- esphome/components/tmp102/tmp102.cpp +1 -3
- esphome/components/tmp102/tmp102.h +0 -3
- esphome/components/tmp1075/tmp1075.cpp +12 -9
- esphome/components/tmp117/tmp117.cpp +2 -2
- esphome/components/tof10120/tof10120_sensor.cpp +2 -2
- esphome/components/tormatic/tormatic_cover.cpp +4 -2
- esphome/components/tsl2561/tsl2561.cpp +7 -5
- esphome/components/tsl2591/tsl2591.cpp +25 -27
- esphome/components/tt21100/touchscreen/tt21100.cpp +1 -1
- esphome/components/ttp229_bsf/ttp229_bsf.cpp +1 -1
- esphome/components/ttp229_lsf/ttp229_lsf.cpp +2 -2
- esphome/components/tuya/select/tuya_select.cpp +5 -3
- esphome/components/tx20/tx20.cpp +3 -3
- esphome/components/uart/__init__.py +4 -5
- esphome/components/uart/button/uart_button.cpp +1 -1
- esphome/components/uart/switch/uart_switch.cpp +2 -2
- esphome/components/uart/uart.cpp +2 -2
- esphome/components/uart/uart_component_esp32_arduino.cpp +8 -6
- esphome/components/uart/uart_component_esp8266.cpp +9 -7
- esphome/components/uart/uart_component_esp_idf.cpp +9 -7
- esphome/components/uart/uart_component_host.cpp +11 -8
- esphome/components/uart/uart_component_libretiny.cpp +8 -6
- esphome/components/uart/uart_component_rp2040.cpp +8 -6
- esphome/components/udp/udp_component.cpp +9 -5
- esphome/components/ufire_ec/ufire_ec.cpp +5 -3
- esphome/components/ufire_ise/ufire_ise.cpp +1 -1
- esphome/components/ultrasonic/ultrasonic_sensor.cpp +5 -3
- esphome/components/update/__init__.py +1 -0
- esphome/components/update/update_entity.cpp +1 -1
- esphome/components/update/update_entity.h +0 -3
- esphome/components/uponor_smatrix/climate/uponor_smatrix_climate.cpp +1 -1
- esphome/components/uponor_smatrix/sensor/uponor_smatrix_sensor.cpp +4 -2
- esphome/components/uponor_smatrix/uponor_smatrix.cpp +2 -1
- esphome/components/uptime/sensor/uptime_timestamp_sensor.cpp +1 -1
- esphome/components/usb_host/__init__.py +64 -0
- esphome/components/usb_host/usb_host.h +116 -0
- esphome/components/usb_host/usb_host_client.cpp +394 -0
- esphome/components/usb_host/usb_host_component.cpp +35 -0
- esphome/components/usb_uart/__init__.py +134 -0
- esphome/components/usb_uart/ch34x.cpp +80 -0
- esphome/components/usb_uart/cp210x.cpp +126 -0
- esphome/components/usb_uart/usb_uart.cpp +328 -0
- esphome/components/usb_uart/usb_uart.h +151 -0
- esphome/components/valve/__init__.py +1 -0
- esphome/components/veml3235/veml3235.cpp +13 -9
- esphome/components/veml7700/veml7700.cpp +10 -6
- esphome/components/voice_assistant/voice_assistant.cpp +7 -7
- esphome/components/wake_on_lan/wake_on_lan.cpp +1 -1
- esphome/components/waveshare_epaper/waveshare_epaper.cpp +1 -1
- esphome/components/web_server/server_index_v2.h +632 -630
- esphome/components/web_server/server_index_v3.h +411 -409
- esphome/components/web_server/web_server.cpp +5 -3
- esphome/components/web_server_base/web_server_base.cpp +1 -1
- esphome/components/web_server_idf/__init__.py +0 -2
- esphome/components/web_server_idf/utils.cpp +1 -1
- esphome/components/web_server_idf/web_server_idf.cpp +7 -3
- esphome/components/web_server_idf/web_server_idf.h +7 -0
- esphome/components/weikai/__init__.py +2 -0
- esphome/components/weikai/weikai.cpp +24 -22
- esphome/components/weikai_i2c/weikai_i2c.cpp +14 -9
- esphome/components/weikai_spi/weikai_spi.cpp +11 -6
- esphome/components/wiegand/wiegand.cpp +1 -1
- esphome/components/wifi/wifi_component.cpp +50 -37
- esphome/components/wifi/wifi_component.h +7 -4
- esphome/components/wifi/wifi_component_esp32_arduino.cpp +2 -2
- esphome/components/wifi/wifi_component_esp8266.cpp +3 -3
- esphome/components/wifi/wifi_component_libretiny.cpp +4 -4
- esphome/components/wireguard/wireguard.cpp +21 -21
- esphome/components/wl_134/text_sensor.py +1 -2
- esphome/components/wled/wled_light_effect.cpp +1 -1
- esphome/components/x9c/x9c.cpp +5 -3
- esphome/components/xgzp68xx/xgzp68xx.cpp +8 -6
- esphome/components/xiaomi_cgd1/xiaomi_cgd1.cpp +4 -2
- esphome/components/xiaomi_cgdk2/xiaomi_cgdk2.cpp +4 -2
- esphome/components/xiaomi_cgg1/xiaomi_cgg1.cpp +4 -2
- esphome/components/xiaomi_hhccjcy10/xiaomi_hhccjcy10.cpp +1 -1
- esphome/components/xiaomi_lywsd02mmc/xiaomi_lywsd02mmc.cpp +4 -2
- esphome/components/xiaomi_lywsd03mmc/xiaomi_lywsd03mmc.cpp +4 -2
- esphome/components/xiaomi_mhoc401/xiaomi_mhoc401.cpp +4 -2
- esphome/components/xl9535/xl9535.cpp +2 -2
- esphome/components/xpt2046/touchscreen/xpt2046.cpp +12 -11
- esphome/components/xpt2046/touchscreen/xpt2046.h +2 -2
- esphome/config.py +3 -2
- esphome/config_validation.py +46 -17
- esphome/const.py +10 -1
- esphome/core/__init__.py +37 -18
- esphome/core/application.cpp +197 -8
- esphome/core/application.h +116 -6
- esphome/core/component.cpp +36 -15
- esphome/core/component.h +43 -13
- esphome/core/config.py +12 -0
- esphome/core/defines.h +10 -2
- esphome/core/entity_base.cpp +4 -16
- esphome/core/entity_base.h +27 -13
- esphome/core/helpers.cpp +1 -1
- esphome/core/helpers.h +5 -5
- esphome/core/log.h +2 -0
- esphome/core/log_const_en.h +4 -0
- esphome/core/scheduler.cpp +2 -2
- esphome/coroutine.py +3 -4
- esphome/cpp_generator.py +32 -32
- esphome/dashboard/core.py +2 -2
- esphome/dashboard/web_server.py +2 -2
- esphome/git.py +4 -4
- esphome/helpers.py +5 -6
- esphome/loader.py +8 -7
- esphome/log.py +7 -1
- esphome/platformio_api.py +2 -3
- esphome/storage_json.py +13 -5
- esphome/types.py +12 -13
- esphome/util.py +1 -2
- esphome/wizard.py +0 -16
- esphome/writer.py +5 -3
- esphome/yaml_util.py +6 -1
- esphome/zeroconf.py +1 -1
- {esphome-2025.5.2.dist-info → esphome-2025.6.0b2.dist-info}/METADATA +12 -11
- {esphome-2025.5.2.dist-info → esphome-2025.6.0b2.dist-info}/RECORD +746 -692
- {esphome-2025.5.2.dist-info → esphome-2025.6.0b2.dist-info}/WHEEL +1 -1
- {esphome-2025.5.2.dist-info → esphome-2025.6.0b2.dist-info}/entry_points.txt +0 -0
- {esphome-2025.5.2.dist-info → esphome-2025.6.0b2.dist-info}/licenses/LICENSE +0 -0
- {esphome-2025.5.2.dist-info → esphome-2025.6.0b2.dist-info}/top_level.txt +0 -0
@@ -91,7 +91,7 @@ bool WiFiComponent::wifi_mode_(optional<bool> sta, optional<bool> ap) {
|
|
91
91
|
bool ret = WiFiClass::mode(set_mode);
|
92
92
|
|
93
93
|
if (!ret) {
|
94
|
-
ESP_LOGW(TAG, "Setting
|
94
|
+
ESP_LOGW(TAG, "Setting mode failed");
|
95
95
|
return false;
|
96
96
|
}
|
97
97
|
|
@@ -590,7 +590,7 @@ void WiFiComponent::wifi_event_callback_(esphome_wifi_event_id_t event, esphome_
|
|
590
590
|
// Mitigate CVE-2020-12638
|
591
591
|
// https://lbsfilm.at/blog/wpa2-authenticationmode-downgrade-in-espressif-microprocessors
|
592
592
|
if (it.old_mode != WIFI_AUTH_OPEN && it.new_mode == WIFI_AUTH_OPEN) {
|
593
|
-
ESP_LOGW(TAG, "Potential Authmode downgrade detected, disconnecting
|
593
|
+
ESP_LOGW(TAG, "Potential Authmode downgrade detected, disconnecting");
|
594
594
|
// we can't call retry_connect() from this context, so disconnect immediately
|
595
595
|
// and notify main thread with error_from_callback_
|
596
596
|
err_t err = esp_wifi_disconnect();
|
@@ -32,11 +32,11 @@ extern "C" {
|
|
32
32
|
#endif
|
33
33
|
}
|
34
34
|
|
35
|
+
#include "esphome/core/application.h"
|
36
|
+
#include "esphome/core/hal.h"
|
35
37
|
#include "esphome/core/helpers.h"
|
36
38
|
#include "esphome/core/log.h"
|
37
|
-
#include "esphome/core/hal.h"
|
38
39
|
#include "esphome/core/util.h"
|
39
|
-
#include "esphome/core/application.h"
|
40
40
|
|
41
41
|
namespace esphome {
|
42
42
|
namespace wifi {
|
@@ -525,7 +525,7 @@ void WiFiComponent::wifi_event_callback(System_Event_t *event) {
|
|
525
525
|
// Mitigate CVE-2020-12638
|
526
526
|
// https://lbsfilm.at/blog/wpa2-authenticationmode-downgrade-in-espressif-microprocessors
|
527
527
|
if (it.old_mode != AUTH_OPEN && it.new_mode == AUTH_OPEN) {
|
528
|
-
ESP_LOGW(TAG, "Potential Authmode downgrade detected, disconnecting
|
528
|
+
ESP_LOGW(TAG, "Potential Authmode downgrade detected, disconnecting");
|
529
529
|
// we can't call retry_connect() from this context, so disconnect immediately
|
530
530
|
// and notify main thread with error_from_callback_
|
531
531
|
wifi_station_disconnect();
|
@@ -9,10 +9,10 @@
|
|
9
9
|
#include "lwip/err.h"
|
10
10
|
#include "lwip/dns.h"
|
11
11
|
|
12
|
+
#include "esphome/core/application.h"
|
13
|
+
#include "esphome/core/hal.h"
|
12
14
|
#include "esphome/core/helpers.h"
|
13
15
|
#include "esphome/core/log.h"
|
14
|
-
#include "esphome/core/hal.h"
|
15
|
-
#include "esphome/core/application.h"
|
16
16
|
#include "esphome/core/util.h"
|
17
17
|
|
18
18
|
namespace esphome {
|
@@ -50,7 +50,7 @@ bool WiFiComponent::wifi_mode_(optional<bool> sta, optional<bool> ap) {
|
|
50
50
|
bool ret = WiFi.mode(static_cast<wifi_mode_t>(mode));
|
51
51
|
|
52
52
|
if (!ret) {
|
53
|
-
ESP_LOGW(TAG, "Setting
|
53
|
+
ESP_LOGW(TAG, "Setting mode failed");
|
54
54
|
}
|
55
55
|
|
56
56
|
return ret;
|
@@ -315,7 +315,7 @@ void WiFiComponent::wifi_event_callback_(esphome_wifi_event_id_t event, esphome_
|
|
315
315
|
// Mitigate CVE-2020-12638
|
316
316
|
// https://lbsfilm.at/blog/wpa2-authenticationmode-downgrade-in-espressif-microprocessors
|
317
317
|
if (it.old_mode != WIFI_AUTH_OPEN && it.new_mode == WIFI_AUTH_OPEN) {
|
318
|
-
ESP_LOGW(TAG, "Potential Authmode downgrade detected, disconnecting
|
318
|
+
ESP_LOGW(TAG, "Potential Authmode downgrade detected, disconnecting");
|
319
319
|
// we can't call retry_connect() from this context, so disconnect immediately
|
320
320
|
// and notify main thread with error_from_callback_
|
321
321
|
WiFi.disconnect();
|
@@ -21,13 +21,13 @@ static const char *const TAG = "wireguard";
|
|
21
21
|
* Cannot use `static const char*` for LOGMSG_PEER_STATUS on esp8266 platform
|
22
22
|
* because log messages in `Wireguard::update()` method fail.
|
23
23
|
*/
|
24
|
-
#define LOGMSG_PEER_STATUS "
|
24
|
+
#define LOGMSG_PEER_STATUS "Remote peer is %s (latest handshake %s)"
|
25
25
|
|
26
26
|
static const char *const LOGMSG_ONLINE = "online";
|
27
27
|
static const char *const LOGMSG_OFFLINE = "offline";
|
28
28
|
|
29
29
|
void Wireguard::setup() {
|
30
|
-
|
30
|
+
ESP_LOGCONFIG(TAG, "Running setup");
|
31
31
|
|
32
32
|
this->wg_config_.address = this->address_.c_str();
|
33
33
|
this->wg_config_.private_key = this->private_key_.c_str();
|
@@ -45,7 +45,7 @@ void Wireguard::setup() {
|
|
45
45
|
this->wg_initialized_ = esp_wireguard_init(&(this->wg_config_), &(this->wg_ctx_));
|
46
46
|
|
47
47
|
if (this->wg_initialized_ == ESP_OK) {
|
48
|
-
ESP_LOGI(TAG, "
|
48
|
+
ESP_LOGI(TAG, "Initialized");
|
49
49
|
this->wg_peer_offline_time_ = millis();
|
50
50
|
this->srctime_->add_on_time_sync_callback(std::bind(&Wireguard::start_connection_, this));
|
51
51
|
this->defer(std::bind(&Wireguard::start_connection_, this)); // defer to avoid blocking setup
|
@@ -56,7 +56,7 @@ void Wireguard::setup() {
|
|
56
56
|
}
|
57
57
|
#endif
|
58
58
|
} else {
|
59
|
-
ESP_LOGE(TAG, "
|
59
|
+
ESP_LOGE(TAG, "Cannot initialize: error code %d", this->wg_initialized_);
|
60
60
|
this->mark_failed();
|
61
61
|
}
|
62
62
|
}
|
@@ -67,7 +67,7 @@ void Wireguard::loop() {
|
|
67
67
|
}
|
68
68
|
|
69
69
|
if ((this->wg_initialized_ == ESP_OK) && (this->wg_connected_ == ESP_OK) && (!network::is_connected())) {
|
70
|
-
ESP_LOGV(TAG, "
|
70
|
+
ESP_LOGV(TAG, "Local network connection has been lost, stopping");
|
71
71
|
this->stop_connection_();
|
72
72
|
}
|
73
73
|
}
|
@@ -109,7 +109,7 @@ void Wireguard::update() {
|
|
109
109
|
// check reboot timeout every time the peer is down
|
110
110
|
if (this->enabled_ && this->reboot_timeout_ > 0) {
|
111
111
|
if (millis() - this->wg_peer_offline_time_ > this->reboot_timeout_) {
|
112
|
-
ESP_LOGE(TAG, "
|
112
|
+
ESP_LOGE(TAG, "Remote peer is unreachable; rebooting");
|
113
113
|
App.reboot();
|
114
114
|
}
|
115
115
|
}
|
@@ -201,14 +201,14 @@ void Wireguard::disable_auto_proceed() { this->proceed_allowed_ = false; }
|
|
201
201
|
|
202
202
|
void Wireguard::enable() {
|
203
203
|
this->enabled_ = true;
|
204
|
-
ESP_LOGI(TAG, "
|
204
|
+
ESP_LOGI(TAG, "Enabled");
|
205
205
|
this->publish_enabled_state();
|
206
206
|
}
|
207
207
|
|
208
208
|
void Wireguard::disable() {
|
209
209
|
this->enabled_ = false;
|
210
210
|
this->defer(std::bind(&Wireguard::stop_connection_, this)); // defer to avoid blocking running loop
|
211
|
-
ESP_LOGI(TAG, "
|
211
|
+
ESP_LOGI(TAG, "Disabled");
|
212
212
|
this->publish_enabled_state();
|
213
213
|
}
|
214
214
|
|
@@ -224,44 +224,44 @@ bool Wireguard::is_enabled() { return this->enabled_; }
|
|
224
224
|
|
225
225
|
void Wireguard::start_connection_() {
|
226
226
|
if (!this->enabled_) {
|
227
|
-
ESP_LOGV(TAG, "
|
227
|
+
ESP_LOGV(TAG, "Disabled, cannot start connection");
|
228
228
|
return;
|
229
229
|
}
|
230
230
|
|
231
231
|
if (this->wg_initialized_ != ESP_OK) {
|
232
|
-
ESP_LOGE(TAG, "
|
232
|
+
ESP_LOGE(TAG, "Cannot start: error code %d", this->wg_initialized_);
|
233
233
|
return;
|
234
234
|
}
|
235
235
|
|
236
236
|
if (!network::is_connected()) {
|
237
|
-
ESP_LOGD(TAG, "
|
237
|
+
ESP_LOGD(TAG, "Waiting for local network connection to be available");
|
238
238
|
return;
|
239
239
|
}
|
240
240
|
|
241
241
|
if (!this->srctime_->now().is_valid()) {
|
242
|
-
ESP_LOGD(TAG, "
|
242
|
+
ESP_LOGD(TAG, "Waiting for system time to be synchronized");
|
243
243
|
return;
|
244
244
|
}
|
245
245
|
|
246
246
|
if (this->wg_connected_ == ESP_OK) {
|
247
|
-
ESP_LOGV(TAG, "
|
247
|
+
ESP_LOGV(TAG, "Connection already started");
|
248
248
|
return;
|
249
249
|
}
|
250
250
|
|
251
|
-
ESP_LOGD(TAG, "
|
251
|
+
ESP_LOGD(TAG, "Starting connection");
|
252
252
|
this->wg_connected_ = esp_wireguard_connect(&(this->wg_ctx_));
|
253
253
|
|
254
254
|
if (this->wg_connected_ == ESP_OK) {
|
255
|
-
ESP_LOGI(TAG, "
|
255
|
+
ESP_LOGI(TAG, "Connection started");
|
256
256
|
} else if (this->wg_connected_ == ESP_ERR_RETRY) {
|
257
|
-
ESP_LOGD(TAG, "
|
257
|
+
ESP_LOGD(TAG, "Waiting for endpoint IP address to be available");
|
258
258
|
return;
|
259
259
|
} else {
|
260
|
-
ESP_LOGW(TAG, "
|
260
|
+
ESP_LOGW(TAG, "Cannot start connection, error code %d", this->wg_connected_);
|
261
261
|
return;
|
262
262
|
}
|
263
263
|
|
264
|
-
ESP_LOGD(TAG, "
|
264
|
+
ESP_LOGD(TAG, "Configuring allowed IPs list");
|
265
265
|
bool allowed_ips_ok = true;
|
266
266
|
for (std::tuple<std::string, std::string> ip : this->allowed_ips_) {
|
267
267
|
allowed_ips_ok &=
|
@@ -269,9 +269,9 @@ void Wireguard::start_connection_() {
|
|
269
269
|
}
|
270
270
|
|
271
271
|
if (allowed_ips_ok) {
|
272
|
-
ESP_LOGD(TAG, "
|
272
|
+
ESP_LOGD(TAG, "Allowed IPs list configured correctly");
|
273
273
|
} else {
|
274
|
-
ESP_LOGE(TAG, "
|
274
|
+
ESP_LOGE(TAG, "Cannot configure allowed IPs list, aborting");
|
275
275
|
this->stop_connection_();
|
276
276
|
this->mark_failed();
|
277
277
|
}
|
@@ -279,7 +279,7 @@ void Wireguard::start_connection_() {
|
|
279
279
|
|
280
280
|
void Wireguard::stop_connection_() {
|
281
281
|
if (this->wg_initialized_ == ESP_OK && this->wg_connected_ == ESP_OK) {
|
282
|
-
ESP_LOGD(TAG, "
|
282
|
+
ESP_LOGD(TAG, "Stopping connection");
|
283
283
|
esp_wireguard_disconnect(&(this->wg_ctx_));
|
284
284
|
this->wg_connected_ = ESP_FAIL;
|
285
285
|
}
|
@@ -1,11 +1,10 @@
|
|
1
1
|
import esphome.codegen as cg
|
2
2
|
from esphome.components import text_sensor, uart
|
3
3
|
import esphome.config_validation as cv
|
4
|
-
from esphome.const import ICON_FINGERPRINT
|
4
|
+
from esphome.const import CONF_RESET, ICON_FINGERPRINT
|
5
5
|
|
6
6
|
CODEOWNERS = ["@hobbypunk90"]
|
7
7
|
DEPENDENCIES = ["uart"]
|
8
|
-
CONF_RESET = "reset"
|
9
8
|
|
10
9
|
wl134_ns = cg.esphome_ns.namespace("wl_134")
|
11
10
|
Wl134Component = wl134_ns.class_(
|
esphome/components/x9c/x9c.cpp
CHANGED
@@ -34,7 +34,7 @@ void X9cOutput::trim_value(int change_amount) {
|
|
34
34
|
}
|
35
35
|
|
36
36
|
void X9cOutput::setup() {
|
37
|
-
ESP_LOGCONFIG(TAG, "
|
37
|
+
ESP_LOGCONFIG(TAG, "Running setup");
|
38
38
|
|
39
39
|
this->inc_pin_->get_pin();
|
40
40
|
this->inc_pin_->setup();
|
@@ -68,8 +68,10 @@ void X9cOutput::dump_config() {
|
|
68
68
|
LOG_PIN(" Chip Select Pin: ", this->cs_pin_);
|
69
69
|
LOG_PIN(" Increment Pin: ", this->inc_pin_);
|
70
70
|
LOG_PIN(" Up/Down Pin: ", this->ud_pin_);
|
71
|
-
ESP_LOGCONFIG(TAG,
|
72
|
-
|
71
|
+
ESP_LOGCONFIG(TAG,
|
72
|
+
" Initial Value: %f\n"
|
73
|
+
" Step Delay: %d",
|
74
|
+
this->initial_value_, this->step_delay_);
|
73
75
|
LOG_FLOAT_OUTPUT(this);
|
74
76
|
}
|
75
77
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
#include "xgzp68xx.h"
|
2
|
-
#include "esphome/core/log.h"
|
3
2
|
#include "esphome/core/hal.h"
|
4
3
|
#include "esphome/core/helpers.h"
|
4
|
+
#include "esphome/core/log.h"
|
5
5
|
#include "esphome/components/i2c/i2c.h"
|
6
6
|
|
7
7
|
#include <cinttypes>
|
@@ -69,22 +69,24 @@ void XGZP68XXComponent::update() {
|
|
69
69
|
}
|
70
70
|
|
71
71
|
void XGZP68XXComponent::setup() {
|
72
|
-
|
72
|
+
ESP_LOGCONFIG(TAG, "Running setup");
|
73
73
|
uint8_t config;
|
74
74
|
|
75
75
|
// Display some sample bits to confirm we are talking to the sensor
|
76
76
|
this->read_register(SYSCONFIG_ADDRESS, &config, 1);
|
77
|
-
ESP_LOGCONFIG(TAG,
|
78
|
-
|
77
|
+
ESP_LOGCONFIG(TAG,
|
78
|
+
"Gain value is %d\n"
|
79
|
+
"XGZP68xx started!",
|
80
|
+
(config >> 3) & 0b111);
|
79
81
|
}
|
80
82
|
|
81
83
|
void XGZP68XXComponent::dump_config() {
|
82
|
-
ESP_LOGCONFIG(TAG, "XGZP68xx");
|
84
|
+
ESP_LOGCONFIG(TAG, "XGZP68xx:");
|
83
85
|
LOG_SENSOR(" ", "Temperature: ", this->temperature_sensor_);
|
84
86
|
LOG_SENSOR(" ", "Pressure: ", this->pressure_sensor_);
|
85
87
|
LOG_I2C_DEVICE(this);
|
86
88
|
if (this->is_failed()) {
|
87
|
-
ESP_LOGE(TAG, " Connection
|
89
|
+
ESP_LOGE(TAG, " Connection failed");
|
88
90
|
}
|
89
91
|
LOG_UPDATE_INTERVAL(this);
|
90
92
|
}
|
@@ -9,8 +9,10 @@ namespace xiaomi_cgd1 {
|
|
9
9
|
static const char *const TAG = "xiaomi_cgd1";
|
10
10
|
|
11
11
|
void XiaomiCGD1::dump_config() {
|
12
|
-
ESP_LOGCONFIG(TAG,
|
13
|
-
|
12
|
+
ESP_LOGCONFIG(TAG,
|
13
|
+
"Xiaomi CGD1\n"
|
14
|
+
" Bindkey: %s",
|
15
|
+
format_hex_pretty(this->bindkey_, 16).c_str());
|
14
16
|
LOG_SENSOR(" ", "Temperature", this->temperature_);
|
15
17
|
LOG_SENSOR(" ", "Humidity", this->humidity_);
|
16
18
|
LOG_SENSOR(" ", "Battery Level", this->battery_level_);
|
@@ -9,8 +9,10 @@ namespace xiaomi_cgdk2 {
|
|
9
9
|
static const char *const TAG = "xiaomi_cgdk2";
|
10
10
|
|
11
11
|
void XiaomiCGDK2::dump_config() {
|
12
|
-
ESP_LOGCONFIG(TAG,
|
13
|
-
|
12
|
+
ESP_LOGCONFIG(TAG,
|
13
|
+
"Xiaomi CGDK2\n"
|
14
|
+
" Bindkey: %s",
|
15
|
+
format_hex_pretty(this->bindkey_, 16).c_str());
|
14
16
|
LOG_SENSOR(" ", "Temperature", this->temperature_);
|
15
17
|
LOG_SENSOR(" ", "Humidity", this->humidity_);
|
16
18
|
LOG_SENSOR(" ", "Battery Level", this->battery_level_);
|
@@ -9,8 +9,10 @@ namespace xiaomi_cgg1 {
|
|
9
9
|
static const char *const TAG = "xiaomi_cgg1";
|
10
10
|
|
11
11
|
void XiaomiCGG1::dump_config() {
|
12
|
-
ESP_LOGCONFIG(TAG,
|
13
|
-
|
12
|
+
ESP_LOGCONFIG(TAG,
|
13
|
+
"Xiaomi CGG1\n"
|
14
|
+
" Bindkey: %s",
|
15
|
+
format_hex_pretty(this->bindkey_, 16).c_str());
|
14
16
|
LOG_SENSOR(" ", "Temperature", this->temperature_);
|
15
17
|
LOG_SENSOR(" ", "Humidity", this->humidity_);
|
16
18
|
LOG_SENSOR(" ", "Battery Level", this->battery_level_);
|
@@ -9,8 +9,10 @@ namespace xiaomi_lywsd02mmc {
|
|
9
9
|
static const char *const TAG = "xiaomi_lywsd02mmc";
|
10
10
|
|
11
11
|
void XiaomiLYWSD02MMC::dump_config() {
|
12
|
-
ESP_LOGCONFIG(TAG,
|
13
|
-
|
12
|
+
ESP_LOGCONFIG(TAG,
|
13
|
+
"Xiaomi LYWSD02MMC\n"
|
14
|
+
" Bindkey: %s",
|
15
|
+
format_hex_pretty(this->bindkey_, 16).c_str());
|
14
16
|
LOG_SENSOR(" ", "Temperature", this->temperature_);
|
15
17
|
LOG_SENSOR(" ", "Humidity", this->humidity_);
|
16
18
|
LOG_SENSOR(" ", "Battery Level", this->battery_level_);
|
@@ -9,8 +9,10 @@ namespace xiaomi_lywsd03mmc {
|
|
9
9
|
static const char *const TAG = "xiaomi_lywsd03mmc";
|
10
10
|
|
11
11
|
void XiaomiLYWSD03MMC::dump_config() {
|
12
|
-
ESP_LOGCONFIG(TAG,
|
13
|
-
|
12
|
+
ESP_LOGCONFIG(TAG,
|
13
|
+
"Xiaomi LYWSD03MMC\n"
|
14
|
+
" Bindkey: %s",
|
15
|
+
format_hex_pretty(this->bindkey_, 16).c_str());
|
14
16
|
LOG_SENSOR(" ", "Temperature", this->temperature_);
|
15
17
|
LOG_SENSOR(" ", "Humidity", this->humidity_);
|
16
18
|
LOG_SENSOR(" ", "Battery Level", this->battery_level_);
|
@@ -9,8 +9,10 @@ namespace xiaomi_mhoc401 {
|
|
9
9
|
static const char *const TAG = "xiaomi_mhoc401";
|
10
10
|
|
11
11
|
void XiaomiMHOC401::dump_config() {
|
12
|
-
ESP_LOGCONFIG(TAG,
|
13
|
-
|
12
|
+
ESP_LOGCONFIG(TAG,
|
13
|
+
"Xiaomi MHOC401\n"
|
14
|
+
" Bindkey: %s",
|
15
|
+
format_hex_pretty(this->bindkey_, 16).c_str());
|
14
16
|
LOG_SENSOR(" ", "Temperature", this->temperature_);
|
15
17
|
LOG_SENSOR(" ", "Humidity", this->humidity_);
|
16
18
|
LOG_SENSOR(" ", "Battery Level", this->battery_level_);
|
@@ -7,7 +7,7 @@ namespace xl9535 {
|
|
7
7
|
static const char *const TAG = "xl9535";
|
8
8
|
|
9
9
|
void XL9535Component::setup() {
|
10
|
-
ESP_LOGCONFIG(TAG, "
|
10
|
+
ESP_LOGCONFIG(TAG, "Running setup");
|
11
11
|
|
12
12
|
// Check to see if the device can read from the register
|
13
13
|
uint8_t port = 0;
|
@@ -22,7 +22,7 @@ void XL9535Component::dump_config() {
|
|
22
22
|
LOG_I2C_DEVICE(this);
|
23
23
|
|
24
24
|
if (this->is_failed()) {
|
25
|
-
ESP_LOGE(TAG,
|
25
|
+
ESP_LOGE(TAG, ESP_LOG_MSG_COMM_FAIL);
|
26
26
|
}
|
27
27
|
}
|
28
28
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
#include "xpt2046.h"
|
2
|
-
#include "esphome/core/log.h"
|
3
2
|
#include "esphome/core/helpers.h"
|
3
|
+
#include "esphome/core/log.h"
|
4
4
|
|
5
5
|
#include <algorithm>
|
6
6
|
|
@@ -62,16 +62,17 @@ void XPT2046Component::dump_config() {
|
|
62
62
|
ESP_LOGCONFIG(TAG, "XPT2046:");
|
63
63
|
|
64
64
|
LOG_PIN(" IRQ Pin: ", this->irq_pin_);
|
65
|
-
ESP_LOGCONFIG(TAG,
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
65
|
+
ESP_LOGCONFIG(TAG,
|
66
|
+
" X min: %d\n"
|
67
|
+
" X max: %d\n"
|
68
|
+
" Y min: %d\n"
|
69
|
+
" Y max: %d\n"
|
70
|
+
" Swap X/Y: %s\n"
|
71
|
+
" Invert X: %s\n"
|
72
|
+
" Invert Y: %s\n"
|
73
|
+
" threshold: %d",
|
74
|
+
this->x_raw_min_, this->x_raw_max_, this->y_raw_min_, this->y_raw_max_, YESNO(this->swap_x_y_),
|
75
|
+
YESNO(this->invert_x_), YESNO(this->invert_y_), this->threshold_);
|
75
76
|
|
76
77
|
LOG_UPDATE_INTERVAL(this);
|
77
78
|
}
|
@@ -1,9 +1,9 @@
|
|
1
1
|
#pragma once
|
2
2
|
|
3
|
-
#include "esphome/core/component.h"
|
4
|
-
#include "esphome/core/automation.h"
|
5
3
|
#include "esphome/components/spi/spi.h"
|
6
4
|
#include "esphome/components/touchscreen/touchscreen.h"
|
5
|
+
#include "esphome/core/automation.h"
|
6
|
+
#include "esphome/core/component.h"
|
7
7
|
#include "esphome/core/helpers.h"
|
8
8
|
#include "esphome/core/log.h"
|
9
9
|
|
esphome/config.py
CHANGED
@@ -7,7 +7,7 @@ import functools
|
|
7
7
|
import heapq
|
8
8
|
import logging
|
9
9
|
import re
|
10
|
-
from typing import Any
|
10
|
+
from typing import Any
|
11
11
|
|
12
12
|
import voluptuous as vol
|
13
13
|
|
@@ -63,7 +63,7 @@ def iter_component_configs(config):
|
|
63
63
|
yield p_name, platform, p_config
|
64
64
|
|
65
65
|
|
66
|
-
ConfigPath = list[
|
66
|
+
ConfigPath = list[str | int]
|
67
67
|
path_context = contextvars.ContextVar("Config path")
|
68
68
|
|
69
69
|
|
@@ -389,6 +389,7 @@ class LoadValidationStep(ConfigValidationStep):
|
|
389
389
|
result.add_str_error(f"Platform not found: '{p_domain}'", path)
|
390
390
|
continue
|
391
391
|
CORE.loaded_integrations.add(p_name)
|
392
|
+
CORE.loaded_platforms.add(f"{self.domain}/{p_name}")
|
392
393
|
|
393
394
|
# Process AUTO_LOAD
|
394
395
|
for load in platform.auto_load:
|
esphome/config_validation.py
CHANGED
@@ -982,23 +982,32 @@ def uuid(value):
|
|
982
982
|
|
983
983
|
|
984
984
|
METRIC_SUFFIXES = {
|
985
|
-
"
|
986
|
-
"
|
987
|
-
"
|
988
|
-
"
|
989
|
-
"
|
990
|
-
"
|
991
|
-
"
|
992
|
-
"
|
993
|
-
"
|
994
|
-
"
|
995
|
-
"
|
996
|
-
"
|
997
|
-
"
|
998
|
-
"
|
999
|
-
"
|
1000
|
-
"
|
1001
|
-
"":
|
985
|
+
"Q": 1e30, # Quetta
|
986
|
+
"R": 1e27, # Ronna
|
987
|
+
"Y": 1e24, # Yotta
|
988
|
+
"Z": 1e21, # Zetta
|
989
|
+
"E": 1e18, # Exa
|
990
|
+
"P": 1e15, # Peta
|
991
|
+
"T": 1e12, # Tera
|
992
|
+
"G": 1e9, # Giga
|
993
|
+
"M": 1e6, # Mega
|
994
|
+
"k": 1e3, # Kilo
|
995
|
+
"h": 1e2, # Hecto
|
996
|
+
"da": 1e1, # Deca
|
997
|
+
"": 1e0, # No prefix
|
998
|
+
"d": 1e-1, # Deci
|
999
|
+
"c": 1e-2, # Centi
|
1000
|
+
"m": 1e-3, # Milli
|
1001
|
+
"µ": 1e-6, # Micro
|
1002
|
+
"u": 1e-6, # Micro (same as µ)
|
1003
|
+
"n": 1e-9, # Nano
|
1004
|
+
"p": 1e-12, # Pico
|
1005
|
+
"f": 1e-15, # Femto
|
1006
|
+
"a": 1e-18, # Atto
|
1007
|
+
"z": 1e-21, # Zepto
|
1008
|
+
"y": 1e-24, # Yocto
|
1009
|
+
"r": 1e-27, # Ronto
|
1010
|
+
"q": 1e-30, # Quecto
|
1002
1011
|
}
|
1003
1012
|
|
1004
1013
|
|
@@ -1658,6 +1667,26 @@ class OnlyWith(Optional):
|
|
1658
1667
|
pass
|
1659
1668
|
|
1660
1669
|
|
1670
|
+
class OnlyWithout(Optional):
|
1671
|
+
"""Set the default value only if the given component is NOT loaded."""
|
1672
|
+
|
1673
|
+
def __init__(self, key, component, default=None):
|
1674
|
+
super().__init__(key)
|
1675
|
+
self._component = component
|
1676
|
+
self._default = vol.default_factory(default)
|
1677
|
+
|
1678
|
+
@property
|
1679
|
+
def default(self):
|
1680
|
+
if self._component not in CORE.loaded_integrations:
|
1681
|
+
return self._default
|
1682
|
+
return vol.UNDEFINED
|
1683
|
+
|
1684
|
+
@default.setter
|
1685
|
+
def default(self, value):
|
1686
|
+
# Ignore default set from vol.Optional
|
1687
|
+
pass
|
1688
|
+
|
1689
|
+
|
1661
1690
|
def _entity_base_validator(config):
|
1662
1691
|
if CONF_NAME not in config and CONF_ID not in config:
|
1663
1692
|
raise Invalid("At least one of 'id:' or 'name:' is required!")
|
esphome/const.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
"""Constants used by esphome."""
|
2
2
|
|
3
|
-
__version__ = "2025.
|
3
|
+
__version__ = "2025.6.0b2"
|
4
4
|
|
5
5
|
ALLOWED_NAME_CHARS = "abcdefghijklmnopqrstuvwxyz0123456789-_"
|
6
6
|
VALID_SUBSTITUTIONS_CHARACTERS = (
|
@@ -735,6 +735,7 @@ CONF_REFRESH = "refresh"
|
|
735
735
|
CONF_RELABEL = "relabel"
|
736
736
|
CONF_REPEAT = "repeat"
|
737
737
|
CONF_REPOSITORY = "repository"
|
738
|
+
CONF_RESET = "reset"
|
738
739
|
CONF_RESET_DURATION = "reset_duration"
|
739
740
|
CONF_RESET_PIN = "reset_pin"
|
740
741
|
CONF_RESIZE = "resize"
|
@@ -962,6 +963,7 @@ CONF_WAND_ID = "wand_id"
|
|
962
963
|
CONF_WARM_WHITE = "warm_white"
|
963
964
|
CONF_WARM_WHITE_COLOR_TEMPERATURE = "warm_white_color_temperature"
|
964
965
|
CONF_WATCHDOG_THRESHOLD = "watchdog_threshold"
|
966
|
+
CONF_WATCHDOG_TIMEOUT = "watchdog_timeout"
|
965
967
|
CONF_WEB_SERVER = "web_server"
|
966
968
|
CONF_WEB_SERVER_ID = "web_server_id"
|
967
969
|
CONF_WEIGHT = "weight"
|
@@ -974,7 +976,9 @@ CONF_WIND_DIRECTION_DEGREES = "wind_direction_degrees"
|
|
974
976
|
CONF_WIND_SPEED = "wind_speed"
|
975
977
|
CONF_WINDOW_SIZE = "window_size"
|
976
978
|
CONF_WRITE_PIN = "write_pin"
|
979
|
+
CONF_X = "x"
|
977
980
|
CONF_X_GRID = "x_grid"
|
981
|
+
CONF_Y = "y"
|
978
982
|
CONF_Y_GRID = "y_grid"
|
979
983
|
CONF_YEAR = "year"
|
980
984
|
CONF_ZERO = "zero"
|
@@ -1130,11 +1134,13 @@ UNIT_WATT_HOURS = "Wh"
|
|
1130
1134
|
# device classes
|
1131
1135
|
DEVICE_CLASS_APPARENT_POWER = "apparent_power"
|
1132
1136
|
DEVICE_CLASS_AQI = "aqi"
|
1137
|
+
DEVICE_CLASS_AREA = "area"
|
1133
1138
|
DEVICE_CLASS_ATMOSPHERIC_PRESSURE = "atmospheric_pressure"
|
1134
1139
|
DEVICE_CLASS_AWNING = "awning"
|
1135
1140
|
DEVICE_CLASS_BATTERY = "battery"
|
1136
1141
|
DEVICE_CLASS_BATTERY_CHARGING = "battery_charging"
|
1137
1142
|
DEVICE_CLASS_BLIND = "blind"
|
1143
|
+
DEVICE_CLASS_BLOOD_GLUCOSE_CONCENTRATION = "blood_glucose_concentration"
|
1138
1144
|
DEVICE_CLASS_BUTTON = "button"
|
1139
1145
|
DEVICE_CLASS_CARBON_DIOXIDE = "carbon_dioxide"
|
1140
1146
|
DEVICE_CLASS_CARBON_MONOXIDE = "carbon_monoxide"
|
@@ -1153,6 +1159,7 @@ DEVICE_CLASS_DOORBELL = "doorbell"
|
|
1153
1159
|
DEVICE_CLASS_DURATION = "duration"
|
1154
1160
|
DEVICE_CLASS_EMPTY = ""
|
1155
1161
|
DEVICE_CLASS_ENERGY = "energy"
|
1162
|
+
DEVICE_CLASS_ENERGY_DISTANCE = "energy_distance"
|
1156
1163
|
DEVICE_CLASS_ENERGY_STORAGE = "energy_storage"
|
1157
1164
|
DEVICE_CLASS_FIRMWARE = "firmware"
|
1158
1165
|
DEVICE_CLASS_FREQUENCY = "frequency"
|
@@ -1190,6 +1197,7 @@ DEVICE_CLASS_PRECIPITATION_INTENSITY = "precipitation_intensity"
|
|
1190
1197
|
DEVICE_CLASS_PRESENCE = "presence"
|
1191
1198
|
DEVICE_CLASS_PRESSURE = "pressure"
|
1192
1199
|
DEVICE_CLASS_PROBLEM = "problem"
|
1200
|
+
DEVICE_CLASS_REACTIVE_ENERGY = "reactive_energy"
|
1193
1201
|
DEVICE_CLASS_REACTIVE_POWER = "reactive_power"
|
1194
1202
|
DEVICE_CLASS_RESTART = "restart"
|
1195
1203
|
DEVICE_CLASS_RUNNING = "running"
|
@@ -1217,6 +1225,7 @@ DEVICE_CLASS_VOLUME_STORAGE = "volume_storage"
|
|
1217
1225
|
DEVICE_CLASS_WATER = "water"
|
1218
1226
|
DEVICE_CLASS_WEIGHT = "weight"
|
1219
1227
|
DEVICE_CLASS_WINDOW = "window"
|
1228
|
+
DEVICE_CLASS_WIND_DIRECTION = "wind_direction"
|
1220
1229
|
DEVICE_CLASS_WIND_SPEED = "wind_speed"
|
1221
1230
|
|
1222
1231
|
# state classes
|