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.
Files changed (753) 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 +753 -379
  29. esphome/components/api/api_connection.h +341 -283
  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 +5 -0
  33. esphome/components/api/api_pb2.h +703 -227
  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 -4
  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 +5 -4
  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 +18 -16
  67. esphome/components/bluetooth_proxy/bluetooth_proxy.h +1 -1
  68. esphome/components/bme280_base/bme280_base.cpp +5 -6
  69. esphome/components/bme680/bme680.cpp +3 -3
  70. esphome/components/bme680/sensor.py +2 -2
  71. esphome/components/bme680_bsec/bme680_bsec.cpp +11 -7
  72. esphome/components/bme680_bsec/sensor.py +7 -3
  73. esphome/components/bme68x_bsec2/__init__.py +6 -5
  74. esphome/components/bme68x_bsec2/bme68x_bsec2.cpp +17 -13
  75. esphome/components/bme68x_bsec2/sensor.py +4 -4
  76. esphome/components/bme68x_bsec2_i2c/bme68x_bsec2_i2c.cpp +1 -0
  77. esphome/components/bmi160/bmi160.cpp +11 -11
  78. esphome/components/bmp085/bmp085.cpp +2 -2
  79. esphome/components/bmp280_base/bmp280_base.cpp +3 -3
  80. esphome/components/bmp3xx_base/bmp3xx_base.cpp +13 -13
  81. esphome/components/bmp581/bmp581.cpp +33 -27
  82. esphome/components/bp1658cj/bp1658cj.cpp +5 -3
  83. esphome/components/bp5758d/bp5758d.cpp +1 -1
  84. esphome/components/button/__init__.py +1 -0
  85. esphome/components/canbus/canbus.cpp +1 -1
  86. esphome/components/cap1188/cap1188.cpp +6 -4
  87. esphome/components/captive_portal/captive_portal.cpp +1 -1
  88. esphome/components/ccs811/ccs811.cpp +3 -2
  89. esphome/components/cd74hc4067/cd74hc4067.cpp +1 -1
  90. esphome/components/ch422g/ch422g.cpp +2 -2
  91. esphome/components/chsc6x/chsc6x_touchscreen.cpp +6 -4
  92. esphome/components/climate/__init__.py +1 -0
  93. esphome/components/climate/climate.cpp +12 -7
  94. esphome/components/climate/climate.h +1 -1
  95. esphome/components/climate_ir/climate_ir.cpp +7 -4
  96. esphome/components/cm1106/__init__.py +1 -0
  97. esphome/components/cm1106/cm1106.cpp +112 -0
  98. esphome/components/cm1106/cm1106.h +40 -0
  99. esphome/components/cm1106/sensor.py +72 -0
  100. esphome/components/const/__init__.py +1 -0
  101. esphome/components/cover/__init__.py +1 -0
  102. esphome/components/cs5460a/cs5460a.cpp +16 -11
  103. esphome/components/cse7761/cse7761.cpp +2 -2
  104. esphome/components/cse7766/cse7766.cpp +0 -5
  105. esphome/components/cse7766/cse7766.h +5 -1
  106. esphome/components/cst226/touchscreen/cst226_touchscreen.cpp +1 -1
  107. esphome/components/cst816/touchscreen/cst816_touchscreen.cpp +6 -3
  108. esphome/components/current_based/current_based_cover.cpp +4 -2
  109. esphome/components/dac7678/dac7678_output.cpp +4 -4
  110. esphome/components/dallas_temp/dallas_temp.cpp +2 -3
  111. esphome/components/daly_bms/daly_bms.cpp +2 -1
  112. esphome/components/dashboard_import/__init__.py +1 -2
  113. esphome/components/datetime/__init__.py +3 -1
  114. esphome/components/datetime/date_entity.cpp +5 -5
  115. esphome/components/datetime/datetime_base.h +0 -5
  116. esphome/components/datetime/datetime_entity.cpp +8 -8
  117. esphome/components/datetime/time_entity.cpp +4 -4
  118. esphome/components/debug/debug_component.cpp +1 -5
  119. esphome/components/debug/debug_component.h +1 -1
  120. esphome/components/debug/debug_esp32.cpp +4 -2
  121. esphome/components/deep_sleep/deep_sleep_component.cpp +11 -5
  122. esphome/components/deep_sleep/deep_sleep_esp32.cpp +7 -5
  123. esphome/components/demo/__init__.py +206 -0
  124. esphome/components/demo/demo_alarm_control_panel.h +65 -0
  125. esphome/components/demo/demo_button.h +15 -0
  126. esphome/components/demo/demo_date.h +34 -0
  127. esphome/components/demo/demo_datetime.h +40 -0
  128. esphome/components/demo/demo_lock.h +17 -0
  129. esphome/components/demo/demo_select.h +15 -0
  130. esphome/components/demo/demo_text.h +18 -0
  131. esphome/components/demo/demo_time.h +34 -0
  132. esphome/components/demo/demo_valve.h +54 -0
  133. esphome/components/dfrobot_sen0395/commands.cpp +3 -3
  134. esphome/components/dht/dht.cpp +29 -50
  135. esphome/components/dht12/dht12.cpp +2 -2
  136. esphome/components/display/display.h +5 -3
  137. esphome/components/dps310/dps310.cpp +7 -5
  138. esphome/components/ds1307/ds1307.cpp +2 -2
  139. esphome/components/dsmr/dsmr.cpp +5 -3
  140. esphome/components/duty_cycle/duty_cycle_sensor.cpp +2 -2
  141. esphome/components/duty_time/duty_time_sensor.cpp +5 -3
  142. esphome/components/ee895/ee895.cpp +3 -3
  143. esphome/components/ektf2232/touchscreen/ektf2232.cpp +1 -1
  144. esphome/components/emc2101/emc2101.cpp +11 -9
  145. esphome/components/ens160_base/ens160_base.cpp +2 -2
  146. esphome/components/ens210/ens210.cpp +2 -2
  147. esphome/components/es7210/es7210.cpp +6 -4
  148. esphome/components/es7243e/es7243e.cpp +1 -1
  149. esphome/components/es8156/es8156.cpp +1 -1
  150. esphome/components/es8311/es8311.cpp +8 -6
  151. esphome/components/es8388/__init__.py +0 -0
  152. esphome/components/es8388/audio_dac.py +26 -0
  153. esphome/components/es8388/es8388.cpp +289 -0
  154. esphome/components/es8388/es8388.h +81 -0
  155. esphome/components/es8388/es8388_const.h +83 -0
  156. esphome/components/es8388/select/__init__.py +47 -0
  157. esphome/components/es8388/select/adc_input_mic_select.cpp +12 -0
  158. esphome/components/es8388/select/adc_input_mic_select.h +15 -0
  159. esphome/components/es8388/select/dac_output_select.cpp +12 -0
  160. esphome/components/es8388/select/dac_output_select.h +15 -0
  161. esphome/components/esp32/__init__.py +118 -23
  162. esphome/components/esp32/boards.py +208 -125
  163. esphome/components/esp32/const.py +6 -0
  164. esphome/components/esp32/gpio.py +14 -1
  165. esphome/components/esp32/gpio_esp32_c5.py +45 -0
  166. esphome/components/esp32/gpio_esp32_p4.py +43 -0
  167. esphome/components/esp32/preferences.cpp +7 -7
  168. esphome/components/esp32_ble/__init__.py +115 -0
  169. esphome/components/esp32_ble/ble.cpp +101 -54
  170. esphome/components/esp32_ble/ble.h +24 -5
  171. esphome/components/esp32_ble/ble_event.h +172 -32
  172. esphome/components/esp32_ble/ble_scan_result.h +24 -0
  173. esphome/components/esp32_ble/ble_uuid.h +1 -1
  174. esphome/components/esp32_ble/queue.h +53 -27
  175. esphome/components/esp32_ble_client/ble_client_base.cpp +4 -2
  176. esphome/components/esp32_ble_server/__init__.py +4 -1
  177. esphome/components/esp32_ble_server/ble_characteristic.cpp +1 -0
  178. esphome/components/esp32_ble_server/ble_server.h +0 -1
  179. esphome/components/esp32_ble_tracker/__init__.py +7 -2
  180. esphome/components/esp32_ble_tracker/esp32_ble_tracker.cpp +107 -75
  181. esphome/components/esp32_ble_tracker/esp32_ble_tracker.h +16 -16
  182. esphome/components/esp32_camera/esp32_camera.cpp +35 -27
  183. esphome/components/esp32_camera_web_server/camera_web_server.cpp +4 -2
  184. esphome/components/esp32_dac/esp32_dac.cpp +2 -2
  185. esphome/components/esp32_improv/__init__.py +5 -1
  186. esphome/components/esp32_improv/esp32_improv_component.cpp +2 -2
  187. esphome/components/esp32_rmt_led_strip/led_strip.cpp +11 -7
  188. esphome/components/esp32_rmt_led_strip/light.py +5 -1
  189. esphome/components/esp32_touch/esp32_touch.cpp +12 -8
  190. esphome/components/esp8266/gpio.cpp +10 -1
  191. esphome/components/esp8266/preferences.cpp +6 -6
  192. esphome/components/esp8266_pwm/esp8266_pwm.cpp +3 -3
  193. esphome/components/esp_ldo/__init__.py +91 -0
  194. esphome/components/esp_ldo/esp_ldo.cpp +43 -0
  195. esphome/components/esp_ldo/esp_ldo.h +43 -0
  196. esphome/components/esphome/ota/ota_esphome.cpp +15 -8
  197. esphome/components/ethernet/ethernet_component.cpp +38 -26
  198. esphome/components/ethernet/ethernet_component.h +1 -1
  199. esphome/components/event/__init__.py +1 -0
  200. esphome/components/exposure_notifications/exposure_notifications.cpp +1 -1
  201. esphome/components/ezo/ezo.cpp +1 -1
  202. esphome/components/ezo_pmp/ezo_pmp.cpp +1 -1
  203. esphome/components/factory_reset/button/factory_reset_button.cpp +1 -1
  204. esphome/components/factory_reset/switch/factory_reset_switch.cpp +1 -1
  205. esphome/components/fan/__init__.py +1 -0
  206. esphome/components/fan/fan.cpp +30 -19
  207. esphome/components/fastled_base/fastled_light.cpp +7 -5
  208. esphome/components/fingerprint_grow/fingerprint_grow.cpp +8 -6
  209. esphome/components/fs3000/fs3000.cpp +1 -1
  210. esphome/components/ft5x06/touchscreen/ft5x06_touchscreen.cpp +7 -4
  211. esphome/components/ft63x6/ft63x6.cpp +5 -3
  212. esphome/components/gcja5/gcja5.cpp +0 -12
  213. esphome/components/gcja5/gcja5.h +8 -3
  214. esphome/components/gdk101/gdk101.cpp +2 -2
  215. esphome/components/globals/globals_component.h +13 -10
  216. esphome/components/gp2y1010au0f/gp2y1010au0f.cpp +4 -2
  217. esphome/components/gp8403/gp8403.cpp +4 -2
  218. esphome/components/gp8403/output/gp8403_output.cpp +4 -2
  219. esphome/components/gpio/one_wire/gpio_one_wire.cpp +2 -2
  220. esphome/components/gpio/output/gpio_binary_output.cpp +1 -1
  221. esphome/components/gpio/switch/gpio_switch.cpp +1 -1
  222. esphome/components/graphical_display_menu/graphical_display_menu.cpp +12 -8
  223. esphome/components/grove_gas_mc_v2/grove_gas_mc_v2.cpp +5 -6
  224. esphome/components/grove_tb6612fng/grove_tb6612fng.cpp +1 -1
  225. esphome/components/grove_tb6612fng/grove_tb6612fng.h +1 -1
  226. esphome/components/growatt_solar/growatt_solar.cpp +6 -3
  227. esphome/components/gt911/touchscreen/gt911_touchscreen.cpp +1 -1
  228. esphome/components/haier/haier_base.cpp +2 -2
  229. esphome/components/haier/hon_climate.cpp +13 -6
  230. esphome/components/havells_solar/havells_solar.cpp +5 -2
  231. esphome/components/hbridge/switch/hbridge_switch.cpp +1 -1
  232. esphome/components/hdc1080/hdc1080.cpp +2 -2
  233. esphome/components/he60r/he60r.cpp +4 -2
  234. esphome/components/hlw8012/hlw8012.cpp +6 -4
  235. esphome/components/hm3301/hm3301.cpp +2 -2
  236. esphome/components/hmc5883l/hmc5883l.cpp +2 -2
  237. esphome/components/homeassistant/time/homeassistant_time.cpp +4 -2
  238. esphome/components/honeywell_hih_i2c/honeywell_hih.cpp +4 -4
  239. esphome/components/honeywellabp/honeywellabp.cpp +4 -2
  240. esphome/components/honeywellabp2_i2c/honeywellabp2.cpp +8 -6
  241. esphome/components/hte501/hte501.cpp +3 -2
  242. esphome/components/http_request/__init__.py +2 -2
  243. esphome/components/http_request/http_request.cpp +7 -5
  244. esphome/components/http_request/http_request_idf.cpp +4 -2
  245. esphome/components/http_request/ota/ota_http_request.cpp +1 -1
  246. esphome/components/htu21d/htu21d.cpp +2 -2
  247. esphome/components/htu31d/htu31d.cpp +2 -2
  248. esphome/components/hx711/hx711.cpp +2 -2
  249. esphome/components/hydreon_rgxx/hydreon_rgxx.cpp +5 -3
  250. esphome/components/hyt271/hyt271.cpp +2 -2
  251. esphome/components/i2c/i2c_bus_arduino.cpp +14 -11
  252. esphome/components/i2c/i2c_bus_esp_idf.cpp +13 -11
  253. esphome/components/i2s_audio/__init__.py +2 -0
  254. esphome/components/i2s_audio/i2s_audio.cpp +3 -4
  255. esphome/components/i2s_audio/i2s_audio.h +1 -1
  256. esphome/components/i2s_audio/media_player/__init__.py +1 -1
  257. esphome/components/i2s_audio/media_player/i2s_audio_media_player.cpp +5 -3
  258. esphome/components/i2s_audio/microphone/i2s_audio_microphone.cpp +85 -77
  259. esphome/components/i2s_audio/microphone/i2s_audio_microphone.h +6 -0
  260. esphome/components/i2s_audio/speaker/i2s_audio_speaker.cpp +29 -11
  261. esphome/components/i2s_audio/speaker/i2s_audio_speaker.h +1 -0
  262. esphome/components/iaqcore/iaqcore.cpp +3 -3
  263. esphome/components/ili9xxx/ili9xxx_display.cpp +12 -7
  264. esphome/components/ili9xxx/ili9xxx_display.h +1 -1
  265. esphome/components/image/image.cpp +1 -0
  266. esphome/components/ina219/ina219.cpp +2 -2
  267. esphome/components/ina226/ina226.cpp +8 -5
  268. esphome/components/ina260/ina260.cpp +1 -1
  269. esphome/components/ina2xx_base/ina2xx_base.cpp +13 -9
  270. esphome/components/ina3221/ina3221.cpp +2 -2
  271. esphome/components/inkplate6/display.py +12 -2
  272. esphome/components/inkplate6/inkplate.cpp +13 -9
  273. esphome/components/inkplate6/inkplate.h +7 -6
  274. esphome/components/integration/integration_sensor.cpp +1 -1
  275. esphome/components/internal_temperature/internal_temperature.cpp +4 -4
  276. esphome/components/json/json_util.cpp +4 -5
  277. esphome/components/kamstrup_kmp/kamstrup_kmp.cpp +1 -1
  278. esphome/components/key_collector/key_collector.cpp +4 -2
  279. esphome/components/kmeteriso/kmeteriso.cpp +4 -4
  280. esphome/components/kuntze/kuntze.cpp +4 -2
  281. esphome/components/lc709203f/__init__.py +1 -0
  282. esphome/components/lc709203f/lc709203f.cpp +299 -0
  283. esphome/components/lc709203f/lc709203f.h +55 -0
  284. esphome/components/lc709203f/sensor.py +93 -0
  285. esphome/components/lcd_base/lcd_display.cpp +2 -2
  286. esphome/components/lcd_gpio/gpio_lcd_display.cpp +5 -3
  287. esphome/components/lcd_menu/lcd_menu.cpp +6 -4
  288. esphome/components/lcd_pcf8574/pcf8574_display.cpp +6 -4
  289. esphome/components/ld2410/ld2410.cpp +6 -7
  290. esphome/components/ld2420/ld2420.cpp +9 -7
  291. esphome/components/ld2450/ld2450.cpp +6 -4
  292. esphome/components/ld2450/sensor.py +2 -2
  293. esphome/components/ledc/ledc_output.cpp +32 -28
  294. esphome/components/libretiny/const.py +1 -1
  295. esphome/components/libretiny/preferences.cpp +6 -7
  296. esphome/components/light/__init__.py +2 -1
  297. esphome/components/light/esp_hsv_color.h +1 -1
  298. esphome/components/light/light_state.cpp +9 -5
  299. esphome/components/light/light_state.h +15 -15
  300. esphome/components/light/light_transformer.h +1 -1
  301. esphome/components/lightwaverf/LwTx.cpp +1 -1
  302. esphome/components/lightwaverf/lightwaverf.cpp +1 -1
  303. esphome/components/lilygo_t5_47/touchscreen/lilygo_t5_47_touchscreen.cpp +1 -1
  304. esphome/components/lock/__init__.py +1 -0
  305. esphome/components/lock/lock.h +1 -1
  306. esphome/components/logger/__init__.py +6 -0
  307. esphome/components/logger/logger.cpp +11 -20
  308. esphome/components/logger/logger.h +5 -6
  309. esphome/components/logger/logger_esp32.cpp +5 -5
  310. esphome/components/ltr390/ltr390.cpp +8 -5
  311. esphome/components/ltr501/ltr501.cpp +19 -14
  312. esphome/components/ltr_als_ps/ltr_als_ps.cpp +20 -13
  313. esphome/components/lvgl/__init__.py +2 -2
  314. esphome/components/lvgl/automation.py +5 -4
  315. esphome/components/lvgl/defines.py +0 -2
  316. esphome/components/lvgl/lv_validation.py +1 -3
  317. esphome/components/lvgl/lvcode.py +7 -8
  318. esphome/components/lvgl/lvgl_esphome.cpp +26 -10
  319. esphome/components/lvgl/schemas.py +22 -23
  320. esphome/components/lvgl/trigger.py +8 -3
  321. esphome/components/lvgl/widgets/__init__.py +2 -2
  322. esphome/components/lvgl/widgets/canvas.py +9 -3
  323. esphome/components/lvgl/widgets/line.py +2 -1
  324. esphome/components/lvgl/widgets/tabview.py +7 -0
  325. esphome/components/m5stack_8angle/m5stack_8angle.cpp +3 -3
  326. esphome/components/matrix_keypad/matrix_keypad.cpp +2 -2
  327. esphome/components/max17043/max17043.cpp +2 -2
  328. esphome/components/max31855/max31855.cpp +2 -1
  329. esphome/components/max31856/max31856.cpp +9 -11
  330. esphome/components/max31865/max31865.cpp +6 -4
  331. esphome/components/max44009/max44009.cpp +2 -2
  332. esphome/components/max6675/max6675.cpp +1 -1
  333. esphome/components/max6956/max6956.cpp +5 -3
  334. esphome/components/max7219/max7219.cpp +8 -6
  335. esphome/components/max7219digit/automation.h +52 -0
  336. esphome/components/max7219digit/display.py +93 -1
  337. esphome/components/max7219digit/max7219digit.cpp +16 -13
  338. esphome/components/max9611/max9611.cpp +9 -6
  339. esphome/components/mcp23008/mcp23008.cpp +1 -1
  340. esphome/components/mcp23016/mcp23016.cpp +1 -1
  341. esphome/components/mcp23017/mcp23017.cpp +1 -1
  342. esphome/components/mcp23s08/mcp23s08.cpp +1 -1
  343. esphome/components/mcp23s17/mcp23s17.cpp +1 -1
  344. esphome/components/mcp3008/mcp3008.cpp +1 -1
  345. esphome/components/mcp3008/sensor/mcp3008_sensor.cpp +5 -3
  346. esphome/components/mcp3204/mcp3204.cpp +1 -1
  347. esphome/components/mcp4461/mcp4461.cpp +2 -2
  348. esphome/components/mcp4725/mcp4725.cpp +2 -2
  349. esphome/components/mcp4728/mcp4728.cpp +2 -2
  350. esphome/components/mcp9600/mcp9600.cpp +1 -1
  351. esphome/components/mcp9808/mcp9808.cpp +4 -4
  352. esphome/components/mdns/mdns_component.cpp +8 -2
  353. esphome/components/mdns/mdns_component.h +3 -1
  354. esphome/components/mdns/mdns_esp32.cpp +2 -2
  355. esphome/components/media_player/__init__.py +1 -0
  356. esphome/components/micro_wake_word/micro_wake_word.cpp +1 -1
  357. esphome/components/micro_wake_word/streaming_model.cpp +10 -6
  358. esphome/components/micronova/micronova.h +2 -2
  359. esphome/components/mics_4514/mics_4514.cpp +2 -2
  360. esphome/components/midea/air_conditioner.cpp +7 -5
  361. esphome/components/midea_ir/midea_ir.cpp +1 -1
  362. esphome/components/mipi_spi/mipi_spi.cpp +24 -15
  363. esphome/components/mixer/speaker/mixer_speaker.cpp +8 -4
  364. esphome/components/mlx90393/sensor_mlx90393.cpp +2 -2
  365. esphome/components/mlx90614/mlx90614.cpp +4 -3
  366. esphome/components/mmc5603/mmc5603.cpp +2 -2
  367. esphome/components/mmc5983/mmc5983.cpp +1 -1
  368. esphome/components/modbus/modbus.cpp +7 -5
  369. esphome/components/modbus_controller/modbus_controller.cpp +6 -4
  370. esphome/components/modbus_controller/output/modbus_output.cpp +10 -6
  371. esphome/components/modbus_controller/switch/__init__.py +6 -2
  372. esphome/components/modbus_controller/switch/modbus_switch.cpp +4 -0
  373. esphome/components/modbus_controller/switch/modbus_switch.h +3 -0
  374. esphome/components/mpl3115a2/mpl3115a2.cpp +3 -2
  375. esphome/components/mpr121/mpr121.cpp +2 -2
  376. esphome/components/mpu6050/mpu6050.cpp +6 -6
  377. esphome/components/mpu6886/mpu6886.cpp +6 -6
  378. esphome/components/mqtt/mqtt_alarm_control_panel.cpp +7 -3
  379. esphome/components/mqtt/mqtt_backend_esp32.cpp +1 -1
  380. esphome/components/mqtt/mqtt_client.cpp +31 -24
  381. esphome/components/mqtt/mqtt_component.cpp +3 -3
  382. esphome/components/mqtt/mqtt_cover.cpp +8 -4
  383. esphome/components/mqtt/mqtt_fan.cpp +12 -6
  384. esphome/components/mqtt/mqtt_valve.cpp +4 -2
  385. esphome/components/ms5611/ms5611.cpp +2 -2
  386. esphome/components/ms8607/ms8607.cpp +2 -2
  387. esphome/components/msa3xx/msa3xx.cpp +16 -12
  388. esphome/components/my9231/my9231.cpp +7 -5
  389. esphome/components/nau7802/nau7802.cpp +6 -4
  390. esphome/components/neopixelbus/neopixelbus_light.h +2 -2
  391. esphome/components/network/ip_address.h +1 -1
  392. esphome/components/network/util.cpp +13 -0
  393. esphome/components/nextion/base_component.py +2 -0
  394. esphome/components/nextion/binary_sensor/nextion_binarysensor.cpp +3 -4
  395. esphome/components/nextion/display.py +34 -22
  396. esphome/components/nextion/nextion.cpp +182 -143
  397. esphome/components/nextion/nextion.h +36 -0
  398. esphome/components/nextion/nextion_commands.cpp +3 -3
  399. esphome/components/nextion/nextion_upload_arduino.cpp +69 -69
  400. esphome/components/nextion/nextion_upload_idf.cpp +79 -80
  401. esphome/components/nextion/sensor/nextion_sensor.cpp +5 -5
  402. esphome/components/nextion/switch/nextion_switch.cpp +2 -2
  403. esphome/components/nextion/text_sensor/nextion_textsensor.cpp +3 -3
  404. esphome/components/nfc/nci_message.h +1 -1
  405. esphome/components/nfc/ndef_record.h +1 -1
  406. esphome/components/nfc/ndef_record_text.h +1 -1
  407. esphome/components/nfc/ndef_record_uri.h +1 -1
  408. esphome/components/nfc/nfc.h +1 -1
  409. esphome/components/nfc/nfc_tag.h +1 -1
  410. esphome/components/noblex/noblex.cpp +1 -1
  411. esphome/components/npi19/npi19.cpp +5 -7
  412. esphome/components/number/__init__.py +11 -0
  413. esphome/components/number/number.cpp +1 -1
  414. esphome/components/number/number.h +0 -4
  415. esphome/components/online_image/__init__.py +13 -1
  416. esphome/components/online_image/online_image.cpp +26 -4
  417. esphome/components/online_image/online_image.h +21 -4
  418. esphome/components/opentherm/generate.py +3 -3
  419. esphome/components/opentherm/hub.cpp +11 -7
  420. esphome/components/opentherm/number/number.cpp +5 -3
  421. esphome/components/opentherm/opentherm.h +1 -1
  422. esphome/components/opentherm/schema.py +13 -13
  423. esphome/components/opentherm/validate.py +1 -1
  424. esphome/components/openthread/__init__.py +146 -0
  425. esphome/components/openthread/const.py +10 -0
  426. esphome/components/openthread/openthread.cpp +206 -0
  427. esphome/components/openthread/openthread.h +68 -0
  428. esphome/components/openthread/openthread_esp.cpp +164 -0
  429. esphome/components/openthread/tlv.py +58 -0
  430. esphome/components/openthread_info/__init__.py +0 -0
  431. esphome/components/openthread_info/openthread_info_text_sensor.cpp +24 -0
  432. esphome/components/openthread_info/openthread_info_text_sensor.h +218 -0
  433. esphome/components/openthread_info/text_sensor.py +105 -0
  434. esphome/components/output/float_output.cpp +1 -1
  435. esphome/components/output/switch/output_switch.cpp +1 -1
  436. esphome/components/packet_transport/packet_transport.cpp +6 -4
  437. esphome/components/pca6416a/pca6416a.cpp +2 -2
  438. esphome/components/pca9554/pca9554.cpp +6 -4
  439. esphome/components/pca9685/pca9685_output.cpp +12 -8
  440. esphome/components/pcd8544/pcd_8544.cpp +1 -1
  441. esphome/components/pcf85063/pcf85063.cpp +2 -2
  442. esphome/components/pcf8563/pcf8563.cpp +2 -2
  443. esphome/components/pcf8574/pcf8574.cpp +2 -2
  444. esphome/components/pid/pid_climate.cpp +8 -5
  445. esphome/components/pid/pid_climate.h +1 -1
  446. esphome/components/pid/sensor/pid_climate_sensor.cpp +1 -1
  447. esphome/components/pipsolar/output/pipsolar_output.cpp +1 -1
  448. esphome/components/pipsolar/pipsolar.cpp +3 -3
  449. esphome/components/pm1006/pm1006.cpp +3 -7
  450. esphome/components/pm1006/pm1006.h +4 -1
  451. esphome/components/pm2005/pm2005.cpp +12 -13
  452. esphome/components/pm2005/sensor.py +1 -1
  453. esphome/components/pmsa003i/pmsa003i.cpp +2 -2
  454. esphome/components/pmsx003/pmsx003.cpp +0 -4
  455. esphome/components/pmsx003/pmsx003.h +5 -2
  456. esphome/components/pmwcs3/pmwcs3.cpp +9 -13
  457. esphome/components/pmwcs3/pmwcs3.h +0 -1
  458. esphome/components/pn532/pn532.cpp +7 -7
  459. esphome/components/pn532/pn532.h +1 -1
  460. esphome/components/pn532_spi/pn532_spi.cpp +1 -1
  461. esphome/components/pn7150/pn7150.cpp +4 -4
  462. esphome/components/pn7160/pn7160.cpp +4 -4
  463. esphome/components/power_supply/power_supply.cpp +6 -4
  464. esphome/components/power_supply/power_supply.h +1 -1
  465. esphome/components/prometheus/__init__.py +0 -1
  466. esphome/components/psram/__init__.py +59 -35
  467. esphome/components/pulse_counter/pulse_counter_sensor.cpp +7 -4
  468. esphome/components/pvvx_mithermometer/display/pvvx_display.cpp +8 -5
  469. esphome/components/pylontech/pylontech.cpp +2 -2
  470. esphome/components/pylontech/sensor/pylontech_sensor.cpp +4 -2
  471. esphome/components/pylontech/text_sensor/pylontech_text_sensor.cpp +4 -2
  472. esphome/components/pzemac/pzemac.cpp +4 -2
  473. esphome/components/pzemdc/pzemdc.cpp +4 -2
  474. esphome/components/qmc5883l/qmc5883l.cpp +2 -2
  475. esphome/components/qmp6988/qmp6988.cpp +2 -2
  476. esphome/components/qmp6988/qmp6988.h +1 -1
  477. esphome/components/qr_code/qr_code.cpp +5 -3
  478. esphome/components/qspi_dbi/qspi_dbi.cpp +1 -1
  479. esphome/components/qwiic_pir/qwiic_pir.cpp +26 -28
  480. esphome/components/rc522/rc522.cpp +5 -5
  481. esphome/components/rdm6300/rdm6300.cpp +1 -0
  482. esphome/components/remote_receiver/__init__.py +10 -2
  483. esphome/components/remote_receiver/remote_receiver_esp32.cpp +22 -12
  484. esphome/components/remote_receiver/remote_receiver_esp8266.cpp +10 -7
  485. esphome/components/remote_receiver/remote_receiver_libretiny.cpp +10 -7
  486. esphome/components/remote_transmitter/__init__.py +10 -2
  487. esphome/components/remote_transmitter/remote_transmitter_esp32.cpp +10 -6
  488. esphome/components/remote_transmitter/remote_transmitter_esp8266.cpp +5 -3
  489. esphome/components/remote_transmitter/remote_transmitter_libretiny.cpp +5 -3
  490. esphome/components/resistance/resistance_sensor.cpp +6 -3
  491. esphome/components/restart/button/restart_button.cpp +1 -1
  492. esphome/components/restart/switch/restart_switch.cpp +1 -1
  493. esphome/components/rotary_encoder/rotary_encoder.cpp +2 -2
  494. esphome/components/rp2040/__init__.py +7 -0
  495. esphome/components/rp2040/core.cpp +8 -1
  496. esphome/components/rp2040/gpio.cpp +26 -9
  497. esphome/components/rp2040/preferences.cpp +3 -3
  498. esphome/components/rp2040_pio_led_strip/led_strip.cpp +11 -8
  499. esphome/components/rp2040_pio_led_strip/light.py +1 -1
  500. esphome/components/rp2040_pwm/rp2040_pwm.cpp +1 -1
  501. esphome/components/rpi_dpi_rgb/rpi_dpi_rgb.cpp +1 -1
  502. esphome/components/rtttl/rtttl.cpp +11 -9
  503. esphome/components/safe_mode/button/safe_mode_button.cpp +1 -1
  504. esphome/components/safe_mode/safe_mode.cpp +9 -8
  505. esphome/components/safe_mode/switch/safe_mode_switch.cpp +1 -1
  506. esphome/components/scd30/scd30.cpp +11 -8
  507. esphome/components/scd4x/scd4x.cpp +12 -8
  508. esphome/components/sdl/display.py +40 -0
  509. esphome/components/sdl/sdl_esphome.cpp +2 -2
  510. esphome/components/sdl/sdl_esphome.h +8 -0
  511. esphome/components/sdm_meter/sdm_meter.cpp +5 -2
  512. esphome/components/sdp3x/sdp3x.cpp +11 -11
  513. esphome/components/sds011/sds011.cpp +5 -6
  514. esphome/components/sds011/sds011.h +4 -1
  515. esphome/components/seeed_mr24hpc1/seeed_mr24hpc1.cpp +3 -2
  516. esphome/components/seeed_mr60bha2/seeed_mr60bha2.cpp +1 -0
  517. esphome/components/seeed_mr60fda2/seeed_mr60fda2.cpp +3 -2
  518. esphome/components/selec_meter/selec_meter.cpp +5 -2
  519. esphome/components/select/__init__.py +1 -0
  520. esphome/components/select/select.cpp +1 -1
  521. esphome/components/select/select.h +0 -4
  522. esphome/components/sen0321/sen0321.cpp +2 -2
  523. esphome/components/sen21231/sen21231.cpp +1 -1
  524. esphome/components/sen5x/sen5x.cpp +10 -7
  525. esphome/components/sensirion_common/i2c_sensirion.cpp +2 -1
  526. esphome/components/sensirion_common/i2c_sensirion.h +1 -0
  527. esphome/components/sensor/__init__.py +11 -1
  528. esphome/components/sensor/filter.h +1 -1
  529. esphome/components/sensor/sensor.cpp +8 -4
  530. esphome/components/sensor/sensor.h +12 -11
  531. esphome/components/servo/servo.cpp +12 -9
  532. esphome/components/servo/servo.h +1 -1
  533. esphome/components/sfa30/sfa30.cpp +1 -1
  534. esphome/components/sgp30/sgp30.cpp +10 -8
  535. esphome/components/sgp4x/sgp4x.cpp +49 -61
  536. esphome/components/sgp4x/sgp4x.h +0 -1
  537. esphome/components/shelly_dimmer/shelly_dimmer.cpp +11 -7
  538. esphome/components/sht3xd/sht3xd.cpp +1 -1
  539. esphome/components/sht4x/sht4x.cpp +2 -2
  540. esphome/components/shtcx/shtcx.cpp +13 -16
  541. esphome/components/shutdown/button/shutdown_button.cpp +1 -1
  542. esphome/components/shutdown/switch/shutdown_switch.cpp +1 -1
  543. esphome/components/sim800l/sim800l.cpp +2 -2
  544. esphome/components/slow_pwm/slow_pwm_output.cpp +4 -2
  545. esphome/components/sm16716/sm16716.cpp +1 -1
  546. esphome/components/sm2135/sm2135.cpp +1 -1
  547. esphome/components/sm2235/sm2235.cpp +5 -3
  548. esphome/components/sm2335/sm2335.cpp +5 -3
  549. esphome/components/sml/sml.cpp +1 -1
  550. esphome/components/sn74hc165/sn74hc165.cpp +1 -2
  551. esphome/components/sn74hc595/sn74hc595.cpp +1 -2
  552. esphome/components/sntp/sntp_component.cpp +1 -1
  553. esphome/components/socket/__init__.py +2 -0
  554. esphome/components/socket/bsd_sockets_impl.cpp +51 -7
  555. esphome/components/socket/lwip_raw_tcp_impl.cpp +5 -0
  556. esphome/components/socket/lwip_sockets_impl.cpp +51 -7
  557. esphome/components/socket/socket.cpp +31 -0
  558. esphome/components/socket/socket.h +27 -1
  559. esphome/components/sonoff_d1/sonoff_d1.cpp +7 -4
  560. esphome/components/sonoff_d1/sonoff_d1.h +2 -2
  561. esphome/components/sound_level/sound_level.cpp +4 -2
  562. esphome/components/speaker/media_player/__init__.py +3 -0
  563. esphome/components/speaker/media_player/speaker_media_player.cpp +1 -3
  564. esphome/components/speaker/media_player/speaker_media_player.h +6 -0
  565. esphome/components/spi/__init__.py +10 -2
  566. esphome/components/spi/spi.cpp +4 -4
  567. esphome/components/spi/spi_arduino.cpp +22 -9
  568. esphome/components/spi_device/spi_device.cpp +1 -2
  569. esphome/components/sprinkler/sprinkler.cpp +9 -6
  570. esphome/components/sps30/sps30.cpp +16 -15
  571. esphome/components/ssd1306_base/ssd1306_base.cpp +1 -1
  572. esphome/components/ssd1306_i2c/ssd1306_i2c.cpp +11 -8
  573. esphome/components/ssd1306_spi/ssd1306_spi.cpp +10 -7
  574. esphome/components/ssd1322_base/ssd1322_base.cpp +1 -1
  575. esphome/components/ssd1322_spi/ssd1322_spi.cpp +1 -1
  576. esphome/components/ssd1325_base/ssd1325_base.cpp +1 -1
  577. esphome/components/ssd1325_spi/ssd1325_spi.cpp +1 -1
  578. esphome/components/ssd1327_base/ssd1327_base.cpp +1 -1
  579. esphome/components/ssd1327_i2c/ssd1327_i2c.cpp +2 -2
  580. esphome/components/ssd1327_spi/ssd1327_spi.cpp +1 -1
  581. esphome/components/ssd1331_base/ssd1331_base.cpp +1 -1
  582. esphome/components/ssd1331_spi/ssd1331_spi.cpp +1 -1
  583. esphome/components/ssd1351_base/ssd1351_base.cpp +1 -1
  584. esphome/components/ssd1351_spi/ssd1351_spi.cpp +1 -1
  585. esphome/components/st7567_base/st7567_base.cpp +3 -3
  586. esphome/components/st7567_i2c/st7567_i2c.cpp +7 -5
  587. esphome/components/st7567_spi/st7567_spi.cpp +1 -1
  588. esphome/components/st7701s/st7701s.cpp +4 -2
  589. esphome/components/st7735/st7735.cpp +3 -3
  590. esphome/components/st7789v/st7789v.cpp +10 -7
  591. esphome/components/st7920/st7920.cpp +6 -4
  592. esphome/components/statsd/statsd.cpp +9 -5
  593. esphome/components/status_led/light/status_led_light.cpp +3 -3
  594. esphome/components/status_led/light/status_led_light.h +1 -1
  595. esphome/components/status_led/status_led.cpp +1 -1
  596. esphome/components/stepper/stepper.h +5 -3
  597. esphome/components/sts3x/sts3x.cpp +2 -2
  598. esphome/components/switch/__init__.py +1 -0
  599. esphome/components/switch/switch.cpp +18 -12
  600. esphome/components/switch/switch.h +14 -8
  601. esphome/components/sx1509/__init__.py +53 -20
  602. esphome/components/sx1509/sx1509.cpp +29 -5
  603. esphome/components/sx1509/sx1509.h +9 -1
  604. esphome/components/t6615/t6615.cpp +1 -0
  605. esphome/components/tc74/tc74.cpp +1 -1
  606. esphome/components/tca9548a/tca9548a.cpp +1 -1
  607. esphome/components/tca9555/tca9555.cpp +2 -2
  608. esphome/components/tcs34725/tcs34725.cpp +4 -4
  609. esphome/components/tee501/tee501.cpp +3 -2
  610. esphome/components/tem3200/tem3200.cpp +5 -6
  611. esphome/components/template/alarm_control_panel/__init__.py +6 -0
  612. esphome/components/template/alarm_control_panel/template_alarm_control_panel.cpp +43 -12
  613. esphome/components/template/alarm_control_panel/template_alarm_control_panel.h +4 -1
  614. esphome/components/template/cover/template_cover.cpp +1 -1
  615. esphome/components/template/select/template_select.cpp +6 -4
  616. esphome/components/template/text/template_text.cpp +2 -3
  617. esphome/components/template/valve/template_valve.cpp +5 -3
  618. esphome/components/text/__init__.py +10 -11
  619. esphome/components/text/text.cpp +1 -1
  620. esphome/components/text/text.h +0 -4
  621. esphome/components/text_sensor/__init__.py +1 -0
  622. esphome/components/text_sensor/text_sensor.cpp +8 -4
  623. esphome/components/text_sensor/text_sensor.h +6 -6
  624. esphome/components/thermostat/thermostat_climate.cpp +67 -43
  625. esphome/components/time/__init__.py +1 -2
  626. esphome/components/time_based/time_based_cover.cpp +4 -2
  627. esphome/components/tlc59208f/tlc59208f_output.cpp +8 -6
  628. esphome/components/tm1621/tm1621.cpp +3 -3
  629. esphome/components/tm1637/tm1637.cpp +9 -7
  630. esphome/components/tm1638/tm1638.cpp +7 -5
  631. esphome/components/tm1651/tm1651.cpp +2 -2
  632. esphome/components/tmp102/tmp102.cpp +1 -3
  633. esphome/components/tmp102/tmp102.h +0 -3
  634. esphome/components/tmp1075/tmp1075.cpp +12 -9
  635. esphome/components/tmp117/tmp117.cpp +2 -2
  636. esphome/components/tof10120/tof10120_sensor.cpp +2 -2
  637. esphome/components/tormatic/tormatic_cover.cpp +4 -2
  638. esphome/components/tsl2561/tsl2561.cpp +7 -5
  639. esphome/components/tsl2591/tsl2591.cpp +25 -27
  640. esphome/components/tt21100/touchscreen/tt21100.cpp +1 -1
  641. esphome/components/ttp229_bsf/ttp229_bsf.cpp +1 -1
  642. esphome/components/ttp229_lsf/ttp229_lsf.cpp +2 -2
  643. esphome/components/tuya/select/tuya_select.cpp +5 -3
  644. esphome/components/tx20/tx20.cpp +3 -3
  645. esphome/components/uart/__init__.py +4 -5
  646. esphome/components/uart/button/uart_button.cpp +1 -1
  647. esphome/components/uart/switch/uart_switch.cpp +2 -2
  648. esphome/components/uart/uart.cpp +2 -2
  649. esphome/components/uart/uart_component_esp32_arduino.cpp +8 -6
  650. esphome/components/uart/uart_component_esp8266.cpp +9 -7
  651. esphome/components/uart/uart_component_esp_idf.cpp +9 -7
  652. esphome/components/uart/uart_component_host.cpp +11 -8
  653. esphome/components/uart/uart_component_libretiny.cpp +8 -6
  654. esphome/components/uart/uart_component_rp2040.cpp +8 -6
  655. esphome/components/udp/udp_component.cpp +9 -5
  656. esphome/components/ufire_ec/ufire_ec.cpp +5 -3
  657. esphome/components/ufire_ise/ufire_ise.cpp +1 -1
  658. esphome/components/ultrasonic/ultrasonic_sensor.cpp +5 -3
  659. esphome/components/update/__init__.py +1 -0
  660. esphome/components/update/update_entity.cpp +1 -1
  661. esphome/components/update/update_entity.h +0 -3
  662. esphome/components/uponor_smatrix/climate/uponor_smatrix_climate.cpp +1 -1
  663. esphome/components/uponor_smatrix/sensor/uponor_smatrix_sensor.cpp +4 -2
  664. esphome/components/uponor_smatrix/uponor_smatrix.cpp +2 -1
  665. esphome/components/uptime/sensor/uptime_timestamp_sensor.cpp +1 -1
  666. esphome/components/usb_host/__init__.py +64 -0
  667. esphome/components/usb_host/usb_host.h +116 -0
  668. esphome/components/usb_host/usb_host_client.cpp +394 -0
  669. esphome/components/usb_host/usb_host_component.cpp +35 -0
  670. esphome/components/usb_uart/__init__.py +134 -0
  671. esphome/components/usb_uart/ch34x.cpp +80 -0
  672. esphome/components/usb_uart/cp210x.cpp +126 -0
  673. esphome/components/usb_uart/usb_uart.cpp +328 -0
  674. esphome/components/usb_uart/usb_uart.h +151 -0
  675. esphome/components/valve/__init__.py +1 -0
  676. esphome/components/veml3235/veml3235.cpp +13 -9
  677. esphome/components/veml7700/veml7700.cpp +10 -6
  678. esphome/components/voice_assistant/voice_assistant.cpp +7 -7
  679. esphome/components/wake_on_lan/wake_on_lan.cpp +1 -1
  680. esphome/components/waveshare_epaper/waveshare_epaper.cpp +1 -1
  681. esphome/components/web_server/server_index_v2.h +632 -630
  682. esphome/components/web_server/server_index_v3.h +411 -409
  683. esphome/components/web_server/web_server.cpp +5 -3
  684. esphome/components/web_server_base/web_server_base.cpp +1 -1
  685. esphome/components/web_server_idf/__init__.py +0 -2
  686. esphome/components/web_server_idf/utils.cpp +1 -1
  687. esphome/components/web_server_idf/web_server_idf.cpp +7 -3
  688. esphome/components/web_server_idf/web_server_idf.h +7 -0
  689. esphome/components/weikai/__init__.py +2 -0
  690. esphome/components/weikai/weikai.cpp +24 -22
  691. esphome/components/weikai_i2c/weikai_i2c.cpp +14 -9
  692. esphome/components/weikai_spi/weikai_spi.cpp +11 -6
  693. esphome/components/wiegand/wiegand.cpp +1 -1
  694. esphome/components/wifi/wifi_component.cpp +50 -37
  695. esphome/components/wifi/wifi_component.h +7 -4
  696. esphome/components/wifi/wifi_component_esp32_arduino.cpp +2 -2
  697. esphome/components/wifi/wifi_component_esp8266.cpp +3 -3
  698. esphome/components/wifi/wifi_component_libretiny.cpp +4 -4
  699. esphome/components/wireguard/wireguard.cpp +21 -21
  700. esphome/components/wl_134/text_sensor.py +1 -2
  701. esphome/components/wled/wled_light_effect.cpp +1 -1
  702. esphome/components/x9c/x9c.cpp +5 -3
  703. esphome/components/xgzp68xx/xgzp68xx.cpp +8 -6
  704. esphome/components/xiaomi_cgd1/xiaomi_cgd1.cpp +4 -2
  705. esphome/components/xiaomi_cgdk2/xiaomi_cgdk2.cpp +4 -2
  706. esphome/components/xiaomi_cgg1/xiaomi_cgg1.cpp +4 -2
  707. esphome/components/xiaomi_hhccjcy10/xiaomi_hhccjcy10.cpp +1 -1
  708. esphome/components/xiaomi_lywsd02mmc/xiaomi_lywsd02mmc.cpp +4 -2
  709. esphome/components/xiaomi_lywsd03mmc/xiaomi_lywsd03mmc.cpp +4 -2
  710. esphome/components/xiaomi_mhoc401/xiaomi_mhoc401.cpp +4 -2
  711. esphome/components/xl9535/xl9535.cpp +2 -2
  712. esphome/components/xpt2046/touchscreen/xpt2046.cpp +12 -11
  713. esphome/components/xpt2046/touchscreen/xpt2046.h +2 -2
  714. esphome/config.py +3 -2
  715. esphome/config_validation.py +46 -17
  716. esphome/const.py +10 -1
  717. esphome/core/__init__.py +37 -18
  718. esphome/core/application.cpp +197 -8
  719. esphome/core/application.h +116 -6
  720. esphome/core/component.cpp +36 -15
  721. esphome/core/component.h +43 -13
  722. esphome/core/config.py +12 -0
  723. esphome/core/defines.h +10 -2
  724. esphome/core/entity_base.cpp +4 -16
  725. esphome/core/entity_base.h +27 -13
  726. esphome/core/hal.h +5 -0
  727. esphome/core/helpers.cpp +1 -1
  728. esphome/core/helpers.h +5 -5
  729. esphome/core/log.h +2 -0
  730. esphome/core/log_const_en.h +4 -0
  731. esphome/core/scheduler.cpp +2 -2
  732. esphome/coroutine.py +3 -4
  733. esphome/cpp_generator.py +32 -32
  734. esphome/dashboard/core.py +2 -2
  735. esphome/dashboard/web_server.py +2 -2
  736. esphome/git.py +4 -4
  737. esphome/helpers.py +5 -6
  738. esphome/loader.py +8 -7
  739. esphome/log.py +7 -1
  740. esphome/platformio_api.py +2 -3
  741. esphome/storage_json.py +13 -5
  742. esphome/types.py +12 -13
  743. esphome/util.py +1 -2
  744. esphome/wizard.py +0 -16
  745. esphome/writer.py +5 -3
  746. esphome/yaml_util.py +6 -1
  747. esphome/zeroconf.py +1 -1
  748. {esphome-2025.5.1.dist-info → esphome-2025.6.0.dist-info}/METADATA +12 -11
  749. {esphome-2025.5.1.dist-info → esphome-2025.6.0.dist-info}/RECORD +753 -699
  750. {esphome-2025.5.1.dist-info → esphome-2025.6.0.dist-info}/WHEEL +1 -1
  751. {esphome-2025.5.1.dist-info → esphome-2025.6.0.dist-info}/entry_points.txt +0 -0
  752. {esphome-2025.5.1.dist-info → esphome-2025.6.0.dist-info}/licenses/LICENSE +0 -0
  753. {esphome-2025.5.1.dist-info → esphome-2025.6.0.dist-info}/top_level.txt +0 -0
@@ -22,7 +22,7 @@ static const size_t SERIAL_NUMBER_LENGTH = 8;
22
22
  static const uint8_t MAX_SKIPPED_DATA_CYCLES_BEFORE_ERROR = 5;
23
23
 
24
24
  void SPS30Component::setup() {
25
- ESP_LOGCONFIG(TAG, "Setting up sps30...");
25
+ ESP_LOGCONFIG(TAG, "Running setup");
26
26
  this->write_command(SPS30_CMD_SOFT_RESET);
27
27
  /// Deferred Sensor initialization
28
28
  this->set_timeout(500, [this]() {
@@ -73,10 +73,10 @@ void SPS30Component::dump_config() {
73
73
  if (this->is_failed()) {
74
74
  switch (this->error_code_) {
75
75
  case COMMUNICATION_FAILED:
76
- ESP_LOGW(TAG, "Communication failed! Is the sensor connected?");
76
+ ESP_LOGW(TAG, ESP_LOG_MSG_COMM_FAIL);
77
77
  break;
78
78
  case MEASUREMENT_INIT_FAILED:
79
- ESP_LOGW(TAG, "Measurement Initialization failed!");
79
+ ESP_LOGW(TAG, "Measurement Initialization failed");
80
80
  break;
81
81
  case SERIAL_NUMBER_REQUEST_FAILED:
82
82
  ESP_LOGW(TAG, "Unable to request sensor serial number");
@@ -91,14 +91,15 @@ void SPS30Component::dump_config() {
91
91
  ESP_LOGW(TAG, "Unable to read sensor firmware version");
92
92
  break;
93
93
  default:
94
- ESP_LOGW(TAG, "Unknown setup error!");
94
+ ESP_LOGW(TAG, "Unknown setup error");
95
95
  break;
96
96
  }
97
97
  }
98
98
  LOG_UPDATE_INTERVAL(this);
99
- ESP_LOGCONFIG(TAG, " Serial Number: '%s'", this->serial_number_);
100
- ESP_LOGCONFIG(TAG, " Firmware version v%0d.%0d", (raw_firmware_version_ >> 8),
101
- uint16_t(raw_firmware_version_ & 0xFF));
99
+ ESP_LOGCONFIG(TAG,
100
+ " Serial Number: '%s'\n"
101
+ " Firmware version v%0d.%0d",
102
+ this->serial_number_, (raw_firmware_version_ >> 8), uint16_t(raw_firmware_version_ & 0xFF));
102
103
  LOG_SENSOR(" ", "PM1.0 Weight Concentration", this->pm_1_0_sensor_);
103
104
  LOG_SENSOR(" ", "PM2.5 Weight Concentration", this->pm_2_5_sensor_);
104
105
  LOG_SENSOR(" ", "PM4 Weight Concentration", this->pm_4_0_sensor_);
@@ -113,18 +114,18 @@ void SPS30Component::dump_config() {
113
114
  void SPS30Component::update() {
114
115
  /// Check if warning flag active (sensor reconnected?)
115
116
  if (this->status_has_warning()) {
116
- ESP_LOGD(TAG, "Trying to reconnect the sensor...");
117
+ ESP_LOGD(TAG, "Trying to reconnect");
117
118
  if (this->write_command(SPS30_CMD_SOFT_RESET)) {
118
- ESP_LOGD(TAG, "Sensor has soft-reset successfully. Waiting for reconnection in 500ms...");
119
+ ESP_LOGD(TAG, "Soft-reset successful. Waiting for reconnection in 500 ms");
119
120
  this->set_timeout(500, [this]() {
120
121
  this->start_continuous_measurement_();
121
122
  /// Sensor restarted and reading attempt made next cycle
122
123
  this->status_clear_warning();
123
124
  this->skipped_data_read_cycles_ = 0;
124
- ESP_LOGD(TAG, "Sensor reconnected successfully. Resuming continuous measurement!");
125
+ ESP_LOGD(TAG, "Reconnect successful. Resuming continuous measurement");
125
126
  });
126
127
  } else {
127
- ESP_LOGD(TAG, "Sensor soft-reset failed. Is the sensor offline?");
128
+ ESP_LOGD(TAG, "Soft-reset failed");
128
129
  }
129
130
  return;
130
131
  }
@@ -136,19 +137,19 @@ void SPS30Component::update() {
136
137
 
137
138
  uint16_t raw_read_status;
138
139
  if (!this->read_data(&raw_read_status, 1) || raw_read_status == 0x00) {
139
- ESP_LOGD(TAG, "Sensor measurement not ready yet.");
140
+ ESP_LOGD(TAG, "Not ready yet");
140
141
  this->skipped_data_read_cycles_++;
141
142
  /// The following logic is required to address the cases when a sensor is quickly replaced before it's marked
142
143
  /// as failed so that new sensor is eventually forced to be reinitialized for continuous measurement.
143
144
  if (this->skipped_data_read_cycles_ > MAX_SKIPPED_DATA_CYCLES_BEFORE_ERROR) {
144
- ESP_LOGD(TAG, "Sensor exceeded max allowed attempts. Sensor communication will be reinitialized.");
145
+ ESP_LOGD(TAG, "Exceeded max allowed attempts; communication will be reinitialized");
145
146
  this->status_set_warning();
146
147
  }
147
148
  return;
148
149
  }
149
150
 
150
151
  if (!this->write_command(SPS30_CMD_READ_MEASUREMENT)) {
151
- ESP_LOGW(TAG, "Error reading measurement status!");
152
+ ESP_LOGW(TAG, "Error reading status");
152
153
  this->status_set_warning();
153
154
  return;
154
155
  }
@@ -156,7 +157,7 @@ void SPS30Component::update() {
156
157
  this->set_timeout(50, [this]() {
157
158
  uint16_t raw_data[20];
158
159
  if (!this->read_data(raw_data, 20)) {
159
- ESP_LOGW(TAG, "Error reading measurement data!");
160
+ ESP_LOGW(TAG, "Error reading data");
160
161
  this->status_set_warning();
161
162
  return;
162
163
  }
@@ -1,6 +1,6 @@
1
1
  #include "ssd1306_base.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 ssd1306_base {
@@ -7,7 +7,7 @@ namespace ssd1306_i2c {
7
7
  static const char *const TAG = "ssd1306_i2c";
8
8
 
9
9
  void I2CSSD1306::setup() {
10
- ESP_LOGCONFIG(TAG, "Setting up I2C SSD1306...");
10
+ ESP_LOGCONFIG(TAG, "Running setup");
11
11
  this->init_reset_();
12
12
 
13
13
  auto err = this->write(nullptr, 0);
@@ -24,16 +24,19 @@ void I2CSSD1306::dump_config() {
24
24
  LOG_I2C_DEVICE(this);
25
25
  ESP_LOGCONFIG(TAG, " Model: %s", this->model_str_());
26
26
  LOG_PIN(" Reset Pin: ", this->reset_pin_);
27
- ESP_LOGCONFIG(TAG, " External VCC: %s", YESNO(this->external_vcc_));
28
- ESP_LOGCONFIG(TAG, " Flip X: %s", YESNO(this->flip_x_));
29
- ESP_LOGCONFIG(TAG, " Flip Y: %s", YESNO(this->flip_y_));
30
- ESP_LOGCONFIG(TAG, " Offset X: %d", this->offset_x_);
31
- ESP_LOGCONFIG(TAG, " Offset Y: %d", this->offset_y_);
32
- ESP_LOGCONFIG(TAG, " Inverted Color: %s", YESNO(this->invert_));
27
+ ESP_LOGCONFIG(TAG,
28
+ " External VCC: %s\n"
29
+ " Flip X: %s\n"
30
+ " Flip Y: %s\n"
31
+ " Offset X: %d\n"
32
+ " Offset Y: %d\n"
33
+ " Inverted Color: %s",
34
+ YESNO(this->external_vcc_), YESNO(this->flip_x_), YESNO(this->flip_y_), this->offset_x_,
35
+ this->offset_y_, YESNO(this->invert_));
33
36
  LOG_UPDATE_INTERVAL(this);
34
37
 
35
38
  if (this->error_code_ == COMMUNICATION_FAILED) {
36
- ESP_LOGE(TAG, "Communication with SSD1306 failed!");
39
+ ESP_LOGE(TAG, ESP_LOG_MSG_COMM_FAIL);
37
40
  }
38
41
  }
39
42
  void I2CSSD1306::command(uint8_t value) { this->write_byte(0x00, value); }
@@ -8,7 +8,7 @@ namespace ssd1306_spi {
8
8
  static const char *const TAG = "ssd1306_spi";
9
9
 
10
10
  void SPISSD1306::setup() {
11
- ESP_LOGCONFIG(TAG, "Setting up SPI SSD1306...");
11
+ ESP_LOGCONFIG(TAG, "Running setup");
12
12
  this->spi_setup();
13
13
  this->dc_pin_->setup(); // OUTPUT
14
14
 
@@ -21,12 +21,15 @@ void SPISSD1306::dump_config() {
21
21
  LOG_PIN(" CS Pin: ", this->cs_);
22
22
  LOG_PIN(" DC Pin: ", this->dc_pin_);
23
23
  LOG_PIN(" Reset Pin: ", this->reset_pin_);
24
- ESP_LOGCONFIG(TAG, " External VCC: %s", YESNO(this->external_vcc_));
25
- ESP_LOGCONFIG(TAG, " Flip X: %s", YESNO(this->flip_x_));
26
- ESP_LOGCONFIG(TAG, " Flip Y: %s", YESNO(this->flip_y_));
27
- ESP_LOGCONFIG(TAG, " Offset X: %d", this->offset_x_);
28
- ESP_LOGCONFIG(TAG, " Offset Y: %d", this->offset_y_);
29
- ESP_LOGCONFIG(TAG, " Inverted Color: %s", YESNO(this->invert_));
24
+ ESP_LOGCONFIG(TAG,
25
+ " External VCC: %s\n"
26
+ " Flip X: %s\n"
27
+ " Flip Y: %s\n"
28
+ " Offset X: %d\n"
29
+ " Offset Y: %d\n"
30
+ " Inverted Color: %s",
31
+ YESNO(this->external_vcc_), YESNO(this->flip_x_), YESNO(this->flip_y_), this->offset_x_,
32
+ this->offset_y_, YESNO(this->invert_));
30
33
  LOG_UPDATE_INTERVAL(this);
31
34
  }
32
35
  void SPISSD1306::command(uint8_t value) {
@@ -1,6 +1,6 @@
1
1
  #include "ssd1322_base.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 ssd1322_base {
@@ -8,7 +8,7 @@ namespace ssd1322_spi {
8
8
  static const char *const TAG = "ssd1322_spi";
9
9
 
10
10
  void SPISSD1322::setup() {
11
- ESP_LOGCONFIG(TAG, "Setting up SPI SSD1322...");
11
+ ESP_LOGCONFIG(TAG, "Running setup");
12
12
  this->spi_setup();
13
13
  this->dc_pin_->setup(); // OUTPUT
14
14
  if (this->cs_)
@@ -1,6 +1,6 @@
1
1
  #include "ssd1325_base.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 ssd1325_base {
@@ -8,7 +8,7 @@ namespace ssd1325_spi {
8
8
  static const char *const TAG = "ssd1325_spi";
9
9
 
10
10
  void SPISSD1325::setup() {
11
- ESP_LOGCONFIG(TAG, "Setting up SPI SSD1325...");
11
+ ESP_LOGCONFIG(TAG, "Running setup");
12
12
  this->spi_setup();
13
13
  this->dc_pin_->setup(); // OUTPUT
14
14
  if (this->cs_)
@@ -1,6 +1,6 @@
1
1
  #include "ssd1327_base.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 ssd1327_base {
@@ -7,7 +7,7 @@ namespace ssd1327_i2c {
7
7
  static const char *const TAG = "ssd1327_i2c";
8
8
 
9
9
  void I2CSSD1327::setup() {
10
- ESP_LOGCONFIG(TAG, "Setting up I2C SSD1327...");
10
+ ESP_LOGCONFIG(TAG, "Running setup");
11
11
  this->init_reset_();
12
12
 
13
13
  auto err = this->write(nullptr, 0);
@@ -27,7 +27,7 @@ void I2CSSD1327::dump_config() {
27
27
  LOG_UPDATE_INTERVAL(this);
28
28
 
29
29
  if (this->error_code_ == COMMUNICATION_FAILED) {
30
- ESP_LOGE(TAG, "Communication with SSD1327 failed!");
30
+ ESP_LOGE(TAG, ESP_LOG_MSG_COMM_FAIL);
31
31
  }
32
32
  }
33
33
  void I2CSSD1327::command(uint8_t value) { this->write_byte(0x00, value); }
@@ -8,7 +8,7 @@ namespace ssd1327_spi {
8
8
  static const char *const TAG = "ssd1327_spi";
9
9
 
10
10
  void SPISSD1327::setup() {
11
- ESP_LOGCONFIG(TAG, "Setting up SPI SSD1327...");
11
+ ESP_LOGCONFIG(TAG, "Running setup");
12
12
  this->spi_setup();
13
13
  this->dc_pin_->setup(); // OUTPUT
14
14
  if (this->cs_)
@@ -1,6 +1,6 @@
1
1
  #include "ssd1331_base.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 ssd1331_base {
@@ -8,7 +8,7 @@ namespace ssd1331_spi {
8
8
  static const char *const TAG = "ssd1331_spi";
9
9
 
10
10
  void SPISSD1331::setup() {
11
- ESP_LOGCONFIG(TAG, "Setting up SPI SSD1331...");
11
+ ESP_LOGCONFIG(TAG, "Running setup");
12
12
  this->spi_setup();
13
13
  this->dc_pin_->setup(); // OUTPUT
14
14
  if (this->cs_)
@@ -1,6 +1,6 @@
1
1
  #include "ssd1351_base.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 ssd1351_base {
@@ -8,7 +8,7 @@ namespace ssd1351_spi {
8
8
  static const char *const TAG = "ssd1351_spi";
9
9
 
10
10
  void SPISSD1351::setup() {
11
- ESP_LOGCONFIG(TAG, "Setting up SPI SSD1351...");
11
+ ESP_LOGCONFIG(TAG, "Running setup");
12
12
  this->spi_setup();
13
13
  this->dc_pin_->setup(); // OUTPUT
14
14
  if (this->cs_)
@@ -1,6 +1,6 @@
1
1
  #include "st7567_base.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 st7567_base {
@@ -13,7 +13,7 @@ void ST7567::setup() {
13
13
  }
14
14
 
15
15
  void ST7567::display_init_() {
16
- ESP_LOGD(TAG, "Initializing ST7567 display...");
16
+ ESP_LOGD(TAG, "Initializing display");
17
17
  this->display_init_registers_();
18
18
  this->clear();
19
19
  this->write_display_data();
@@ -42,7 +42,7 @@ void ST7567::display_init_registers_() {
42
42
  }
43
43
 
44
44
  void ST7567::display_sw_refresh_() {
45
- ESP_LOGD(TAG, "Performing refresh sequence...");
45
+ ESP_LOGD(TAG, "Performing refresh sequence");
46
46
  this->command(ST7567_SW_REFRESH);
47
47
  this->display_init_registers_();
48
48
  }
@@ -7,7 +7,7 @@ namespace st7567_i2c {
7
7
  static const char *const TAG = "st7567_i2c";
8
8
 
9
9
  void I2CST7567::setup() {
10
- ESP_LOGCONFIG(TAG, "Setting up I2C ST7567 display...");
10
+ ESP_LOGCONFIG(TAG, "Running setup");
11
11
  this->init_reset_();
12
12
 
13
13
  auto err = this->write(nullptr, 0);
@@ -24,13 +24,15 @@ void I2CST7567::dump_config() {
24
24
  LOG_I2C_DEVICE(this);
25
25
  ESP_LOGCONFIG(TAG, " Model: %s", this->model_str_());
26
26
  LOG_PIN(" Reset Pin: ", this->reset_pin_);
27
- ESP_LOGCONFIG(TAG, " Mirror X: %s", YESNO(this->mirror_x_));
28
- ESP_LOGCONFIG(TAG, " Mirror Y: %s", YESNO(this->mirror_y_));
29
- ESP_LOGCONFIG(TAG, " Invert Colors: %s", YESNO(this->invert_colors_));
27
+ ESP_LOGCONFIG(TAG,
28
+ " Mirror X: %s\n"
29
+ " Mirror Y: %s\n"
30
+ " Invert Colors: %s",
31
+ YESNO(this->mirror_x_), YESNO(this->mirror_y_), YESNO(this->invert_colors_));
30
32
  LOG_UPDATE_INTERVAL(this);
31
33
 
32
34
  if (this->error_code_ == COMMUNICATION_FAILED) {
33
- ESP_LOGE(TAG, "Communication with I2C ST7567 failed!");
35
+ ESP_LOGE(TAG, ESP_LOG_MSG_COMM_FAIL);
34
36
  }
35
37
  }
36
38
 
@@ -7,7 +7,7 @@ namespace st7567_spi {
7
7
  static const char *const TAG = "st7567_spi";
8
8
 
9
9
  void SPIST7567::setup() {
10
- ESP_LOGCONFIG(TAG, "Setting up SPI ST7567 display...");
10
+ ESP_LOGCONFIG(TAG, "Running setup");
11
11
  this->spi_setup();
12
12
  this->dc_pin_->setup();
13
13
  if (this->cs_)
@@ -181,8 +181,10 @@ void ST7701S::write_init_sequence_() {
181
181
 
182
182
  void ST7701S::dump_config() {
183
183
  ESP_LOGCONFIG("", "ST7701S RGB LCD");
184
- ESP_LOGCONFIG(TAG, " Height: %u", this->height_);
185
- ESP_LOGCONFIG(TAG, " Width: %u", this->width_);
184
+ ESP_LOGCONFIG(TAG,
185
+ " Height: %u\n"
186
+ " Width: %u",
187
+ this->height_, this->width_);
186
188
  LOG_PIN(" CS Pin: ", this->cs_);
187
189
  LOG_PIN(" DC Pin: ", this->dc_pin_);
188
190
  LOG_PIN(" DE Pin: ", this->de_pin_);
@@ -1,7 +1,7 @@
1
1
  #include "st7735.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
 
6
6
  namespace esphome {
7
7
  namespace st7735 {
@@ -233,7 +233,7 @@ ST7735::ST7735(ST7735Model model, int width, int height, int colstart, int rowst
233
233
  height_(height) {}
234
234
 
235
235
  void ST7735::setup() {
236
- ESP_LOGCONFIG(TAG, "Setting up ST7735...");
236
+ ESP_LOGCONFIG(TAG, "Running setup");
237
237
  this->spi_setup();
238
238
 
239
239
  this->dc_pin_->setup(); // OUTPUT
@@ -8,7 +8,7 @@ static const char *const TAG = "st7789v";
8
8
  static const size_t TEMP_BUFFER_SIZE = 128;
9
9
 
10
10
  void ST7789V::setup() {
11
- ESP_LOGCONFIG(TAG, "Setting up SPI ST7789V...");
11
+ ESP_LOGCONFIG(TAG, "Running setup");
12
12
  #ifdef USE_POWER_SUPPLY
13
13
  this->power_.request();
14
14
  // the PowerSupply component takes care of post turn-on delay
@@ -122,12 +122,15 @@ void ST7789V::setup() {
122
122
 
123
123
  void ST7789V::dump_config() {
124
124
  LOG_DISPLAY("", "SPI ST7789V", this);
125
- ESP_LOGCONFIG(TAG, " Model: %s", this->model_str_);
126
- ESP_LOGCONFIG(TAG, " Height: %u", this->height_);
127
- ESP_LOGCONFIG(TAG, " Width: %u", this->width_);
128
- ESP_LOGCONFIG(TAG, " Height Offset: %u", this->offset_height_);
129
- ESP_LOGCONFIG(TAG, " Width Offset: %u", this->offset_width_);
130
- ESP_LOGCONFIG(TAG, " 8-bit color mode: %s", YESNO(this->eightbitcolor_));
125
+ ESP_LOGCONFIG(TAG,
126
+ " Model: %s\n"
127
+ " Height: %u\n"
128
+ " Width: %u\n"
129
+ " Height Offset: %u\n"
130
+ " Width Offset: %u\n"
131
+ " 8-bit color mode: %s",
132
+ this->model_str_, this->height_, this->width_, this->offset_height_, this->offset_width_,
133
+ YESNO(this->eightbitcolor_));
131
134
  LOG_PIN(" CS Pin: ", this->cs_);
132
135
  LOG_PIN(" DC Pin: ", this->dc_pin_);
133
136
  LOG_PIN(" Reset Pin: ", this->reset_pin_);
@@ -32,7 +32,7 @@ static const uint8_t LCD_LINE2 = 0x88;
32
32
  static const uint8_t LCD_LINE3 = 0x98;
33
33
 
34
34
  void ST7920::setup() {
35
- ESP_LOGCONFIG(TAG, "Setting up ST7920...");
35
+ ESP_LOGCONFIG(TAG, "Running setup");
36
36
  this->dump_config();
37
37
  this->spi_setup();
38
38
  this->init_internal_(this->get_buffer_length_());
@@ -95,8 +95,10 @@ void ST7920::fill(Color color) { memset(this->buffer_, color.is_on() ? 0xFF : 0x
95
95
  void ST7920::dump_config() {
96
96
  LOG_DISPLAY("", "ST7920", this);
97
97
  LOG_PIN(" CS Pin: ", this->cs_);
98
- ESP_LOGCONFIG(TAG, " Height: %d", this->height_);
99
- ESP_LOGCONFIG(TAG, " Width: %d", this->width_);
98
+ ESP_LOGCONFIG(TAG,
99
+ " Height: %d\n"
100
+ " Width: %d",
101
+ this->height_, this->width_);
100
102
  }
101
103
 
102
104
  float ST7920::get_setup_priority() const { return setup_priority::PROCESSOR; }
@@ -129,7 +131,7 @@ void HOT ST7920::draw_absolute_pixel_internal(int x, int y, Color color) {
129
131
  }
130
132
 
131
133
  void ST7920::display_init_() {
132
- ESP_LOGD(TAG, "Initializing display...");
134
+ ESP_LOGD(TAG, "Initializing display");
133
135
  this->command_(LCD_BASIC); // 8bit mode
134
136
  this->command_(LCD_BASIC); // 8bit mode
135
137
  this->command_(LCD_CLS); // clear screen
@@ -38,17 +38,21 @@ StatsdComponent::~StatsdComponent() {
38
38
  }
39
39
 
40
40
  void StatsdComponent::dump_config() {
41
- ESP_LOGCONFIG(TAG, "statsD:");
42
- ESP_LOGCONFIG(TAG, " host: %s", this->host_);
43
- ESP_LOGCONFIG(TAG, " port: %d", this->port_);
41
+ ESP_LOGCONFIG(TAG,
42
+ "statsD:\n"
43
+ " host: %s\n"
44
+ " port: %d",
45
+ this->host_, this->port_);
44
46
  if (this->prefix_) {
45
47
  ESP_LOGCONFIG(TAG, " prefix: %s", this->prefix_);
46
48
  }
47
49
 
48
50
  ESP_LOGCONFIG(TAG, " metrics:");
49
51
  for (sensors_t s : this->sensors_) {
50
- ESP_LOGCONFIG(TAG, " - name: %s", s.name);
51
- ESP_LOGCONFIG(TAG, " type: %d", s.type);
52
+ ESP_LOGCONFIG(TAG,
53
+ " - name: %s\n"
54
+ " type: %d",
55
+ s.name, s.type);
52
56
  }
53
57
  }
54
58
 
@@ -9,10 +9,10 @@ namespace status_led {
9
9
  static const char *const TAG = "status_led";
10
10
 
11
11
  void StatusLEDLightOutput::loop() {
12
- uint32_t new_state = App.get_app_state() & STATUS_LED_MASK;
12
+ uint8_t new_state = App.get_app_state() & STATUS_LED_MASK;
13
13
 
14
14
  if (new_state != this->last_app_state_) {
15
- ESP_LOGV(TAG, "New app state 0x%08" PRIX32, new_state);
15
+ ESP_LOGV(TAG, "New app state 0x%02X", new_state);
16
16
  }
17
17
 
18
18
  if ((new_state & STATUS_LED_ERROR) != 0u) {
@@ -53,7 +53,7 @@ void StatusLEDLightOutput::write_state(light::LightState *state) {
53
53
  }
54
54
 
55
55
  void StatusLEDLightOutput::setup() {
56
- ESP_LOGCONFIG(TAG, "Setting up Status LED...");
56
+ ESP_LOGCONFIG(TAG, "Running setup");
57
57
 
58
58
  if (this->pin_ != nullptr) {
59
59
  this->pin_->setup();
@@ -36,7 +36,7 @@ class StatusLEDLightOutput : public light::LightOutput, public Component {
36
36
  GPIOPin *pin_{nullptr};
37
37
  output::BinaryOutput *output_{nullptr};
38
38
  light::LightState *lightstate_{};
39
- uint32_t last_app_state_{0xFFFF};
39
+ uint8_t last_app_state_{0xFF};
40
40
  void output_state_(bool state);
41
41
  };
42
42
 
@@ -11,7 +11,7 @@ StatusLED *global_status_led = nullptr; // NOLINT(cppcoreguidelines-avoid-non-c
11
11
 
12
12
  StatusLED::StatusLED(GPIOPin *pin) : pin_(pin) { global_status_led = this; }
13
13
  void StatusLED::pre_setup() {
14
- ESP_LOGCONFIG(TAG, "Setting up Status LED...");
14
+ ESP_LOGCONFIG(TAG, "Running setup");
15
15
  this->pin_->setup();
16
16
  this->pin_->digital_write(false);
17
17
  }
@@ -7,9 +7,11 @@ namespace esphome {
7
7
  namespace stepper {
8
8
 
9
9
  #define LOG_STEPPER(this) \
10
- ESP_LOGCONFIG(TAG, " Acceleration: %.0f steps/s^2", this->acceleration_); \
11
- ESP_LOGCONFIG(TAG, " Deceleration: %.0f steps/s^2", this->deceleration_); \
12
- ESP_LOGCONFIG(TAG, " Max Speed: %.0f steps/s", this->max_speed_);
10
+ ESP_LOGCONFIG(TAG, \
11
+ " Acceleration: %.0f steps/s^2\n" \
12
+ " Deceleration: %.0f steps/s^2\n" \
13
+ " Max Speed: %.0f steps/s", \
14
+ this->acceleration_, this->deceleration_, this->max_speed_);
13
15
 
14
16
  class Stepper {
15
17
  public:
@@ -18,7 +18,7 @@ static const uint16_t STS3X_COMMAND_HEATER_DISABLE = 0x3066;
18
18
  static const uint16_t STS3X_COMMAND_FETCH_DATA = 0xE000;
19
19
 
20
20
  void STS3XComponent::setup() {
21
- ESP_LOGCONFIG(TAG, "Setting up STS3x...");
21
+ ESP_LOGCONFIG(TAG, "Running setup");
22
22
  if (!this->write_command(STS3X_COMMAND_READ_SERIAL_NUMBER)) {
23
23
  this->mark_failed();
24
24
  return;
@@ -36,7 +36,7 @@ void STS3XComponent::dump_config() {
36
36
  ESP_LOGCONFIG(TAG, "STS3x:");
37
37
  LOG_I2C_DEVICE(this);
38
38
  if (this->is_failed()) {
39
- ESP_LOGE(TAG, "Communication with ST3x failed!");
39
+ ESP_LOGE(TAG, ESP_LOG_MSG_COMM_FAIL);
40
40
  }
41
41
  LOG_UPDATE_INTERVAL(this);
42
42
 
@@ -159,6 +159,7 @@ async def register_switch(var, config):
159
159
  if not CORE.has_id(config[CONF_ID]):
160
160
  var = cg.Pvariable(config[CONF_ID], var)
161
161
  cg.add(cg.App.register_switch(var))
162
+ CORE.register_platform_component("switch", var)
162
163
  await setup_switch_core_(var, config)
163
164
 
164
165
 
@@ -65,7 +65,24 @@ bool Switch::is_inverted() const { return this->inverted_; }
65
65
 
66
66
  void log_switch(const char *tag, const char *prefix, const char *type, Switch *obj) {
67
67
  if (obj != nullptr) {
68
- ESP_LOGCONFIG(tag, "%s%s '%s'", prefix, type, obj->get_name().c_str());
68
+ // Prepare restore mode string
69
+ const LogString *onoff = LOG_STR(""), *inverted = onoff, *restore;
70
+ if (obj->restore_mode & RESTORE_MODE_DISABLED_MASK) {
71
+ restore = LOG_STR("disabled");
72
+ } else {
73
+ onoff = obj->restore_mode & RESTORE_MODE_ON_MASK ? LOG_STR("ON") : LOG_STR("OFF");
74
+ inverted = obj->restore_mode & RESTORE_MODE_INVERTED_MASK ? LOG_STR("inverted ") : LOG_STR("");
75
+ restore = obj->restore_mode & RESTORE_MODE_PERSISTENT_MASK ? LOG_STR("restore defaults to") : LOG_STR("always");
76
+ }
77
+
78
+ // Build the base message with mandatory fields
79
+ ESP_LOGCONFIG(tag,
80
+ "%s%s '%s'\n"
81
+ "%s Restore Mode: %s%s %s",
82
+ prefix, type, obj->get_name().c_str(), prefix, LOG_STR_ARG(inverted), LOG_STR_ARG(restore),
83
+ LOG_STR_ARG(onoff));
84
+
85
+ // Add optional fields separately
69
86
  if (!obj->get_icon().empty()) {
70
87
  ESP_LOGCONFIG(tag, "%s Icon: '%s'", prefix, obj->get_icon().c_str());
71
88
  }
@@ -78,17 +95,6 @@ void log_switch(const char *tag, const char *prefix, const char *type, Switch *o
78
95
  if (!obj->get_device_class().empty()) {
79
96
  ESP_LOGCONFIG(tag, "%s Device Class: '%s'", prefix, obj->get_device_class().c_str());
80
97
  }
81
- const LogString *onoff = LOG_STR(""), *inverted = onoff, *restore;
82
- if (obj->restore_mode & RESTORE_MODE_DISABLED_MASK) {
83
- restore = LOG_STR("disabled");
84
- } else {
85
- onoff = obj->restore_mode & RESTORE_MODE_ON_MASK ? LOG_STR("ON") : LOG_STR("OFF");
86
- inverted = obj->restore_mode & RESTORE_MODE_INVERTED_MASK ? LOG_STR("inverted ") : LOG_STR("");
87
- restore = obj->restore_mode & RESTORE_MODE_PERSISTENT_MASK ? LOG_STR("restore defaults to") : LOG_STR("always");
88
- }
89
-
90
- ESP_LOGCONFIG(tag, "%s Restore Mode: %s%s %s", prefix, LOG_STR_ARG(inverted), LOG_STR_ARG(restore),
91
- LOG_STR_ARG(onoff));
92
98
  }
93
99
  }
94
100