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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (750) hide show
  1. esphome/__main__.py +20 -14
  2. esphome/components/a4988/a4988.cpp +1 -1
  3. esphome/components/absolute_humidity/absolute_humidity.cpp +6 -4
  4. esphome/components/ac_dimmer/ac_dimmer.cpp +4 -2
  5. esphome/components/adc/adc_sensor_esp32.cpp +5 -3
  6. esphome/components/adc/adc_sensor_esp8266.cpp +5 -3
  7. esphome/components/adc/adc_sensor_libretiny.cpp +5 -3
  8. esphome/components/adc/adc_sensor_rp2040.cpp +5 -3
  9. esphome/components/adc128s102/adc128s102.cpp +1 -1
  10. esphome/components/ade7880/ade7880.cpp +28 -17
  11. esphome/components/ade7953_base/ade7953_base.cpp +12 -9
  12. esphome/components/ade7953_i2c/ade7953_i2c.cpp +1 -1
  13. esphome/components/ade7953_spi/ade7953_spi.cpp +1 -1
  14. esphome/components/ads1115/ads1115.cpp +3 -5
  15. esphome/components/ads1118/ads1118.cpp +2 -1
  16. esphome/components/ags10/ags10.cpp +3 -2
  17. esphome/components/aht10/aht10.cpp +27 -29
  18. esphome/components/aic3204/aic3204.cpp +2 -2
  19. esphome/components/alarm_control_panel/__init__.py +1 -0
  20. esphome/components/am2315c/am2315c.cpp +2 -2
  21. esphome/components/am2320/am2320.cpp +2 -2
  22. esphome/components/am43/am43_base.h +1 -1
  23. esphome/components/am43/cover/am43_cover.cpp +4 -2
  24. esphome/components/analog_threshold/analog_threshold_binary_sensor.cpp +4 -2
  25. esphome/components/apds9306/apds9306.cpp +8 -5
  26. esphome/components/apds9960/apds9960.cpp +2 -2
  27. esphome/components/api/__init__.py +5 -0
  28. esphome/components/api/api_connection.cpp +753 -379
  29. esphome/components/api/api_connection.h +341 -283
  30. esphome/components/api/api_frame_helper.cpp +349 -344
  31. esphome/components/api/api_frame_helper.h +121 -94
  32. esphome/components/api/api_pb2.cpp +5 -0
  33. esphome/components/api/api_pb2.h +703 -227
  34. esphome/components/api/api_pb2_service.cpp +12 -688
  35. esphome/components/api/api_pb2_service.h +53 -207
  36. esphome/components/api/api_server.cpp +71 -29
  37. esphome/components/api/api_server.h +9 -0
  38. esphome/components/api/client.py +5 -4
  39. esphome/components/api/homeassistant_service.h +1 -1
  40. esphome/components/api/list_entities.cpp +1 -1
  41. esphome/components/api/proto.cpp +1 -0
  42. esphome/components/api/proto.h +5 -4
  43. esphome/components/api/subscribe_state.cpp +8 -16
  44. esphome/components/as3935/as3935.cpp +3 -3
  45. esphome/components/as5600/as5600.cpp +9 -7
  46. esphome/components/as7341/as7341.cpp +7 -5
  47. esphome/components/at581x/at581x.cpp +13 -10
  48. esphome/components/atm90e26/atm90e26.cpp +2 -2
  49. esphome/components/atm90e32/atm90e32.cpp +3 -3
  50. esphome/components/axs15231/touchscreen/axs15231_touchscreen.cpp +5 -3
  51. esphome/components/bang_bang/bang_bang_climate.cpp +8 -5
  52. esphome/components/bedjet/bedjet_hub.cpp +6 -4
  53. esphome/components/beken_spi_led_strip/led_strip.cpp +11 -7
  54. esphome/components/bh1750/bh1750.cpp +2 -2
  55. esphome/components/binary_sensor/__init__.py +1 -0
  56. esphome/components/binary_sensor/automation.cpp +1 -2
  57. esphome/components/bl0906/bl0906.cpp +1 -1
  58. esphome/components/bl0942/bl0942.cpp +11 -8
  59. esphome/components/bl0942/sensor.py +1 -1
  60. esphome/components/ble_client/__init__.py +5 -1
  61. esphome/components/ble_client/output/ble_binary_output.cpp +6 -3
  62. esphome/components/ble_client/sensor/ble_sensor.cpp +9 -6
  63. esphome/components/ble_client/text_sensor/ble_text_sensor.cpp +8 -5
  64. esphome/components/bluetooth_proxy/__init__.py +5 -1
  65. esphome/components/bluetooth_proxy/bluetooth_connection.cpp +5 -5
  66. esphome/components/bluetooth_proxy/bluetooth_proxy.cpp +18 -16
  67. esphome/components/bluetooth_proxy/bluetooth_proxy.h +1 -1
  68. esphome/components/bme280_base/bme280_base.cpp +5 -6
  69. esphome/components/bme680/bme680.cpp +3 -3
  70. esphome/components/bme680/sensor.py +2 -2
  71. esphome/components/bme680_bsec/bme680_bsec.cpp +11 -7
  72. esphome/components/bme680_bsec/sensor.py +7 -3
  73. esphome/components/bme68x_bsec2/__init__.py +6 -5
  74. esphome/components/bme68x_bsec2/bme68x_bsec2.cpp +17 -13
  75. esphome/components/bme68x_bsec2/sensor.py +4 -4
  76. esphome/components/bme68x_bsec2_i2c/bme68x_bsec2_i2c.cpp +1 -0
  77. esphome/components/bmi160/bmi160.cpp +11 -11
  78. esphome/components/bmp085/bmp085.cpp +2 -2
  79. esphome/components/bmp280_base/bmp280_base.cpp +3 -3
  80. esphome/components/bmp3xx_base/bmp3xx_base.cpp +13 -13
  81. esphome/components/bmp581/bmp581.cpp +33 -27
  82. esphome/components/bp1658cj/bp1658cj.cpp +5 -3
  83. esphome/components/bp5758d/bp5758d.cpp +1 -1
  84. esphome/components/button/__init__.py +1 -0
  85. esphome/components/canbus/canbus.cpp +1 -1
  86. esphome/components/cap1188/cap1188.cpp +6 -4
  87. esphome/components/captive_portal/captive_portal.cpp +1 -1
  88. esphome/components/ccs811/ccs811.cpp +3 -2
  89. esphome/components/cd74hc4067/cd74hc4067.cpp +1 -1
  90. esphome/components/ch422g/ch422g.cpp +2 -2
  91. esphome/components/chsc6x/chsc6x_touchscreen.cpp +6 -4
  92. esphome/components/climate/__init__.py +1 -0
  93. esphome/components/climate/climate.cpp +12 -7
  94. esphome/components/climate/climate.h +1 -1
  95. esphome/components/climate_ir/climate_ir.cpp +7 -4
  96. esphome/components/cm1106/__init__.py +1 -0
  97. esphome/components/cm1106/cm1106.cpp +112 -0
  98. esphome/components/cm1106/cm1106.h +40 -0
  99. esphome/components/cm1106/sensor.py +72 -0
  100. esphome/components/const/__init__.py +1 -0
  101. esphome/components/cover/__init__.py +1 -0
  102. esphome/components/cs5460a/cs5460a.cpp +16 -11
  103. esphome/components/cse7761/cse7761.cpp +2 -2
  104. esphome/components/cse7766/cse7766.cpp +0 -5
  105. esphome/components/cse7766/cse7766.h +5 -1
  106. esphome/components/cst226/touchscreen/cst226_touchscreen.cpp +1 -1
  107. esphome/components/cst816/touchscreen/cst816_touchscreen.cpp +6 -3
  108. esphome/components/current_based/current_based_cover.cpp +4 -2
  109. esphome/components/dac7678/dac7678_output.cpp +4 -4
  110. esphome/components/dallas_temp/dallas_temp.cpp +2 -3
  111. esphome/components/daly_bms/daly_bms.cpp +2 -1
  112. esphome/components/dashboard_import/__init__.py +1 -2
  113. esphome/components/datetime/__init__.py +3 -1
  114. esphome/components/datetime/date_entity.cpp +5 -5
  115. esphome/components/datetime/datetime_base.h +0 -5
  116. esphome/components/datetime/datetime_entity.cpp +8 -8
  117. esphome/components/datetime/time_entity.cpp +4 -4
  118. esphome/components/debug/debug_component.cpp +1 -1
  119. esphome/components/debug/debug_component.h +1 -1
  120. esphome/components/debug/debug_esp32.cpp +4 -2
  121. esphome/components/deep_sleep/deep_sleep_component.cpp +11 -5
  122. esphome/components/deep_sleep/deep_sleep_esp32.cpp +7 -5
  123. esphome/components/demo/__init__.py +206 -0
  124. esphome/components/demo/demo_alarm_control_panel.h +65 -0
  125. esphome/components/demo/demo_button.h +15 -0
  126. esphome/components/demo/demo_date.h +34 -0
  127. esphome/components/demo/demo_datetime.h +40 -0
  128. esphome/components/demo/demo_lock.h +17 -0
  129. esphome/components/demo/demo_select.h +15 -0
  130. esphome/components/demo/demo_text.h +18 -0
  131. esphome/components/demo/demo_time.h +34 -0
  132. esphome/components/demo/demo_valve.h +54 -0
  133. esphome/components/dfrobot_sen0395/commands.cpp +3 -3
  134. esphome/components/dht/dht.cpp +29 -50
  135. esphome/components/dht12/dht12.cpp +2 -2
  136. esphome/components/display/display.h +5 -3
  137. esphome/components/dps310/dps310.cpp +7 -5
  138. esphome/components/ds1307/ds1307.cpp +2 -2
  139. esphome/components/dsmr/dsmr.cpp +5 -3
  140. esphome/components/duty_cycle/duty_cycle_sensor.cpp +2 -2
  141. esphome/components/duty_time/duty_time_sensor.cpp +5 -3
  142. esphome/components/ee895/ee895.cpp +3 -3
  143. esphome/components/ektf2232/touchscreen/ektf2232.cpp +1 -1
  144. esphome/components/emc2101/emc2101.cpp +11 -9
  145. esphome/components/ens160_base/ens160_base.cpp +2 -2
  146. esphome/components/ens210/ens210.cpp +2 -2
  147. esphome/components/es7210/es7210.cpp +6 -4
  148. esphome/components/es7243e/es7243e.cpp +1 -1
  149. esphome/components/es8156/es8156.cpp +1 -1
  150. esphome/components/es8311/es8311.cpp +8 -6
  151. esphome/components/es8388/__init__.py +0 -0
  152. esphome/components/es8388/audio_dac.py +26 -0
  153. esphome/components/es8388/es8388.cpp +289 -0
  154. esphome/components/es8388/es8388.h +81 -0
  155. esphome/components/es8388/es8388_const.h +83 -0
  156. esphome/components/es8388/select/__init__.py +47 -0
  157. esphome/components/es8388/select/adc_input_mic_select.cpp +12 -0
  158. esphome/components/es8388/select/adc_input_mic_select.h +15 -0
  159. esphome/components/es8388/select/dac_output_select.cpp +12 -0
  160. esphome/components/es8388/select/dac_output_select.h +15 -0
  161. esphome/components/esp32/__init__.py +118 -23
  162. esphome/components/esp32/boards.py +208 -125
  163. esphome/components/esp32/const.py +6 -0
  164. esphome/components/esp32/gpio.py +14 -1
  165. esphome/components/esp32/gpio_esp32_c5.py +45 -0
  166. esphome/components/esp32/gpio_esp32_p4.py +43 -0
  167. esphome/components/esp32/preferences.cpp +7 -7
  168. esphome/components/esp32_ble/__init__.py +115 -0
  169. esphome/components/esp32_ble/ble.cpp +101 -54
  170. esphome/components/esp32_ble/ble.h +24 -5
  171. esphome/components/esp32_ble/ble_event.h +172 -32
  172. esphome/components/esp32_ble/ble_scan_result.h +24 -0
  173. esphome/components/esp32_ble/ble_uuid.h +1 -1
  174. esphome/components/esp32_ble/queue.h +53 -27
  175. esphome/components/esp32_ble_client/ble_client_base.cpp +4 -2
  176. esphome/components/esp32_ble_server/__init__.py +4 -1
  177. esphome/components/esp32_ble_server/ble_characteristic.cpp +1 -0
  178. esphome/components/esp32_ble_server/ble_server.h +0 -1
  179. esphome/components/esp32_ble_tracker/__init__.py +7 -2
  180. esphome/components/esp32_ble_tracker/esp32_ble_tracker.cpp +107 -75
  181. esphome/components/esp32_ble_tracker/esp32_ble_tracker.h +16 -16
  182. esphome/components/esp32_camera/esp32_camera.cpp +35 -27
  183. esphome/components/esp32_camera_web_server/camera_web_server.cpp +4 -2
  184. esphome/components/esp32_dac/esp32_dac.cpp +2 -2
  185. esphome/components/esp32_improv/__init__.py +5 -1
  186. esphome/components/esp32_improv/esp32_improv_component.cpp +2 -2
  187. esphome/components/esp32_rmt_led_strip/led_strip.cpp +11 -7
  188. esphome/components/esp32_rmt_led_strip/light.py +5 -1
  189. esphome/components/esp32_touch/esp32_touch.cpp +12 -8
  190. esphome/components/esp8266/preferences.cpp +6 -6
  191. esphome/components/esp8266_pwm/esp8266_pwm.cpp +3 -3
  192. esphome/components/esp_ldo/__init__.py +91 -0
  193. esphome/components/esp_ldo/esp_ldo.cpp +43 -0
  194. esphome/components/esp_ldo/esp_ldo.h +43 -0
  195. esphome/components/esphome/ota/ota_esphome.cpp +15 -8
  196. esphome/components/ethernet/ethernet_component.cpp +38 -26
  197. esphome/components/ethernet/ethernet_component.h +1 -1
  198. esphome/components/event/__init__.py +1 -0
  199. esphome/components/exposure_notifications/exposure_notifications.cpp +1 -1
  200. esphome/components/ezo/ezo.cpp +1 -1
  201. esphome/components/ezo_pmp/ezo_pmp.cpp +1 -1
  202. esphome/components/factory_reset/button/factory_reset_button.cpp +1 -1
  203. esphome/components/factory_reset/switch/factory_reset_switch.cpp +1 -1
  204. esphome/components/fan/__init__.py +1 -0
  205. esphome/components/fan/fan.cpp +30 -19
  206. esphome/components/fastled_base/fastled_light.cpp +7 -5
  207. esphome/components/fingerprint_grow/fingerprint_grow.cpp +8 -6
  208. esphome/components/fs3000/fs3000.cpp +1 -1
  209. esphome/components/ft5x06/touchscreen/ft5x06_touchscreen.cpp +7 -4
  210. esphome/components/ft63x6/ft63x6.cpp +5 -3
  211. esphome/components/gcja5/gcja5.cpp +0 -12
  212. esphome/components/gcja5/gcja5.h +8 -3
  213. esphome/components/gdk101/gdk101.cpp +2 -2
  214. esphome/components/globals/globals_component.h +13 -10
  215. esphome/components/gp2y1010au0f/gp2y1010au0f.cpp +4 -2
  216. esphome/components/gp8403/gp8403.cpp +4 -2
  217. esphome/components/gp8403/output/gp8403_output.cpp +4 -2
  218. esphome/components/gpio/one_wire/gpio_one_wire.cpp +2 -2
  219. esphome/components/gpio/output/gpio_binary_output.cpp +1 -1
  220. esphome/components/gpio/switch/gpio_switch.cpp +1 -1
  221. esphome/components/graphical_display_menu/graphical_display_menu.cpp +12 -8
  222. esphome/components/grove_gas_mc_v2/grove_gas_mc_v2.cpp +5 -6
  223. esphome/components/grove_tb6612fng/grove_tb6612fng.cpp +1 -1
  224. esphome/components/grove_tb6612fng/grove_tb6612fng.h +1 -1
  225. esphome/components/growatt_solar/growatt_solar.cpp +6 -3
  226. esphome/components/gt911/touchscreen/gt911_touchscreen.cpp +1 -1
  227. esphome/components/haier/haier_base.cpp +2 -2
  228. esphome/components/haier/hon_climate.cpp +13 -6
  229. esphome/components/havells_solar/havells_solar.cpp +5 -2
  230. esphome/components/hbridge/switch/hbridge_switch.cpp +1 -1
  231. esphome/components/hdc1080/hdc1080.cpp +2 -2
  232. esphome/components/he60r/he60r.cpp +4 -2
  233. esphome/components/hlw8012/hlw8012.cpp +6 -4
  234. esphome/components/hm3301/hm3301.cpp +2 -2
  235. esphome/components/hmc5883l/hmc5883l.cpp +2 -2
  236. esphome/components/homeassistant/time/homeassistant_time.cpp +4 -2
  237. esphome/components/honeywell_hih_i2c/honeywell_hih.cpp +4 -4
  238. esphome/components/honeywellabp/honeywellabp.cpp +4 -2
  239. esphome/components/honeywellabp2_i2c/honeywellabp2.cpp +8 -6
  240. esphome/components/hte501/hte501.cpp +3 -2
  241. esphome/components/http_request/__init__.py +2 -2
  242. esphome/components/http_request/http_request.cpp +7 -5
  243. esphome/components/http_request/http_request_idf.cpp +4 -2
  244. esphome/components/http_request/ota/ota_http_request.cpp +1 -1
  245. esphome/components/htu21d/htu21d.cpp +2 -2
  246. esphome/components/htu31d/htu31d.cpp +2 -2
  247. esphome/components/hx711/hx711.cpp +2 -2
  248. esphome/components/hydreon_rgxx/hydreon_rgxx.cpp +5 -3
  249. esphome/components/hyt271/hyt271.cpp +2 -2
  250. esphome/components/i2c/i2c_bus_arduino.cpp +14 -11
  251. esphome/components/i2c/i2c_bus_esp_idf.cpp +13 -11
  252. esphome/components/i2s_audio/__init__.py +2 -0
  253. esphome/components/i2s_audio/i2s_audio.cpp +3 -4
  254. esphome/components/i2s_audio/i2s_audio.h +1 -1
  255. esphome/components/i2s_audio/media_player/__init__.py +1 -1
  256. esphome/components/i2s_audio/media_player/i2s_audio_media_player.cpp +5 -3
  257. esphome/components/i2s_audio/microphone/i2s_audio_microphone.cpp +48 -30
  258. esphome/components/i2s_audio/microphone/i2s_audio_microphone.h +2 -0
  259. esphome/components/i2s_audio/speaker/i2s_audio_speaker.cpp +29 -11
  260. esphome/components/i2s_audio/speaker/i2s_audio_speaker.h +1 -0
  261. esphome/components/iaqcore/iaqcore.cpp +3 -3
  262. esphome/components/ili9xxx/ili9xxx_display.cpp +12 -7
  263. esphome/components/ili9xxx/ili9xxx_display.h +1 -1
  264. esphome/components/image/image.cpp +1 -0
  265. esphome/components/ina219/ina219.cpp +2 -2
  266. esphome/components/ina226/ina226.cpp +8 -5
  267. esphome/components/ina260/ina260.cpp +1 -1
  268. esphome/components/ina2xx_base/ina2xx_base.cpp +13 -9
  269. esphome/components/ina3221/ina3221.cpp +2 -2
  270. esphome/components/inkplate6/display.py +12 -2
  271. esphome/components/inkplate6/inkplate.cpp +13 -9
  272. esphome/components/inkplate6/inkplate.h +7 -6
  273. esphome/components/integration/integration_sensor.cpp +1 -1
  274. esphome/components/internal_temperature/internal_temperature.cpp +4 -4
  275. esphome/components/json/json_util.cpp +4 -5
  276. esphome/components/kamstrup_kmp/kamstrup_kmp.cpp +1 -1
  277. esphome/components/key_collector/key_collector.cpp +4 -2
  278. esphome/components/kmeteriso/kmeteriso.cpp +4 -4
  279. esphome/components/kuntze/kuntze.cpp +4 -2
  280. esphome/components/lc709203f/__init__.py +1 -0
  281. esphome/components/lc709203f/lc709203f.cpp +299 -0
  282. esphome/components/lc709203f/lc709203f.h +55 -0
  283. esphome/components/lc709203f/sensor.py +93 -0
  284. esphome/components/lcd_base/lcd_display.cpp +2 -2
  285. esphome/components/lcd_gpio/gpio_lcd_display.cpp +5 -3
  286. esphome/components/lcd_menu/lcd_menu.cpp +6 -4
  287. esphome/components/lcd_pcf8574/pcf8574_display.cpp +6 -4
  288. esphome/components/ld2410/ld2410.cpp +6 -7
  289. esphome/components/ld2420/ld2420.cpp +9 -7
  290. esphome/components/ld2450/ld2450.cpp +6 -4
  291. esphome/components/ld2450/sensor.py +2 -2
  292. esphome/components/ledc/ledc_output.cpp +32 -28
  293. esphome/components/libretiny/const.py +1 -1
  294. esphome/components/libretiny/preferences.cpp +6 -7
  295. esphome/components/light/__init__.py +2 -1
  296. esphome/components/light/esp_hsv_color.h +1 -1
  297. esphome/components/light/light_state.cpp +9 -5
  298. esphome/components/light/light_state.h +15 -15
  299. esphome/components/light/light_transformer.h +1 -1
  300. esphome/components/lightwaverf/LwTx.cpp +1 -1
  301. esphome/components/lightwaverf/lightwaverf.cpp +1 -1
  302. esphome/components/lilygo_t5_47/touchscreen/lilygo_t5_47_touchscreen.cpp +1 -1
  303. esphome/components/lock/__init__.py +1 -0
  304. esphome/components/lock/lock.h +1 -1
  305. esphome/components/logger/__init__.py +6 -0
  306. esphome/components/logger/logger.cpp +11 -20
  307. esphome/components/logger/logger.h +1 -2
  308. esphome/components/logger/logger_esp32.cpp +5 -5
  309. esphome/components/ltr390/ltr390.cpp +8 -5
  310. esphome/components/ltr501/ltr501.cpp +19 -14
  311. esphome/components/ltr_als_ps/ltr_als_ps.cpp +20 -13
  312. esphome/components/lvgl/__init__.py +2 -2
  313. esphome/components/lvgl/automation.py +5 -4
  314. esphome/components/lvgl/defines.py +0 -2
  315. esphome/components/lvgl/lv_validation.py +1 -3
  316. esphome/components/lvgl/lvcode.py +7 -8
  317. esphome/components/lvgl/lvgl_esphome.cpp +26 -10
  318. esphome/components/lvgl/schemas.py +22 -23
  319. esphome/components/lvgl/trigger.py +8 -3
  320. esphome/components/lvgl/widgets/__init__.py +2 -2
  321. esphome/components/lvgl/widgets/canvas.py +9 -3
  322. esphome/components/lvgl/widgets/line.py +2 -1
  323. esphome/components/lvgl/widgets/tabview.py +7 -0
  324. esphome/components/m5stack_8angle/m5stack_8angle.cpp +3 -3
  325. esphome/components/matrix_keypad/matrix_keypad.cpp +2 -2
  326. esphome/components/max17043/max17043.cpp +2 -2
  327. esphome/components/max31855/max31855.cpp +2 -1
  328. esphome/components/max31856/max31856.cpp +9 -11
  329. esphome/components/max31865/max31865.cpp +6 -4
  330. esphome/components/max44009/max44009.cpp +2 -2
  331. esphome/components/max6675/max6675.cpp +1 -1
  332. esphome/components/max6956/max6956.cpp +5 -3
  333. esphome/components/max7219/max7219.cpp +8 -6
  334. esphome/components/max7219digit/automation.h +52 -0
  335. esphome/components/max7219digit/display.py +93 -1
  336. esphome/components/max7219digit/max7219digit.cpp +16 -13
  337. esphome/components/max9611/max9611.cpp +9 -6
  338. esphome/components/mcp23008/mcp23008.cpp +1 -1
  339. esphome/components/mcp23016/mcp23016.cpp +1 -1
  340. esphome/components/mcp23017/mcp23017.cpp +1 -1
  341. esphome/components/mcp23s08/mcp23s08.cpp +1 -1
  342. esphome/components/mcp23s17/mcp23s17.cpp +1 -1
  343. esphome/components/mcp3008/mcp3008.cpp +1 -1
  344. esphome/components/mcp3008/sensor/mcp3008_sensor.cpp +5 -3
  345. esphome/components/mcp3204/mcp3204.cpp +1 -1
  346. esphome/components/mcp4461/mcp4461.cpp +2 -2
  347. esphome/components/mcp4725/mcp4725.cpp +2 -2
  348. esphome/components/mcp4728/mcp4728.cpp +2 -2
  349. esphome/components/mcp9600/mcp9600.cpp +1 -1
  350. esphome/components/mcp9808/mcp9808.cpp +4 -4
  351. esphome/components/mdns/mdns_component.cpp +8 -2
  352. esphome/components/mdns/mdns_component.h +3 -1
  353. esphome/components/mdns/mdns_esp32.cpp +2 -2
  354. esphome/components/media_player/__init__.py +1 -0
  355. esphome/components/micro_wake_word/micro_wake_word.cpp +1 -1
  356. esphome/components/micro_wake_word/streaming_model.cpp +10 -6
  357. esphome/components/micronova/micronova.h +2 -2
  358. esphome/components/mics_4514/mics_4514.cpp +2 -2
  359. esphome/components/midea/air_conditioner.cpp +7 -5
  360. esphome/components/midea_ir/midea_ir.cpp +1 -1
  361. esphome/components/mipi_spi/mipi_spi.cpp +24 -15
  362. esphome/components/mixer/speaker/mixer_speaker.cpp +8 -4
  363. esphome/components/mlx90393/sensor_mlx90393.cpp +2 -2
  364. esphome/components/mlx90614/mlx90614.cpp +4 -3
  365. esphome/components/mmc5603/mmc5603.cpp +2 -2
  366. esphome/components/mmc5983/mmc5983.cpp +1 -1
  367. esphome/components/modbus/modbus.cpp +7 -5
  368. esphome/components/modbus_controller/modbus_controller.cpp +6 -4
  369. esphome/components/modbus_controller/output/modbus_output.cpp +10 -6
  370. esphome/components/modbus_controller/switch/__init__.py +6 -2
  371. esphome/components/modbus_controller/switch/modbus_switch.cpp +4 -0
  372. esphome/components/modbus_controller/switch/modbus_switch.h +3 -0
  373. esphome/components/mpl3115a2/mpl3115a2.cpp +3 -2
  374. esphome/components/mpr121/mpr121.cpp +2 -2
  375. esphome/components/mpu6050/mpu6050.cpp +6 -6
  376. esphome/components/mpu6886/mpu6886.cpp +6 -6
  377. esphome/components/mqtt/mqtt_alarm_control_panel.cpp +7 -3
  378. esphome/components/mqtt/mqtt_backend_esp32.cpp +1 -1
  379. esphome/components/mqtt/mqtt_client.cpp +31 -24
  380. esphome/components/mqtt/mqtt_component.cpp +3 -3
  381. esphome/components/mqtt/mqtt_cover.cpp +8 -4
  382. esphome/components/mqtt/mqtt_fan.cpp +12 -6
  383. esphome/components/mqtt/mqtt_valve.cpp +4 -2
  384. esphome/components/ms5611/ms5611.cpp +2 -2
  385. esphome/components/ms8607/ms8607.cpp +2 -2
  386. esphome/components/msa3xx/msa3xx.cpp +16 -12
  387. esphome/components/my9231/my9231.cpp +7 -5
  388. esphome/components/nau7802/nau7802.cpp +6 -4
  389. esphome/components/neopixelbus/neopixelbus_light.h +2 -2
  390. esphome/components/network/ip_address.h +1 -1
  391. esphome/components/network/util.cpp +13 -0
  392. esphome/components/nextion/base_component.py +2 -0
  393. esphome/components/nextion/binary_sensor/nextion_binarysensor.cpp +3 -4
  394. esphome/components/nextion/display.py +34 -22
  395. esphome/components/nextion/nextion.cpp +182 -143
  396. esphome/components/nextion/nextion.h +36 -0
  397. esphome/components/nextion/nextion_commands.cpp +3 -3
  398. esphome/components/nextion/nextion_upload_arduino.cpp +69 -69
  399. esphome/components/nextion/nextion_upload_idf.cpp +79 -80
  400. esphome/components/nextion/sensor/nextion_sensor.cpp +5 -5
  401. esphome/components/nextion/switch/nextion_switch.cpp +2 -2
  402. esphome/components/nextion/text_sensor/nextion_textsensor.cpp +3 -3
  403. esphome/components/nfc/nci_message.h +1 -1
  404. esphome/components/nfc/ndef_record.h +1 -1
  405. esphome/components/nfc/ndef_record_text.h +1 -1
  406. esphome/components/nfc/ndef_record_uri.h +1 -1
  407. esphome/components/nfc/nfc.h +1 -1
  408. esphome/components/nfc/nfc_tag.h +1 -1
  409. esphome/components/noblex/noblex.cpp +1 -1
  410. esphome/components/npi19/npi19.cpp +5 -7
  411. esphome/components/number/__init__.py +11 -0
  412. esphome/components/number/number.cpp +1 -1
  413. esphome/components/number/number.h +0 -4
  414. esphome/components/online_image/__init__.py +13 -1
  415. esphome/components/online_image/online_image.cpp +26 -4
  416. esphome/components/online_image/online_image.h +21 -4
  417. esphome/components/opentherm/generate.py +3 -3
  418. esphome/components/opentherm/hub.cpp +11 -7
  419. esphome/components/opentherm/number/number.cpp +5 -3
  420. esphome/components/opentherm/opentherm.h +1 -1
  421. esphome/components/opentherm/schema.py +13 -13
  422. esphome/components/opentherm/validate.py +1 -1
  423. esphome/components/openthread/__init__.py +146 -0
  424. esphome/components/openthread/const.py +10 -0
  425. esphome/components/openthread/openthread.cpp +206 -0
  426. esphome/components/openthread/openthread.h +68 -0
  427. esphome/components/openthread/openthread_esp.cpp +164 -0
  428. esphome/components/openthread/tlv.py +58 -0
  429. esphome/components/openthread_info/__init__.py +0 -0
  430. esphome/components/openthread_info/openthread_info_text_sensor.cpp +24 -0
  431. esphome/components/openthread_info/openthread_info_text_sensor.h +218 -0
  432. esphome/components/openthread_info/text_sensor.py +105 -0
  433. esphome/components/output/float_output.cpp +1 -1
  434. esphome/components/output/switch/output_switch.cpp +1 -1
  435. esphome/components/packet_transport/packet_transport.cpp +6 -4
  436. esphome/components/pca6416a/pca6416a.cpp +2 -2
  437. esphome/components/pca9554/pca9554.cpp +6 -4
  438. esphome/components/pca9685/pca9685_output.cpp +12 -8
  439. esphome/components/pcd8544/pcd_8544.cpp +1 -1
  440. esphome/components/pcf85063/pcf85063.cpp +2 -2
  441. esphome/components/pcf8563/pcf8563.cpp +2 -2
  442. esphome/components/pcf8574/pcf8574.cpp +2 -2
  443. esphome/components/pid/pid_climate.cpp +8 -5
  444. esphome/components/pid/pid_climate.h +1 -1
  445. esphome/components/pid/sensor/pid_climate_sensor.cpp +1 -1
  446. esphome/components/pipsolar/output/pipsolar_output.cpp +1 -1
  447. esphome/components/pipsolar/pipsolar.cpp +3 -3
  448. esphome/components/pm1006/pm1006.cpp +3 -7
  449. esphome/components/pm1006/pm1006.h +4 -1
  450. esphome/components/pm2005/pm2005.cpp +12 -13
  451. esphome/components/pm2005/sensor.py +1 -1
  452. esphome/components/pmsa003i/pmsa003i.cpp +2 -2
  453. esphome/components/pmsx003/pmsx003.cpp +0 -4
  454. esphome/components/pmsx003/pmsx003.h +5 -2
  455. esphome/components/pmwcs3/pmwcs3.cpp +9 -13
  456. esphome/components/pmwcs3/pmwcs3.h +0 -1
  457. esphome/components/pn532/pn532.cpp +7 -7
  458. esphome/components/pn532/pn532.h +1 -1
  459. esphome/components/pn532_spi/pn532_spi.cpp +1 -1
  460. esphome/components/pn7150/pn7150.cpp +4 -4
  461. esphome/components/pn7160/pn7160.cpp +4 -4
  462. esphome/components/power_supply/power_supply.cpp +6 -4
  463. esphome/components/power_supply/power_supply.h +1 -1
  464. esphome/components/prometheus/__init__.py +0 -1
  465. esphome/components/psram/__init__.py +59 -35
  466. esphome/components/pulse_counter/pulse_counter_sensor.cpp +7 -4
  467. esphome/components/pvvx_mithermometer/display/pvvx_display.cpp +8 -5
  468. esphome/components/pylontech/pylontech.cpp +2 -2
  469. esphome/components/pylontech/sensor/pylontech_sensor.cpp +4 -2
  470. esphome/components/pylontech/text_sensor/pylontech_text_sensor.cpp +4 -2
  471. esphome/components/pzemac/pzemac.cpp +4 -2
  472. esphome/components/pzemdc/pzemdc.cpp +4 -2
  473. esphome/components/qmc5883l/qmc5883l.cpp +2 -2
  474. esphome/components/qmp6988/qmp6988.cpp +2 -2
  475. esphome/components/qmp6988/qmp6988.h +1 -1
  476. esphome/components/qr_code/qr_code.cpp +5 -3
  477. esphome/components/qspi_dbi/qspi_dbi.cpp +1 -1
  478. esphome/components/qwiic_pir/qwiic_pir.cpp +26 -28
  479. esphome/components/rc522/rc522.cpp +5 -5
  480. esphome/components/rdm6300/rdm6300.cpp +1 -0
  481. esphome/components/remote_receiver/__init__.py +10 -2
  482. esphome/components/remote_receiver/remote_receiver_esp32.cpp +22 -12
  483. esphome/components/remote_receiver/remote_receiver_esp8266.cpp +10 -7
  484. esphome/components/remote_receiver/remote_receiver_libretiny.cpp +10 -7
  485. esphome/components/remote_transmitter/__init__.py +10 -2
  486. esphome/components/remote_transmitter/remote_transmitter_esp32.cpp +10 -6
  487. esphome/components/remote_transmitter/remote_transmitter_esp8266.cpp +5 -3
  488. esphome/components/remote_transmitter/remote_transmitter_libretiny.cpp +5 -3
  489. esphome/components/resistance/resistance_sensor.cpp +6 -3
  490. esphome/components/restart/button/restart_button.cpp +1 -1
  491. esphome/components/restart/switch/restart_switch.cpp +1 -1
  492. esphome/components/rotary_encoder/rotary_encoder.cpp +2 -2
  493. esphome/components/rp2040/__init__.py +7 -0
  494. esphome/components/rp2040/core.cpp +8 -1
  495. esphome/components/rp2040/preferences.cpp +3 -3
  496. esphome/components/rp2040_pio_led_strip/led_strip.cpp +11 -8
  497. esphome/components/rp2040_pio_led_strip/light.py +1 -1
  498. esphome/components/rp2040_pwm/rp2040_pwm.cpp +1 -1
  499. esphome/components/rpi_dpi_rgb/rpi_dpi_rgb.cpp +1 -1
  500. esphome/components/rtttl/rtttl.cpp +11 -9
  501. esphome/components/safe_mode/button/safe_mode_button.cpp +1 -1
  502. esphome/components/safe_mode/safe_mode.cpp +9 -8
  503. esphome/components/safe_mode/switch/safe_mode_switch.cpp +1 -1
  504. esphome/components/scd30/scd30.cpp +11 -8
  505. esphome/components/scd4x/scd4x.cpp +12 -8
  506. esphome/components/sdl/display.py +40 -0
  507. esphome/components/sdl/sdl_esphome.cpp +2 -2
  508. esphome/components/sdl/sdl_esphome.h +8 -0
  509. esphome/components/sdm_meter/sdm_meter.cpp +5 -2
  510. esphome/components/sdp3x/sdp3x.cpp +11 -11
  511. esphome/components/sds011/sds011.cpp +5 -6
  512. esphome/components/sds011/sds011.h +4 -1
  513. esphome/components/seeed_mr24hpc1/seeed_mr24hpc1.cpp +3 -2
  514. esphome/components/seeed_mr60bha2/seeed_mr60bha2.cpp +1 -0
  515. esphome/components/seeed_mr60fda2/seeed_mr60fda2.cpp +3 -2
  516. esphome/components/selec_meter/selec_meter.cpp +5 -2
  517. esphome/components/select/__init__.py +1 -0
  518. esphome/components/select/select.cpp +1 -1
  519. esphome/components/select/select.h +0 -4
  520. esphome/components/sen0321/sen0321.cpp +2 -2
  521. esphome/components/sen21231/sen21231.cpp +1 -1
  522. esphome/components/sen5x/sen5x.cpp +10 -7
  523. esphome/components/sensirion_common/i2c_sensirion.cpp +2 -1
  524. esphome/components/sensirion_common/i2c_sensirion.h +1 -0
  525. esphome/components/sensor/__init__.py +11 -1
  526. esphome/components/sensor/filter.h +1 -1
  527. esphome/components/sensor/sensor.cpp +8 -4
  528. esphome/components/sensor/sensor.h +12 -11
  529. esphome/components/servo/servo.cpp +12 -9
  530. esphome/components/servo/servo.h +1 -1
  531. esphome/components/sfa30/sfa30.cpp +1 -1
  532. esphome/components/sgp30/sgp30.cpp +10 -8
  533. esphome/components/sgp4x/sgp4x.cpp +49 -61
  534. esphome/components/sgp4x/sgp4x.h +0 -1
  535. esphome/components/shelly_dimmer/shelly_dimmer.cpp +11 -7
  536. esphome/components/sht3xd/sht3xd.cpp +1 -1
  537. esphome/components/sht4x/sht4x.cpp +2 -2
  538. esphome/components/shtcx/shtcx.cpp +13 -16
  539. esphome/components/shutdown/button/shutdown_button.cpp +1 -1
  540. esphome/components/shutdown/switch/shutdown_switch.cpp +1 -1
  541. esphome/components/sim800l/sim800l.cpp +2 -2
  542. esphome/components/slow_pwm/slow_pwm_output.cpp +4 -2
  543. esphome/components/sm16716/sm16716.cpp +1 -1
  544. esphome/components/sm2135/sm2135.cpp +1 -1
  545. esphome/components/sm2235/sm2235.cpp +5 -3
  546. esphome/components/sm2335/sm2335.cpp +5 -3
  547. esphome/components/sml/sml.cpp +1 -1
  548. esphome/components/sn74hc165/sn74hc165.cpp +1 -2
  549. esphome/components/sn74hc595/sn74hc595.cpp +1 -2
  550. esphome/components/sntp/sntp_component.cpp +1 -1
  551. esphome/components/socket/__init__.py +2 -0
  552. esphome/components/socket/bsd_sockets_impl.cpp +51 -7
  553. esphome/components/socket/lwip_raw_tcp_impl.cpp +5 -0
  554. esphome/components/socket/lwip_sockets_impl.cpp +51 -7
  555. esphome/components/socket/socket.cpp +31 -0
  556. esphome/components/socket/socket.h +27 -1
  557. esphome/components/sonoff_d1/sonoff_d1.cpp +7 -4
  558. esphome/components/sonoff_d1/sonoff_d1.h +2 -2
  559. esphome/components/sound_level/sound_level.cpp +4 -2
  560. esphome/components/speaker/media_player/__init__.py +3 -0
  561. esphome/components/speaker/media_player/speaker_media_player.cpp +1 -3
  562. esphome/components/speaker/media_player/speaker_media_player.h +6 -0
  563. esphome/components/spi/__init__.py +10 -2
  564. esphome/components/spi/spi.cpp +4 -4
  565. esphome/components/spi/spi_arduino.cpp +22 -9
  566. esphome/components/spi_device/spi_device.cpp +1 -2
  567. esphome/components/sprinkler/sprinkler.cpp +9 -6
  568. esphome/components/sps30/sps30.cpp +16 -15
  569. esphome/components/ssd1306_base/ssd1306_base.cpp +1 -1
  570. esphome/components/ssd1306_i2c/ssd1306_i2c.cpp +11 -8
  571. esphome/components/ssd1306_spi/ssd1306_spi.cpp +10 -7
  572. esphome/components/ssd1322_base/ssd1322_base.cpp +1 -1
  573. esphome/components/ssd1322_spi/ssd1322_spi.cpp +1 -1
  574. esphome/components/ssd1325_base/ssd1325_base.cpp +1 -1
  575. esphome/components/ssd1325_spi/ssd1325_spi.cpp +1 -1
  576. esphome/components/ssd1327_base/ssd1327_base.cpp +1 -1
  577. esphome/components/ssd1327_i2c/ssd1327_i2c.cpp +2 -2
  578. esphome/components/ssd1327_spi/ssd1327_spi.cpp +1 -1
  579. esphome/components/ssd1331_base/ssd1331_base.cpp +1 -1
  580. esphome/components/ssd1331_spi/ssd1331_spi.cpp +1 -1
  581. esphome/components/ssd1351_base/ssd1351_base.cpp +1 -1
  582. esphome/components/ssd1351_spi/ssd1351_spi.cpp +1 -1
  583. esphome/components/st7567_base/st7567_base.cpp +3 -3
  584. esphome/components/st7567_i2c/st7567_i2c.cpp +7 -5
  585. esphome/components/st7567_spi/st7567_spi.cpp +1 -1
  586. esphome/components/st7701s/st7701s.cpp +4 -2
  587. esphome/components/st7735/st7735.cpp +3 -3
  588. esphome/components/st7789v/st7789v.cpp +10 -7
  589. esphome/components/st7920/st7920.cpp +6 -4
  590. esphome/components/statsd/statsd.cpp +9 -5
  591. esphome/components/status_led/light/status_led_light.cpp +3 -3
  592. esphome/components/status_led/light/status_led_light.h +1 -1
  593. esphome/components/status_led/status_led.cpp +1 -1
  594. esphome/components/stepper/stepper.h +5 -3
  595. esphome/components/sts3x/sts3x.cpp +2 -2
  596. esphome/components/switch/__init__.py +1 -0
  597. esphome/components/switch/switch.cpp +18 -12
  598. esphome/components/switch/switch.h +14 -8
  599. esphome/components/sx1509/__init__.py +53 -20
  600. esphome/components/sx1509/sx1509.cpp +29 -5
  601. esphome/components/sx1509/sx1509.h +9 -1
  602. esphome/components/t6615/t6615.cpp +1 -0
  603. esphome/components/tc74/tc74.cpp +1 -1
  604. esphome/components/tca9548a/tca9548a.cpp +1 -1
  605. esphome/components/tca9555/tca9555.cpp +2 -2
  606. esphome/components/tcs34725/tcs34725.cpp +4 -4
  607. esphome/components/tee501/tee501.cpp +3 -2
  608. esphome/components/tem3200/tem3200.cpp +5 -6
  609. esphome/components/template/alarm_control_panel/__init__.py +6 -0
  610. esphome/components/template/alarm_control_panel/template_alarm_control_panel.cpp +43 -12
  611. esphome/components/template/alarm_control_panel/template_alarm_control_panel.h +4 -1
  612. esphome/components/template/cover/template_cover.cpp +1 -1
  613. esphome/components/template/select/template_select.cpp +6 -4
  614. esphome/components/template/text/template_text.cpp +2 -3
  615. esphome/components/template/valve/template_valve.cpp +5 -3
  616. esphome/components/text/__init__.py +10 -11
  617. esphome/components/text/text.cpp +1 -1
  618. esphome/components/text/text.h +0 -4
  619. esphome/components/text_sensor/__init__.py +1 -0
  620. esphome/components/text_sensor/text_sensor.cpp +8 -4
  621. esphome/components/text_sensor/text_sensor.h +6 -6
  622. esphome/components/thermostat/thermostat_climate.cpp +67 -43
  623. esphome/components/time/__init__.py +1 -2
  624. esphome/components/time_based/time_based_cover.cpp +4 -2
  625. esphome/components/tlc59208f/tlc59208f_output.cpp +8 -6
  626. esphome/components/tm1621/tm1621.cpp +3 -3
  627. esphome/components/tm1637/tm1637.cpp +9 -7
  628. esphome/components/tm1638/tm1638.cpp +7 -5
  629. esphome/components/tm1651/tm1651.cpp +2 -2
  630. esphome/components/tmp102/tmp102.cpp +1 -3
  631. esphome/components/tmp102/tmp102.h +0 -3
  632. esphome/components/tmp1075/tmp1075.cpp +12 -9
  633. esphome/components/tmp117/tmp117.cpp +2 -2
  634. esphome/components/tof10120/tof10120_sensor.cpp +2 -2
  635. esphome/components/tormatic/tormatic_cover.cpp +4 -2
  636. esphome/components/tsl2561/tsl2561.cpp +7 -5
  637. esphome/components/tsl2591/tsl2591.cpp +25 -27
  638. esphome/components/tt21100/touchscreen/tt21100.cpp +1 -1
  639. esphome/components/ttp229_bsf/ttp229_bsf.cpp +1 -1
  640. esphome/components/ttp229_lsf/ttp229_lsf.cpp +2 -2
  641. esphome/components/tuya/select/tuya_select.cpp +5 -3
  642. esphome/components/tx20/tx20.cpp +3 -3
  643. esphome/components/uart/__init__.py +4 -5
  644. esphome/components/uart/button/uart_button.cpp +1 -1
  645. esphome/components/uart/switch/uart_switch.cpp +2 -2
  646. esphome/components/uart/uart.cpp +2 -2
  647. esphome/components/uart/uart_component_esp32_arduino.cpp +8 -6
  648. esphome/components/uart/uart_component_esp8266.cpp +9 -7
  649. esphome/components/uart/uart_component_esp_idf.cpp +9 -7
  650. esphome/components/uart/uart_component_host.cpp +11 -8
  651. esphome/components/uart/uart_component_libretiny.cpp +8 -6
  652. esphome/components/uart/uart_component_rp2040.cpp +8 -6
  653. esphome/components/udp/udp_component.cpp +9 -5
  654. esphome/components/ufire_ec/ufire_ec.cpp +5 -3
  655. esphome/components/ufire_ise/ufire_ise.cpp +1 -1
  656. esphome/components/ultrasonic/ultrasonic_sensor.cpp +5 -3
  657. esphome/components/update/__init__.py +1 -0
  658. esphome/components/update/update_entity.cpp +1 -1
  659. esphome/components/update/update_entity.h +0 -3
  660. esphome/components/uponor_smatrix/climate/uponor_smatrix_climate.cpp +1 -1
  661. esphome/components/uponor_smatrix/sensor/uponor_smatrix_sensor.cpp +4 -2
  662. esphome/components/uponor_smatrix/uponor_smatrix.cpp +2 -1
  663. esphome/components/uptime/sensor/uptime_timestamp_sensor.cpp +1 -1
  664. esphome/components/usb_host/__init__.py +64 -0
  665. esphome/components/usb_host/usb_host.h +116 -0
  666. esphome/components/usb_host/usb_host_client.cpp +394 -0
  667. esphome/components/usb_host/usb_host_component.cpp +35 -0
  668. esphome/components/usb_uart/__init__.py +134 -0
  669. esphome/components/usb_uart/ch34x.cpp +80 -0
  670. esphome/components/usb_uart/cp210x.cpp +126 -0
  671. esphome/components/usb_uart/usb_uart.cpp +328 -0
  672. esphome/components/usb_uart/usb_uart.h +151 -0
  673. esphome/components/valve/__init__.py +1 -0
  674. esphome/components/veml3235/veml3235.cpp +13 -9
  675. esphome/components/veml7700/veml7700.cpp +10 -6
  676. esphome/components/voice_assistant/voice_assistant.cpp +7 -7
  677. esphome/components/wake_on_lan/wake_on_lan.cpp +1 -1
  678. esphome/components/waveshare_epaper/waveshare_epaper.cpp +1 -1
  679. esphome/components/web_server/server_index_v2.h +632 -630
  680. esphome/components/web_server/server_index_v3.h +411 -409
  681. esphome/components/web_server/web_server.cpp +5 -3
  682. esphome/components/web_server_base/web_server_base.cpp +1 -1
  683. esphome/components/web_server_idf/__init__.py +0 -2
  684. esphome/components/web_server_idf/utils.cpp +1 -1
  685. esphome/components/web_server_idf/web_server_idf.cpp +7 -3
  686. esphome/components/web_server_idf/web_server_idf.h +7 -0
  687. esphome/components/weikai/__init__.py +2 -0
  688. esphome/components/weikai/weikai.cpp +24 -22
  689. esphome/components/weikai_i2c/weikai_i2c.cpp +14 -9
  690. esphome/components/weikai_spi/weikai_spi.cpp +11 -6
  691. esphome/components/wiegand/wiegand.cpp +1 -1
  692. esphome/components/wifi/wifi_component.cpp +50 -37
  693. esphome/components/wifi/wifi_component.h +7 -4
  694. esphome/components/wifi/wifi_component_esp32_arduino.cpp +2 -2
  695. esphome/components/wifi/wifi_component_esp8266.cpp +3 -3
  696. esphome/components/wifi/wifi_component_libretiny.cpp +4 -4
  697. esphome/components/wireguard/wireguard.cpp +21 -21
  698. esphome/components/wl_134/text_sensor.py +1 -2
  699. esphome/components/wled/wled_light_effect.cpp +1 -1
  700. esphome/components/x9c/x9c.cpp +5 -3
  701. esphome/components/xgzp68xx/xgzp68xx.cpp +8 -6
  702. esphome/components/xiaomi_cgd1/xiaomi_cgd1.cpp +4 -2
  703. esphome/components/xiaomi_cgdk2/xiaomi_cgdk2.cpp +4 -2
  704. esphome/components/xiaomi_cgg1/xiaomi_cgg1.cpp +4 -2
  705. esphome/components/xiaomi_hhccjcy10/xiaomi_hhccjcy10.cpp +1 -1
  706. esphome/components/xiaomi_lywsd02mmc/xiaomi_lywsd02mmc.cpp +4 -2
  707. esphome/components/xiaomi_lywsd03mmc/xiaomi_lywsd03mmc.cpp +4 -2
  708. esphome/components/xiaomi_mhoc401/xiaomi_mhoc401.cpp +4 -2
  709. esphome/components/xl9535/xl9535.cpp +2 -2
  710. esphome/components/xpt2046/touchscreen/xpt2046.cpp +12 -11
  711. esphome/components/xpt2046/touchscreen/xpt2046.h +2 -2
  712. esphome/config.py +3 -2
  713. esphome/config_validation.py +46 -17
  714. esphome/const.py +10 -1
  715. esphome/core/__init__.py +37 -18
  716. esphome/core/application.cpp +197 -8
  717. esphome/core/application.h +116 -6
  718. esphome/core/component.cpp +36 -15
  719. esphome/core/component.h +43 -13
  720. esphome/core/config.py +12 -0
  721. esphome/core/defines.h +10 -2
  722. esphome/core/entity_base.cpp +4 -16
  723. esphome/core/entity_base.h +27 -13
  724. esphome/core/helpers.cpp +1 -1
  725. esphome/core/helpers.h +5 -5
  726. esphome/core/log.h +2 -0
  727. esphome/core/log_const_en.h +4 -0
  728. esphome/core/scheduler.cpp +2 -2
  729. esphome/coroutine.py +3 -4
  730. esphome/cpp_generator.py +32 -32
  731. esphome/dashboard/core.py +2 -2
  732. esphome/dashboard/web_server.py +2 -2
  733. esphome/git.py +4 -4
  734. esphome/helpers.py +5 -6
  735. esphome/loader.py +8 -7
  736. esphome/log.py +7 -1
  737. esphome/platformio_api.py +2 -3
  738. esphome/storage_json.py +13 -5
  739. esphome/types.py +12 -13
  740. esphome/util.py +1 -2
  741. esphome/wizard.py +0 -16
  742. esphome/writer.py +5 -3
  743. esphome/yaml_util.py +6 -1
  744. esphome/zeroconf.py +1 -1
  745. {esphome-2025.5.2.dist-info → esphome-2025.6.0.dist-info}/METADATA +12 -11
  746. {esphome-2025.5.2.dist-info → esphome-2025.6.0.dist-info}/RECORD +750 -696
  747. {esphome-2025.5.2.dist-info → esphome-2025.6.0.dist-info}/WHEEL +1 -1
  748. {esphome-2025.5.2.dist-info → esphome-2025.6.0.dist-info}/entry_points.txt +0 -0
  749. {esphome-2025.5.2.dist-info → esphome-2025.6.0.dist-info}/licenses/LICENSE +0 -0
  750. {esphome-2025.5.2.dist-info → esphome-2025.6.0.dist-info}/top_level.txt +0 -0
