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
@@ -1,7 +1,14 @@
1
+ from esphome import automation
1
2
  import esphome.codegen as cg
2
3
  from esphome.components import display, spi
3
4
  import esphome.config_validation as cv
4
- from esphome.const import CONF_ID, CONF_INTENSITY, CONF_LAMBDA, CONF_NUM_CHIPS
5
+ from esphome.const import (
6
+ CONF_ID,
7
+ CONF_INTENSITY,
8
+ CONF_LAMBDA,
9
+ CONF_NUM_CHIPS,
10
+ CONF_STATE,
11
+ )
5
12
 
6
13
  CODEOWNERS = ["@rspaargaren"]
7
14
  DEPENDENCIES = ["spi"]
@@ -17,6 +24,7 @@ CONF_REVERSE_ENABLE = "reverse_enable"
17
24
  CONF_NUM_CHIP_LINES = "num_chip_lines"
18
25
  CONF_CHIP_LINES_STYLE = "chip_lines_style"
19
26
 
27
+
20
28
  integration_ns = cg.esphome_ns.namespace("max7219digit")
21
29
  ChipLinesStyle = integration_ns.enum("ChipLinesStyle")
22
30
  CHIP_LINES_STYLE = {
@@ -99,3 +107,87 @@ async def to_code(config):
99
107
  config[CONF_LAMBDA], [(MAX7219ComponentRef, "it")], return_type=cg.void
100
108
  )
101
109
  cg.add(var.set_writer(lambda_))
110
+
111
+
112
+ DisplayInvertAction = max7219_ns.class_("DisplayInvertAction", automation.Action)
113
+ DisplayVisibilityAction = max7219_ns.class_(
114
+ "DisplayVisibilityAction", automation.Action
115
+ )
116
+ DisplayReverseAction = max7219_ns.class_("DisplayReverseAction", automation.Action)
117
+ DisplayIntensityAction = max7219_ns.class_("DisplayIntensityAction", automation.Action)
118
+
119
+
120
+ MAX7219_OFF_ACTION_SCHEMA = automation.maybe_simple_id(
121
+ {
122
+ cv.GenerateID(): cv.use_id(MAX7219Component),
123
+ cv.Optional(CONF_STATE, default=False): False,
124
+ }
125
+ )
126
+
127
+ MAX7219_ON_ACTION_SCHEMA = automation.maybe_simple_id(
128
+ {
129
+ cv.GenerateID(): cv.use_id(MAX7219Component),
130
+ cv.Optional(CONF_STATE, default=True): True,
131
+ }
132
+ )
133
+
134
+
135
+ @automation.register_action(
136
+ "max7129digit.invert_off", DisplayInvertAction, MAX7219_OFF_ACTION_SCHEMA
137
+ )
138
+ @automation.register_action(
139
+ "max7129digit.invert_on", DisplayInvertAction, MAX7219_ON_ACTION_SCHEMA
140
+ )
141
+ async def max7129digit_invert_to_code(config, action_id, template_arg, args):
142
+ var = cg.new_Pvariable(action_id, template_arg)
143
+ await cg.register_parented(var, config[CONF_ID])
144
+ cg.add(var.set_state(config[CONF_STATE]))
145
+ return var
146
+
147
+
148
+ @automation.register_action(
149
+ "max7129digit.turn_off", DisplayVisibilityAction, MAX7219_OFF_ACTION_SCHEMA
150
+ )
151
+ @automation.register_action(
152
+ "max7129digit.turn_on", DisplayVisibilityAction, MAX7219_ON_ACTION_SCHEMA
153
+ )
154
+ async def max7129digit_visible_to_code(config, action_id, template_arg, args):
155
+ var = cg.new_Pvariable(action_id, template_arg)
156
+ await cg.register_parented(var, config[CONF_ID])
157
+ cg.add(var.set_state(config[CONF_STATE]))
158
+ return var
159
+
160
+
161
+ @automation.register_action(
162
+ "max7129digit.reverse_off", DisplayReverseAction, MAX7219_OFF_ACTION_SCHEMA
163
+ )
164
+ @automation.register_action(
165
+ "max7129digit.reverse_on", DisplayReverseAction, MAX7219_ON_ACTION_SCHEMA
166
+ )
167
+ async def max7129digit_reverse_to_code(config, action_id, template_arg, args):
168
+ var = cg.new_Pvariable(action_id, template_arg)
169
+ await cg.register_parented(var, config[CONF_ID])
170
+ cg.add(var.set_state(config[CONF_STATE]))
171
+ return var
172
+
173
+
174
+ MAX7219_INTENSITY_SCHEMA = cv.maybe_simple_value(
175
+ {
176
+ cv.GenerateID(): cv.use_id(MAX7219Component),
177
+ cv.Optional(CONF_INTENSITY, default=15): cv.templatable(
178
+ cv.int_range(min=0, max=15)
179
+ ),
180
+ },
181
+ key=CONF_INTENSITY,
182
+ )
183
+
184
+
185
+ @automation.register_action(
186
+ "max7129digit.intensity", DisplayIntensityAction, MAX7219_INTENSITY_SCHEMA
187
+ )
188
+ async def max7129digit_intensity_to_code(config, action_id, template_arg, args):
189
+ var = cg.new_Pvariable(action_id, template_arg)
190
+ await cg.register_parented(var, config[CONF_ID])
191
+ template_ = await cg.templatable(config[CONF_INTENSITY], args, cg.uint8)
192
+ cg.add(var.set_state(template_))
193
+ return var
@@ -1,8 +1,8 @@
1
1
  #include "max7219digit.h"
