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
@@ -55,6 +55,9 @@ class SpeakerMediaPlayer : public Component, public media_player::MediaPlayer {
55
55
  // Percentage to increase or decrease the volume for volume up or volume down commands
56
56
  void set_volume_increment(float volume_increment) { this->volume_increment_ = volume_increment; }
57
57
 
58
+ // Volume used initially on first boot when no volume had been previously saved
59
+ void set_volume_initial(float volume_initial) { this->volume_initial_ = volume_initial; }
60
+
58
61
  void set_volume_max(float volume_max) { this->volume_max_ = volume_max; }
59
62
  void set_volume_min(float volume_min) { this->volume_min_ = volume_min; }
60
63
 
@@ -128,6 +131,9 @@ class SpeakerMediaPlayer : public Component, public media_player::MediaPlayer {
128
131
  // The amount to change the volume on volume up/down commands
129
132
  float volume_increment_;
130
133
 
134
+ // The initial volume used by Setup when no previous volume was saved
135
+ float volume_initial_;
136
+
131
137
  float volume_max_;
132
138
  float volume_min_;
133
139
 
@@ -2,12 +2,14 @@ import re
2
2
 
3
3
  from esphome import pins
4
4
  import esphome.codegen as cg
5
+ from esphome.components.esp32 import only_on_variant
5
6
  from esphome.components.esp32.const import (
6
7
  KEY_ESP32,
7
8
  VARIANT_ESP32C2,
8
9
  VARIANT_ESP32C3,
9
10
  VARIANT_ESP32C6,
10
11
  VARIANT_ESP32H2,
12
+ VARIANT_ESP32P4,
11
13
  VARIANT_ESP32S2,
12
14
  VARIANT_ESP32S3,
13
15
  )
@@ -287,7 +289,15 @@ def spi_mode_schema(mode):
287
289
  if mode == TYPE_SINGLE:
288
290
  return SPI_SINGLE_SCHEMA
289
291
  pin_count = 4 if mode == TYPE_QUAD else 8
292
+ onlys = [cv.only_on([PLATFORM_ESP32]), cv.only_with_esp_idf]
293
+ if pin_count == 8:
294
+ onlys.append(
295
+ only_on_variant(
296
+ supported=[VARIANT_ESP32S3, VARIANT_ESP32S2, VARIANT_ESP32P4]
297
+ )
298
+ )
290
299
  return cv.All(
300
+ *onlys,
291
301
  cv.Schema(
292
302
  {
293
303
  cv.GenerateID(): cv.declare_id(TYPE_CLASS[mode]),
@@ -308,8 +318,6 @@ def spi_mode_schema(mode):
308
318
  ),
309
319
  }
310
320
  ),
311
- cv.only_on([PLATFORM_ESP32]),
312
- cv.only_with_esp_idf,
313
321
  )
314
322
 
315
323
 
@@ -18,7 +18,7 @@ GPIOPin *const NullPin::NULL_PIN = new NullPin(); // NOLINT(cppcoreguidelines-a
18
18
  SPIDelegate *SPIComponent::register_device(SPIClient *device, SPIMode mode, SPIBitOrder bit_order, uint32_t data_rate,
19
19
  GPIOPin *cs_pin) {
20
20
  if (this->devices_.count(device) != 0) {
21
- ESP_LOGE(TAG, "SPI device already registered");
21
+ ESP_LOGE(TAG, "Device already registered");
22
22
  return this->devices_[device];
23
23
  }
24
24
  SPIDelegate *delegate = this->spi_bus_->get_delegate(data_rate, bit_order, mode, cs_pin); // NOLINT
@@ -28,7 +28,7 @@ SPIDelegate *SPIComponent::register_device(SPIClient *device, SPIMode mode, SPIB
28
28
 
29
29
  void SPIComponent::unregister_device(SPIClient *device) {
30
30
  if (this->devices_.count(device) == 0) {
31
- esph_log_e(TAG, "SPI device not registered");
31
+ esph_log_e(TAG, "Device not registered");
32
32
  return;
33
33
  }
34
34
  delete this->devices_[device]; // NOLINT
@@ -36,14 +36,14 @@ void SPIComponent::unregister_device(SPIClient *device) {
36
36
  }
37
37
 
38
38
  void SPIComponent::setup() {
39
- ESP_LOGD(TAG, "Setting up SPI bus...");
39
+ ESP_LOGCONFIG(TAG, "Running setup");
40
40
 
41
41
  if (this->sdo_pin_ == nullptr)
42
42
  this->sdo_pin_ = NullPin::NULL_PIN;
43
43
  if (this->sdi_pin_ == nullptr)
44
44
  this->sdi_pin_ = NullPin::NULL_PIN;
45
45
  if (this->clk_pin_ == nullptr) {
46
- ESP_LOGE(TAG, "No clock pin for SPI");
46
+ ESP_LOGE(TAG, "No clock pin");
47
47
  this->mark_failed();
48
48
  return;
49
49
  }
@@ -9,9 +9,8 @@ namespace spi_device {
9
9
  static const char *const TAG = "spi_device";
10
10
 
11
11
  void SPIDeviceComponent::setup() {
12
- ESP_LOGD(TAG, "Setting up SPIDevice...");
12
+ ESP_LOGCONFIG(TAG, "Running setup");
13
13
  this->spi_setup();
14
- ESP_LOGCONFIG(TAG, "SPIDevice started!");
15
14
  }
16
15
 
17
16
  void SPIDeviceComponent::dump_config() {
@@ -1712,15 +1712,18 @@ void Sprinkler::dump_config() {
1712
1712
  if (this->valve_overlap_) {
1713
1713
  ESP_LOGCONFIG(TAG, " Valve Overlap: %" PRIu32 " seconds", this->switching_delay_.value_or(0));
1714
1714
  } else {
1715
- ESP_LOGCONFIG(TAG, " Valve Open Delay: %" PRIu32 " seconds", this->switching_delay_.value_or(0));
1716
- ESP_LOGCONFIG(TAG, " Pump Switch Off During Valve Open Delay: %s",
1717
- YESNO(this->pump_switch_off_during_valve_open_delay_));
1715
+ ESP_LOGCONFIG(TAG,
1716
+ " Valve Open Delay: %" PRIu32 " seconds\n"
1717
+ " Pump Switch Off During Valve Open Delay: %s",
1718
+ this->switching_delay_.value_or(0), YESNO(this->pump_switch_off_during_valve_open_delay_));
1718
1719
  }
1719
1720
  }
1720
1721
  for (size_t valve_number = 0; valve_number < this->number_of_valves(); valve_number++) {
1721
- ESP_LOGCONFIG(TAG, " Valve %zu:", valve_number);
1722
- ESP_LOGCONFIG(TAG, " Name: %s", this->valve_name(valve_number));
1723
- ESP_LOGCONFIG(TAG, " Run Duration: %" PRIu32 " seconds", this->valve_run_duration(valve_number));
1722
+ ESP_LOGCONFIG(TAG,
1723
+ " Valve %zu:\n"
1724
+ " Name: %s\n"
1725
+ " Run Duration: %" PRIu32 " seconds",
1726
+ valve_number, this->valve_name(valve_number), this->valve_run_duration(valve_number));
1724
1727
  if (this->valve_[valve_number].valve_switch.pulse_duration()) {
1725
1728
  ESP_LOGCONFIG(TAG, " Pulse Duration: %" PRIu32 " milliseconds",
1726
1729
  this->valve_[valve_number].valve_switch.pulse_duration());
@@ -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
 
@@ -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();
@@ -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
  }