@@ -1,5 +1,6 @@
1
1
  #include "proto.h"
2
2
  #include <cinttypes>
3
+ #include "esphome/core/helpers.h"
3
4
  #include "esphome/core/log.h"
4
5
 
5
6
  namespace esphome {
@@ -1,8 +1,8 @@
1
1
  #pragma once
2
2
 
3
3
  #include "esphome/core/component.h"
4
- #include "esphome/core/log.h"
5
4
  #include "esphome/core/helpers.h"
5
+ #include "esphome/core/log.h"
6
6
 
7
7
  #include <vector>
8
8
 
@@ -55,6 +55,7 @@ class ProtoVarInt {
55
55
  return {}; // Incomplete or invalid varint
56
56
  }
57
57
 
58
+ uint16_t as_uint16() const { return this->value_; }
58
59
  uint32_t as_uint32() const { return this->value_; }
59
60
  uint64_t as_uint64() const { return this->value_; }
60
61
  bool as_bool() const { return this->value_; }
@@ -215,7 +216,7 @@ class ProtoWriteBuffer {
215
216
  this->buffer_->insert(this->buffer_->end(), data, data + len);
216
217
  }
217
218
  void encode_string(uint32_t field_id, const std::string &value, bool force = false) {
218
- this->encode_string(field_id, value.data(), value.size());
219
+ this->encode_string(field_id, value.data(), value.size(), force);
219
220
  }
220
221
  void encode_bytes(uint32_t field_id, const uint8_t *data, size_t len, bool force = false) {
221
222
  this->encode_string(field_id, reinterpret_cast<const char *>(data), len, force);
@@ -359,11 +360,11 @@ class ProtoService {
359
360
  * @return A ProtoWriteBuffer object with the reserved size.
360
361
  */
361
362
  virtual ProtoWriteBuffer create_buffer(uint32_t reserve_size) = 0;
362
- virtual bool send_buffer(ProtoWriteBuffer buffer, uint32_t message_type) = 0;
363
+ virtual bool send_buffer(ProtoWriteBuffer buffer, uint16_t message_type) = 0;
363
364
  virtual bool read_message(uint32_t msg_size, uint32_t msg_type, uint8_t *msg_data) = 0;
364
365
 
365
366
  // Optimized method that pre-allocates buffer based on message size
366
- template<class C> bool send_message_(const C &msg, uint32_t message_type) {
367
+ bool send_message_(const ProtoMessage &msg, uint16_t message_type) {
367
368
  uint32_t msg_size = 0;
368
369
  msg.calculate_size(msg_size);
369
370
 
@@ -8,7 +8,7 @@ namespace api {
8
8
 
9
9
  #ifdef USE_BINARY_SENSOR
10
10
  bool InitialStateIterator::on_binary_sensor(binary_sensor::BinarySensor *binary_sensor) {
11
- return this->client_->send_binary_sensor_state(binary_sensor, binary_sensor->state);
11
+ return this->client_->send_binary_sensor_state(binary_sensor);
12
12
  }
13
13
  #endif
14
14
  #ifdef USE_COVER
@@ -21,27 +21,21 @@ bool InitialStateIterator::on_fan(fan::Fan *fan) { return this->client_->send_fa
21
21
  bool InitialStateIterator::on_light(light::LightState *light) { return this->client_->send_light_state(light); }
22
22
  #endif
23
23
  #ifdef USE_SENSOR
24
- bool InitialStateIterator::on_sensor(sensor::Sensor *sensor) {
25
- return this->client_->send_sensor_state(sensor, sensor->state);
26
- }
24
+ bool InitialStateIterator::on_sensor(sensor::Sensor *sensor) { return this->client_->send_sensor_state(sensor); }
27
25
  #endif
28
26
  #ifdef USE_SWITCH
29
- bool InitialStateIterator::on_switch(switch_::Switch *a_switch) {
30
- return this->client_->send_switch_state(a_switch, a_switch->state);
31
- }
27
+ bool InitialStateIterator::on_switch(switch_::Switch *a_switch) { return this->client_->send_switch_state(a_switch); }
32
28
  #endif
33
29
  #ifdef USE_TEXT_SENSOR
34
30
  bool InitialStateIterator::on_text_sensor(text_sensor::TextSensor *text_sensor) {
35
- return this->client_->send_text_sensor_state(text_sensor, text_sensor->state);
31
+ return this->client_->send_text_sensor_state(text_sensor);
36
32
  }
37
33
  #endif
38
34
  #ifdef USE_CLIMATE
39
35
  bool InitialStateIterator::on_climate(climate::Climate *climate) { return this->client_->send_climate_state(climate); }
40
36
  #endif
41
37
  #ifdef USE_NUMBER
42
- bool InitialStateIterator::on_number(number::Number *number) {
43
- return this->client_->send_number_state(number, number->state);
44
- }
38
+ bool InitialStateIterator::on_number(number::Number *number) { return this->client_->send_number_state(number); }
45
39
  #endif
46
40
  #ifdef USE_DATETIME_DATE
47
41
  bool InitialStateIterator::on_date(datetime::DateEntity *date) { return this->client_->send_date_state(date); }
@@ -55,15 +49,13 @@ bool InitialStateIterator::on_datetime(datetime::DateTimeEntity *datetime) {
55
49
  }
56
50
  #endif
57
51
  #ifdef USE_TEXT
58
- bool InitialStateIterator::on_text(text::Text *text) { return this->client_->send_text_state(text, text->state); }
52
+ bool InitialStateIterator::on_text(text::Text *text) { return this->client_->send_text_state(text); }
59
53
  #endif
60
54
  #ifdef USE_SELECT
61
- bool InitialStateIterator::on_select(select::Select *select) {
62
- return this->client_->send_select_state(select, select->state);
63
- }
55
+ bool InitialStateIterator::on_select(select::Select *select) { return this->client_->send_select_state(select); }
64
56
  #endif
65
57
  #ifdef USE_LOCK
66
- bool InitialStateIterator::on_lock(lock::Lock *a_lock) { return this->client_->send_lock_state(a_lock, a_lock->state); }
58
+ bool InitialStateIterator::on_lock(lock::Lock *a_lock) { return this->client_->send_lock_state(a_lock); }
67
59
  #endif
68
60
  #ifdef USE_VALVE
69
61
  bool InitialStateIterator::on_valve(valve::Valve *valve) { return this->client_->send_valve_state(valve); }
@@ -7,7 +7,7 @@ namespace as3935 {
7
7
  static const char *const TAG = "as3935";
8
8
 
9
9
  void AS3935Component::setup() {
10
- ESP_LOGCONFIG(TAG, "Setting up AS3935...");
10
+ ESP_LOGCONFIG(TAG, "Running setup");
11
11
 
12
12
  this->irq_pin_->setup();
13
13
  LOG_PIN(" IRQ Pin: ", this->irq_pin_);
@@ -282,7 +282,7 @@ void AS3935Component::display_oscillator(bool state, uint8_t osc) {
282
282
  // based on the resonance frequency of the antenna and so it should be trimmed
283
283
  // before the calibration is done.
284
284
  bool AS3935Component::calibrate_oscillator() {
285
- ESP_LOGI(TAG, "Starting oscillators calibration...");
285
+ ESP_LOGI(TAG, "Starting oscillators calibration");
286
286
  this->write_register(CALIB_RCO, WIPE_ALL, DIRECT_COMMAND, 0); // Send command to calibrate the oscillators
287
287
 
288
288
  this->display_oscillator(true, 2);
@@ -307,7 +307,7 @@ bool AS3935Component::calibrate_oscillator() {
307
307
  }
308
308
 
309
309
  void AS3935Component::tune_antenna() {
310
- ESP_LOGI(TAG, "Starting antenna tuning...");
310
+ ESP_LOGI(TAG, "Starting antenna tuning");
311
311
  uint8_t div_ratio = this->read_div_ratio();
312
312
  uint8_t tune_val = this->read_capacitance();
313
313
  ESP_LOGI(TAG, "Division Ratio is set to: %d", div_ratio);
@@ -23,7 +23,7 @@ static const uint8_t REGISTER_AGC = 0x1A; // 8 bytes / R
23
23
  static const uint8_t REGISTER_MAGNITUDE = 0x1B; // 16 bytes / R
24
24
 
25
25
  void AS5600Component::setup() {
26
- ESP_LOGCONFIG(TAG, "Setting up AS5600...");
26
+ ESP_LOGCONFIG(TAG, "Running setup");
27
27
 
28
28
  if (!this->read_byte(REGISTER_STATUS).has_value()) {
29
29
  this->mark_failed();
@@ -91,15 +91,17 @@ void AS5600Component::dump_config() {
91
91
  LOG_I2C_DEVICE(this);
92
92
 
93
93
  if (this->is_failed()) {
94
- ESP_LOGE(TAG, "Communication with AS5600 failed!");
94
+ ESP_LOGE(TAG, ESP_LOG_MSG_COMM_FAIL);
95
95
  return;
96
96
  }
97
97
 
98
- ESP_LOGCONFIG(TAG, " Watchdog: %d", this->watchdog_);
99
- ESP_LOGCONFIG(TAG, " Fast Filter: %d", this->fast_filter_);
100
- ESP_LOGCONFIG(TAG, " Slow Filter: %d", this->slow_filter_);
101
- ESP_LOGCONFIG(TAG, " Hysteresis: %d", this->hysteresis_);
102
- ESP_LOGCONFIG(TAG, " Start Position: %d", this->start_position_);
98
+ ESP_LOGCONFIG(TAG,
99
+ " Watchdog: %d\n"
100
+ " Fast Filter: %d\n"
101
+ " Slow Filter: %d\n"
102
+ " Hysteresis: %d\n"
103
+ " Start Position: %d",
104
+ this->watchdog_, this->fast_filter_, this->slow_filter_, this->hysteresis_, this->start_position_);
103
105
  if (this->end_mode_ == END_MODE_POSITION) {
104
106
  ESP_LOGCONFIG(TAG, " End Position: %d", this->end_position_);
105
107
  } else {
@@ -8,7 +8,7 @@ namespace as7341 {
8
8
  static const char *const TAG = "as7341";
9
9
 
10
10
  void AS7341Component::setup() {
11
- ESP_LOGCONFIG(TAG, "Setting up AS7341...");
11
+ ESP_LOGCONFIG(TAG, "Running setup");
12
12
  LOG_I2C_DEVICE(this);
13
13
 
14
14
  // Verify device ID
@@ -38,12 +38,14 @@ void AS7341Component::dump_config() {
38
38
  ESP_LOGCONFIG(TAG, "AS7341:");
39
39
  LOG_I2C_DEVICE(this);
40
40
  if (this->is_failed()) {
41
- ESP_LOGE(TAG, "Communication with AS7341 failed!");
41
+ ESP_LOGE(TAG, ESP_LOG_MSG_COMM_FAIL);
42
42
  }
43
43
  LOG_UPDATE_INTERVAL(this);
44
- ESP_LOGCONFIG(TAG, " Gain: %u", get_gain());
45
- ESP_LOGCONFIG(TAG, " ATIME: %u", get_atime());
46
- ESP_LOGCONFIG(TAG, " ASTEP: %u", get_astep());
44
+ ESP_LOGCONFIG(TAG,
45
+ " Gain: %u\n"
46
+ " ATIME: %u\n"
47
+ " ASTEP: %u",
48
+ get_gain(), get_atime(), get_astep());
47
49
 
48
50
  LOG_SENSOR(" ", "F1", this->f1_);
49
51
  LOG_SENSOR(" ", "F2", this->f2_);
@@ -71,19 +71,22 @@ bool AT581XComponent::i2c_read_reg(uint8_t addr, uint8_t &data) {
71
71
  return this->read_register(addr, &data, 1) == esphome::i2c::NO_ERROR;
72
72
  }
73
73
 
74
- void AT581XComponent::setup() { ESP_LOGCONFIG(TAG, "Setting up AT581X..."); }
74
+ void AT581XComponent::setup() { ESP_LOGCONFIG(TAG, "Running setup"); }
75
75
  void AT581XComponent::dump_config() { LOG_I2C_DEVICE(this); }
76
76
  #define ARRAY_SIZE(X) (sizeof(X) / sizeof((X)[0]))
77
77
  bool AT581XComponent::i2c_write_config() {
78
- ESP_LOGCONFIG(TAG, "Writing new config for AT581X...");
79
- ESP_LOGCONFIG(TAG, "Frequency: %dMHz", this->freq_);
80
- ESP_LOGCONFIG(TAG, "Sensing distance: %d", this->delta_);
81
- ESP_LOGCONFIG(TAG, "Power: %dµA", this->power_);
82
- ESP_LOGCONFIG(TAG, "Gain: %d", this->gain_);
83
- ESP_LOGCONFIG(TAG, "Trigger base time: %dms", this->trigger_base_time_ms_);
84
- ESP_LOGCONFIG(TAG, "Trigger keep time: %dms", this->trigger_keep_time_ms_);
85
- ESP_LOGCONFIG(TAG, "Protect time: %dms", this->protect_time_ms_);
86
- ESP_LOGCONFIG(TAG, "Self check time: %dms", this->self_check_time_ms_);
78
+ ESP_LOGCONFIG(TAG,
79
+ "Writing new config for AT581X\n"
80
+ "Frequency: %dMHz\n"
81
+ "Sensing distance: %d\n"
82
+ "Power: %dµA\n"
83
+ "Gain: %d\n"
84
+ "Trigger base time: %dms\n"
85
+ "Trigger keep time: %dms\n"
86
+ "Protect time: %dms\n"
87
+ "Self check time: %dms",
88
+ this->freq_, this->delta_, this->power_, this->gain_, this->trigger_base_time_ms_,
89
+ this->trigger_keep_time_ms_, this->protect_time_ms_, this->self_check_time_ms_);
87
90
 
88
91
  // Set frequency point
89
92
  if (!this->i2c_write_reg(FREQ_ADDR, GAIN61_VALUE)) {
@@ -41,7 +41,7 @@ void ATM90E26Component::update() {
41
41
  }
42
42
 
43
43
  void ATM90E26Component::setup() {
44
- ESP_LOGCONFIG(TAG, "Setting up ATM90E26 Component...");
44
+ ESP_LOGCONFIG(TAG, "Running setup");
45
45
  this->spi_setup();
46
46
 
47
47
  uint16_t mmode = 0x422; // default values for everything but L/N line current gains
@@ -135,7 +135,7 @@ void ATM90E26Component::dump_config() {
135
135
  ESP_LOGCONFIG("", "ATM90E26:");
136
136
  LOG_PIN(" CS Pin: ", this->cs_);
137
137
  if (this->is_failed()) {
138
- ESP_LOGE(TAG, "Communication with ATM90E26 failed!");
138
+ ESP_LOGE(TAG, ESP_LOG_MSG_COMM_FAIL);
139
139
  }
140
140
  LOG_UPDATE_INTERVAL(this);
141
141
  LOG_SENSOR(" ", "Voltage A", this->voltage_sensor_);
@@ -108,7 +108,7 @@ void ATM90E32Component::update() {
108
108
  }
109
109
 
110
110
  void ATM90E32Component::setup() {
111
- ESP_LOGCONFIG(TAG, "Setting up ATM90E32 Component...");
111
+ ESP_LOGCONFIG(TAG, "Running setup");
112
112
  this->spi_setup();
113
113
 
114
114
  uint16_t mmode0 = 0x87; // 3P4W 50Hz
@@ -217,7 +217,7 @@ void ATM90E32Component::dump_config() {
217
217
  ESP_LOGCONFIG("", "ATM90E32:");
218
218
  LOG_PIN(" CS Pin: ", this->cs_);
219
219
  if (this->is_failed()) {
220
- ESP_LOGE(TAG, "Communication with ATM90E32 failed!");
220
+ ESP_LOGE(TAG, ESP_LOG_MSG_COMM_FAIL);
221
221
  }
222
222
  LOG_UPDATE_INTERVAL(this);
223
223
  LOG_SENSOR(" ", "Voltage A", this->phase_[PHASEA].voltage_sensor_);
@@ -686,7 +686,7 @@ void ATM90E32Component::restore_power_offset_calibrations_() {
686
686
  }
687
687
 
688
688
  void ATM90E32Component::clear_gain_calibrations() {
689
- ESP_LOGI(TAG, "[CALIBRATION] Clearing stored gain calibrations and restoring config-defined values...");
689
+ ESP_LOGI(TAG, "[CALIBRATION] Clearing stored gain calibrations and restoring config-defined values");
690
690
 
691
691
  for (int phase = 0; phase < 3; phase++) {
692
692
  gain_phase_[phase].voltage_gain = this->phase_[phase].voltage_gain_;
@@ -17,7 +17,7 @@ constexpr static const uint8_t AXS_READ_TOUCHPAD[11] = {0xb5, 0xab, 0xa5, 0x5a,
17
17
  }
18
18
 
19
19
  void AXS15231Touchscreen::setup() {
20
- ESP_LOGCONFIG(TAG, "Setting up AXS15231 Touchscreen...");
20
+ ESP_LOGCONFIG(TAG, "Running setup");
21
21
  if (this->reset_pin_ != nullptr) {
22
22
  this->reset_pin_->setup();
23
23
  this->reset_pin_->digital_write(false);
@@ -60,8 +60,10 @@ void AXS15231Touchscreen::dump_config() {
60
60
  LOG_I2C_DEVICE(this);
61
61
  LOG_PIN(" Interrupt Pin: ", this->interrupt_pin_);
62
62
  LOG_PIN(" Reset Pin: ", this->reset_pin_);
63
- ESP_LOGCONFIG(TAG, " Width: %d", this->x_raw_max_);
64
- ESP_LOGCONFIG(TAG, " Height: %d", this->y_raw_max_);
63
+ ESP_LOGCONFIG(TAG,
64
+ " Width: %d\n"
65
+ " Height: %d",
66
+ this->x_raw_max_, this->y_raw_max_);
65
67
  }
66
68
 
67
69
  } // namespace axs15231
@@ -194,11 +194,14 @@ Trigger<> *BangBangClimate::get_heat_trigger() const { return this->heat_trigger
194
194
  void BangBangClimate::set_supports_heat(bool supports_heat) { this->supports_heat_ = supports_heat; }
195
195
  void BangBangClimate::dump_config() {
196
196
  LOG_CLIMATE("", "Bang Bang Climate", this);
197
- ESP_LOGCONFIG(TAG, " Supports HEAT: %s", YESNO(this->supports_heat_));
198
- ESP_LOGCONFIG(TAG, " Supports COOL: %s", YESNO(this->supports_cool_));
199
- ESP_LOGCONFIG(TAG, " Supports AWAY mode: %s", YESNO(this->supports_away_));
200
- ESP_LOGCONFIG(TAG, " Default Target Temperature Low: %.2f°C", this->normal_config_.default_temperature_low);
201
- ESP_LOGCONFIG(TAG, " Default Target Temperature High: %.2f°C", this->normal_config_.default_temperature_high);
197
+ ESP_LOGCONFIG(TAG,
198
+ " Supports HEAT: %s\n"
199
+ " Supports COOL: %s\n"
200
+ " Supports AWAY mode: %s\n"
201
+ " Default Target Temperature Low: %.2f°C\n"
202
+ " Default Target Temperature High: %.2f°C",
203
+ YESNO(this->supports_heat_), YESNO(this->supports_cool_), YESNO(this->supports_away_),
204
+ this->normal_config_.default_temperature_low, this->normal_config_.default_temperature_high);
202
205
  }
203
206
 
204
207
  BangBangClimateTargetTempConfig::BangBangClimateTargetTempConfig() = default;
@@ -484,9 +484,11 @@ void BedJetHub::loop() {}
484
484
  void BedJetHub::update() { this->dispatch_status_(); }
485
485
 
486
486
  void BedJetHub::dump_config() {
487
- ESP_LOGCONFIG(TAG, "BedJet Hub '%s'", this->get_name().c_str());
488
- ESP_LOGCONFIG(TAG, " ble_client.app_id: %d", this->parent()->app_id);
489
- ESP_LOGCONFIG(TAG, " ble_client.conn_id: %d", this->parent()->get_conn_id());
487
+ ESP_LOGCONFIG(TAG,
488
+ "BedJet Hub '%s'\n"
489
+ " ble_client.app_id: %d\n"
490
+ " ble_client.conn_id: %d",
491
+ this->get_name().c_str(), this->parent()->app_id, this->parent()->get_conn_id());
490
492
  LOG_UPDATE_INTERVAL(this)
491
493
  ESP_LOGCONFIG(TAG, " Child components (%d):", this->children_.size());
492
494
  for (auto *child : this->children_) {
@@ -527,7 +529,7 @@ void BedJetHub::dispatch_status_() {
527
529
  }
528
530
 
529
531
  if (this->timeout_ > 0 && diff > this->timeout_ && this->parent()->enabled) {
530
- ESP_LOGW(TAG, "[%s] Timed out after %" PRId32 " sec. Retrying...", this->get_name().c_str(), this->timeout_);
532
+ ESP_LOGW(TAG, "[%s] Timed out after %" PRId32 " sec. Retrying", this->get_name().c_str(), this->timeout_);
531
533
  // set_enabled(false) will only close the connection if state != IDLE.
532
534
  this->parent()->set_state(espbt::ClientState::CONNECTING);
533
535
  this->parent()->set_enabled(false);
@@ -119,7 +119,7 @@ void spi_dma_tx_finish_callback(unsigned int param) {
119
119
  }
120
120
 
121
121
  void BekenSPILEDStripLightOutput::setup() {
122
- ESP_LOGCONFIG(TAG, "Setting up Beken SPI LED Strip...");
122
+ ESP_LOGCONFIG(TAG, "Running setup");
123
123
 
124
124
  size_t buffer_size = this->get_buffer_size_();
125
125
  size_t dma_buffer_size = (buffer_size * 8) + (2 * 64);
@@ -256,7 +256,7 @@ void BekenSPILEDStripLightOutput::write_state(light::LightState *state) {
256
256
  this->last_refresh_ = now;
257
257
  this->mark_shown_();
258
258
 
259
- ESP_LOGVV(TAG, "Writing RGB values to bus...");
259
+ ESP_LOGVV(TAG, "Writing RGB values to bus");
260
260
 
261
261
  if (spi_data == nullptr) {
262
262
  ESP_LOGE(TAG, "SPI not initialized");
@@ -345,8 +345,10 @@ light::ESPColorView BekenSPILEDStripLightOutput::get_view_internal(int32_t index
345
345
  }
346
346
 
347
347
  void BekenSPILEDStripLightOutput::dump_config() {
348
- ESP_LOGCONFIG(TAG, "Beken SPI LED Strip:");
349
- ESP_LOGCONFIG(TAG, " Pin: %u", this->pin_);
348
+ ESP_LOGCONFIG(TAG,
349
+ "Beken SPI LED Strip:\n"
350
+ " Pin: %u",
351
+ this->pin_);
350
352
  const char *rgb_order;
351
353
  switch (this->rgb_order_) {
352
354
  case ORDER_RGB:
@@ -371,9 +373,11 @@ void BekenSPILEDStripLightOutput::dump_config() {
371
373
  rgb_order = "UNKNOWN";
372
374
  break;
373
375
  }
374
- ESP_LOGCONFIG(TAG, " RGB Order: %s", rgb_order);
375
- ESP_LOGCONFIG(TAG, " Max refresh rate: %" PRIu32, *this->max_refresh_rate_);
376
- ESP_LOGCONFIG(TAG, " Number of LEDs: %u", this->num_leds_);
376
+ ESP_LOGCONFIG(TAG,
377
+ " RGB Order: %s\n"
378
+ " Max refresh rate: %" PRIu32 "\n"
379
+ " Number of LEDs: %u",
380
+ rgb_order, *this->max_refresh_rate_, this->num_leds_);
377
381
  }
378
382
 
379
383
  float BekenSPILEDStripLightOutput::get_setup_priority() const { return setup_priority::HARDWARE; }
@@ -38,7 +38,7 @@ MTreg:
38
38
  */
39
39
 
40
40
  void BH1750Sensor::setup() {
41
- ESP_LOGCONFIG(TAG, "Setting up BH1750 '%s'...", this->name_.c_str());
41
+ ESP_LOGCONFIG(TAG, "Running setup for '%s'", this->name_.c_str());
42
42
  uint8_t turn_on = BH1750_COMMAND_POWER_ON;
43
43
  if (this->write(&turn_on, 1) != i2c::ERROR_OK) {
44
44
  this->mark_failed();
@@ -118,7 +118,7 @@ void BH1750Sensor::dump_config() {
118
118
  LOG_SENSOR("", "BH1750", this);
119
119
  LOG_I2C_DEVICE(this);
120
120
  if (this->is_failed()) {
121
- ESP_LOGE(TAG, "Communication with BH1750 failed!");
121
+ ESP_LOGE(TAG, ESP_LOG_MSG_COMM_FAIL_FOR, this->get_name().c_str());
122
122
  }
123
123
 
124
124
  LOG_UPDATE_INTERVAL(this);
@@ -554,6 +554,7 @@ async def register_binary_sensor(var, config):
554
554
  if not CORE.has_id(config[CONF_ID]):
555
555
  var = cg.Pvariable(config[CONF_ID], var)
556
556
  cg.add(cg.App.register_binary_sensor(var))
557
+ CORE.register_platform_component("binary_sensor", var)
557
558
  await setup_binary_sensor_core_(var, config)
558
559
 
559
560
 
@@ -68,8 +68,7 @@ void binary_sensor::MultiClickTrigger::on_state_(bool state) {
68
68
  *this->at_index_ = *this->at_index_ + 1;
69
69
  }
70
70
  void binary_sensor::MultiClickTrigger::schedule_cooldown_() {
71
- ESP_LOGV(TAG, "Multi Click: Invalid length of press, starting cooldown of %" PRIu32 " ms...",
72
- this->invalid_cooldown_);
71
+ ESP_LOGV(TAG, "Multi Click: Invalid length of press, starting cooldown of %" PRIu32 " ms", this->invalid_cooldown_);
73
72
  this->is_in_cooldown_ = true;
74
73
  this->set_timeout("cooldown", this->invalid_cooldown_, [this]() {
75
74
  ESP_LOGV(TAG, "Multi Click: Cooldown ended, matching is now enabled again.");
@@ -100,7 +100,7 @@ void BL0906::handle_actions_() {
100
100
  for (int i = 0; i < this->action_queue_.size(); i++) {
101
101
  ptr_func = this->action_queue_[i];
102
102
  if (ptr_func) {
103
- ESP_LOGI(TAG, "HandleActionCallback[%d]...", i);
103
+ ESP_LOGI(TAG, "HandleActionCallback[%d]", i);
104
104
  (this->*ptr_func)();
105
105
  }
106
106
  }
@@ -196,14 +196,17 @@ void BL0942::received_package_(DataPacket *data) {
196
196
  }
197
197
 
198
198
  void BL0942::dump_config() { // NOLINT(readability-function-cognitive-complexity)
199
- ESP_LOGCONFIG(TAG, "BL0942:");
200
- ESP_LOGCONFIG(TAG, " Reset: %s", TRUEFALSE(this->reset_));
201
- ESP_LOGCONFIG(TAG, " Address: %d", this->address_);
202
- ESP_LOGCONFIG(TAG, " Nominal line frequency: %d Hz", this->line_freq_);
203
- ESP_LOGCONFIG(TAG, " Current reference: %f", this->current_reference_);
204
- ESP_LOGCONFIG(TAG, " Energy reference: %f", this->energy_reference_);
205
- ESP_LOGCONFIG(TAG, " Power reference: %f", this->power_reference_);
206
- ESP_LOGCONFIG(TAG, " Voltage reference: %f", this->voltage_reference_);
199
+ ESP_LOGCONFIG(TAG,
200
+ "BL0942:\n"
201
+ " Reset: %s\n"
202
+ " Address: %d\n"
203
+ " Nominal line frequency: %d Hz\n"
204
+ " Current reference: %f\n"
205
+ " Energy reference: %f\n"
206
+ " Power reference: %f\n"
207
+ " Voltage reference: %f",
208
+ TRUEFALSE(this->reset_), this->address_, this->line_freq_, this->current_reference_,
209
+ this->energy_reference_, this->power_reference_, this->voltage_reference_);
207
210
  LOG_SENSOR("", "Voltage", this->voltage_sensor_);
208
211
  LOG_SENSOR("", "Current", this->current_sensor_);
209
212
  LOG_SENSOR("", "Power", this->power_sensor_);
@@ -9,6 +9,7 @@ from esphome.const import (
9
9
  CONF_ID,
10
10
  CONF_LINE_FREQUENCY,
11
11
  CONF_POWER,
12
+ CONF_RESET,
12
13
  CONF_VOLTAGE,
13
14
  DEVICE_CLASS_CURRENT,
14
15
  DEVICE_CLASS_ENERGY,
@@ -27,7 +28,6 @@ from esphome.const import (
27
28
  CONF_CURRENT_REFERENCE = "current_reference"
28
29
  CONF_ENERGY_REFERENCE = "energy_reference"
29
30
  CONF_POWER_REFERENCE = "power_reference"
30
- CONF_RESET = "reset"
31
31
  CONF_VOLTAGE_REFERENCE = "voltage_reference"
32
32
 
33
33
  DEPENDENCIES = ["uart"]
@@ -1,7 +1,8 @@
1
1
  from esphome import automation
2
2
  from esphome.automation import maybe_simple_id
3
3
  import esphome.codegen as cg
4
- from esphome.components import esp32_ble_client, esp32_ble_tracker
4
+ from esphome.components import esp32_ble, esp32_ble_client, esp32_ble_tracker
5
+ from esphome.components.esp32_ble import BTLoggers
5
6
  import esphome.config_validation as cv
6
7
  from esphome.const import (
7
8
  CONF_CHARACTERISTIC_UUID,
@@ -287,6 +288,9 @@ async def remove_bond_to_code(config, action_id, template_arg, args):
287
288
 
288
289
 
289
290
  async def to_code(config):
291
+ # Register the loggers this component needs
292
+ esp32_ble.register_bt_logger(BTLoggers.GATT, BTLoggers.SMP)
293
+
290
294
  var = cg.new_Pvariable(config[CONF_ID])
291
295
  await cg.register_component(var, config)
292
296
  await esp32_ble_tracker.register_client(var, config)
@@ -10,9 +10,12 @@ static const char *const TAG = "ble_binary_output";
10
10
 
11
11
  void BLEBinaryOutput::dump_config() {
12
12
  ESP_LOGCONFIG(TAG, "BLE Binary Output:");
13
- ESP_LOGCONFIG(TAG, " MAC address : %s", this->parent_->address_str().c_str());
14
- ESP_LOGCONFIG(TAG, " Service UUID : %s", this->service_uuid_.to_string().c_str());
15
- ESP_LOGCONFIG(TAG, " Characteristic UUID: %s", this->char_uuid_.to_string().c_str());
13
+ ESP_LOGCONFIG(TAG,
14
+ " MAC address : %s\n"
15
+ " Service UUID : %s\n"
16
+ " Characteristic UUID: %s",
17
+ this->parent_->address_str().c_str(), this->service_uuid_.to_string().c_str(),
18
+ this->char_uuid_.to_string().c_str());
16
19
  LOG_BINARY_OUTPUT(this);
17
20
  }
18
21
 
@@ -1,7 +1,7 @@
1
1
  #include "ble_sensor.h"
2
- #include "esphome/core/log.h"
3
2
  #include "esphome/core/application.h"
4
3
  #include "esphome/core/helpers.h"
4
+ #include "esphome/core/log.h"
5
5
  #include "esphome/components/esp32_ble_tracker/esp32_ble_tracker.h"
6
6
 
7
7
  #ifdef USE_ESP32
@@ -15,11 +15,14 @@ void BLESensor::loop() {}
15
15
 
16
16
  void BLESensor::dump_config() {
17
17
  LOG_SENSOR("", "BLE Sensor", this);
18
- ESP_LOGCONFIG(TAG, " MAC address : %s", this->parent()->address_str().c_str());
19
- ESP_LOGCONFIG(TAG, " Service UUID : %s", this->service_uuid_.to_string().c_str());
20
- ESP_LOGCONFIG(TAG, " Characteristic UUID: %s", this->char_uuid_.to_string().c_str());
21
- ESP_LOGCONFIG(TAG, " Descriptor UUID : %s", this->descr_uuid_.to_string().c_str());
22
- ESP_LOGCONFIG(TAG, " Notifications : %s", YESNO(this->notify_));
18
+ ESP_LOGCONFIG(TAG,
19
+ " MAC address : %s\n"
20
+ " Service UUID : %s\n"
21
+ " Characteristic UUID: %s\n"
22
+ " Descriptor UUID : %s\n"
23
+ " Notifications : %s",
24
+ this->parent()->address_str().c_str(), this->service_uuid_.to_string().c_str(),
25
+ this->char_uuid_.to_string().c_str(), this->descr_uuid_.to_string().c_str(), YESNO(this->notify_));
23
26
  LOG_UPDATE_INTERVAL(this);
24
27
  }
25
28
 
@@ -18,11 +18,14 @@ void BLETextSensor::loop() {}
18
18
 
19
19
  void BLETextSensor::dump_config() {
20
20
  LOG_TEXT_SENSOR("", "BLE Text Sensor", this);
21
- ESP_LOGCONFIG(TAG, " MAC address : %s", this->parent()->address_str().c_str());
22
- ESP_LOGCONFIG(TAG, " Service UUID : %s", this->service_uuid_.to_string().c_str());
23
- ESP_LOGCONFIG(TAG, " Characteristic UUID: %s", this->char_uuid_.to_string().c_str());
24
- ESP_LOGCONFIG(TAG, " Descriptor UUID : %s", this->descr_uuid_.to_string().c_str());
25
- ESP_LOGCONFIG(TAG, " Notifications : %s", YESNO(this->notify_));
21
+ ESP_LOGCONFIG(TAG,
22
+ " MAC address : %s\n"
23
+ " Service UUID : %s\n"
24
+ " Characteristic UUID: %s\n"
25
+ " Descriptor UUID : %s\n"
26
+ " Notifications : %s",
27
+ this->parent()->address_str().c_str(), this->service_uuid_.to_string().c_str(),
28
+ this->char_uuid_.to_string().c_str(), this->descr_uuid_.to_string().c_str(), YESNO(this->notify_));
26
29
  LOG_UPDATE_INTERVAL(this);
27
30
  }
28
31
 
@@ -1,6 +1,7 @@
1
1
  import esphome.codegen as cg
2
- from esphome.components import esp32_ble_client, esp32_ble_tracker
2
+ from esphome.components import esp32_ble, esp32_ble_client, esp32_ble_tracker
3
3
  from esphome.components.esp32 import add_idf_sdkconfig_option
4
+ from esphome.components.esp32_ble import BTLoggers
4
5
  import esphome.config_validation as cv
5
6
  from esphome.const import CONF_ACTIVE, CONF_ID
6
7
 
@@ -77,6 +78,9 @@ CONFIG_SCHEMA = cv.All(
77
78
 
78
79
 
79
80
  async def to_code(config):
81
+ # Register the loggers this component needs
82
+ esp32_ble.register_bt_logger(BTLoggers.GATT, BTLoggers.L2CAP, BTLoggers.SMP)
83
+
80
84
  var = cg.new_Pvariable(config[CONF_ID])
81
85
  await cg.register_component(var, config)
82
86
 
@@ -75,7 +75,7 @@ bool BluetoothConnection::gattc_event_handler(esp_gattc_cb_event_t event, esp_ga
75
75
  resp.data.reserve(param->read.value_len);
76
76
  // Use bulk insert instead of individual push_backs
77
77
  resp.data.insert(resp.data.end(), param->read.value, param->read.value + param->read.value_len);
78
- this->proxy_->get_api_connection()->send_bluetooth_gatt_read_response(resp);
78
+ this->proxy_->get_api_connection()->send_message(resp);
79
79
  break;
80
80
  }
81
81
  case ESP_GATTC_WRITE_CHAR_EVT:
@@ -89,7 +89,7 @@ bool BluetoothConnection::gattc_event_handler(esp_gattc_cb_event_t event, esp_ga
89
89
  api::BluetoothGATTWriteResponse resp;
90
90
  resp.address = this->address_;
91
91
  resp.handle = param->write.handle;
92
- this->proxy_->get_api_connection()->send_bluetooth_gatt_write_response(resp);
92
+ this->proxy_->get_api_connection()->send_message(resp);
93
93
  break;
94
94
  }
95
95
  case ESP_GATTC_UNREG_FOR_NOTIFY_EVT: {
@@ -103,7 +103,7 @@ bool BluetoothConnection::gattc_event_handler(esp_gattc_cb_event_t event, esp_ga
103
103
  api::BluetoothGATTNotifyResponse resp;
104
104
  resp.address = this->address_;
105
105
  resp.handle = param->unreg_for_notify.handle;
106
- this->proxy_->get_api_connection()->send_bluetooth_gatt_notify_response(resp);
106
+ this->proxy_->get_api_connection()->send_message(resp);
107
107
  break;
108
108
  }
109
109
  case ESP_GATTC_REG_FOR_NOTIFY_EVT: {
@@ -116,7 +116,7 @@ bool BluetoothConnection::gattc_event_handler(esp_gattc_cb_event_t event, esp_ga
116
116
  api::BluetoothGATTNotifyResponse resp;
117
117
  resp.address = this->address_;
118
118
  resp.handle = param->reg_for_notify.handle;
119
- this->proxy_->get_api_connection()->send_bluetooth_gatt_notify_response(resp);
119
+ this->proxy_->get_api_connection()->send_message(resp);
120
120
  break;
121
121
  }
122
122
  case ESP_GATTC_NOTIFY_EVT: {
@@ -128,7 +128,7 @@ bool BluetoothConnection::gattc_event_handler(esp_gattc_cb_event_t event, esp_ga
128
128
  resp.data.reserve(param->notify.value_len);
129
129
  // Use bulk insert instead of individual push_backs
130
130
  resp.data.insert(resp.data.end(), param->notify.value, param->notify.value + param->notify.value_len);
131
- this->proxy_->get_api_connection()->send_bluetooth_gatt_notify_data_response(resp);
131
+ this->proxy_->get_api_connection()->send_message(resp);
132
132
  break;
133
133
  }
134
134
  default: