esphome 2025.5.2__py3-none-any.whl → 2025.6.0b1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (715) hide show
  1. esphome/__main__.py +20 -14
  2. esphome/components/a4988/a4988.cpp +1 -1
  3. esphome/components/absolute_humidity/absolute_humidity.cpp +6 -4
  4. esphome/components/ac_dimmer/ac_dimmer.cpp +4 -2
  5. esphome/components/adc/adc_sensor_esp32.cpp +5 -3
  6. esphome/components/adc/adc_sensor_esp8266.cpp +5 -3
  7. esphome/components/adc/adc_sensor_libretiny.cpp +5 -3
  8. esphome/components/adc/adc_sensor_rp2040.cpp +5 -3
  9. esphome/components/adc128s102/adc128s102.cpp +1 -1
  10. esphome/components/ade7880/ade7880.cpp +28 -17
  11. esphome/components/ade7953_base/ade7953_base.cpp +12 -9
  12. esphome/components/ade7953_i2c/ade7953_i2c.cpp +1 -1
  13. esphome/components/ade7953_spi/ade7953_spi.cpp +1 -1
  14. esphome/components/ads1115/ads1115.cpp +3 -5
  15. esphome/components/ads1118/ads1118.cpp +2 -1
  16. esphome/components/ags10/ags10.cpp +3 -2
  17. esphome/components/aht10/aht10.cpp +27 -29
  18. esphome/components/aic3204/aic3204.cpp +2 -2
  19. esphome/components/alarm_control_panel/__init__.py +1 -0
  20. esphome/components/am2315c/am2315c.cpp +2 -2
  21. esphome/components/am2320/am2320.cpp +2 -2
  22. esphome/components/am43/am43_base.h +1 -1
  23. esphome/components/am43/cover/am43_cover.cpp +4 -2
  24. esphome/components/analog_threshold/analog_threshold_binary_sensor.cpp +4 -2
  25. esphome/components/apds9306/apds9306.cpp +8 -5
  26. esphome/components/apds9960/apds9960.cpp +2 -2
  27. esphome/components/api/__init__.py +5 -0
  28. esphome/components/api/api_connection.cpp +712 -358
  29. esphome/components/api/api_connection.h +343 -284
  30. esphome/components/api/api_frame_helper.cpp +349 -344
  31. esphome/components/api/api_frame_helper.h +121 -94
  32. esphome/components/api/api_pb2.cpp +2 -0
  33. esphome/components/api/api_pb2.h +637 -1
  34. esphome/components/api/api_pb2_service.cpp +12 -688
  35. esphome/components/api/api_pb2_service.h +53 -207
  36. esphome/components/api/api_server.cpp +71 -29
  37. esphome/components/api/api_server.h +9 -0
  38. esphome/components/api/client.py +5 -2
  39. esphome/components/api/homeassistant_service.h +1 -1
  40. esphome/components/api/list_entities.cpp +1 -1
  41. esphome/components/api/proto.cpp +1 -0
  42. esphome/components/api/proto.h +4 -3
  43. esphome/components/api/subscribe_state.cpp +8 -16
  44. esphome/components/as3935/as3935.cpp +3 -3
  45. esphome/components/as5600/as5600.cpp +9 -7
  46. esphome/components/as7341/as7341.cpp +7 -5
  47. esphome/components/at581x/at581x.cpp +13 -10
  48. esphome/components/atm90e26/atm90e26.cpp +2 -2
  49. esphome/components/atm90e32/atm90e32.cpp +3 -3
  50. esphome/components/axs15231/touchscreen/axs15231_touchscreen.cpp +5 -3
  51. esphome/components/bang_bang/bang_bang_climate.cpp +8 -5
  52. esphome/components/bedjet/bedjet_hub.cpp +6 -4
  53. esphome/components/beken_spi_led_strip/led_strip.cpp +11 -7
  54. esphome/components/bh1750/bh1750.cpp +2 -2
  55. esphome/components/binary_sensor/__init__.py +1 -0
  56. esphome/components/binary_sensor/automation.cpp +1 -2
  57. esphome/components/bl0906/bl0906.cpp +1 -1
  58. esphome/components/bl0942/bl0942.cpp +11 -8
  59. esphome/components/bl0942/sensor.py +1 -1
  60. esphome/components/ble_client/__init__.py +5 -1
  61. esphome/components/ble_client/output/ble_binary_output.cpp +6 -3
  62. esphome/components/ble_client/sensor/ble_sensor.cpp +9 -6
  63. esphome/components/ble_client/text_sensor/ble_text_sensor.cpp +8 -5
  64. esphome/components/bluetooth_proxy/__init__.py +5 -1
  65. esphome/components/bluetooth_proxy/bluetooth_connection.cpp +5 -5
  66. esphome/components/bluetooth_proxy/bluetooth_proxy.cpp +16 -14
  67. esphome/components/bme280_base/bme280_base.cpp +3 -3
  68. esphome/components/bme680/bme680.cpp +3 -3
  69. esphome/components/bme680/sensor.py +2 -2
  70. esphome/components/bme680_bsec/bme680_bsec.cpp +11 -7
  71. esphome/components/bme680_bsec/sensor.py +7 -3
  72. esphome/components/bme68x_bsec2/__init__.py +6 -5
  73. esphome/components/bme68x_bsec2/bme68x_bsec2.cpp +17 -13
  74. esphome/components/bme68x_bsec2/sensor.py +4 -4
  75. esphome/components/bme68x_bsec2_i2c/bme68x_bsec2_i2c.cpp +1 -0
  76. esphome/components/bmi160/bmi160.cpp +11 -11
  77. esphome/components/bmp085/bmp085.cpp +2 -2
  78. esphome/components/bmp280_base/bmp280_base.cpp +3 -3
  79. esphome/components/bmp3xx_base/bmp3xx_base.cpp +13 -13
  80. esphome/components/bmp581/bmp581.cpp +33 -27
  81. esphome/components/bp1658cj/bp1658cj.cpp +5 -3
  82. esphome/components/bp5758d/bp5758d.cpp +1 -1
  83. esphome/components/button/__init__.py +1 -0
  84. esphome/components/canbus/canbus.cpp +1 -1
  85. esphome/components/cap1188/cap1188.cpp +6 -4
  86. esphome/components/captive_portal/captive_portal.cpp +1 -1
  87. esphome/components/ccs811/ccs811.cpp +3 -2
  88. esphome/components/cd74hc4067/cd74hc4067.cpp +1 -1
  89. esphome/components/ch422g/ch422g.cpp +2 -2
  90. esphome/components/chsc6x/chsc6x_touchscreen.cpp +6 -4
  91. esphome/components/climate/__init__.py +1 -0
  92. esphome/components/climate/climate.cpp +12 -7
  93. esphome/components/climate/climate.h +1 -1
  94. esphome/components/climate_ir/climate_ir.cpp +7 -4
  95. esphome/components/cm1106/__init__.py +1 -0
  96. esphome/components/cm1106/cm1106.cpp +112 -0
  97. esphome/components/cm1106/cm1106.h +40 -0
  98. esphome/components/cm1106/sensor.py +72 -0
  99. esphome/components/const/__init__.py +1 -0
  100. esphome/components/cover/__init__.py +1 -0
  101. esphome/components/cs5460a/cs5460a.cpp +16 -11
  102. esphome/components/cse7761/cse7761.cpp +2 -2
  103. esphome/components/cse7766/cse7766.cpp +0 -5
  104. esphome/components/cse7766/cse7766.h +5 -1
  105. esphome/components/cst226/touchscreen/cst226_touchscreen.cpp +1 -1
  106. esphome/components/cst816/touchscreen/cst816_touchscreen.cpp +6 -3
  107. esphome/components/current_based/current_based_cover.cpp +4 -2
  108. esphome/components/dac7678/dac7678_output.cpp +4 -4
  109. esphome/components/dallas_temp/dallas_temp.cpp +2 -3
  110. esphome/components/daly_bms/daly_bms.cpp +2 -1
  111. esphome/components/dashboard_import/__init__.py +1 -2
  112. esphome/components/datetime/__init__.py +3 -1
  113. esphome/components/debug/debug_component.cpp +1 -1
  114. esphome/components/debug/debug_component.h +1 -1
  115. esphome/components/debug/debug_esp32.cpp +4 -2
  116. esphome/components/deep_sleep/deep_sleep_component.cpp +11 -5
  117. esphome/components/deep_sleep/deep_sleep_esp32.cpp +7 -5
  118. esphome/components/demo/__init__.py +206 -0
  119. esphome/components/demo/demo_alarm_control_panel.h +65 -0
  120. esphome/components/demo/demo_button.h +15 -0
  121. esphome/components/demo/demo_date.h +34 -0
  122. esphome/components/demo/demo_datetime.h +40 -0
  123. esphome/components/demo/demo_lock.h +17 -0
  124. esphome/components/demo/demo_select.h +15 -0
  125. esphome/components/demo/demo_text.h +18 -0
  126. esphome/components/demo/demo_time.h +34 -0
  127. esphome/components/demo/demo_valve.h +54 -0
  128. esphome/components/dfrobot_sen0395/commands.cpp +3 -3
  129. esphome/components/dht/dht.cpp +29 -50
  130. esphome/components/dht12/dht12.cpp +2 -2
  131. esphome/components/display/display.h +5 -3
  132. esphome/components/dps310/dps310.cpp +7 -5
  133. esphome/components/ds1307/ds1307.cpp +2 -2
  134. esphome/components/dsmr/dsmr.cpp +5 -3
  135. esphome/components/duty_cycle/duty_cycle_sensor.cpp +2 -2
  136. esphome/components/duty_time/duty_time_sensor.cpp +5 -3
  137. esphome/components/ee895/ee895.cpp +3 -3
  138. esphome/components/ektf2232/touchscreen/ektf2232.cpp +1 -1
  139. esphome/components/emc2101/emc2101.cpp +11 -9
  140. esphome/components/ens160_base/ens160_base.cpp +2 -2
  141. esphome/components/ens210/ens210.cpp +2 -2
  142. esphome/components/es7210/es7210.cpp +6 -4
  143. esphome/components/es7243e/es7243e.cpp +1 -1
  144. esphome/components/es8156/es8156.cpp +1 -1
  145. esphome/components/es8311/es8311.cpp +8 -6
  146. esphome/components/es8388/__init__.py +0 -0
  147. esphome/components/es8388/audio_dac.py +26 -0
  148. esphome/components/es8388/es8388.cpp +289 -0
  149. esphome/components/es8388/es8388.h +81 -0
  150. esphome/components/es8388/es8388_const.h +83 -0
  151. esphome/components/es8388/select/__init__.py +47 -0
  152. esphome/components/es8388/select/adc_input_mic_select.cpp +12 -0
  153. esphome/components/es8388/select/adc_input_mic_select.h +15 -0
  154. esphome/components/es8388/select/dac_output_select.cpp +12 -0
  155. esphome/components/es8388/select/dac_output_select.h +15 -0
  156. esphome/components/esp32/__init__.py +88 -20
  157. esphome/components/esp32/boards.py +208 -125
  158. esphome/components/esp32/const.py +6 -0
  159. esphome/components/esp32/gpio.py +14 -1
  160. esphome/components/esp32/gpio_esp32_c5.py +45 -0
  161. esphome/components/esp32/gpio_esp32_p4.py +43 -0
  162. esphome/components/esp32/preferences.cpp +7 -7
  163. esphome/components/esp32_ble/__init__.py +115 -0
  164. esphome/components/esp32_ble/ble.cpp +11 -9
  165. esphome/components/esp32_ble/ble_uuid.h +1 -1
  166. esphome/components/esp32_ble_client/ble_client_base.cpp +4 -2
  167. esphome/components/esp32_ble_server/__init__.py +4 -1
  168. esphome/components/esp32_ble_server/ble_characteristic.cpp +1 -0
  169. esphome/components/esp32_ble_server/ble_server.h +0 -1
  170. esphome/components/esp32_ble_tracker/__init__.py +6 -2
  171. esphome/components/esp32_ble_tracker/esp32_ble_tracker.cpp +12 -9
  172. esphome/components/esp32_camera/esp32_camera.cpp +35 -27
  173. esphome/components/esp32_camera_web_server/camera_web_server.cpp +4 -2
  174. esphome/components/esp32_dac/esp32_dac.cpp +2 -2
  175. esphome/components/esp32_improv/__init__.py +5 -1
  176. esphome/components/esp32_improv/esp32_improv_component.cpp +2 -2
  177. esphome/components/esp32_rmt_led_strip/led_strip.cpp +11 -7
  178. esphome/components/esp32_rmt_led_strip/light.py +5 -1
  179. esphome/components/esp32_touch/esp32_touch.cpp +12 -8
  180. esphome/components/esp8266/preferences.cpp +6 -6
  181. esphome/components/esp8266_pwm/esp8266_pwm.cpp +3 -3
  182. esphome/components/esp_ldo/__init__.py +91 -0
  183. esphome/components/esp_ldo/esp_ldo.cpp +43 -0
  184. esphome/components/esp_ldo/esp_ldo.h +43 -0
  185. esphome/components/esphome/ota/ota_esphome.cpp +15 -8
  186. esphome/components/ethernet/ethernet_component.cpp +38 -26
  187. esphome/components/ethernet/ethernet_component.h +1 -1
  188. esphome/components/event/__init__.py +1 -0
  189. esphome/components/exposure_notifications/exposure_notifications.cpp +1 -1
  190. esphome/components/ezo/ezo.cpp +1 -1
  191. esphome/components/ezo_pmp/ezo_pmp.cpp +1 -1
  192. esphome/components/factory_reset/button/factory_reset_button.cpp +1 -1
  193. esphome/components/factory_reset/switch/factory_reset_switch.cpp +1 -1
  194. esphome/components/fan/__init__.py +1 -0
  195. esphome/components/fan/fan.cpp +4 -2
  196. esphome/components/fastled_base/fastled_light.cpp +7 -5
  197. esphome/components/fingerprint_grow/fingerprint_grow.cpp +8 -6
  198. esphome/components/fs3000/fs3000.cpp +1 -1
  199. esphome/components/ft5x06/touchscreen/ft5x06_touchscreen.cpp +7 -4
  200. esphome/components/ft63x6/ft63x6.cpp +5 -3
  201. esphome/components/gcja5/gcja5.cpp +0 -12
  202. esphome/components/gcja5/gcja5.h +8 -3
  203. esphome/components/gdk101/gdk101.cpp +2 -2
  204. esphome/components/globals/globals_component.h +13 -10
  205. esphome/components/gp2y1010au0f/gp2y1010au0f.cpp +4 -2
  206. esphome/components/gp8403/gp8403.cpp +4 -2
  207. esphome/components/gp8403/output/gp8403_output.cpp +4 -2
  208. esphome/components/gpio/one_wire/gpio_one_wire.cpp +2 -2
  209. esphome/components/gpio/output/gpio_binary_output.cpp +1 -1
  210. esphome/components/gpio/switch/gpio_switch.cpp +1 -1
  211. esphome/components/graphical_display_menu/graphical_display_menu.cpp +12 -8
  212. esphome/components/grove_gas_mc_v2/grove_gas_mc_v2.cpp +5 -6
  213. esphome/components/grove_tb6612fng/grove_tb6612fng.cpp +1 -1
  214. esphome/components/grove_tb6612fng/grove_tb6612fng.h +1 -1
  215. esphome/components/growatt_solar/growatt_solar.cpp +6 -3
  216. esphome/components/gt911/touchscreen/gt911_touchscreen.cpp +1 -1
  217. esphome/components/haier/haier_base.cpp +2 -2
  218. esphome/components/haier/hon_climate.cpp +13 -6
  219. esphome/components/havells_solar/havells_solar.cpp +5 -2
  220. esphome/components/hbridge/switch/hbridge_switch.cpp +1 -1
  221. esphome/components/hdc1080/hdc1080.cpp +2 -2
  222. esphome/components/he60r/he60r.cpp +4 -2
  223. esphome/components/hlw8012/hlw8012.cpp +6 -4
  224. esphome/components/hm3301/hm3301.cpp +2 -2
  225. esphome/components/hmc5883l/hmc5883l.cpp +2 -2
  226. esphome/components/homeassistant/time/homeassistant_time.cpp +4 -2
  227. esphome/components/honeywell_hih_i2c/honeywell_hih.cpp +4 -4
  228. esphome/components/honeywellabp/honeywellabp.cpp +4 -2
  229. esphome/components/honeywellabp2_i2c/honeywellabp2.cpp +8 -6
  230. esphome/components/hte501/hte501.cpp +3 -2
  231. esphome/components/http_request/__init__.py +2 -2
  232. esphome/components/http_request/http_request.cpp +7 -5
  233. esphome/components/http_request/http_request_idf.cpp +4 -2
  234. esphome/components/http_request/ota/ota_http_request.cpp +1 -1
  235. esphome/components/htu21d/htu21d.cpp +2 -2
  236. esphome/components/htu31d/htu31d.cpp +2 -2
  237. esphome/components/hx711/hx711.cpp +2 -2
  238. esphome/components/hydreon_rgxx/hydreon_rgxx.cpp +5 -3
  239. esphome/components/hyt271/hyt271.cpp +2 -2
  240. esphome/components/i2c/i2c_bus_arduino.cpp +14 -11
  241. esphome/components/i2c/i2c_bus_esp_idf.cpp +13 -11
  242. esphome/components/i2s_audio/__init__.py +2 -0
  243. esphome/components/i2s_audio/i2s_audio.cpp +3 -4
  244. esphome/components/i2s_audio/i2s_audio.h +1 -1
  245. esphome/components/i2s_audio/media_player/__init__.py +1 -1
  246. esphome/components/i2s_audio/media_player/i2s_audio_media_player.cpp +5 -3
  247. esphome/components/i2s_audio/microphone/i2s_audio_microphone.cpp +1 -1
  248. esphome/components/i2s_audio/speaker/i2s_audio_speaker.cpp +1 -1
  249. esphome/components/iaqcore/iaqcore.cpp +3 -3
  250. esphome/components/ili9xxx/ili9xxx_display.cpp +12 -7
  251. esphome/components/ili9xxx/ili9xxx_display.h +1 -1
  252. esphome/components/image/image.cpp +1 -0
  253. esphome/components/ina219/ina219.cpp +2 -2
  254. esphome/components/ina226/ina226.cpp +8 -5
  255. esphome/components/ina260/ina260.cpp +1 -1
  256. esphome/components/ina2xx_base/ina2xx_base.cpp +13 -9
  257. esphome/components/ina3221/ina3221.cpp +2 -2
  258. esphome/components/inkplate6/display.py +12 -2
  259. esphome/components/inkplate6/inkplate.cpp +13 -9
  260. esphome/components/inkplate6/inkplate.h +7 -6
  261. esphome/components/integration/integration_sensor.cpp +1 -1
  262. esphome/components/internal_temperature/internal_temperature.cpp +4 -4
  263. esphome/components/json/json_util.cpp +4 -5
  264. esphome/components/kamstrup_kmp/kamstrup_kmp.cpp +1 -1
  265. esphome/components/key_collector/key_collector.cpp +4 -2
  266. esphome/components/kmeteriso/kmeteriso.cpp +2 -1
  267. esphome/components/kuntze/kuntze.cpp +4 -2
  268. esphome/components/lc709203f/__init__.py +1 -0
  269. esphome/components/lc709203f/lc709203f.cpp +299 -0
  270. esphome/components/lc709203f/lc709203f.h +55 -0
  271. esphome/components/lc709203f/sensor.py +93 -0
  272. esphome/components/lcd_base/lcd_display.cpp +2 -2
  273. esphome/components/lcd_gpio/gpio_lcd_display.cpp +5 -3
  274. esphome/components/lcd_menu/lcd_menu.cpp +6 -4
  275. esphome/components/lcd_pcf8574/pcf8574_display.cpp +6 -4
  276. esphome/components/ld2410/ld2410.cpp +6 -7
  277. esphome/components/ld2420/ld2420.cpp +9 -7
  278. esphome/components/ld2450/ld2450.cpp +6 -4
  279. esphome/components/ld2450/sensor.py +2 -2
  280. esphome/components/ledc/ledc_output.cpp +32 -28
  281. esphome/components/libretiny/const.py +1 -1
  282. esphome/components/libretiny/preferences.cpp +6 -7
  283. esphome/components/light/__init__.py +2 -1
  284. esphome/components/light/esp_hsv_color.h +1 -1
  285. esphome/components/light/light_state.cpp +9 -5
  286. esphome/components/light/light_transformer.h +1 -1
  287. esphome/components/lightwaverf/LwTx.cpp +1 -1
  288. esphome/components/lightwaverf/lightwaverf.cpp +1 -1
  289. esphome/components/lilygo_t5_47/touchscreen/lilygo_t5_47_touchscreen.cpp +1 -1
  290. esphome/components/lock/__init__.py +1 -0
  291. esphome/components/lock/lock.h +1 -1
  292. esphome/components/logger/__init__.py +6 -0
  293. esphome/components/logger/logger.cpp +9 -5
  294. esphome/components/logger/logger_esp32.cpp +5 -5
  295. esphome/components/ltr390/ltr390.cpp +8 -5
  296. esphome/components/ltr501/ltr501.cpp +19 -14
  297. esphome/components/ltr_als_ps/ltr_als_ps.cpp +20 -13
  298. esphome/components/lvgl/__init__.py +2 -2
  299. esphome/components/lvgl/automation.py +5 -4
  300. esphome/components/lvgl/defines.py +0 -2
  301. esphome/components/lvgl/lv_validation.py +1 -3
  302. esphome/components/lvgl/lvcode.py +7 -8
  303. esphome/components/lvgl/lvgl_esphome.cpp +26 -10
  304. esphome/components/lvgl/schemas.py +22 -23
  305. esphome/components/lvgl/trigger.py +8 -3
  306. esphome/components/lvgl/widgets/__init__.py +2 -2
  307. esphome/components/lvgl/widgets/canvas.py +9 -3
  308. esphome/components/lvgl/widgets/line.py +2 -1
  309. esphome/components/lvgl/widgets/tabview.py +7 -0
  310. esphome/components/m5stack_8angle/m5stack_8angle.cpp +3 -3
  311. esphome/components/matrix_keypad/matrix_keypad.cpp +2 -2
  312. esphome/components/max17043/max17043.cpp +2 -2
  313. esphome/components/max31855/max31855.cpp +2 -1
  314. esphome/components/max31856/max31856.cpp +9 -11
  315. esphome/components/max31865/max31865.cpp +6 -4
  316. esphome/components/max44009/max44009.cpp +2 -2
  317. esphome/components/max6675/max6675.cpp +1 -1
  318. esphome/components/max6956/max6956.cpp +5 -3
  319. esphome/components/max7219/max7219.cpp +8 -6
  320. esphome/components/max7219digit/automation.h +52 -0
  321. esphome/components/max7219digit/display.py +93 -1
  322. esphome/components/max7219digit/max7219digit.cpp +16 -13
  323. esphome/components/max9611/max9611.cpp +9 -6
  324. esphome/components/mcp23008/mcp23008.cpp +1 -1
  325. esphome/components/mcp23016/mcp23016.cpp +1 -1
  326. esphome/components/mcp23017/mcp23017.cpp +1 -1
  327. esphome/components/mcp23s08/mcp23s08.cpp +1 -1
  328. esphome/components/mcp23s17/mcp23s17.cpp +1 -1
  329. esphome/components/mcp3008/mcp3008.cpp +1 -1
  330. esphome/components/mcp3008/sensor/mcp3008_sensor.cpp +5 -3
  331. esphome/components/mcp3204/mcp3204.cpp +1 -1
  332. esphome/components/mcp4461/mcp4461.cpp +2 -2
  333. esphome/components/mcp4725/mcp4725.cpp +2 -2
  334. esphome/components/mcp4728/mcp4728.cpp +2 -2
  335. esphome/components/mcp9600/mcp9600.cpp +1 -1
  336. esphome/components/mcp9808/mcp9808.cpp +4 -4
  337. esphome/components/mdns/mdns_component.cpp +8 -2
  338. esphome/components/mdns/mdns_component.h +3 -1
  339. esphome/components/mdns/mdns_esp32.cpp +2 -2
  340. esphome/components/media_player/__init__.py +1 -0
  341. esphome/components/micro_wake_word/micro_wake_word.cpp +1 -1
  342. esphome/components/micro_wake_word/streaming_model.cpp +10 -6
  343. esphome/components/micronova/micronova.h +2 -2
  344. esphome/components/mics_4514/mics_4514.cpp +2 -2
  345. esphome/components/midea/air_conditioner.cpp +7 -5
  346. esphome/components/midea_ir/midea_ir.cpp +1 -1
  347. esphome/components/mipi_spi/mipi_spi.cpp +24 -15
  348. esphome/components/mixer/speaker/mixer_speaker.cpp +8 -4
  349. esphome/components/mlx90393/sensor_mlx90393.cpp +2 -2
  350. esphome/components/mlx90614/mlx90614.cpp +4 -3
  351. esphome/components/mmc5603/mmc5603.cpp +2 -2
  352. esphome/components/mmc5983/mmc5983.cpp +1 -1
  353. esphome/components/modbus/modbus.cpp +7 -5
  354. esphome/components/modbus_controller/modbus_controller.cpp +6 -4
  355. esphome/components/modbus_controller/output/modbus_output.cpp +10 -6
  356. esphome/components/modbus_controller/switch/__init__.py +6 -2
  357. esphome/components/modbus_controller/switch/modbus_switch.cpp +4 -0
  358. esphome/components/modbus_controller/switch/modbus_switch.h +3 -0
  359. esphome/components/mpl3115a2/mpl3115a2.cpp +3 -2
  360. esphome/components/mpr121/mpr121.cpp +2 -2
  361. esphome/components/mpu6050/mpu6050.cpp +6 -6
  362. esphome/components/mpu6886/mpu6886.cpp +6 -6
  363. esphome/components/mqtt/mqtt_alarm_control_panel.cpp +7 -3
  364. esphome/components/mqtt/mqtt_backend_esp32.cpp +1 -1
  365. esphome/components/mqtt/mqtt_client.cpp +31 -24
  366. esphome/components/mqtt/mqtt_component.cpp +2 -2
  367. esphome/components/mqtt/mqtt_cover.cpp +8 -4
  368. esphome/components/mqtt/mqtt_fan.cpp +12 -6
  369. esphome/components/mqtt/mqtt_valve.cpp +4 -2
  370. esphome/components/ms5611/ms5611.cpp +2 -2
  371. esphome/components/ms8607/ms8607.cpp +2 -2
  372. esphome/components/msa3xx/msa3xx.cpp +16 -12
  373. esphome/components/my9231/my9231.cpp +7 -5
  374. esphome/components/nau7802/nau7802.cpp +6 -4
  375. esphome/components/neopixelbus/neopixelbus_light.h +2 -2
  376. esphome/components/network/ip_address.h +1 -1
  377. esphome/components/network/util.cpp +13 -0
  378. esphome/components/nextion/base_component.py +2 -0
  379. esphome/components/nextion/binary_sensor/nextion_binarysensor.cpp +2 -3
  380. esphome/components/nextion/display.py +34 -22
  381. esphome/components/nextion/nextion.cpp +182 -143
  382. esphome/components/nextion/nextion.h +36 -0
  383. esphome/components/nextion/nextion_commands.cpp +3 -3
  384. esphome/components/nextion/nextion_upload_arduino.cpp +58 -61
  385. esphome/components/nextion/nextion_upload_idf.cpp +69 -72
  386. esphome/components/nextion/sensor/nextion_sensor.cpp +4 -4
  387. esphome/components/nextion/switch/nextion_switch.cpp +2 -2
  388. esphome/components/nextion/text_sensor/nextion_textsensor.cpp +2 -2
  389. esphome/components/nfc/nci_message.h +1 -1
  390. esphome/components/nfc/ndef_record.h +1 -1
  391. esphome/components/nfc/ndef_record_text.h +1 -1
  392. esphome/components/nfc/ndef_record_uri.h +1 -1
  393. esphome/components/nfc/nfc.h +1 -1
  394. esphome/components/nfc/nfc_tag.h +1 -1
  395. esphome/components/noblex/noblex.cpp +1 -1
  396. esphome/components/npi19/npi19.cpp +5 -7
  397. esphome/components/number/__init__.py +11 -0
  398. esphome/components/online_image/__init__.py +13 -1
  399. esphome/components/online_image/online_image.cpp +26 -4
  400. esphome/components/online_image/online_image.h +21 -4
  401. esphome/components/opentherm/generate.py +3 -3
  402. esphome/components/opentherm/hub.cpp +11 -7
  403. esphome/components/opentherm/number/number.cpp +5 -3
  404. esphome/components/opentherm/opentherm.h +1 -1
  405. esphome/components/opentherm/schema.py +13 -13
  406. esphome/components/opentherm/validate.py +1 -1
  407. esphome/components/openthread/__init__.py +146 -0
  408. esphome/components/openthread/const.py +10 -0
  409. esphome/components/openthread/openthread.cpp +206 -0
  410. esphome/components/openthread/openthread.h +68 -0
  411. esphome/components/openthread/openthread_esp.cpp +164 -0
  412. esphome/components/openthread/tlv.py +58 -0
  413. esphome/components/openthread_info/__init__.py +0 -0
  414. esphome/components/openthread_info/openthread_info_text_sensor.cpp +24 -0
  415. esphome/components/openthread_info/openthread_info_text_sensor.h +218 -0
  416. esphome/components/openthread_info/text_sensor.py +105 -0
  417. esphome/components/output/float_output.cpp +1 -1
  418. esphome/components/output/switch/output_switch.cpp +1 -1
  419. esphome/components/packet_transport/packet_transport.cpp +6 -4
  420. esphome/components/pca6416a/pca6416a.cpp +2 -2
  421. esphome/components/pca9554/pca9554.cpp +6 -4
  422. esphome/components/pca9685/pca9685_output.cpp +12 -8
  423. esphome/components/pcd8544/pcd_8544.cpp +1 -1
  424. esphome/components/pcf85063/pcf85063.cpp +2 -2
  425. esphome/components/pcf8563/pcf8563.cpp +2 -2
  426. esphome/components/pcf8574/pcf8574.cpp +2 -2
  427. esphome/components/pid/pid_climate.cpp +8 -5
  428. esphome/components/pid/pid_climate.h +1 -1
  429. esphome/components/pid/sensor/pid_climate_sensor.cpp +1 -1
  430. esphome/components/pipsolar/output/pipsolar_output.cpp +1 -1
  431. esphome/components/pipsolar/pipsolar.cpp +3 -3
  432. esphome/components/pm1006/pm1006.cpp +3 -7
  433. esphome/components/pm1006/pm1006.h +4 -1
  434. esphome/components/pm2005/pm2005.cpp +12 -13
  435. esphome/components/pm2005/sensor.py +1 -1
  436. esphome/components/pmsa003i/pmsa003i.cpp +2 -2
  437. esphome/components/pmsx003/pmsx003.cpp +0 -4
  438. esphome/components/pmsx003/pmsx003.h +5 -2
  439. esphome/components/pmwcs3/pmwcs3.cpp +9 -13
  440. esphome/components/pmwcs3/pmwcs3.h +0 -1
  441. esphome/components/pn532/pn532.cpp +7 -7
  442. esphome/components/pn532/pn532.h +1 -1
  443. esphome/components/pn532_spi/pn532_spi.cpp +1 -1
  444. esphome/components/pn7150/pn7150.cpp +4 -4
  445. esphome/components/pn7160/pn7160.cpp +4 -4
  446. esphome/components/power_supply/power_supply.cpp +6 -4
  447. esphome/components/power_supply/power_supply.h +1 -1
  448. esphome/components/psram/__init__.py +59 -35
  449. esphome/components/pulse_counter/pulse_counter_sensor.cpp +7 -4
  450. esphome/components/pvvx_mithermometer/display/pvvx_display.cpp +8 -5
  451. esphome/components/pylontech/pylontech.cpp +2 -2
  452. esphome/components/pylontech/sensor/pylontech_sensor.cpp +4 -2
  453. esphome/components/pylontech/text_sensor/pylontech_text_sensor.cpp +4 -2
  454. esphome/components/pzemac/pzemac.cpp +4 -2
  455. esphome/components/pzemdc/pzemdc.cpp +4 -2
  456. esphome/components/qmc5883l/qmc5883l.cpp +2 -2
  457. esphome/components/qmp6988/qmp6988.cpp +2 -2
  458. esphome/components/qmp6988/qmp6988.h +1 -1
  459. esphome/components/qr_code/qr_code.cpp +5 -3
  460. esphome/components/qspi_dbi/qspi_dbi.cpp +1 -1
  461. esphome/components/qwiic_pir/qwiic_pir.cpp +26 -28
  462. esphome/components/rc522/rc522.cpp +5 -5
  463. esphome/components/rdm6300/rdm6300.cpp +1 -0
  464. esphome/components/remote_receiver/__init__.py +10 -2
  465. esphome/components/remote_receiver/remote_receiver_esp32.cpp +22 -12
  466. esphome/components/remote_receiver/remote_receiver_esp8266.cpp +10 -7
  467. esphome/components/remote_receiver/remote_receiver_libretiny.cpp +10 -7
  468. esphome/components/remote_transmitter/__init__.py +10 -2
  469. esphome/components/remote_transmitter/remote_transmitter_esp32.cpp +10 -6
  470. esphome/components/remote_transmitter/remote_transmitter_esp8266.cpp +5 -3
  471. esphome/components/remote_transmitter/remote_transmitter_libretiny.cpp +5 -3
  472. esphome/components/resistance/resistance_sensor.cpp +6 -3
  473. esphome/components/restart/button/restart_button.cpp +1 -1
  474. esphome/components/restart/switch/restart_switch.cpp +1 -1
  475. esphome/components/rotary_encoder/rotary_encoder.cpp +2 -2
  476. esphome/components/rp2040/__init__.py +7 -0
  477. esphome/components/rp2040/core.cpp +8 -1
  478. esphome/components/rp2040/preferences.cpp +3 -3
  479. esphome/components/rp2040_pio_led_strip/led_strip.cpp +11 -8
  480. esphome/components/rp2040_pio_led_strip/light.py +1 -1
  481. esphome/components/rp2040_pwm/rp2040_pwm.cpp +1 -1
  482. esphome/components/rpi_dpi_rgb/rpi_dpi_rgb.cpp +1 -1
  483. esphome/components/rtttl/rtttl.cpp +11 -9
  484. esphome/components/safe_mode/button/safe_mode_button.cpp +1 -1
  485. esphome/components/safe_mode/safe_mode.cpp +9 -8
  486. esphome/components/safe_mode/switch/safe_mode_switch.cpp +1 -1
  487. esphome/components/scd30/scd30.cpp +11 -8
  488. esphome/components/scd4x/scd4x.cpp +12 -8
  489. esphome/components/sdl/display.py +40 -0
  490. esphome/components/sdl/sdl_esphome.cpp +2 -2
  491. esphome/components/sdl/sdl_esphome.h +8 -0
  492. esphome/components/sdm_meter/sdm_meter.cpp +5 -2
  493. esphome/components/sdp3x/sdp3x.cpp +11 -11
  494. esphome/components/sds011/sds011.cpp +5 -6
  495. esphome/components/sds011/sds011.h +4 -1
  496. esphome/components/seeed_mr24hpc1/seeed_mr24hpc1.cpp +3 -2
  497. esphome/components/seeed_mr60bha2/seeed_mr60bha2.cpp +1 -0
  498. esphome/components/seeed_mr60fda2/seeed_mr60fda2.cpp +3 -2
  499. esphome/components/selec_meter/selec_meter.cpp +5 -2
  500. esphome/components/select/__init__.py +1 -0
  501. esphome/components/sen0321/sen0321.cpp +2 -2
  502. esphome/components/sen21231/sen21231.cpp +1 -1
  503. esphome/components/sen5x/sen5x.cpp +10 -7
  504. esphome/components/sensirion_common/i2c_sensirion.cpp +2 -1
  505. esphome/components/sensirion_common/i2c_sensirion.h +1 -0
  506. esphome/components/sensor/__init__.py +11 -1
  507. esphome/components/sensor/filter.h +1 -1
  508. esphome/components/sensor/sensor.h +9 -5
  509. esphome/components/servo/servo.cpp +12 -9
  510. esphome/components/servo/servo.h +1 -1
  511. esphome/components/sfa30/sfa30.cpp +1 -1
  512. esphome/components/sgp30/sgp30.cpp +10 -8
  513. esphome/components/sgp4x/sgp4x.cpp +49 -61
  514. esphome/components/sgp4x/sgp4x.h +0 -1
  515. esphome/components/shelly_dimmer/shelly_dimmer.cpp +11 -7
  516. esphome/components/sht3xd/sht3xd.cpp +1 -1
  517. esphome/components/sht4x/sht4x.cpp +2 -2
  518. esphome/components/shtcx/shtcx.cpp +13 -16
  519. esphome/components/shutdown/button/shutdown_button.cpp +1 -1
  520. esphome/components/shutdown/switch/shutdown_switch.cpp +1 -1
  521. esphome/components/sim800l/sim800l.cpp +2 -2
  522. esphome/components/slow_pwm/slow_pwm_output.cpp +4 -2
  523. esphome/components/sm16716/sm16716.cpp +1 -1
  524. esphome/components/sm2135/sm2135.cpp +1 -1
  525. esphome/components/sm2235/sm2235.cpp +5 -3
  526. esphome/components/sm2335/sm2335.cpp +5 -3
  527. esphome/components/sml/sml.cpp +1 -1
  528. esphome/components/sn74hc165/sn74hc165.cpp +1 -2
  529. esphome/components/sn74hc595/sn74hc595.cpp +1 -2
  530. esphome/components/sntp/sntp_component.cpp +1 -1
  531. esphome/components/socket/__init__.py +2 -0
  532. esphome/components/socket/bsd_sockets_impl.cpp +51 -7
  533. esphome/components/socket/lwip_raw_tcp_impl.cpp +5 -0
  534. esphome/components/socket/lwip_sockets_impl.cpp +51 -7
  535. esphome/components/socket/socket.cpp +31 -0
  536. esphome/components/socket/socket.h +27 -1
  537. esphome/components/sonoff_d1/sonoff_d1.cpp +7 -4
  538. esphome/components/sonoff_d1/sonoff_d1.h +2 -2
  539. esphome/components/sound_level/sound_level.cpp +4 -2
  540. esphome/components/speaker/media_player/__init__.py +3 -0
  541. esphome/components/speaker/media_player/speaker_media_player.cpp +1 -3
  542. esphome/components/speaker/media_player/speaker_media_player.h +6 -0
  543. esphome/components/spi/__init__.py +10 -2
  544. esphome/components/spi/spi.cpp +4 -4
  545. esphome/components/spi_device/spi_device.cpp +1 -2
  546. esphome/components/sprinkler/sprinkler.cpp +9 -6
  547. esphome/components/sps30/sps30.cpp +16 -15
  548. esphome/components/ssd1306_base/ssd1306_base.cpp +1 -1
  549. esphome/components/ssd1306_i2c/ssd1306_i2c.cpp +11 -8
  550. esphome/components/ssd1306_spi/ssd1306_spi.cpp +10 -7
  551. esphome/components/ssd1322_base/ssd1322_base.cpp +1 -1
  552. esphome/components/ssd1322_spi/ssd1322_spi.cpp +1 -1
  553. esphome/components/ssd1325_base/ssd1325_base.cpp +1 -1
  554. esphome/components/ssd1325_spi/ssd1325_spi.cpp +1 -1
  555. esphome/components/ssd1327_base/ssd1327_base.cpp +1 -1
  556. esphome/components/ssd1327_i2c/ssd1327_i2c.cpp +2 -2
  557. esphome/components/ssd1327_spi/ssd1327_spi.cpp +1 -1
  558. esphome/components/ssd1331_base/ssd1331_base.cpp +1 -1
  559. esphome/components/ssd1331_spi/ssd1331_spi.cpp +1 -1
  560. esphome/components/ssd1351_base/ssd1351_base.cpp +1 -1
  561. esphome/components/ssd1351_spi/ssd1351_spi.cpp +1 -1
  562. esphome/components/st7567_base/st7567_base.cpp +3 -3
  563. esphome/components/st7567_i2c/st7567_i2c.cpp +7 -5
  564. esphome/components/st7567_spi/st7567_spi.cpp +1 -1
  565. esphome/components/st7701s/st7701s.cpp +4 -2
  566. esphome/components/st7735/st7735.cpp +3 -3
  567. esphome/components/st7789v/st7789v.cpp +10 -7
  568. esphome/components/st7920/st7920.cpp +6 -4
  569. esphome/components/statsd/statsd.cpp +9 -5
  570. esphome/components/status_led/light/status_led_light.cpp +1 -1
  571. esphome/components/status_led/status_led.cpp +1 -1
  572. esphome/components/stepper/stepper.h +5 -3
  573. esphome/components/sts3x/sts3x.cpp +2 -2
  574. esphome/components/switch/__init__.py +1 -0
  575. esphome/components/switch/switch.cpp +18 -12
  576. esphome/components/switch/switch.h +1 -1
  577. esphome/components/sx1509/__init__.py +53 -20
  578. esphome/components/sx1509/sx1509.cpp +29 -5
  579. esphome/components/sx1509/sx1509.h +9 -1
  580. esphome/components/t6615/t6615.cpp +1 -0
  581. esphome/components/tc74/tc74.cpp +1 -1
  582. esphome/components/tca9548a/tca9548a.cpp +1 -1
  583. esphome/components/tca9555/tca9555.cpp +2 -2
  584. esphome/components/tcs34725/tcs34725.cpp +4 -4
  585. esphome/components/tee501/tee501.cpp +3 -2
  586. esphome/components/tem3200/tem3200.cpp +5 -6
  587. esphome/components/template/alarm_control_panel/__init__.py +6 -0
  588. esphome/components/template/alarm_control_panel/template_alarm_control_panel.cpp +38 -12
  589. esphome/components/template/alarm_control_panel/template_alarm_control_panel.h +3 -1
  590. esphome/components/template/cover/template_cover.cpp +1 -1
  591. esphome/components/template/select/template_select.cpp +6 -4
  592. esphome/components/template/text/template_text.cpp +2 -3
  593. esphome/components/template/valve/template_valve.cpp +5 -3
  594. esphome/components/text/__init__.py +10 -11
  595. esphome/components/text_sensor/__init__.py +1 -0
  596. esphome/components/thermostat/thermostat_climate.cpp +67 -43
  597. esphome/components/time/__init__.py +1 -2
  598. esphome/components/time_based/time_based_cover.cpp +4 -2
  599. esphome/components/tlc59208f/tlc59208f_output.cpp +8 -6
  600. esphome/components/tm1621/tm1621.cpp +3 -3
  601. esphome/components/tm1637/tm1637.cpp +9 -7
  602. esphome/components/tm1638/tm1638.cpp +7 -5
  603. esphome/components/tm1651/tm1651.cpp +2 -2
  604. esphome/components/tmp102/tmp102.cpp +1 -3
  605. esphome/components/tmp102/tmp102.h +0 -3
  606. esphome/components/tmp1075/tmp1075.cpp +12 -9
  607. esphome/components/tmp117/tmp117.cpp +2 -2
  608. esphome/components/tof10120/tof10120_sensor.cpp +2 -2
  609. esphome/components/tormatic/tormatic_cover.cpp +4 -2
  610. esphome/components/tsl2561/tsl2561.cpp +7 -5
  611. esphome/components/tsl2591/tsl2591.cpp +25 -27
  612. esphome/components/tt21100/touchscreen/tt21100.cpp +1 -1
  613. esphome/components/ttp229_bsf/ttp229_bsf.cpp +1 -1
  614. esphome/components/ttp229_lsf/ttp229_lsf.cpp +2 -2
  615. esphome/components/tuya/select/tuya_select.cpp +5 -3
  616. esphome/components/tx20/tx20.cpp +3 -3
  617. esphome/components/uart/__init__.py +4 -5
  618. esphome/components/uart/button/uart_button.cpp +1 -1
  619. esphome/components/uart/switch/uart_switch.cpp +2 -2
  620. esphome/components/uart/uart.cpp +2 -2
  621. esphome/components/uart/uart_component_esp32_arduino.cpp +8 -6
  622. esphome/components/uart/uart_component_esp8266.cpp +9 -7
  623. esphome/components/uart/uart_component_esp_idf.cpp +9 -7
  624. esphome/components/uart/uart_component_host.cpp +11 -8
  625. esphome/components/uart/uart_component_libretiny.cpp +8 -6
  626. esphome/components/uart/uart_component_rp2040.cpp +8 -6
  627. esphome/components/udp/udp_component.cpp +9 -5
  628. esphome/components/ufire_ec/ufire_ec.cpp +5 -3
  629. esphome/components/ufire_ise/ufire_ise.cpp +1 -1
  630. esphome/components/ultrasonic/ultrasonic_sensor.cpp +5 -3
  631. esphome/components/update/__init__.py +1 -0
  632. esphome/components/uponor_smatrix/climate/uponor_smatrix_climate.cpp +1 -1
  633. esphome/components/uponor_smatrix/sensor/uponor_smatrix_sensor.cpp +4 -2
  634. esphome/components/uponor_smatrix/uponor_smatrix.cpp +2 -1
  635. esphome/components/usb_host/__init__.py +64 -0
  636. esphome/components/usb_host/usb_host.h +116 -0
  637. esphome/components/usb_host/usb_host_client.cpp +394 -0
  638. esphome/components/usb_host/usb_host_component.cpp +35 -0
  639. esphome/components/usb_uart/__init__.py +134 -0
  640. esphome/components/usb_uart/ch34x.cpp +80 -0
  641. esphome/components/usb_uart/cp210x.cpp +126 -0
  642. esphome/components/usb_uart/usb_uart.cpp +328 -0
  643. esphome/components/usb_uart/usb_uart.h +151 -0
  644. esphome/components/valve/__init__.py +1 -0
  645. esphome/components/veml3235/veml3235.cpp +13 -9
  646. esphome/components/veml7700/veml7700.cpp +10 -6
  647. esphome/components/voice_assistant/voice_assistant.cpp +7 -7
  648. esphome/components/wake_on_lan/wake_on_lan.cpp +1 -1
  649. esphome/components/waveshare_epaper/waveshare_epaper.cpp +1 -1
  650. esphome/components/web_server/server_index_v2.h +632 -630
  651. esphome/components/web_server/server_index_v3.h +411 -409
  652. esphome/components/web_server/web_server.cpp +5 -3
  653. esphome/components/web_server_base/web_server_base.cpp +1 -1
  654. esphome/components/web_server_idf/utils.cpp +1 -1
  655. esphome/components/web_server_idf/web_server_idf.cpp +1 -1
  656. esphome/components/weikai/__init__.py +2 -0
  657. esphome/components/weikai/weikai.cpp +23 -21
  658. esphome/components/weikai_i2c/weikai_i2c.cpp +14 -9
  659. esphome/components/weikai_spi/weikai_spi.cpp +11 -6
  660. esphome/components/wiegand/wiegand.cpp +1 -1
  661. esphome/components/wifi/wifi_component.cpp +50 -37
  662. esphome/components/wifi/wifi_component.h +7 -4
  663. esphome/components/wifi/wifi_component_esp32_arduino.cpp +2 -2
  664. esphome/components/wifi/wifi_component_esp8266.cpp +3 -3
  665. esphome/components/wifi/wifi_component_libretiny.cpp +4 -4
  666. esphome/components/wireguard/wireguard.cpp +21 -21
  667. esphome/components/wl_134/text_sensor.py +1 -2
  668. esphome/components/wled/wled_light_effect.cpp +1 -1
  669. esphome/components/x9c/x9c.cpp +5 -3
  670. esphome/components/xgzp68xx/xgzp68xx.cpp +8 -6
  671. esphome/components/xiaomi_cgd1/xiaomi_cgd1.cpp +4 -2
  672. esphome/components/xiaomi_cgdk2/xiaomi_cgdk2.cpp +4 -2
  673. esphome/components/xiaomi_cgg1/xiaomi_cgg1.cpp +4 -2
  674. esphome/components/xiaomi_hhccjcy10/xiaomi_hhccjcy10.cpp +1 -1
  675. esphome/components/xiaomi_lywsd02mmc/xiaomi_lywsd02mmc.cpp +4 -2
  676. esphome/components/xiaomi_lywsd03mmc/xiaomi_lywsd03mmc.cpp +4 -2
  677. esphome/components/xiaomi_mhoc401/xiaomi_mhoc401.cpp +4 -2
  678. esphome/components/xl9535/xl9535.cpp +2 -2
  679. esphome/components/xpt2046/touchscreen/xpt2046.cpp +12 -11
  680. esphome/components/xpt2046/touchscreen/xpt2046.h +2 -2
  681. esphome/config.py +3 -2
  682. esphome/config_validation.py +46 -17
  683. esphome/const.py +10 -1
  684. esphome/core/__init__.py +37 -18
  685. esphome/core/application.cpp +188 -5
  686. esphome/core/application.h +110 -0
  687. esphome/core/component.h +13 -0
  688. esphome/core/config.py +12 -0
  689. esphome/core/defines.h +10 -2
  690. esphome/core/helpers.cpp +1 -1
  691. esphome/core/helpers.h +4 -4
  692. esphome/core/log.h +2 -0
  693. esphome/core/log_const_en.h +4 -0
  694. esphome/core/scheduler.cpp +2 -2
  695. esphome/coroutine.py +3 -4
  696. esphome/cpp_generator.py +32 -32
  697. esphome/dashboard/core.py +2 -2
  698. esphome/dashboard/web_server.py +2 -2
  699. esphome/git.py +4 -4
  700. esphome/helpers.py +5 -6
  701. esphome/loader.py +8 -7
  702. esphome/log.py +7 -1
  703. esphome/platformio_api.py +2 -3
  704. esphome/storage_json.py +13 -5
  705. esphome/types.py +12 -13
  706. esphome/util.py +1 -2
  707. esphome/writer.py +5 -3
  708. esphome/yaml_util.py +6 -1
  709. esphome/zeroconf.py +1 -1
  710. {esphome-2025.5.2.dist-info → esphome-2025.6.0b1.dist-info}/METADATA +12 -11
  711. {esphome-2025.5.2.dist-info → esphome-2025.6.0b1.dist-info}/RECORD +715 -662
  712. {esphome-2025.5.2.dist-info → esphome-2025.6.0b1.dist-info}/WHEEL +1 -1
  713. {esphome-2025.5.2.dist-info → esphome-2025.6.0b1.dist-info}/entry_points.txt +0 -0
  714. {esphome-2025.5.2.dist-info → esphome-2025.6.0b1.dist-info}/licenses/LICENSE +0 -0
  715. {esphome-2025.5.2.dist-info → esphome-2025.6.0b1.dist-info}/top_level.txt +0 -0
@@ -22,7 +22,7 @@ static const uint8_t HMC5883L_REGISTER_IDENTIFICATION_B = 0x0B;
22
22
  static const uint8_t HMC5883L_REGISTER_IDENTIFICATION_C = 0x0C;
23
23
 
24
24
  void HMC5883LComponent::setup() {
25
- ESP_LOGCONFIG(TAG, "Setting up HMC5583L...");
25
+ ESP_LOGCONFIG(TAG, "Running setup");
26
26
  uint8_t id[3];
27
27
  if (!this->read_byte(HMC5883L_REGISTER_IDENTIFICATION_A, &id[0]) ||
28
28
  !this->read_byte(HMC5883L_REGISTER_IDENTIFICATION_B, &id[1]) ||
@@ -73,7 +73,7 @@ void HMC5883LComponent::dump_config() {
73
73
  ESP_LOGCONFIG(TAG, "HMC5883L:");
74
74
  LOG_I2C_DEVICE(this);
75
75
  if (this->error_code_ == COMMUNICATION_FAILED) {
76
- ESP_LOGE(TAG, "Communication with HMC5883L failed!");
76
+ ESP_LOGE(TAG, ESP_LOG_MSG_COMM_FAIL);
77
77
  } else if (this->error_code_ == ID_REGISTERS) {
78
78
  ESP_LOGE(TAG, "The ID registers don't match - Is this really an HMC5883L?");
79
79
  }
@@ -7,8 +7,10 @@ namespace homeassistant {
7
7
  static const char *const TAG = "homeassistant.time";
8
8
 
9
9
  void HomeassistantTime::dump_config() {
10
- ESP_LOGCONFIG(TAG, "Home Assistant Time:");
11
- ESP_LOGCONFIG(TAG, " Timezone: '%s'", this->timezone_.c_str());
10
+ ESP_LOGCONFIG(TAG,
11
+ "Home Assistant Time:\n"
12
+ " Timezone: '%s'",
13
+ this->timezone_.c_str());
12
14
  }
13
15
 
14
16
  float HomeassistantTime::get_setup_priority() const { return setup_priority::DATA; }
@@ -17,7 +17,7 @@ void HoneywellHIComponent::read_sensor_data_() {
17
17
  uint8_t data[4];
18
18
 
19
19
  if (this->read(data, sizeof(data)) != i2c::ERROR_OK) {
20
- ESP_LOGE(TAG, "Communication with Honeywell HIH failed!");
20
+ ESP_LOGE(TAG, ESP_LOG_MSG_COMM_FAIL);
21
21
  this->mark_failed();
22
22
  return;
23
23
  }
@@ -37,7 +37,7 @@ void HoneywellHIComponent::read_sensor_data_() {
37
37
 
38
38
  void HoneywellHIComponent::start_measurement_() {
39
39
  if (this->write(REQUEST_CMD, sizeof(REQUEST_CMD)) != i2c::ERROR_OK) {
40
- ESP_LOGE(TAG, "Communication with Honeywell HIH failed!");
40
+ ESP_LOGE(TAG, ESP_LOG_MSG_COMM_FAIL);
41
41
  this->mark_failed();
42
42
  return;
43
43
  }
@@ -49,7 +49,7 @@ bool HoneywellHIComponent::is_measurement_ready_() {
49
49
  uint8_t data[1];
50
50
 
51
51
  if (this->read(data, sizeof(data)) != i2c::ERROR_OK) {
52
- ESP_LOGE(TAG, "Communication with Honeywell HIH failed!");
52
+ ESP_LOGE(TAG, ESP_LOG_MSG_COMM_FAIL);
53
53
  this->mark_failed();
54
54
  return false;
55
55
  }
@@ -84,7 +84,7 @@ void HoneywellHIComponent::dump_config() {
84
84
  ESP_LOGD(TAG, "Honeywell HIH:");
85
85
  LOG_I2C_DEVICE(this);
86
86
  if (this->is_failed()) {
87
- ESP_LOGE(TAG, "Communication with Honeywell HIH failed!");
87
+ ESP_LOGE(TAG, ESP_LOG_MSG_COMM_FAIL);
88
88
  }
89
89
  LOG_SENSOR(" ", "Temperature", this->temperature_sensor_);
90
90
  LOG_SENSOR(" ", "Humidity", this->humidity_sensor_);
@@ -85,8 +85,10 @@ float HONEYWELLABPSensor::get_setup_priority() const { return setup_priority::LA
85
85
  void HONEYWELLABPSensor::dump_config() {
86
86
  // LOG_SENSOR("", "HONEYWELLABP", this);
87
87
  LOG_PIN(" CS Pin: ", this->cs_);
88
- ESP_LOGCONFIG(TAG, " Min Pressure Range: %0.1f", honeywellabp_min_pressure_);
89
- ESP_LOGCONFIG(TAG, " Max Pressure Range: %0.1f", honeywellabp_max_pressure_);
88
+ ESP_LOGCONFIG(TAG,
89
+ " Min Pressure Range: %0.1f\n"
90
+ " Max Pressure Range: %0.1f",
91
+ honeywellabp_min_pressure_, honeywellabp_max_pressure_);
90
92
  LOG_UPDATE_INTERVAL(this);
91
93
  }
92
94
 
@@ -1,6 +1,6 @@
1
1
  #include "honeywellabp2.h"
2
- #include "esphome/core/log.h"
3
2
  #include "esphome/core/helpers.h"
3
+ #include "esphome/core/log.h"
4
4
 
5
5
  namespace esphome {
6
6
  namespace honeywellabp2_i2c {
@@ -14,7 +14,7 @@ static const char *const TAG = "honeywellabp2";
14
14
 
15
15
  void HONEYWELLABP2Sensor::read_sensor_data() {
16
16
  if (this->read(raw_data_, 7) != i2c::ERROR_OK) {
17
- ESP_LOGE(TAG, "Communication with ABP2 failed!");
17
+ ESP_LOGE(TAG, ESP_LOG_MSG_COMM_FAIL);
18
18
  this->status_set_warning("couldn't read sensor data");
19
19
  return;
20
20
  }
@@ -30,7 +30,7 @@ void HONEYWELLABP2Sensor::read_sensor_data() {
30
30
 
31
31
  void HONEYWELLABP2Sensor::start_measurement() {
32
32
  if (this->write(i2c_cmd_, 3) != i2c::ERROR_OK) {
33
- ESP_LOGE(TAG, "Communication with ABP2 failed!");
33
+ ESP_LOGE(TAG, ESP_LOG_MSG_COMM_FAIL);
34
34
  this->status_set_warning("couldn't start measurement");
35
35
  return;
36
36
  }
@@ -39,7 +39,7 @@ void HONEYWELLABP2Sensor::start_measurement() {
39
39
 
40
40
  bool HONEYWELLABP2Sensor::is_measurement_ready() {
41
41
  if (this->read(raw_data_, 1) != i2c::ERROR_OK) {
42
- ESP_LOGE(TAG, "Communication with ABP2 failed!");
42
+ ESP_LOGE(TAG, ESP_LOG_MSG_COMM_FAIL);
43
43
  this->status_set_warning("couldn't check measurement");
44
44
  return false;
45
45
  }
@@ -84,8 +84,10 @@ void HONEYWELLABP2Sensor::update() {
84
84
  }
85
85
 
86
86
  void HONEYWELLABP2Sensor::dump_config() {
87
- ESP_LOGCONFIG(TAG, " Min Pressure Range: %0.1f", this->min_pressure_);
88
- ESP_LOGCONFIG(TAG, " Max Pressure Range: %0.1f", this->max_pressure_);
87
+ ESP_LOGCONFIG(TAG,
88
+ " Min Pressure Range: %0.1f\n"
89
+ " Max Pressure Range: %0.1f",
90
+ this->min_pressure_, this->max_pressure_);
89
91
  if (this->transfer_function_ == ABP2_TRANS_FUNC_A) {
90
92
  ESP_LOGCONFIG(TAG, " Transfer function A");
91
93
  } else {
@@ -1,4 +1,5 @@
1
1
  #include "hte501.h"
2
+ #include "esphome/core/helpers.h"
2
3
  #include "esphome/core/log.h"
3
4
 
4
5
  namespace esphome {
@@ -7,7 +8,7 @@ namespace hte501 {
7
8
  static const char *const TAG = "hte501";
8
9
 
9
10
  void HTE501Component::setup() {
10
- ESP_LOGCONFIG(TAG, "Setting up HTE501...");
11
+ ESP_LOGCONFIG(TAG, "Running setup");
11
12
  uint8_t address[] = {0x70, 0x29};
12
13
  this->write(address, 2, false);
13
14
  uint8_t identification[9];
@@ -25,7 +26,7 @@ void HTE501Component::dump_config() {
25
26
  LOG_I2C_DEVICE(this);
26
27
  switch (this->error_code_) {
27
28
  case COMMUNICATION_FAILED:
28
- ESP_LOGE(TAG, "Communication with HTE501 failed!");
29
+ ESP_LOGE(TAG, ESP_LOG_MSG_COMM_FAIL);
29
30
  break;
30
31
  case CRC_CHECK_FAILED:
31
32
  ESP_LOGE(TAG, "The crc check failed");
@@ -1,6 +1,7 @@
1
1
  from esphome import automation
2
2
  import esphome.codegen as cg
3
3
  from esphome.components import esp32
4
+ from esphome.components.const import CONF_REQUEST_HEADERS
4
5
  import esphome.config_validation as cv
5
6
  from esphome.const import (
6
7
  CONF_ESP8266_DISABLE_SSL_SUPPORT,
@@ -10,6 +11,7 @@ from esphome.const import (
10
11
  CONF_TIMEOUT,
11
12
  CONF_TRIGGER_ID,
12
13
  CONF_URL,
14
+ CONF_WATCHDOG_TIMEOUT,
13
15
  PLATFORM_HOST,
14
16
  __version__,
15
17
  )
@@ -43,7 +45,6 @@ CONF_USERAGENT = "useragent"
43
45
  CONF_VERIFY_SSL = "verify_ssl"
44
46
  CONF_FOLLOW_REDIRECTS = "follow_redirects"
45
47
  CONF_REDIRECT_LIMIT = "redirect_limit"
46
- CONF_WATCHDOG_TIMEOUT = "watchdog_timeout"
47
48
  CONF_BUFFER_SIZE_RX = "buffer_size_rx"
48
49
  CONF_BUFFER_SIZE_TX = "buffer_size_tx"
49
50
  CONF_CA_CERTIFICATE_PATH = "ca_certificate_path"
@@ -51,7 +52,6 @@ CONF_CA_CERTIFICATE_PATH = "ca_certificate_path"
51
52
  CONF_MAX_RESPONSE_BUFFER_SIZE = "max_response_buffer_size"
52
53
  CONF_ON_RESPONSE = "on_response"
53
54
  CONF_HEADERS = "headers"
54
- CONF_REQUEST_HEADERS = "request_headers"
55
55
  CONF_COLLECT_HEADERS = "collect_headers"
56
56
  CONF_BODY = "body"
57
57
  CONF_JSON = "json"
@@ -10,11 +10,13 @@ namespace http_request {
10
10
  static const char *const TAG = "http_request";
11
11
 
12
12
  void HttpRequestComponent::dump_config() {
13
- ESP_LOGCONFIG(TAG, "HTTP Request:");
14
- ESP_LOGCONFIG(TAG, " Timeout: %ums", this->timeout_);
15
- ESP_LOGCONFIG(TAG, " User-Agent: %s", this->useragent_);
16
- ESP_LOGCONFIG(TAG, " Follow redirects: %s", YESNO(this->follow_redirects_));
17
- ESP_LOGCONFIG(TAG, " Redirect limit: %d", this->redirect_limit_);
13
+ ESP_LOGCONFIG(TAG,
14
+ "HTTP Request:\n"
15
+ " Timeout: %ums\n"
16
+ " User-Agent: %s\n"
17
+ " Follow redirects: %s\n"
18
+ " Redirect limit: %d",
19
+ this->timeout_, this->useragent_, YESNO(this->follow_redirects_), this->redirect_limit_);
18
20
  if (this->watchdog_timeout_ > 0) {
19
21
  ESP_LOGCONFIG(TAG, " Watchdog Timeout: %" PRIu32 "ms", this->watchdog_timeout_);
20
22
  }
@@ -26,8 +26,10 @@ struct UserData {
26
26
 
27
27
  void HttpRequestIDF::dump_config() {
28
28
  HttpRequestComponent::dump_config();
29
- ESP_LOGCONFIG(TAG, " Buffer Size RX: %u", this->buffer_size_rx_);
30
- ESP_LOGCONFIG(TAG, " Buffer Size TX: %u", this->buffer_size_tx_);
29
+ ESP_LOGCONFIG(TAG,
30
+ " Buffer Size RX: %u\n"
31
+ " Buffer Size TX: %u",
32
+ this->buffer_size_rx_, this->buffer_size_tx_);
31
33
  }
32
34
 
33
35
  esp_err_t HttpRequestIDF::http_event_handler(esp_http_client_event_t *evt) {
@@ -48,7 +48,7 @@ void OtaHttpRequestComponent::flash() {
48
48
  return;
49
49
  }
50
50
 
51
- ESP_LOGI(TAG, "Starting update...");
51
+ ESP_LOGI(TAG, "Starting update");
52
52
  #ifdef USE_OTA_STATE_CALLBACK
53
53
  this->state_callback_.call(ota::OTA_STARTED, 0.0f, 0);
54
54
  #endif
@@ -18,7 +18,7 @@ static const uint8_t HTU21D_READHEATER_REG_CMD = 0x11; /**< Read Heater Control
18
18
  static const uint8_t HTU21D_REG_HTRE_BIT = 0x02; /**< Control Register Heater Bit */
19
19
 
20
20
  void HTU21DComponent::setup() {
21
- ESP_LOGCONFIG(TAG, "Setting up HTU21D...");
21
+ ESP_LOGCONFIG(TAG, "Running setup");
22
22
 
23
23
  if (!this->write_bytes(HTU21D_REGISTER_RESET, nullptr, 0)) {
24
24
  this->mark_failed();
@@ -32,7 +32,7 @@ void HTU21DComponent::dump_config() {
32
32
  ESP_LOGCONFIG(TAG, "HTU21D:");
33
33
  LOG_I2C_DEVICE(this);
34
34
  if (this->is_failed()) {
35
- ESP_LOGE(TAG, "Communication with HTU21D failed!");
35
+ ESP_LOGE(TAG, ESP_LOG_MSG_COMM_FAIL);
36
36
  }
37
37
  LOG_UPDATE_INTERVAL(this);
38
38
  LOG_SENSOR(" ", "Temperature", this->temperature_);
@@ -75,7 +75,7 @@ uint8_t compute_crc(uint32_t value) {
75
75
  * I2C.
76
76
  */
77
77
  void HTU31DComponent::setup() {
78
- ESP_LOGCONFIG(TAG, "Setting up esphome/components/htu31d HTU31D...");
78
+ ESP_LOGCONFIG(TAG, "Running setup");
79
79
 
80
80
  if (!this->reset_()) {
81
81
  this->mark_failed();
@@ -161,7 +161,7 @@ void HTU31DComponent::dump_config() {
161
161
  ESP_LOGCONFIG(TAG, "HTU31D:");
162
162
  LOG_I2C_DEVICE(this);
163
163
  if (this->is_failed()) {
164
- ESP_LOGE(TAG, "Communication with HTU31D failed!");
164
+ ESP_LOGE(TAG, ESP_LOG_MSG_COMM_FAIL);
165
165
  }
166
166
  LOG_UPDATE_INTERVAL(this);
167
167
  LOG_SENSOR(" ", "Temperature", this->temperature_);
@@ -1,6 +1,6 @@
1
1
  #include "hx711.h"
2
- #include "esphome/core/log.h"
3
2
  #include "esphome/core/helpers.h"
3
+ #include "esphome/core/log.h"
4
4
 
5
5
  namespace esphome {
6
6
  namespace hx711 {
@@ -8,7 +8,7 @@ namespace hx711 {
8
8
  static const char *const TAG = "hx711";
9
9
 
10
10
  void HX711Sensor::setup() {
11
- ESP_LOGCONFIG(TAG, "Setting up HX711 '%s'...", this->name_.c_str());
11
+ ESP_LOGCONFIG(TAG, "Running setup for '%s'", this->name_.c_str());
12
12
  this->sck_pin_->setup();
13
13
  this->dout_pin_->setup();
14
14
  this->sck_pin_->digital_write(false);
@@ -18,8 +18,10 @@ void HydreonRGxxComponent::dump_config() {
18
18
  ESP_LOGE(TAG, "Connection with hydreon_rgxx failed!");
19
19
  }
20
20
  if (model_ == RG9) {
21
- ESP_LOGCONFIG(TAG, " Model: RG9");
22
- ESP_LOGCONFIG(TAG, " Disable Led: %s", TRUEFALSE(this->disable_led_));
21
+ ESP_LOGCONFIG(TAG,
22
+ " Model: RG9\n"
23
+ " Disable Led: %s",
24
+ TRUEFALSE(this->disable_led_));
23
25
  } else {
24
26
  ESP_LOGCONFIG(TAG, " Model: RG15");
25
27
  if (this->resolution_ == FORCE_HIGH) {
@@ -39,7 +41,7 @@ void HydreonRGxxComponent::dump_config() {
39
41
  }
40
42
 
41
43
  void HydreonRGxxComponent::setup() {
42
- ESP_LOGCONFIG(TAG, "Setting up hydreon_rgxx...");
44
+ ESP_LOGCONFIG(TAG, "Running setup");
43
45
  while (this->available() != 0) {
44
46
  this->read();
45
47
  }
@@ -21,14 +21,14 @@ void HYT271Component::update() {
21
21
 
22
22
  if (this->write(&raw_data[0], 0) != i2c::ERROR_OK) {
23
23
  this->status_set_warning();
24
- ESP_LOGE(TAG, "Communication with HYT271 failed! => Ask new values");
24
+ ESP_LOGE(TAG, ESP_LOG_MSG_COMM_FAIL);
25
25
  return;
26
26
  }
27
27
  this->set_timeout("wait_convert", 50, [this]() {
28
28
  uint8_t raw_data[4];
29
29
  if (this->read(raw_data, 4) != i2c::ERROR_OK) {
30
30
  this->status_set_warning();
31
- ESP_LOGE(TAG, "Communication with HYT271 failed! => Read values");
31
+ ESP_LOGE(TAG, ESP_LOG_MSG_COMM_FAIL);
32
32
  return;
33
33
  }
34
34
  uint16_t raw_temperature = ((raw_data[2] << 8) | raw_data[3]) >> 2;
@@ -1,9 +1,9 @@
1
1
  #ifdef USE_ARDUINO
2
2
 
3
3
  #include "i2c_bus_arduino.h"
4
- #include "esphome/core/log.h"
5
- #include "esphome/core/helpers.h"
6
4
  #include "esphome/core/application.h"
5
+ #include "esphome/core/helpers.h"
6
+ #include "esphome/core/log.h"
7
7
  #include <Arduino.h>
8
8
  #include <cstring>
9
9
 
@@ -13,6 +13,7 @@ namespace i2c {
13
13
  static const char *const TAG = "i2c.arduino";
14
14
 
15
15
  void ArduinoI2CBus::setup() {
16
+ ESP_LOGCONFIG(TAG, "Running setup");
16
17
  recover_();
17
18
 
18
19
  #if defined(USE_ESP32)
@@ -39,7 +40,7 @@ void ArduinoI2CBus::setup() {
39
40
 
40
41
  this->initialized_ = true;
41
42
  if (this->scan_) {
42
- ESP_LOGV(TAG, "Scanning i2c bus for active devices...");
43
+ ESP_LOGV(TAG, "Scanning bus for active devices");
43
44
  this->i2c_scan_();
44
45
  }
45
46
  }
@@ -69,9 +70,11 @@ void ArduinoI2CBus::set_pins_and_clock_() {
69
70
 
70
71
  void ArduinoI2CBus::dump_config() {
71
72
  ESP_LOGCONFIG(TAG, "I2C Bus:");
72
- ESP_LOGCONFIG(TAG, " SDA Pin: GPIO%u", this->sda_pin_);
73
- ESP_LOGCONFIG(TAG, " SCL Pin: GPIO%u", this->scl_pin_);
74
- ESP_LOGCONFIG(TAG, " Frequency: %u Hz", this->frequency_);
73
+ ESP_LOGCONFIG(TAG,
74
+ " SDA Pin: GPIO%u\n"
75
+ " SCL Pin: GPIO%u\n"
76
+ " Frequency: %u Hz",
77
+ this->sda_pin_, this->scl_pin_, this->frequency_);
75
78
  if (timeout_ > 0) {
76
79
  #if defined(USE_ESP32)
77
80
  ESP_LOGCONFIG(TAG, " Timeout: %u ms", this->timeout_ / 1000);
@@ -93,13 +96,13 @@ void ArduinoI2CBus::dump_config() {
93
96
  break;
94
97
  }
95
98
  if (this->scan_) {
96
- ESP_LOGI(TAG, "Results from i2c bus scan:");
99
+ ESP_LOGI(TAG, "Results from bus scan:");
97
100
  if (scan_results_.empty()) {
98
- ESP_LOGI(TAG, "Found no i2c devices!");
101
+ ESP_LOGI(TAG, "Found no devices");
99
102
  } else {
100
103
  for (const auto &s : scan_results_) {
101
104
  if (s.second) {
102
- ESP_LOGI(TAG, "Found i2c device at address 0x%02X", s.first);
105
+ ESP_LOGI(TAG, "Found device at address 0x%02X", s.first);
103
106
  } else {
104
107
  ESP_LOGE(TAG, "Unknown error at address 0x%02X", s.first);
105
108
  }
@@ -215,7 +218,7 @@ ErrorCode ArduinoI2CBus::writev(uint8_t address, WriteBuffer *buffers, size_t cn
215
218
  /// https://www.nxp.com/docs/en/user-guide/UM10204.pdf
216
219
  /// https://www.analog.com/media/en/technical-documentation/application-notes/54305147357414AN686_0.pdf
217
220
  void ArduinoI2CBus::recover_() {
218
- ESP_LOGI(TAG, "Performing I2C bus recovery");
221
+ ESP_LOGI(TAG, "Performing bus recovery");
219
222
 
220
223
  // For the upcoming operations, target for a 100kHz toggle frequency.
221
224
  // This is the maximum frequency for I2C running in standard-mode.
@@ -231,7 +234,7 @@ void ArduinoI2CBus::recover_() {
231
234
  // line. In that case, the I2C bus cannot be recovered.
232
235
  delayMicroseconds(half_period_usec);
233
236
  if (digitalRead(scl_pin_) == LOW) { // NOLINT
234
- ESP_LOGE(TAG, "Recovery failed: SCL is held LOW on the I2C bus");
237
+ ESP_LOGE(TAG, "Recovery failed: SCL is held LOW on the bus");
235
238
  recovery_result_ = RECOVERY_FAILED_SCL_LOW;
236
239
  return;
237
240
  }
@@ -18,7 +18,7 @@ namespace i2c {
18
18
  static const char *const TAG = "i2c.idf";
19
19
 
20
20
  void IDFI2CBus::setup() {
21
- ESP_LOGCONFIG(TAG, "Setting up I2C bus...");
21
+ ESP_LOGCONFIG(TAG, "Running setup");
22
22
  static i2c_port_t next_port = I2C_NUM_0;
23
23
  port_ = next_port;
24
24
  #if SOC_HP_I2C_NUM > 1
@@ -28,7 +28,7 @@ void IDFI2CBus::setup() {
28
28
  #endif
29
29
 
30
30
  if (port_ == I2C_NUM_MAX) {
31
- ESP_LOGE(TAG, "Too many I2C buses configured. Max %u supported.", SOC_HP_I2C_NUM);
31
+ ESP_LOGE(TAG, "No more than %u buses supported", SOC_HP_I2C_NUM);
32
32
  this->mark_failed();
33
33
  return;
34
34
  }
@@ -75,15 +75,17 @@ void IDFI2CBus::setup() {
75
75
  }
76
76
  initialized_ = true;
77
77
  if (this->scan_) {
78
- ESP_LOGV(TAG, "Scanning i2c bus for active devices...");
78
+ ESP_LOGV(TAG, "Scanning bus for active devices");
79
79
  this->i2c_scan_();
80
80
  }
81
81
  }
82
82
  void IDFI2CBus::dump_config() {
83
83
  ESP_LOGCONFIG(TAG, "I2C Bus:");
84
- ESP_LOGCONFIG(TAG, " SDA Pin: GPIO%u", this->sda_pin_);
85
- ESP_LOGCONFIG(TAG, " SCL Pin: GPIO%u", this->scl_pin_);
86
- ESP_LOGCONFIG(TAG, " Frequency: %" PRIu32 " Hz", this->frequency_);
84
+ ESP_LOGCONFIG(TAG,
85
+ " SDA Pin: GPIO%u\n"
86
+ " SCL Pin: GPIO%u\n"
87
+ " Frequency: %" PRIu32 " Hz",
88
+ this->sda_pin_, this->scl_pin_, this->frequency_);
87
89
  if (timeout_ > 0) {
88
90
  ESP_LOGCONFIG(TAG, " Timeout: %" PRIu32 "us", this->timeout_);
89
91
  }
@@ -99,13 +101,13 @@ void IDFI2CBus::dump_config() {
99
101
  break;
100
102
  }
101
103
  if (this->scan_) {
102
- ESP_LOGI(TAG, "Results from i2c bus scan:");
104
+ ESP_LOGI(TAG, "Results from bus scan:");
103
105
  if (scan_results_.empty()) {
104
- ESP_LOGI(TAG, "Found no i2c devices!");
106
+ ESP_LOGI(TAG, "Found no devices");
105
107
  } else {
106
108
  for (const auto &s : scan_results_) {
107
109
  if (s.second) {
108
- ESP_LOGI(TAG, "Found i2c device at address 0x%02X", s.first);
110
+ ESP_LOGI(TAG, "Found device at address 0x%02X", s.first);
109
111
  } else {
110
112
  ESP_LOGE(TAG, "Unknown error at address 0x%02X", s.first);
111
113
  }
@@ -257,7 +259,7 @@ ErrorCode IDFI2CBus::writev(uint8_t address, WriteBuffer *buffers, size_t cnt, b
257
259
  /// https://www.nxp.com/docs/en/user-guide/UM10204.pdf
258
260
  /// https://www.analog.com/media/en/technical-documentation/application-notes/54305147357414AN686_0.pdf
259
261
  void IDFI2CBus::recover_() {
260
- ESP_LOGI(TAG, "Performing I2C bus recovery");
262
+ ESP_LOGI(TAG, "Performing bus recovery");
261
263
 
262
264
  const gpio_num_t scl_pin = static_cast<gpio_num_t>(scl_pin_);
263
265
  const gpio_num_t sda_pin = static_cast<gpio_num_t>(sda_pin_);
@@ -294,7 +296,7 @@ void IDFI2CBus::recover_() {
294
296
  // with the SCL line. In that case, the I2C bus cannot be recovered.
295
297
  delayMicroseconds(half_period_usec);
296
298
  if (gpio_get_level(scl_pin) == 0) {
297
- ESP_LOGE(TAG, "Recovery failed: SCL is held LOW on the I2C bus");
299
+ ESP_LOGE(TAG, "Recovery failed: SCL is held LOW on the bus");
298
300
  recovery_result_ = RECOVERY_FAILED_SCL_LOW;
299
301
  return;
300
302
  }
@@ -4,6 +4,7 @@ from esphome.components.esp32 import get_esp32_variant
4
4
  from esphome.components.esp32.const import (
5
5
  VARIANT_ESP32,
6
6
  VARIANT_ESP32C3,
7
+ VARIANT_ESP32P4,
7
8
  VARIANT_ESP32S2,
8
9
  VARIANT_ESP32S3,
9
10
  )
@@ -74,6 +75,7 @@ I2S_PORTS = {
74
75
  VARIANT_ESP32S2: 1,
75
76
  VARIANT_ESP32S3: 2,
76
77
  VARIANT_ESP32C3: 1,
78
+ VARIANT_ESP32P4: 3,
77
79
  }
78
80
 
79
81
  i2s_channel_fmt_t = cg.global_ns.enum("i2s_channel_fmt_t")
@@ -14,18 +14,17 @@ static const uint8_t I2S_NUM_MAX = SOC_I2S_NUM; // because IDF 5+ took this awa
14
14
  #endif
15
15
 
16
16
  void I2SAudioComponent::setup() {
17
- static i2s_port_t next_port_num = I2S_NUM_0;
17
+ ESP_LOGCONFIG(TAG, "Running setup");
18
18
 
19
+ static i2s_port_t next_port_num = I2S_NUM_0;
19
20
  if (next_port_num >= I2S_NUM_MAX) {
20
- ESP_LOGE(TAG, "Too many I2S Audio components!");
21
+ ESP_LOGE(TAG, "Too many I2S Audio components");
21
22
  this->mark_failed();
22
23
  return;
23
24
  }
24
25
 
25
26
  this->port_ = next_port_num;
26
27
  next_port_num = (i2s_port_t) (next_port_num + 1);
27
-
28
- ESP_LOGCONFIG(TAG, "Setting up I2S Audio...");
29
28
  }
30
29
 
31
30
  } // namespace i2s_audio
@@ -3,8 +3,8 @@
3
3
  #ifdef USE_ESP32
4
4
 
5
5
  #include "esphome/core/component.h"
6
- #include "esphome/core/helpers.h"
7
6
  #include "esphome/core/defines.h"
7
+ #include "esphome/core/helpers.h"
8
8
  #ifdef USE_I2S_LEGACY
9
9
  #include <driver/i2s.h>
10
10
  #else
@@ -116,5 +116,5 @@ async def to_code(config):
116
116
 
117
117
  cg.add_library("WiFiClientSecure", None)
118
118
  cg.add_library("HTTPClient", None)
119
- cg.add_library("esphome/ESP32-audioI2S", "2.0.7")
119
+ cg.add_library("esphome/ESP32-audioI2S", "2.2.0")
120
120
  cg.add_build_flag("-DAUDIO_NO_SD_FS")
@@ -120,7 +120,7 @@ void I2SAudioMediaPlayer::set_volume_(float volume, bool publish) {
120
120
  }
121
121
 
122
122
  void I2SAudioMediaPlayer::setup() {
123
- ESP_LOGCONFIG(TAG, "Setting up Audio...");
123
+ ESP_LOGCONFIG(TAG, "Running setup");
124
124
  this->state = media_player::MEDIA_PLAYER_STATE_IDLE;
125
125
  }
126
126
 
@@ -244,8 +244,10 @@ void I2SAudioMediaPlayer::dump_config() {
244
244
  }
245
245
  } else {
246
246
  #endif
247
- ESP_LOGCONFIG(TAG, " External DAC channels: %d", this->external_dac_channels_);
248
- ESP_LOGCONFIG(TAG, " I2S DOUT Pin: %d", this->dout_pin_);
247
+ ESP_LOGCONFIG(TAG,
248
+ " External DAC channels: %d\n"
249
+ " I2S DOUT Pin: %d",
250
+ this->external_dac_channels_, this->dout_pin_);
249
251
  LOG_PIN(" Mute Pin: ", this->mute_pin_);
250
252
  #if SOC_I2S_SUPPORTS_DAC
251
253
  }
@@ -40,7 +40,7 @@ enum MicrophoneEventGroupBits : uint32_t {
40
40
  };
41
41
 
42
42
  void I2SAudioMicrophone::setup() {
43
- ESP_LOGCONFIG(TAG, "Setting up I2S Audio Microphone...");
43
+ ESP_LOGCONFIG(TAG, "Running setup");
44
44
  #ifdef USE_I2S_LEGACY
45
45
  #if SOC_I2S_SUPPORTS_ADC
46
46
  if (this->adc_) {
@@ -99,7 +99,7 @@ static const std::vector<int16_t> Q15_VOLUME_SCALING_FACTORS = {
99
99
  19508, 20665, 21891, 23189, 24565, 26022, 27566, 29201, 30933, 32767};
100
100
 
101
101
  void I2SAudioSpeaker::setup() {
102
- ESP_LOGCONFIG(TAG, "Setting up I2S Audio Speaker...");
102
+ ESP_LOGCONFIG(TAG, "Running setup");
103
103
 
104
104
  this->event_group_ = xEventGroupCreate();
105
105
 
@@ -1,7 +1,7 @@
1
1
  #include "iaqcore.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
 
6
6
  namespace esphome {
7
7
  namespace iaqcore {
@@ -26,7 +26,7 @@ struct SensorData {
26
26
 
27
27
  void IAQCore::setup() {
28
28
  if (this->write(nullptr, 0) != i2c::ERROR_OK) {
29
- ESP_LOGD(TAG, "Communication failed!");
29
+ ESP_LOGD(TAG, ESP_LOG_MSG_COMM_FAIL);
30
30
  this->mark_failed();
31
31
  return;
32
32
  }
@@ -89,7 +89,7 @@ void IAQCore::dump_config() {
89
89
  LOG_I2C_DEVICE(this);
90
90
  LOG_UPDATE_INTERVAL(this);
91
91
  if (this->is_failed()) {
92
- ESP_LOGE(TAG, "Communication with AMS iAQ Core failed!");
92
+ ESP_LOGE(TAG, ESP_LOG_MSG_COMM_FAIL);
93
93
  }
94
94
  LOG_SENSOR(" ", "CO2", this->co2_);
95
95
  LOG_SENSOR(" ", "TVOC", this->tvoc_);
@@ -89,8 +89,10 @@ void ILI9XXXDisplay::setup_pins_() {
89
89
 
90
90
  void ILI9XXXDisplay::dump_config() {
91
91
  LOG_DISPLAY("", "ili9xxx", this);
92
- ESP_LOGCONFIG(TAG, " Width Offset: %u", this->offset_x_);
93
- ESP_LOGCONFIG(TAG, " Height Offset: %u", this->offset_y_);
92
+ ESP_LOGCONFIG(TAG,
93
+ " Width Offset: %u\n"
94
+ " Height Offset: %u",
95
+ this->offset_x_, this->offset_y_);
94
96
  switch (this->buffer_color_mode_) {
95
97
  case BITS_8_INDEXED:
96
98
  ESP_LOGCONFIG(TAG, " Color mode: 8bit Indexed");
@@ -111,11 +113,14 @@ void ILI9XXXDisplay::dump_config() {
111
113
  LOG_PIN(" CS Pin: ", this->cs_);
112
114
  LOG_PIN(" DC Pin: ", this->dc_pin_);
113
115
  LOG_PIN(" Busy Pin: ", this->busy_pin_);
114
- ESP_LOGCONFIG(TAG, " Color order: %s", this->color_order_ == display::COLOR_ORDER_BGR ? "BGR" : "RGB");
115
- ESP_LOGCONFIG(TAG, " Swap_xy: %s", YESNO(this->swap_xy_));
116
- ESP_LOGCONFIG(TAG, " Mirror_x: %s", YESNO(this->mirror_x_));
117
- ESP_LOGCONFIG(TAG, " Mirror_y: %s", YESNO(this->mirror_y_));
118
- ESP_LOGCONFIG(TAG, " Invert colors: %s", YESNO(this->pre_invertcolors_));
116
+ ESP_LOGCONFIG(TAG,
117
+ " Color order: %s\n"
118
+ " Swap_xy: %s\n"
119
+ " Mirror_x: %s\n"
120
+ " Mirror_y: %s\n"
121
+ " Invert colors: %s",
122
+ this->color_order_ == display::COLOR_ORDER_BGR ? "BGR" : "RGB", YESNO(this->swap_xy_),
123
+ YESNO(this->mirror_x_), YESNO(this->mirror_y_), YESNO(this->pre_invertcolors_));
119
124
 
120
125
  if (this->is_failed()) {
121
126
  ESP_LOGCONFIG(TAG, " => Failed to init Memory: YES!");
@@ -89,7 +89,7 @@ class ILI9XXXDisplay : public display::DisplayBuffer,
89
89
 
90
90
  void dump_config() override;
91
91
  void setup() override;
92
- void on_shutdown() override { this->command(ILI9XXX_SLPIN); }
92
+ void on_powerdown() override { this->command(ILI9XXX_SLPIN); }
93
93
 
94
94
  display::DisplayType get_display_type() override { return display::DisplayType::DISPLAY_TYPE_COLOR; }
95
95
  void draw_pixels_at(int x_start, int y_start, int w, int h, const uint8_t *ptr, display::ColorOrder order,