esphome 2025.5.1__py3-none-any.whl → 2025.6.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- esphome/__main__.py +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 +5 -0
- esphome/components/api/api_pb2.h +703 -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 -5
- 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/gpio.cpp +10 -1
- 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 +85 -77
- esphome/components/i2s_audio/microphone/i2s_audio_microphone.h +6 -0
- esphome/components/i2s_audio/speaker/i2s_audio_speaker.cpp +29 -11
- esphome/components/i2s_audio/speaker/i2s_audio_speaker.h +1 -0
- 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_state.h +15 -15
- 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 +5 -6
- 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/gpio.cpp +26 -9
- 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/spi_arduino.cpp +22 -9
- 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 +14 -8
- 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/hal.h +5 -0
- 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.1.dist-info → esphome-2025.6.0.dist-info}/METADATA +12 -11
- {esphome-2025.5.1.dist-info → esphome-2025.6.0.dist-info}/RECORD +753 -699
- {esphome-2025.5.1.dist-info → esphome-2025.6.0.dist-info}/WHEEL +1 -1
- {esphome-2025.5.1.dist-info → esphome-2025.6.0.dist-info}/entry_points.txt +0 -0
- {esphome-2025.5.1.dist-info → esphome-2025.6.0.dist-info}/licenses/LICENSE +0 -0
- {esphome-2025.5.1.dist-info → esphome-2025.6.0.dist-info}/top_level.txt +0 -0
@@ -14,7 +14,7 @@ static const bool DEFAULT_INVERT = false;
|
|
14
14
|
static const uint32_t DEFAULT_TICK = 330;
|
15
15
|
|
16
16
|
void LightWaveRF::setup() {
|
17
|
-
ESP_LOGCONFIG(TAG, "
|
17
|
+
ESP_LOGCONFIG(TAG, "Running setup");
|
18
18
|
|
19
19
|
this->lwtx_.lwtx_setup(pin_tx_, DEFAULT_REPEAT, DEFAULT_INVERT, DEFAULT_TICK);
|
20
20
|
this->lwrx_.lwrx_setup(pin_rx_);
|
@@ -24,7 +24,7 @@ static const uint8_t READ_TOUCH[1] = {0x07};
|
|
24
24
|
}
|
25
25
|
|
26
26
|
void LilygoT547Touchscreen::setup() {
|
27
|
-
ESP_LOGCONFIG(TAG, "
|
27
|
+
ESP_LOGCONFIG(TAG, "Running setup");
|
28
28
|
this->interrupt_pin_->pin_mode(gpio::FLAG_INPUT | gpio::FLAG_PULLUP);
|
29
29
|
this->interrupt_pin_->setup();
|
30
30
|
|
@@ -115,6 +115,7 @@ async def register_lock(var, config):
|
|
115
115
|
if not CORE.has_id(config[CONF_ID]):
|
116
116
|
var = cg.Pvariable(config[CONF_ID], var)
|
117
117
|
cg.add(cg.App.register_lock(var))
|
118
|
+
CORE.register_platform_component("lock", var)
|
118
119
|
await _setup_lock_core(var, config)
|
119
120
|
|
120
121
|
|
esphome/components/lock/lock.h
CHANGED
@@ -2,9 +2,9 @@
|
|
2
2
|
|
3
3
|
#include "esphome/core/component.h"
|
4
4
|
#include "esphome/core/entity_base.h"
|
5
|
-
#include "esphome/core/preferences.h"
|
6
5
|
#include "esphome/core/helpers.h"
|
7
6
|
#include "esphome/core/log.h"
|
7
|
+
#include "esphome/core/preferences.h"
|
8
8
|
#include <set>
|
9
9
|
|
10
10
|
namespace esphome {
|
@@ -8,8 +8,10 @@ from esphome.components.esp32.const import (
|
|
8
8
|
VARIANT_ESP32,
|
9
9
|
VARIANT_ESP32C2,
|
10
10
|
VARIANT_ESP32C3,
|
11
|
+
VARIANT_ESP32C5,
|
11
12
|
VARIANT_ESP32C6,
|
12
13
|
VARIANT_ESP32H2,
|
14
|
+
VARIANT_ESP32P4,
|
13
15
|
VARIANT_ESP32S2,
|
14
16
|
VARIANT_ESP32S3,
|
15
17
|
)
|
@@ -88,8 +90,10 @@ UART_SELECTION_ESP32 = {
|
|
88
90
|
VARIANT_ESP32S3: [UART0, UART1, USB_CDC, USB_SERIAL_JTAG],
|
89
91
|
VARIANT_ESP32C3: [UART0, UART1, USB_CDC, USB_SERIAL_JTAG],
|
90
92
|
VARIANT_ESP32C2: [UART0, UART1],
|
93
|
+
VARIANT_ESP32C5: [UART0, UART1, USB_CDC, USB_SERIAL_JTAG],
|
91
94
|
VARIANT_ESP32C6: [UART0, UART1, USB_CDC, USB_SERIAL_JTAG],
|
92
95
|
VARIANT_ESP32H2: [UART0, UART1, USB_CDC, USB_SERIAL_JTAG],
|
96
|
+
VARIANT_ESP32P4: [UART0, UART1, USB_CDC, USB_SERIAL_JTAG],
|
93
97
|
}
|
94
98
|
|
95
99
|
UART_SELECTION_ESP8266 = [UART0, UART0_SWAP, UART1]
|
@@ -205,8 +209,10 @@ CONFIG_SCHEMA = cv.All(
|
|
205
209
|
esp32_s3_idf=USB_SERIAL_JTAG,
|
206
210
|
esp32_c3_arduino=USB_CDC,
|
207
211
|
esp32_c3_idf=USB_SERIAL_JTAG,
|
212
|
+
esp32_c5_idf=USB_SERIAL_JTAG,
|
208
213
|
esp32_c6_arduino=USB_CDC,
|
209
214
|
esp32_c6_idf=USB_SERIAL_JTAG,
|
215
|
+
esp32_p4_idf=USB_SERIAL_JTAG,
|
210
216
|
rp2040=USB_CDC,
|
211
217
|
bk72xx=DEFAULT,
|
212
218
|
rtl87xx=DEFAULT,
|
@@ -116,7 +116,7 @@ void Logger::log_vprintf_(int level, const char *tag, int line, const __FlashStr
|
|
116
116
|
if (this->baud_rate_ > 0) {
|
117
117
|
this->write_msg_(this->tx_buffer_ + msg_start);
|
118
118
|
}
|
119
|
-
this->
|
119
|
+
this->log_callback_.call(level, tag, this->tx_buffer_ + msg_start);
|
120
120
|
|
121
121
|
global_recursion_guard_ = false;
|
122
122
|
}
|
@@ -129,19 +129,6 @@ inline int Logger::level_for(const char *tag) {
|
|
129
129
|
return this->current_level_;
|
130
130
|
}
|
131
131
|
|
132
|
-
void HOT Logger::call_log_callbacks_(int level, const char *tag, const char *msg) {
|
133
|
-
#ifdef USE_ESP32
|
134
|
-
// Suppress network-logging if memory constrained
|
135
|
-
// In some configurations (eg BLE enabled) there may be some transient
|
136
|
-
// memory exhaustion, and trying to log when OOM can lead to a crash. Skipping
|
137
|
-
// here usually allows the stack to recover instead.
|
138
|
-
// See issue #1234 for analysis.
|
139
|
-
if (xPortGetFreeHeapSize() < 2048)
|
140
|
-
return;
|
141
|
-
#endif
|
142
|
-
this->log_callback_.call(level, tag, msg);
|
143
|
-
}
|
144
|
-
|
145
132
|
Logger::Logger(uint32_t baud_rate, size_t tx_buffer_size) : baud_rate_(baud_rate), tx_buffer_size_(tx_buffer_size) {
|
146
133
|
// add 1 to buffer size for null terminator
|
147
134
|
this->tx_buffer_ = new char[this->tx_buffer_size_ + 1]; // NOLINT
|
@@ -189,7 +176,7 @@ void Logger::loop() {
|
|
189
176
|
this->tx_buffer_size_);
|
190
177
|
this->write_footer_to_buffer_(this->tx_buffer_, &this->tx_buffer_at_, this->tx_buffer_size_);
|
191
178
|
this->tx_buffer_[this->tx_buffer_at_] = '\0';
|
192
|
-
this->
|
179
|
+
this->log_callback_.call(message->level, message->tag, this->tx_buffer_);
|
193
180
|
// At this point all the data we need from message has been transferred to the tx_buffer
|
194
181
|
// so we can release the message to allow other tasks to use it as soon as possible.
|
195
182
|
this->log_buffer_->release_message_main_loop(received_token);
|
@@ -221,12 +208,16 @@ float Logger::get_setup_priority() const { return setup_priority::BUS + 500.0f;
|
|
221
208
|
static const char *const LOG_LEVELS[] = {"NONE", "ERROR", "WARN", "INFO", "CONFIG", "DEBUG", "VERBOSE", "VERY_VERBOSE"};
|
222
209
|
|
223
210
|
void Logger::dump_config() {
|
224
|
-
ESP_LOGCONFIG(TAG,
|
225
|
-
|
226
|
-
|
211
|
+
ESP_LOGCONFIG(TAG,
|
212
|
+
"Logger:\n"
|
213
|
+
" Max Level: %s\n"
|
214
|
+
" Initial Level: %s",
|
215
|
+
LOG_LEVELS[ESPHOME_LOG_LEVEL], LOG_LEVELS[this->current_level_]);
|
227
216
|
#ifndef USE_HOST
|
228
|
-
ESP_LOGCONFIG(TAG,
|
229
|
-
|
217
|
+
ESP_LOGCONFIG(TAG,
|
218
|
+
" Log Baud Rate: %" PRIu32 "\n"
|
219
|
+
" Hardware UART: %s",
|
220
|
+
this->baud_rate_, get_uart_selection_());
|
230
221
|
#endif
|
231
222
|
#ifdef USE_ESPHOME_TASK_LOG_BUFFER
|
232
223
|
if (this->log_buffer_) {
|
@@ -156,7 +156,6 @@ class Logger : public Component {
|
|
156
156
|
#endif
|
157
157
|
|
158
158
|
protected:
|
159
|
-
void call_log_callbacks_(int level, const char *tag, const char *msg);
|
160
159
|
void write_msg_(const char *msg);
|
161
160
|
|
162
161
|
// Format a log message with printf-style arguments and write it to a buffer with header, footer, and null terminator
|
@@ -191,7 +190,7 @@ class Logger : public Component {
|
|
191
190
|
if (this->baud_rate_ > 0) {
|
192
191
|
this->write_msg_(this->tx_buffer_); // If logging is enabled, write to console
|
193
192
|
}
|
194
|
-
this->
|
193
|
+
this->log_callback_.call(level, tag, this->tx_buffer_);
|
195
194
|
}
|
196
195
|
|
197
196
|
// Write the body of the log message to the buffer
|
@@ -212,9 +211,9 @@ class Logger : public Component {
|
|
212
211
|
}
|
213
212
|
|
214
213
|
// Format string to explicit buffer with varargs
|
215
|
-
inline void printf_to_buffer_(
|
214
|
+
inline void printf_to_buffer_(char *buffer, int *buffer_at, int buffer_size, const char *format, ...) {
|
216
215
|
va_list arg;
|
217
|
-
va_start(arg,
|
216
|
+
va_start(arg, format);
|
218
217
|
this->format_body_to_buffer_(buffer, buffer_at, buffer_size, format, arg);
|
219
218
|
va_end(arg);
|
220
219
|
}
|
@@ -312,13 +311,13 @@ class Logger : public Component {
|
|
312
311
|
#if defined(USE_ESP32) || defined(USE_LIBRETINY)
|
313
312
|
if (thread_name != nullptr) {
|
314
313
|
// Non-main task with thread name
|
315
|
-
this->printf_to_buffer_("%s[%s][%s:%03u]%s[%s]%s: ",
|
314
|
+
this->printf_to_buffer_(buffer, buffer_at, buffer_size, "%s[%s][%s:%03u]%s[%s]%s: ", color, letter, tag, line,
|
316
315
|
ESPHOME_LOG_BOLD(ESPHOME_LOG_COLOR_RED), thread_name, color);
|
317
316
|
return;
|
318
317
|
}
|
319
318
|
#endif
|
320
319
|
// Main task or non ESP32/LibreTiny platform
|
321
|
-
this->printf_to_buffer_("%s[%s][%s:%03u]: ",
|
320
|
+
this->printf_to_buffer_(buffer, buffer_at, buffer_size, "%s[%s][%s:%03u]: ", color, letter, tag, line);
|
322
321
|
}
|
323
322
|
|
324
323
|
inline void HOT format_body_to_buffer_(char *buffer, int *buffer_at, int buffer_size, const char *format,
|
@@ -18,12 +18,12 @@
|
|
18
18
|
#endif
|
19
19
|
#endif
|
20
20
|
|
21
|
-
#include "freertos/FreeRTOS.h"
|
22
21
|
#include "esp_idf_version.h"
|
22
|
+
#include "freertos/FreeRTOS.h"
|
23
23
|
|
24
|
+
#include <fcntl.h>
|
24
25
|
#include <cstdint>
|
25
26
|
#include <cstdio>
|
26
|
-
#include <fcntl.h>
|
27
27
|
|
28
28
|
#endif // USE_ESP_IDF
|
29
29
|
|
@@ -174,11 +174,11 @@ void Logger::pre_setup() {
|
|
174
174
|
#ifdef USE_ESP_IDF
|
175
175
|
void HOT Logger::write_msg_(const char *msg) {
|
176
176
|
if (
|
177
|
-
#if defined(
|
177
|
+
#if defined(USE_LOGGER_USB_CDC) && !defined(USE_LOGGER_USB_SERIAL_JTAG)
|
178
178
|
this->uart_ == UART_SELECTION_USB_CDC
|
179
|
-
#elif defined(
|
179
|
+
#elif defined(USE_LOGGER_USB_SERIAL_JTAG) && !defined(USE_LOGGER_USB_CDC)
|
180
180
|
this->uart_ == UART_SELECTION_USB_SERIAL_JTAG
|
181
|
-
#elif defined(
|
181
|
+
#elif defined(USE_LOGGER_USB_CDC) && defined(USE_LOGGER_USB_SERIAL_JTAG)
|
182
182
|
this->uart_ == UART_SELECTION_USB_CDC || this->uart_ == UART_SELECTION_USB_SERIAL_JTAG
|
183
183
|
#else
|
184
184
|
/* DISABLES CODE */ (false) // NOLINT
|
@@ -148,7 +148,7 @@ void LTR390Component::read_mode_(int mode_index) {
|
|
148
148
|
}
|
149
149
|
|
150
150
|
void LTR390Component::setup() {
|
151
|
-
ESP_LOGCONFIG(TAG, "
|
151
|
+
ESP_LOGCONFIG(TAG, "Running setup");
|
152
152
|
|
153
153
|
// reset
|
154
154
|
std::bitset<8> ctrl = this->reg(LTR390_MAIN_CTRL).get();
|
@@ -187,10 +187,13 @@ void LTR390Component::setup() {
|
|
187
187
|
|
188
188
|
void LTR390Component::dump_config() {
|
189
189
|
LOG_I2C_DEVICE(this);
|
190
|
-
ESP_LOGCONFIG(TAG,
|
191
|
-
|
192
|
-
|
193
|
-
|
190
|
+
ESP_LOGCONFIG(TAG,
|
191
|
+
" ALS Gain: X%.0f\n"
|
192
|
+
" ALS Resolution: %u-bit\n"
|
193
|
+
" UV Gain: X%.0f\n"
|
194
|
+
" UV Resolution: %u-bit",
|
195
|
+
GAINVALUES[this->gain_als_], RESOLUTION_BITS[this->res_als_], GAINVALUES[this->gain_uv_],
|
196
|
+
RESOLUTION_BITS[this->res_uv_]);
|
194
197
|
}
|
195
198
|
|
196
199
|
void LTR390Component::update() {
|
@@ -1,7 +1,7 @@
|
|
1
1
|
#include "ltr501.h"
|
2
2
|
#include "esphome/core/application.h"
|
3
|
-
#include "esphome/core/log.h"
|
4
3
|
#include "esphome/core/helpers.h"
|
4
|
+
#include "esphome/core/log.h"
|
5
5
|
|
6
6
|
using esphome::i2c::ErrorCode;
|
7
7
|
|
@@ -74,7 +74,7 @@ static float get_ps_gain_coeff(PsGain501 gain) {
|
|
74
74
|
}
|
75
75
|
|
76
76
|
void LTRAlsPs501Component::setup() {
|
77
|
-
ESP_LOGCONFIG(TAG, "
|
77
|
+
ESP_LOGCONFIG(TAG, "Running setup");
|
78
78
|
// As per datasheet we need to wait at least 100ms after power on to get ALS chip responsive
|
79
79
|
this->set_timeout(100, [this]() { this->state_ = State::DELAYED_SETUP; });
|
80
80
|
}
|
@@ -94,16 +94,21 @@ void LTRAlsPs501Component::dump_config() {
|
|
94
94
|
};
|
95
95
|
|
96
96
|
LOG_I2C_DEVICE(this);
|
97
|
-
ESP_LOGCONFIG(TAG,
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
97
|
+
ESP_LOGCONFIG(TAG,
|
98
|
+
" Device type: %s\n"
|
99
|
+
" Automatic mode: %s\n"
|
100
|
+
" Gain: %.0fx\n"
|
101
|
+
" Integration time: %d ms\n"
|
102
|
+
" Measurement repeat rate: %d ms\n"
|
103
|
+
" Glass attenuation factor: %f\n"
|
104
|
+
" Proximity gain: %.0fx\n"
|
105
|
+
" Proximity cooldown time: %d s\n"
|
106
|
+
" Proximity high threshold: %d\n"
|
107
|
+
" Proximity low threshold: %d",
|
108
|
+
get_device_type(this->ltr_type_), ONOFF(this->automatic_mode_enabled_), get_gain_coeff(this->gain_),
|
109
|
+
get_itime_ms(this->integration_time_), get_meas_time_ms(this->repeat_rate_),
|
110
|
+
this->glass_attenuation_factor_, get_ps_gain_coeff(this->ps_gain_), this->ps_cooldown_time_s_,
|
111
|
+
this->ps_threshold_high_, this->ps_threshold_low_);
|
107
112
|
|
108
113
|
LOG_UPDATE_INTERVAL(this);
|
109
114
|
|
@@ -113,7 +118,7 @@ void LTRAlsPs501Component::dump_config() {
|
|
113
118
|
LOG_SENSOR(" ", "Actual gain", this->actual_gain_sensor_);
|
114
119
|
|
115
120
|
if (this->is_failed()) {
|
116
|
-
ESP_LOGE(TAG,
|
121
|
+
ESP_LOGE(TAG, ESP_LOG_MSG_COMM_FAIL);
|
117
122
|
}
|
118
123
|
}
|
119
124
|
|
@@ -306,7 +311,7 @@ void LTRAlsPs501Component::configure_als_() {
|
|
306
311
|
|
307
312
|
uint8_t tries = MAX_TRIES;
|
308
313
|
do {
|
309
|
-
ESP_LOGV(TAG, "Waiting for ALS device to become active
|
314
|
+
ESP_LOGV(TAG, "Waiting for ALS device to become active");
|
310
315
|
delay(2);
|
311
316
|
als_ctrl.raw = this->reg((uint8_t) CommandRegisters::ALS_CONTR).get();
|
312
317
|
} while (!als_ctrl.als_mode_active && tries--); // while active mode is not set - keep waiting
|
@@ -1,7 +1,7 @@
|
|
1
1
|
#include "ltr_als_ps.h"
|
2
2
|
#include "esphome/core/application.h"
|
3
|
-
#include "esphome/core/log.h"
|
4
3
|
#include "esphome/core/helpers.h"
|
4
|
+
#include "esphome/core/log.h"
|
5
5
|
|
6
6
|
using esphome::i2c::ErrorCode;
|
7
7
|
|
@@ -63,7 +63,7 @@ static float get_ps_gain_coeff(PsGain gain) {
|
|
63
63
|
}
|
64
64
|
|
65
65
|
void LTRAlsPsComponent::setup() {
|
66
|
-
ESP_LOGCONFIG(TAG, "
|
66
|
+
ESP_LOGCONFIG(TAG, "Running setup");
|
67
67
|
// As per datasheet we need to wait at least 100ms after power on to get ALS chip responsive
|
68
68
|
this->set_timeout(100, [this]() { this->state_ = State::DELAYED_SETUP; });
|
69
69
|
}
|
@@ -85,27 +85,34 @@ void LTRAlsPsComponent::dump_config() {
|
|
85
85
|
LOG_I2C_DEVICE(this);
|
86
86
|
ESP_LOGCONFIG(TAG, " Device type: %s", get_device_type(this->ltr_type_));
|
87
87
|
if (this->is_als_()) {
|
88
|
-
ESP_LOGCONFIG(TAG,
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
88
|
+
ESP_LOGCONFIG(TAG,
|
89
|
+
" Automatic mode: %s\n"
|
90
|
+
" Gain: %.0fx\n"
|
91
|
+
" Integration time: %d ms\n"
|
92
|
+
" Measurement repeat rate: %d ms\n"
|
93
|
+
" Glass attenuation factor: %f",
|
94
|
+
ONOFF(this->automatic_mode_enabled_), get_gain_coeff(this->gain_),
|
95
|
+
get_itime_ms(this->integration_time_), get_meas_time_ms(this->repeat_rate_),
|
96
|
+
this->glass_attenuation_factor_);
|
93
97
|
LOG_SENSOR(" ", "ALS calculated lux", this->ambient_light_sensor_);
|
94
98
|
LOG_SENSOR(" ", "CH1 Infrared counts", this->infrared_counts_sensor_);
|
95
99
|
LOG_SENSOR(" ", "CH0 Visible+IR counts", this->full_spectrum_counts_sensor_);
|
96
100
|
LOG_SENSOR(" ", "Actual gain", this->actual_gain_sensor_);
|
97
101
|
}
|
98
102
|
if (this->is_ps_()) {
|
99
|
-
ESP_LOGCONFIG(TAG,
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
+
ESP_LOGCONFIG(TAG,
|
104
|
+
" Proximity gain: %.0fx\n"
|
105
|
+
" Proximity cooldown time: %d s\n"
|
106
|
+
" Proximity high threshold: %d\n"
|
107
|
+
" Proximity low threshold: %d",
|
108
|
+
get_ps_gain_coeff(this->ps_gain_), this->ps_cooldown_time_s_, this->ps_threshold_high_,
|
109
|
+
this->ps_threshold_low_);
|
103
110
|
LOG_SENSOR(" ", "Proximity counts", this->proximity_counts_sensor_);
|
104
111
|
}
|
105
112
|
LOG_UPDATE_INTERVAL(this);
|
106
113
|
|
107
114
|
if (this->is_failed()) {
|
108
|
-
ESP_LOGE(TAG,
|
115
|
+
ESP_LOGE(TAG, ESP_LOG_MSG_COMM_FAIL);
|
109
116
|
}
|
110
117
|
}
|
111
118
|
|
@@ -298,7 +305,7 @@ void LTRAlsPsComponent::configure_als_() {
|
|
298
305
|
|
299
306
|
uint8_t tries = MAX_TRIES;
|
300
307
|
do {
|
301
|
-
ESP_LOGV(TAG, "Waiting for device to become active
|
308
|
+
ESP_LOGV(TAG, "Waiting for device to become active");
|
302
309
|
delay(2);
|
303
310
|
als_ctrl.raw = this->reg((uint8_t) CommandRegisters::ALS_CONTR).get();
|
304
311
|
} while (!als_ctrl.active_mode && tries--); // while active mode is not set - keep waiting
|
@@ -321,7 +321,7 @@ async def to_code(configs):
|
|
321
321
|
frac = 2
|
322
322
|
elif frac > 0.19:
|
323
323
|
frac = 4
|
324
|
-
|
324
|
+
elif frac != 0:
|
325
325
|
frac = 8
|
326
326
|
displays = [
|
327
327
|
await cg.get_variable(display) for display in config[df.CONF_DISPLAYS]
|
@@ -422,7 +422,7 @@ LVGL_SCHEMA = cv.All(
|
|
422
422
|
): lvalid.lv_font,
|
423
423
|
cv.Optional(df.CONF_FULL_REFRESH, default=False): cv.boolean,
|
424
424
|
cv.Optional(CONF_DRAW_ROUNDING, default=2): cv.positive_int,
|
425
|
-
cv.Optional(CONF_BUFFER_SIZE, default=
|
425
|
+
cv.Optional(CONF_BUFFER_SIZE, default=0): cv.percentage,
|
426
426
|
cv.Optional(df.CONF_LOG_LEVEL, default="WARN"): cv.one_of(
|
427
427
|
*df.LV_LOG_LEVELS, upper=True
|
428
428
|
),
|
@@ -1,4 +1,5 @@
|
|
1
|
-
from
|
1
|
+
from collections.abc import Callable
|
2
|
+
from typing import Any
|
2
3
|
|
3
4
|
from esphome import automation
|
4
5
|
import esphome.codegen as cg
|
@@ -20,7 +21,7 @@ from .defines import (
|
|
20
21
|
literal,
|
21
22
|
static_cast,
|
22
23
|
)
|
23
|
-
from .lv_validation import lv_bool, lv_color, lv_image, opacity
|
24
|
+
from .lv_validation import lv_bool, lv_color, lv_image, lv_milliseconds, opacity
|
24
25
|
from .lvcode import (
|
25
26
|
LVGL_COMP_ARG,
|
26
27
|
UPDATE_EVENT,
|
@@ -128,14 +129,14 @@ async def lvgl_is_paused(config, condition_id, template_arg, args):
|
|
128
129
|
LVGL_SCHEMA.extend(
|
129
130
|
{
|
130
131
|
cv.Required(CONF_TIMEOUT): cv.templatable(
|
131
|
-
|
132
|
+
lv_milliseconds,
|
132
133
|
)
|
133
134
|
}
|
134
135
|
),
|
135
136
|
)
|
136
137
|
async def lvgl_is_idle(config, condition_id, template_arg, args):
|
137
138
|
lvgl = config[CONF_LVGL_ID]
|
138
|
-
timeout = await
|
139
|
+
timeout = await lv_milliseconds.process(config[CONF_TIMEOUT])
|
139
140
|
async with LambdaContext(LVGL_COMP_ARG, return_type=cg.bool_) as context:
|
140
141
|
lv_add(ReturnStatement(lvgl_comp.is_idle(timeout)))
|
141
142
|
var = cg.new_Pvariable(
|
@@ -1,5 +1,3 @@
|
|
1
|
-
from typing import Union
|
2
|
-
|
3
1
|
import esphome.codegen as cg
|
4
2
|
from esphome.components import image
|
5
3
|
from esphome.components.color import CONF_HEX, ColorStruct, from_rgbw
|
@@ -361,7 +359,7 @@ lv_image_list = LValidator(
|
|
361
359
|
lv_bool = LValidator(cv.boolean, cg.bool_, retmapper=literal)
|
362
360
|
|
363
361
|
|
364
|
-
def lv_pct(value:
|
362
|
+
def lv_pct(value: int | float):
|
365
363
|
if isinstance(value, float):
|
366
364
|
value = int(value * 100)
|
367
365
|
return literal(f"lv_pct({value})")
|
@@ -1,5 +1,4 @@
|
|
1
1
|
import abc
|
2
|
-
from typing import Union
|
3
2
|
|
4
3
|
from esphome import codegen as cg
|
5
4
|
from esphome.config import Config
|
@@ -75,7 +74,7 @@ class CodeContext(abc.ABC):
|
|
75
74
|
code_context = None
|
76
75
|
|
77
76
|
@abc.abstractmethod
|
78
|
-
def add(self, expression:
|
77
|
+
def add(self, expression: Expression | Statement):
|
79
78
|
pass
|
80
79
|
|
81
80
|
@staticmethod
|
@@ -89,13 +88,13 @@ class CodeContext(abc.ABC):
|
|
89
88
|
CodeContext.append(RawStatement("}"))
|
90
89
|
|
91
90
|
@staticmethod
|
92
|
-
def append(expression:
|
91
|
+
def append(expression: Expression | Statement):
|
93
92
|
if CodeContext.code_context is not None:
|
94
93
|
CodeContext.code_context.add(expression)
|
95
94
|
return expression
|
96
95
|
|
97
96
|
def __init__(self):
|
98
|
-
self.previous:
|
97
|
+
self.previous: CodeContext | None = None
|
99
98
|
self.indent_level = 0
|
100
99
|
|
101
100
|
async def __aenter__(self):
|
@@ -121,7 +120,7 @@ class MainContext(CodeContext):
|
|
121
120
|
Code generation into the main() function
|
122
121
|
"""
|
123
122
|
|
124
|
-
def add(self, expression:
|
123
|
+
def add(self, expression: Expression | Statement):
|
125
124
|
return cg.add(self.indented_statement(expression))
|
126
125
|
|
127
126
|
|
@@ -144,7 +143,7 @@ class LambdaContext(CodeContext):
|
|
144
143
|
self.capture = capture
|
145
144
|
self.where = where
|
146
145
|
|
147
|
-
def add(self, expression:
|
146
|
+
def add(self, expression: Expression | Statement):
|
148
147
|
self.code_list.append(self.indented_statement(expression))
|
149
148
|
return expression
|
150
149
|
|
@@ -186,7 +185,7 @@ class LvContext(LambdaContext):
|
|
186
185
|
async def __aexit__(self, exc_type, exc_val, exc_tb):
|
187
186
|
await super().__aexit__(exc_type, exc_val, exc_tb)
|
188
187
|
|
189
|
-
def add(self, expression:
|
188
|
+
def add(self, expression: Expression | Statement):
|
190
189
|
cg.add(expression)
|
191
190
|
return expression
|
192
191
|
|
@@ -303,7 +302,7 @@ lvgl_static = MockObj("LvglComponent", "::")
|
|
303
302
|
|
304
303
|
|
305
304
|
# equivalent to cg.add() for the current code context
|
306
|
-
def lv_add(expression:
|
305
|
+
def lv_add(expression: Expression | Statement):
|
307
306
|
return CodeContext.append(expression)
|
308
307
|
|
309
308
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
#include "esphome/core/defines.h"
|
2
|
-
#include "esphome/core/log.h"
|
3
|
-
#include "esphome/core/helpers.h"
|
4
2
|
#include "esphome/core/hal.h"
|
3
|
+
#include "esphome/core/helpers.h"
|
4
|
+
#include "esphome/core/log.h"
|
5
5
|
#include "lvgl_hal.h"
|
6
6
|
#include "lvgl_esphome.h"
|
7
7
|
|
@@ -11,6 +11,8 @@ namespace esphome {
|
|
11
11
|
namespace lvgl {
|
12
12
|
static const char *const TAG = "lvgl";
|
13
13
|
|
14
|
+
static const size_t MIN_BUFFER_FRAC = 8;
|
15
|
+
|
14
16
|
static const char *const EVENT_NAMES[] = {
|
15
17
|
"NONE",
|
16
18
|
"PRESSED",
|
@@ -83,10 +85,14 @@ static void rounder_cb(lv_disp_drv_t *disp_drv, lv_area_t *area) {
|
|
83
85
|
lv_event_code_t lv_api_event; // NOLINT
|
84
86
|
lv_event_code_t lv_update_event; // NOLINT
|
85
87
|
void LvglComponent::dump_config() {
|
86
|
-
ESP_LOGCONFIG(TAG,
|
87
|
-
|
88
|
-
|
89
|
-
|
88
|
+
ESP_LOGCONFIG(TAG,
|
89
|
+
"LVGL:\n"
|
90
|
+
" Display width/height: %d x %d\n"
|
91
|
+
" Buffer size: %zu%%\n"
|
92
|
+
" Rotation: %d\n"
|
93
|
+
" Draw rounding: %d",
|
94
|
+
this->disp_drv_.hor_res, this->disp_drv_.ver_res, 100 / this->buffer_frac_, this->rotation,
|
95
|
+
(int) this->draw_rounding);
|
90
96
|
}
|
91
97
|
void LvglComponent::set_paused(bool paused, bool show_snow) {
|
92
98
|
this->paused_ = paused;
|
@@ -432,18 +438,28 @@ void LvglComponent::setup() {
|
|
432
438
|
auto *display = this->displays_[0];
|
433
439
|
auto width = display->get_width();
|
434
440
|
auto height = display->get_height();
|
435
|
-
|
441
|
+
auto frac = this->buffer_frac_;
|
442
|
+
if (frac == 0)
|
443
|
+
frac = 1;
|
444
|
+
size_t buffer_pixels = width * height / frac;
|
436
445
|
auto buf_bytes = buffer_pixels * LV_COLOR_DEPTH / 8;
|
437
446
|
void *buffer = nullptr;
|
438
|
-
if (this->buffer_frac_ >=
|
447
|
+
if (this->buffer_frac_ >= MIN_BUFFER_FRAC / 2)
|
439
448
|
buffer = malloc(buf_bytes); // NOLINT
|
440
449
|
if (buffer == nullptr)
|
441
450
|
buffer = lv_custom_mem_alloc(buf_bytes); // NOLINT
|
451
|
+
// if specific buffer size not set and can't get 100%, try for a smaller one
|
452
|
+
if (buffer == nullptr && this->buffer_frac_ == 0) {
|
453
|
+
frac = MIN_BUFFER_FRAC;
|
454
|
+
buffer_pixels /= MIN_BUFFER_FRAC;
|
455
|
+
buffer = lv_custom_mem_alloc(buf_bytes / MIN_BUFFER_FRAC); // NOLINT
|
456
|
+
}
|
442
457
|
if (buffer == nullptr) {
|
443
|
-
this->mark_failed();
|
444
458
|
this->status_set_error("Memory allocation failure");
|
459
|
+
this->mark_failed();
|
445
460
|
return;
|
446
461
|
}
|
462
|
+
this->buffer_frac_ = frac;
|
447
463
|
lv_disp_draw_buf_init(&this->draw_buf_, buffer, nullptr, buffer_pixels);
|
448
464
|
this->disp_drv_.hor_res = width;
|
449
465
|
this->disp_drv_.ver_res = height;
|
@@ -453,8 +469,8 @@ void LvglComponent::setup() {
|
|
453
469
|
if (this->rotation != display::DISPLAY_ROTATION_0_DEGREES) {
|
454
470
|
this->rotate_buf_ = static_cast<lv_color_t *>(lv_custom_mem_alloc(buf_bytes)); // NOLINT
|
455
471
|
if (this->rotate_buf_ == nullptr) {
|
456
|
-
this->mark_failed();
|
457
472
|
this->status_set_error("Memory allocation failure");
|
473
|
+
this->mark_failed();
|
458
474
|
return;
|
459
475
|
}
|
460
476
|
}
|