2
- #include "esphome/core/log.h"
3
- #include "esphome/core/helpers.h"
4
- #include "esphome/core/hal.h"
5
2
  #include "esphome/core/application.h"
3
+ #include "esphome/core/hal.h"
4
+ #include "esphome/core/helpers.h"
5
+ #include "esphome/core/log.h"
6
6
  #include "max7219font.h"
7
7
 
8
8
  #include <algorithm>
@@ -26,7 +26,7 @@ constexpr uint8_t MAX7219_DISPLAY_TEST = 0x01;
26
26
  float MAX7219Component::get_setup_priority() const { return setup_priority::PROCESSOR; }
27
27
 
28
28
  void MAX7219Component::setup() {
29
- ESP_LOGCONFIG(TAG, "Setting up MAX7219_DIGITS...");
29
+ ESP_LOGCONFIG(TAG, "Running setup");
30
30
  this->spi_setup();
31
31
  this->stepsleft_ = 0;
32
32
  for (int chip_line = 0; chip_line < this->num_chip_lines_; chip_line++) {
@@ -50,15 +50,18 @@ void MAX7219Component::setup() {
50
50
  }
51
51
 
52
52
  void MAX7219Component::dump_config() {
53
- ESP_LOGCONFIG(TAG, "MAX7219DIGIT:");
54
- ESP_LOGCONFIG(TAG, " Number of Chips: %u", this->num_chips_);
55
- ESP_LOGCONFIG(TAG, " Number of Chips Lines: %u", this->num_chip_lines_);
56
- ESP_LOGCONFIG(TAG, " Chips Lines Style : %u", this->chip_lines_style_);
57
- ESP_LOGCONFIG(TAG, " Intensity: %u", this->intensity_);
58
- ESP_LOGCONFIG(TAG, " Scroll Mode: %u", this->scroll_mode_);
59
- ESP_LOGCONFIG(TAG, " Scroll Speed: %u", this->scroll_speed_);
60
- ESP_LOGCONFIG(TAG, " Scroll Dwell: %u", this->scroll_dwell_);
61
- ESP_LOGCONFIG(TAG, " Scroll Delay: %u", this->scroll_delay_);
53
+ ESP_LOGCONFIG(TAG,
54
+ "MAX7219DIGIT:\n"
55
+ " Number of Chips: %u\n"
56
+ " Number of Chips Lines: %u\n"
57
+ " Chips Lines Style : %u\n"
58
+ " Intensity: %u\n"
59
+ " Scroll Mode: %u\n"
60
+ " Scroll Speed: %u\n"
61
+ " Scroll Dwell: %u\n"
62
+ " Scroll Delay: %u",
63
+ this->num_chips_, this->num_chip_lines_, this->chip_lines_style_, this->intensity_, this->scroll_mode_,
64
+ this->scroll_speed_, this->scroll_dwell_, this->scroll_delay_);
62
65
  LOG_PIN(" CS Pin: ", this->cs_);
63
66
  LOG_UPDATE_INTERVAL(this);
64
67
  }
@@ -29,8 +29,9 @@ static const uint8_t SETUP_DELAY = 4; // Wait 2 integration periods.
29
29
  static const float VOUT_LSB = 14.0 / 1000.0; // 14mV/LSB
30
30
  static const float TEMP_LSB = 0.48; // 0.48C/LSB
31
31
  static const float MICRO_VOLTS_PER_VOLT = 1000000.0;
32
+
32
33
  void MAX9611Component::setup() {
33
- ESP_LOGCONFIG(TAG, "Setting up max9611...");
34
+ ESP_LOGCONFIG(TAG, "Running setup");
34
35
  // Perform dummy-read
35
36
  uint8_t value;
36
37
  this->read(&value, 1);
@@ -41,18 +42,20 @@ void MAX9611Component::setup() {
41
42
  const uint8_t fast_mode_dat[] = {CONTROL_REGISTER_1_ADRR, MAX9611Multiplexer::MAX9611_MULTIPLEXER_FAST_MODE};
42
43
 
43
44
  if (this->write(reinterpret_cast<const uint8_t *>(&setup_dat), sizeof(setup_dat)) != ErrorCode::ERROR_OK) {
44
- ESP_LOGE(TAG, "Failed to setup Max9611 during GAIN SET");
45
+ ESP_LOGE(TAG, "GAIN SET failed");
45
46
  return;
46
47
  }
47
48
  delay(SETUP_DELAY);
48
49
  if (this->write(reinterpret_cast<const uint8_t *>(&fast_mode_dat), sizeof(fast_mode_dat)) != ErrorCode::ERROR_OK) {
49
- ESP_LOGE(TAG, "Failed to setup Max9611 during FAST MODE SET");
50
+ ESP_LOGE(TAG, "FAST MODE SET failed");
50
51
  return;
51
52
  }
52
53
  }
53
54
  void MAX9611Component::dump_config() {
54
- ESP_LOGCONFIG(TAG, "Dump Config max9611...");
55
- ESP_LOGCONFIG(TAG, " CSA Gain Register: %x", gain_);
55
+ ESP_LOGCONFIG(TAG,
56
+ "MAX9611:\n"
57
+ " CSA Gain Register: %x",
58
+ gain_);
56
59
  LOG_I2C_DEVICE(this);
57
60
  }
58
61
  void MAX9611Component::update() {
@@ -62,7 +65,7 @@ void MAX9611Component::update() {
62
65
  // Just read the entire register map in a bulk read, faster than individually querying register.
63
66
  const ErrorCode read_result = this->read(register_map_, sizeof(register_map_));
64
67
  if (write_result != ErrorCode::ERROR_OK || read_result != ErrorCode::ERROR_OK) {
65
- ESP_LOGW(TAG, "MAX9611 Update FAILED!");
68
+ ESP_LOGW(TAG, "Update failed");
66
69
  return;
67
70
  }
68
71
  uint16_t csa_register = ((register_map_[CSA_DATA_BYTE_MSB_ADRR] << 8) | (register_map_[CSA_DATA_BYTE_LSB_ADRR])) >> 4;
@@ -7,7 +7,7 @@ namespace mcp23008 {
7
7
  static const char *const TAG = "mcp23008";
8
8
 
9
9
  void MCP23008::setup() {
10
- ESP_LOGCONFIG(TAG, "Setting up MCP23008...");
10
+ ESP_LOGCONFIG(TAG, "Running setup");
11
11
  uint8_t iocon;
12
12
  if (!this->read_reg(mcp23x08_base::MCP23X08_IOCON, &iocon)) {
13
13
  this->mark_failed();
@@ -8,7 +8,7 @@ namespace mcp23016 {
8
8
  static const char *const TAG = "mcp23016";
9
9
 
10
10
  void MCP23016::setup() {
11
- ESP_LOGCONFIG(TAG, "Setting up MCP23016...");
11
+ ESP_LOGCONFIG(TAG, "Running setup");
12
12
  uint8_t iocon;
13
13
  if (!this->read_reg_(MCP23016_IOCON0, &iocon)) {
14
14
  this->mark_failed();
@@ -7,7 +7,7 @@ namespace mcp23017 {
7
7
  static const char *const TAG = "mcp23017";
8
8
 
9
9
  void MCP23017::setup() {
10
- ESP_LOGCONFIG(TAG, "Setting up MCP23017...");
10
+ ESP_LOGCONFIG(TAG, "Running setup");
11
11
  uint8_t iocon;
12
12
  if (!this->read_reg(mcp23x17_base::MCP23X17_IOCONA, &iocon)) {
13
13
  this->mark_failed();
@@ -13,7 +13,7 @@ void MCP23S08::set_device_address(uint8_t device_addr) {
13
13
  }
14
14
 
15
15
  void MCP23S08::setup() {
16
- ESP_LOGCONFIG(TAG, "Setting up MCP23S08...");
16
+ ESP_LOGCONFIG(TAG, "Running setup");
17
17
  this->spi_setup();
18
18
 
19
19
  this->enable();
@@ -13,7 +13,7 @@ void MCP23S17::set_device_address(uint8_t device_addr) {
13
13
  }
14
14
 
15
15
  void MCP23S17::setup() {
16
- ESP_LOGCONFIG(TAG, "Setting up MCP23S17...");
16
+ ESP_LOGCONFIG(TAG, "Running setup");
17
17
  this->spi_setup();
18
18
 
19
19
  this->enable();
@@ -11,7 +11,7 @@ static const char *const TAG = "mcp3008";
11
11
  float MCP3008::get_setup_priority() const { return setup_priority::HARDWARE; }
12
12
 
13
13
  void MCP3008::setup() {
14
- ESP_LOGCONFIG(TAG, "Setting up mcp3008");
14
+ ESP_LOGCONFIG(TAG, "Running setup");
15
15
  this->spi_setup();
16
16
  }
17
17
 
@@ -10,9 +10,11 @@ static const char *const TAG = "mcp3008.sensor";
10
10
  float MCP3008Sensor::get_setup_priority() const { return setup_priority::DATA; }
11
11
 
12
12
  void MCP3008Sensor::dump_config() {
13
- ESP_LOGCONFIG(TAG, "MCP3008Sensor:");
14
- ESP_LOGCONFIG(TAG, " Pin: %u", this->pin_);
15
- ESP_LOGCONFIG(TAG, " Reference Voltage: %.2fV", this->reference_voltage_);
13
+ ESP_LOGCONFIG(TAG,
14
+ "MCP3008Sensor:\n"
15
+ " Pin: %u\n"
16
+ " Reference Voltage: %.2fV",
17
+ this->pin_, this->reference_voltage_);
16
18
  }
17
19
 
18
20
  float MCP3008Sensor::sample() {
@@ -9,7 +9,7 @@ static const char *const TAG = "mcp3204";
9
9
  float MCP3204::get_setup_priority() const { return setup_priority::HARDWARE; }
10
10
 
11
11
  void MCP3204::setup() {
12
- ESP_LOGCONFIG(TAG, "Setting up mcp3204");
12
+ ESP_LOGCONFIG(TAG, "Running setup");
13
13
  this->spi_setup();
14
14
  }
15
15
 
@@ -1,7 +1,7 @@
1
1
  #include "mcp4461.h"
2
2
 
3
- #include "esphome/core/helpers.h"
4
3
  #include "esphome/core/hal.h"
4
+ #include "esphome/core/helpers.h"
5
5
 
6
6
  namespace esphome {
7
7
  namespace mcp4461 {
@@ -10,7 +10,7 @@ static const char *const TAG = "mcp4461";
10
10
  constexpr uint8_t EEPROM_WRITE_TIMEOUT_MS = 10;
11
11
 
12
12
  void Mcp4461Component::setup() {
13
- ESP_LOGCONFIG(TAG, "Setting up mcp4461 using address (0x%02X)...", this->address_);
13
+ ESP_LOGCONFIG(TAG, "Running setup for address 0x%02X", this->address_);
14
14
  auto err = this->write(nullptr, 0);
15
15
  if (err != i2c::ERROR_OK) {
16
16
  this->error_code_ = MCP4461_STATUS_I2C_ERROR;
@@ -7,7 +7,7 @@ namespace mcp4725 {
7
7
  static const char *const TAG = "mcp4725";
8
8
 
9
9
  void MCP4725::setup() {
10
- ESP_LOGCONFIG(TAG, "Setting up MCP4725 (0x%02X)...", this->address_);
10
+ ESP_LOGCONFIG(TAG, "Running setup for address 0x%02X", this->address_);
11
11
  auto err = this->write(nullptr, 0);
12
12
  if (err != i2c::ERROR_OK) {
13
13
  this->error_code_ = COMMUNICATION_FAILED;
@@ -20,7 +20,7 @@ void MCP4725::dump_config() {
20
20
  LOG_I2C_DEVICE(this);
21
21
 
22
22
  if (this->error_code_ == COMMUNICATION_FAILED) {
23
- ESP_LOGE(TAG, "Communication with MCP4725 failed!");
23
+ ESP_LOGE(TAG, ESP_LOG_MSG_COMM_FAIL);
24
24
  }
25
25
  }
26
26
 
@@ -9,7 +9,7 @@ namespace mcp4728 {
9
9
  static const char *const TAG = "mcp4728";
10
10
 
11
11
  void MCP4728Component::setup() {
12
- ESP_LOGCONFIG(TAG, "Setting up MCP4728 (0x%02X)...", this->address_);
12
+ ESP_LOGCONFIG(TAG, "Running setup for address 0x%02X", this->address_);
13
13
  auto err = this->write(nullptr, 0);
14
14
  if (err != i2c::ERROR_OK) {
15
15
  this->mark_failed();
@@ -21,7 +21,7 @@ void MCP4728Component::dump_config() {
21
21
  ESP_LOGCONFIG(TAG, "MCP4728:");
22
22
  LOG_I2C_DEVICE(this);
23
23
  if (this->is_failed()) {
24
- ESP_LOGE(TAG, "Communication with MCP4728 failed!");
24
+ ESP_LOGE(TAG, ESP_LOG_MSG_COMM_FAIL);
25
25
  }
26
26
  }
27
27
 
@@ -28,7 +28,7 @@ static const uint8_t MCP9600_REGISTER_ALERT4_LIMIT = 0x13;
28
28
  static const uint8_t MCP9600_REGISTER_DEVICE_ID = 0x20;
29
29
 
30
30
  void MCP9600Component::setup() {
31
- ESP_LOGCONFIG(TAG, "Setting up MCP9600...");
31
+ ESP_LOGCONFIG(TAG, "Running setup");
32
32
 
33
33
  uint16_t dev_id = 0;
34
34
  this->read_byte_16(MCP9600_REGISTER_DEVICE_ID, &dev_id);
@@ -18,18 +18,18 @@ static const uint8_t MCP9808_AMBIENT_TEMP_NEGATIVE = 0x10;
18
18
  static const char *const TAG = "mcp9808";
19
19
 
20
20
  void MCP9808Sensor::setup() {
21
- ESP_LOGCONFIG(TAG, "Setting up %s...", this->name_.c_str());
21
+ ESP_LOGCONFIG(TAG, "Running setup for '%s'", this->name_.c_str());
22
22
 
23
23
  uint16_t manu = 0;
24
24
  if (!this->read_byte_16(MCP9808_REG_MANUF_ID, &manu) || manu != MCP9808_MANUF_ID) {
25
25
  this->mark_failed();
26
- ESP_LOGE(TAG, "%s manufacuturer id failed, device returned %X", this->name_.c_str(), manu);
26
+ ESP_LOGE(TAG, "Incorrect manufacturer ID (%X) for '%s'", manu, this->name_.c_str());
27
27
  return;
28
28
  }
29
29
  uint16_t dev_id = 0;
30
30
  if (!this->read_byte_16(MCP9808_REG_DEVICE_ID, &dev_id) || dev_id != MCP9808_DEV_ID) {
31
31
  this->mark_failed();
32
- ESP_LOGE(TAG, "%s device id failed, device returned %X", this->name_.c_str(), dev_id);
32
+ ESP_LOGE(TAG, "Incorrect device ID (%X) for '%s'", dev_id, this->name_.c_str());
33
33
  return;
34
34
  }
35
35
  }
@@ -37,7 +37,7 @@ void MCP9808Sensor::dump_config() {
37
37
  ESP_LOGCONFIG(TAG, "%s:", this->name_.c_str());
38
38
  LOG_I2C_DEVICE(this);
39
39
  if (this->is_failed()) {
40
- ESP_LOGE(TAG, "Communication with %s failed!", this->name_.c_str());
40
+ ESP_LOGE(TAG, ESP_LOG_MSG_COMM_FAIL_FOR, this->name_.c_str());
41
41
  }
42
42
  LOG_UPDATE_INTERVAL(this);
43
43
  LOG_SENSOR(" ", "Temperature", this);
@@ -59,6 +59,8 @@ void MDNSComponent::compile_records_() {
59
59
  service.txt_records.push_back({"network", "wifi"});
60
60
  #elif defined(USE_ETHERNET)
61
61
  service.txt_records.push_back({"network", "ethernet"});
62
+ #elif defined(USE_OPENTHREAD)
63
+ service.txt_records.push_back({"network", "thread"});
62
64
  #endif
63
65
 
64
66
  #ifdef USE_API_NOISE
@@ -117,8 +119,10 @@ void MDNSComponent::compile_records_() {
117
119
  }
118
120
 
119
121
  void MDNSComponent::dump_config() {
120
- ESP_LOGCONFIG(TAG, "mDNS:");
121
- ESP_LOGCONFIG(TAG, " Hostname: %s", this->hostname_.c_str());
122
+ ESP_LOGCONFIG(TAG,
123
+ "mDNS:\n"
124
+ " Hostname: %s",
125
+ this->hostname_.c_str());
122
126
  ESP_LOGV(TAG, " Services:");
123
127
  for (const auto &service : this->services_) {
124
128
  ESP_LOGV(TAG, " - %s, %s, %d", service.service_type.c_str(), service.proto.c_str(),
@@ -130,6 +134,8 @@ void MDNSComponent::dump_config() {
130
134
  }
131
135
  }
132
136
 
137
+ std::vector<MDNSService> MDNSComponent::get_services() { return this->services_; }
138
+
133
139
  } // namespace mdns
134
140
  } // namespace esphome
135
141
  #endif
@@ -33,10 +33,12 @@ class MDNSComponent : public Component {
33
33
  #if (defined(USE_ESP8266) || defined(USE_RP2040)) && defined(USE_ARDUINO)
34
34
  void loop() override;
35
35
  #endif
36
- float get_setup_priority() const override { return setup_priority::AFTER_WIFI; }
36
+ float get_setup_priority() const override { return setup_priority::AFTER_CONNECTION; }
37
37
 
38
38
  void add_extra_service(MDNSService service) { services_extra_.push_back(std::move(service)); }
39
39
 
40
+ std::vector<MDNSService> get_services();
41
+
40
42
  void on_shutdown() override;
41
43
 
42
44
  protected:
@@ -17,7 +17,7 @@ void MDNSComponent::setup() {
17
17
 
18
18
  esp_err_t err = mdns_init();
19
19
  if (err != ESP_OK) {
20
- ESP_LOGW(TAG, "mDNS init failed: %s", esp_err_to_name(err));
20
+ ESP_LOGW(TAG, "Init failed: %s", esp_err_to_name(err));
21
21
  this->mark_failed();
22
22
  return;
23
23
  }
@@ -45,7 +45,7 @@ void MDNSComponent::setup() {
45
45
  }
46
46
 
47
47
  if (err != ESP_OK) {
48
- ESP_LOGW(TAG, "Failed to register mDNS service %s: %s", service.service_type.c_str(), esp_err_to_name(err));
48
+ ESP_LOGW(TAG, "Failed to register service %s: %s", service.service_type.c_str(), esp_err_to_name(err));
49
49
  }
50
50
  }
51
51
  }
@@ -103,6 +103,7 @@ async def register_media_player(var, config):
103
103
  if not CORE.has_id(config[CONF_ID]):
104
104
  var = cg.Pvariable(config[CONF_ID], var)
105
105
  cg.add(cg.App.register_media_player(var))
106
+ CORE.register_platform_component("media_player", var)
106
107
  await setup_media_player_core_(var, config)
107
108
 
108
109
 
@@ -72,7 +72,7 @@ void MicroWakeWord::dump_config() {
72
72
  }
73
73
 
74
74
  void MicroWakeWord::setup() {
75
- ESP_LOGCONFIG(TAG, "Setting up microWakeWord...");
75
+ ESP_LOGCONFIG(TAG, "Running setup");
76
76
 
77
77
  this->frontend_config_.window.size_ms = FEATURE_DURATION_MS;
78
78
  this->frontend_config_.window.step_size_ms = this->features_step_size_;
@@ -11,15 +11,19 @@ namespace esphome {
11
11
  namespace micro_wake_word {
12
12
 
13
13
  void WakeWordModel::log_model_config() {
14
- ESP_LOGCONFIG(TAG, " - Wake Word: %s", this->wake_word_.c_str());
15
- ESP_LOGCONFIG(TAG, " Probability cutoff: %.2f", this->probability_cutoff_ / 255.0f);
16
- ESP_LOGCONFIG(TAG, " Sliding window size: %d", this->sliding_window_size_);
14
+ ESP_LOGCONFIG(TAG,
15
+ " - Wake Word: %s\n"
16
+ " Probability cutoff: %.2f\n"
17
+ " Sliding window size: %d",
18
+ this->wake_word_.c_str(), this->probability_cutoff_ / 255.0f, this->sliding_window_size_);
17
19
  }
18
20
 
19
21
  void VADModel::log_model_config() {
20
- ESP_LOGCONFIG(TAG, " - VAD Model");
21
- ESP_LOGCONFIG(TAG, " Probability cutoff: %.2f", this->probability_cutoff_ / 255.0f);
22
- ESP_LOGCONFIG(TAG, " Sliding window size: %d", this->sliding_window_size_);
22
+ ESP_LOGCONFIG(TAG,
23
+ " - VAD Model\n"
24
+ " Probability cutoff: %.2f\n"
25
+ " Sliding window size: %d",
26
+ this->probability_cutoff_ / 255.0f, this->sliding_window_size_);
23
27
  }
24
28
 
25
29
  bool StreamingModel::load_model_() {
@@ -1,10 +1,10 @@
1
1
  #pragma once
2
2
 
3
- #include "esphome/core/component.h"
4
3
  #include "esphome/components/uart/uart.h"
5
- #include "esphome/core/log.h"
4
+ #include "esphome/core/component.h"
6
5
  #include "esphome/core/defines.h"
7
6
  #include "esphome/core/helpers.h"
7
+ #include "esphome/core/log.h"
8
8
 
9
9
  #include <vector>
10
10
 
@@ -12,11 +12,11 @@ static const uint8_t SENSOR_REGISTER = 0x04;
12
12
  static const uint8_t POWER_MODE_REGISTER = 0x0a;
13
13
 
14
14
  void MICS4514Component::setup() {
15
- ESP_LOGCONFIG(TAG, "Setting up MICS 4514...");
15
+ ESP_LOGCONFIG(TAG, "Running setup");
16
16
  uint8_t power_mode;
17
17
  this->read_register(POWER_MODE_REGISTER, &power_mode, 1);
18
18
  if (power_mode == 0x00) {
19
- ESP_LOGCONFIG(TAG, "Waking up MICS 4514, sensors will have data after 3 minutes...");
19
+ ESP_LOGCONFIG(TAG, "Waking up MICS 4514, sensors will have data after 3 minutes");
20
20
  power_mode = 0x01;
21
21
  this->write_register(POWER_MODE_REGISTER, &power_mode, 1);
22
22
  delay(100); // NOLINT
@@ -1,7 +1,7 @@
1
1
  #ifdef USE_ARDUINO
2
2
 
3
- #include "esphome/core/log.h"
4
3
  #include "esphome/core/helpers.h"
4
+ #include "esphome/core/log.h"
5
5
  #include "air_conditioner.h"
6
6
  #include "ac_adapter.h"
7
7
  #include <cmath>
@@ -103,10 +103,12 @@ ClimateTraits AirConditioner::traits() {
103
103
  }
104
104
 
105
105
  void AirConditioner::dump_config() {
106
- ESP_LOGCONFIG(Constants::TAG, "MideaDongle:");
107
- ESP_LOGCONFIG(Constants::TAG, " [x] Period: %dms", this->base_.getPeriod());
108
- ESP_LOGCONFIG(Constants::TAG, " [x] Response timeout: %dms", this->base_.getTimeout());
109
- ESP_LOGCONFIG(Constants::TAG, " [x] Request attempts: %d", this->base_.getNumAttempts());
106
+ ESP_LOGCONFIG(Constants::TAG,
107
+ "MideaDongle:\n"
108
+ " [x] Period: %dms\n"
109
+ " [x] Response timeout: %dms\n"
110
+ " [x] Request attempts: %d",
111
+ this->base_.getPeriod(), this->base_.getTimeout(), this->base_.getNumAttempts());
110
112
  #ifdef USE_REMOTE_TRANSMITTER
111
113
  ESP_LOGCONFIG(Constants::TAG, " [x] Using RemoteTransmitter");
112
114
  #endif
@@ -1,7 +1,7 @@
1
1
  #include "midea_ir.h"
2
2
  #include "midea_data.h"
3
- #include "esphome/core/log.h"
4
3
  #include "esphome/core/helpers.h"
4
+ #include "esphome/core/log.h"
5
5
  #include "esphome/components/coolix/coolix.h"
6
6
 
7
7
  namespace esphome {
@@ -5,7 +5,7 @@ namespace esphome {
5
5
  namespace mipi_spi {
6
6
 
7
7
  void MipiSpi::setup() {
8
- ESP_LOGCONFIG(TAG, "Setting up MIPI SPI");
8
+ ESP_LOGCONFIG(TAG, "Running setup");
9
9
  this->spi_setup();
10
10
  if (this->dc_pin_ != nullptr) {
11
11
  this->dc_pin_->setup();
@@ -447,21 +447,28 @@ void MipiSpi::write_command_(uint8_t cmd, const uint8_t *bytes, size_t len) {
447
447
  }
448
448
 
449
449
  void MipiSpi::dump_config() {
450
- ESP_LOGCONFIG(TAG, "MIPI_SPI Display");
451
- ESP_LOGCONFIG(TAG, " Model: %s", this->model_);
452
- ESP_LOGCONFIG(TAG, " Width: %u", this->width_);
453
- ESP_LOGCONFIG(TAG, " Height: %u", this->height_);
450
+ ESP_LOGCONFIG(TAG,
451
+ "MIPI_SPI Display\n"
452
+ " Model: %s\n"
453
+ " Width: %u\n"
454
+ " Height: %u",
455
+ this->model_, this->width_, this->height_);
454
456
  if (this->offset_width_ != 0)
455
457
  ESP_LOGCONFIG(TAG, " Offset width: %u", this->offset_width_);
456
458
  if (this->offset_height_ != 0)
457
459
  ESP_LOGCONFIG(TAG, " Offset height: %u", this->offset_height_);
458
- ESP_LOGCONFIG(TAG, " Swap X/Y: %s", YESNO(this->madctl_ & MADCTL_MV));
459
- ESP_LOGCONFIG(TAG, " Mirror X: %s", YESNO(this->madctl_ & (MADCTL_MX | MADCTL_XFLIP)));
460
- ESP_LOGCONFIG(TAG, " Mirror Y: %s", YESNO(this->madctl_ & (MADCTL_MY | MADCTL_YFLIP)));
461
- ESP_LOGCONFIG(TAG, " Color depth: %d bits", this->color_depth_ == display::COLOR_BITNESS_565 ? 16 : 8);
462
- ESP_LOGCONFIG(TAG, " Invert colors: %s", YESNO(this->invert_colors_));
463
- ESP_LOGCONFIG(TAG, " Color order: %s", this->madctl_ & MADCTL_BGR ? "BGR" : "RGB");
464
- ESP_LOGCONFIG(TAG, " Pixel mode: %s", this->pixel_mode_ == PIXEL_MODE_18 ? "18bit" : "16bit");
460
+ ESP_LOGCONFIG(TAG,
461
+ " Swap X/Y: %s\n"
462
+ " Mirror X: %s\n"
463
+ " Mirror Y: %s\n"
464
+ " Color depth: %d bits\n"
465
+ " Invert colors: %s\n"
466
+ " Color order: %s\n"
467
+ " Pixel mode: %s",
468
+ YESNO(this->madctl_ & MADCTL_MV), YESNO(this->madctl_ & (MADCTL_MX | MADCTL_XFLIP)),
469
+ YESNO(this->madctl_ & (MADCTL_MY | MADCTL_YFLIP)),
470
+ this->color_depth_ == display::COLOR_BITNESS_565 ? 16 : 8, YESNO(this->invert_colors_),
471
+ this->madctl_ & MADCTL_BGR ? "BGR" : "RGB", this->pixel_mode_ == PIXEL_MODE_18 ? "18bit" : "16bit");
465
472
  if (this->brightness_.has_value())
466
473
  ESP_LOGCONFIG(TAG, " Brightness: %u", this->brightness_.value());
467
474
  if (this->spi_16_)
@@ -472,9 +479,11 @@ void MipiSpi::dump_config() {
472
479
  LOG_PIN(" CS Pin: ", this->cs_);
473
480
  LOG_PIN(" Reset Pin: ", this->reset_pin_);
474
481
  LOG_PIN(" DC Pin: ", this->dc_pin_);
475
- ESP_LOGCONFIG(TAG, " SPI Mode: %d", this->mode_);
476
- ESP_LOGCONFIG(TAG, " SPI Data rate: %dMHz", static_cast<unsigned>(this->data_rate_ / 1000000));
477
- ESP_LOGCONFIG(TAG, " SPI Bus width: %d", this->bus_width_);
482
+ ESP_LOGCONFIG(TAG,
483
+ " SPI Mode: %d\n"
484
+ " SPI Data rate: %dMHz\n"
485
+ " SPI Bus width: %d",
486
+ this->mode_, static_cast<unsigned>(this->data_rate_ / 1000000), this->bus_width_);
478
487
  }
479
488
 
480
489
  } // namespace mipi_spi