esphome 2025.5.2__py3-none-any.whl → 2025.6.0b2__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 (746) 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 +3 -0
  33. esphome/components/api/api_pb2.h +702 -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 +13 -10
  258. esphome/components/i2s_audio/speaker/i2s_audio_speaker.cpp +1 -1
  259. esphome/components/iaqcore/iaqcore.cpp +3 -3
  260. esphome/components/ili9xxx/ili9xxx_display.cpp +12 -7
  261. esphome/components/ili9xxx/ili9xxx_display.h +1 -1
  262. esphome/components/image/image.cpp +1 -0
  263. esphome/components/ina219/ina219.cpp +2 -2
  264. esphome/components/ina226/ina226.cpp +8 -5
  265. esphome/components/ina260/ina260.cpp +1 -1
  266. esphome/components/ina2xx_base/ina2xx_base.cpp +13 -9
  267. esphome/components/ina3221/ina3221.cpp +2 -2
  268. esphome/components/inkplate6/display.py +12 -2
  269. esphome/components/inkplate6/inkplate.cpp +13 -9
  270. esphome/components/inkplate6/inkplate.h +7 -6
  271. esphome/components/integration/integration_sensor.cpp +1 -1
  272. esphome/components/internal_temperature/internal_temperature.cpp +4 -4
  273. esphome/components/json/json_util.cpp +4 -5
  274. esphome/components/kamstrup_kmp/kamstrup_kmp.cpp +1 -1
  275. esphome/components/key_collector/key_collector.cpp +4 -2
  276. esphome/components/kmeteriso/kmeteriso.cpp +4 -4
  277. esphome/components/kuntze/kuntze.cpp +4 -2
  278. esphome/components/lc709203f/__init__.py +1 -0
  279. esphome/components/lc709203f/lc709203f.cpp +299 -0
  280. esphome/components/lc709203f/lc709203f.h +55 -0
  281. esphome/components/lc709203f/sensor.py +93 -0
  282. esphome/components/lcd_base/lcd_display.cpp +2 -2
  283. esphome/components/lcd_gpio/gpio_lcd_display.cpp +5 -3
  284. esphome/components/lcd_menu/lcd_menu.cpp +6 -4
  285. esphome/components/lcd_pcf8574/pcf8574_display.cpp +6 -4
  286. esphome/components/ld2410/ld2410.cpp +6 -7
  287. esphome/components/ld2420/ld2420.cpp +9 -7
  288. esphome/components/ld2450/ld2450.cpp +6 -4
  289. esphome/components/ld2450/sensor.py +2 -2
  290. esphome/components/ledc/ledc_output.cpp +32 -28
  291. esphome/components/libretiny/const.py +1 -1
  292. esphome/components/libretiny/preferences.cpp +6 -7
  293. esphome/components/light/__init__.py +2 -1
  294. esphome/components/light/esp_hsv_color.h +1 -1
  295. esphome/components/light/light_state.cpp +9 -5
  296. esphome/components/light/light_transformer.h +1 -1
  297. esphome/components/lightwaverf/LwTx.cpp +1 -1
  298. esphome/components/lightwaverf/lightwaverf.cpp +1 -1
  299. esphome/components/lilygo_t5_47/touchscreen/lilygo_t5_47_touchscreen.cpp +1 -1
  300. esphome/components/lock/__init__.py +1 -0
  301. esphome/components/lock/lock.h +1 -1
  302. esphome/components/logger/__init__.py +6 -0
  303. esphome/components/logger/logger.cpp +11 -20
  304. esphome/components/logger/logger.h +1 -2
  305. esphome/components/logger/logger_esp32.cpp +5 -5
  306. esphome/components/ltr390/ltr390.cpp +8 -5
  307. esphome/components/ltr501/ltr501.cpp +19 -14
  308. esphome/components/ltr_als_ps/ltr_als_ps.cpp +20 -13
  309. esphome/components/lvgl/__init__.py +2 -2
  310. esphome/components/lvgl/automation.py +5 -4
  311. esphome/components/lvgl/defines.py +0 -2
  312. esphome/components/lvgl/lv_validation.py +1 -3
  313. esphome/components/lvgl/lvcode.py +7 -8
  314. esphome/components/lvgl/lvgl_esphome.cpp +26 -10
  315. esphome/components/lvgl/schemas.py +22 -23
  316. esphome/components/lvgl/trigger.py +8 -3
  317. esphome/components/lvgl/widgets/__init__.py +2 -2
  318. esphome/components/lvgl/widgets/canvas.py +9 -3
  319. esphome/components/lvgl/widgets/line.py +2 -1
  320. esphome/components/lvgl/widgets/tabview.py +7 -0
  321. esphome/components/m5stack_8angle/m5stack_8angle.cpp +3 -3
  322. esphome/components/matrix_keypad/matrix_keypad.cpp +2 -2
  323. esphome/components/max17043/max17043.cpp +2 -2
  324. esphome/components/max31855/max31855.cpp +2 -1
  325. esphome/components/max31856/max31856.cpp +9 -11
  326. esphome/components/max31865/max31865.cpp +6 -4
  327. esphome/components/max44009/max44009.cpp +2 -2
  328. esphome/components/max6675/max6675.cpp +1 -1
  329. esphome/components/max6956/max6956.cpp +5 -3
  330. esphome/components/max7219/max7219.cpp +8 -6
  331. esphome/components/max7219digit/automation.h +52 -0
  332. esphome/components/max7219digit/display.py +93 -1
  333. esphome/components/max7219digit/max7219digit.cpp +16 -13
  334. esphome/components/max9611/max9611.cpp +9 -6
  335. esphome/components/mcp23008/mcp23008.cpp +1 -1
  336. esphome/components/mcp23016/mcp23016.cpp +1 -1
  337. esphome/components/mcp23017/mcp23017.cpp +1 -1
  338. esphome/components/mcp23s08/mcp23s08.cpp +1 -1
  339. esphome/components/mcp23s17/mcp23s17.cpp +1 -1
  340. esphome/components/mcp3008/mcp3008.cpp +1 -1
  341. esphome/components/mcp3008/sensor/mcp3008_sensor.cpp +5 -3
  342. esphome/components/mcp3204/mcp3204.cpp +1 -1
  343. esphome/components/mcp4461/mcp4461.cpp +2 -2
  344. esphome/components/mcp4725/mcp4725.cpp +2 -2
  345. esphome/components/mcp4728/mcp4728.cpp +2 -2
  346. esphome/components/mcp9600/mcp9600.cpp +1 -1
  347. esphome/components/mcp9808/mcp9808.cpp +4 -4
  348. esphome/components/mdns/mdns_component.cpp +8 -2
  349. esphome/components/mdns/mdns_component.h +3 -1
  350. esphome/components/mdns/mdns_esp32.cpp +2 -2
  351. esphome/components/media_player/__init__.py +1 -0
  352. esphome/components/micro_wake_word/micro_wake_word.cpp +1 -1
  353. esphome/components/micro_wake_word/streaming_model.cpp +10 -6
  354. esphome/components/micronova/micronova.h +2 -2
  355. esphome/components/mics_4514/mics_4514.cpp +2 -2
  356. esphome/components/midea/air_conditioner.cpp +7 -5
  357. esphome/components/midea_ir/midea_ir.cpp +1 -1
  358. esphome/components/mipi_spi/mipi_spi.cpp +24 -15
  359. esphome/components/mixer/speaker/mixer_speaker.cpp +8 -4
  360. esphome/components/mlx90393/sensor_mlx90393.cpp +2 -2
  361. esphome/components/mlx90614/mlx90614.cpp +4 -3
  362. esphome/components/mmc5603/mmc5603.cpp +2 -2
  363. esphome/components/mmc5983/mmc5983.cpp +1 -1
  364. esphome/components/modbus/modbus.cpp +7 -5
  365. esphome/components/modbus_controller/modbus_controller.cpp +6 -4
  366. esphome/components/modbus_controller/output/modbus_output.cpp +10 -6
  367. esphome/components/modbus_controller/switch/__init__.py +6 -2
  368. esphome/components/modbus_controller/switch/modbus_switch.cpp +4 -0
  369. esphome/components/modbus_controller/switch/modbus_switch.h +3 -0
  370. esphome/components/mpl3115a2/mpl3115a2.cpp +3 -2
  371. esphome/components/mpr121/mpr121.cpp +2 -2
  372. esphome/components/mpu6050/mpu6050.cpp +6 -6
  373. esphome/components/mpu6886/mpu6886.cpp +6 -6
  374. esphome/components/mqtt/mqtt_alarm_control_panel.cpp +7 -3
  375. esphome/components/mqtt/mqtt_backend_esp32.cpp +1 -1
  376. esphome/components/mqtt/mqtt_client.cpp +31 -24
  377. esphome/components/mqtt/mqtt_component.cpp +3 -3
  378. esphome/components/mqtt/mqtt_cover.cpp +8 -4
  379. esphome/components/mqtt/mqtt_fan.cpp +12 -6
  380. esphome/components/mqtt/mqtt_valve.cpp +4 -2
  381. esphome/components/ms5611/ms5611.cpp +2 -2
  382. esphome/components/ms8607/ms8607.cpp +2 -2
  383. esphome/components/msa3xx/msa3xx.cpp +16 -12
  384. esphome/components/my9231/my9231.cpp +7 -5
  385. esphome/components/nau7802/nau7802.cpp +6 -4
  386. esphome/components/neopixelbus/neopixelbus_light.h +2 -2
  387. esphome/components/network/ip_address.h +1 -1
  388. esphome/components/network/util.cpp +13 -0
  389. esphome/components/nextion/base_component.py +2 -0
  390. esphome/components/nextion/binary_sensor/nextion_binarysensor.cpp +3 -4
  391. esphome/components/nextion/display.py +34 -22
  392. esphome/components/nextion/nextion.cpp +182 -143
  393. esphome/components/nextion/nextion.h +36 -0
  394. esphome/components/nextion/nextion_commands.cpp +3 -3
  395. esphome/components/nextion/nextion_upload_arduino.cpp +69 -69
  396. esphome/components/nextion/nextion_upload_idf.cpp +79 -80
  397. esphome/components/nextion/sensor/nextion_sensor.cpp +5 -5
  398. esphome/components/nextion/switch/nextion_switch.cpp +2 -2
  399. esphome/components/nextion/text_sensor/nextion_textsensor.cpp +3 -3
  400. esphome/components/nfc/nci_message.h +1 -1
  401. esphome/components/nfc/ndef_record.h +1 -1
  402. esphome/components/nfc/ndef_record_text.h +1 -1
  403. esphome/components/nfc/ndef_record_uri.h +1 -1
  404. esphome/components/nfc/nfc.h +1 -1
  405. esphome/components/nfc/nfc_tag.h +1 -1
  406. esphome/components/noblex/noblex.cpp +1 -1
  407. esphome/components/npi19/npi19.cpp +5 -7
  408. esphome/components/number/__init__.py +11 -0
  409. esphome/components/number/number.cpp +1 -1
  410. esphome/components/number/number.h +0 -4
  411. esphome/components/online_image/__init__.py +13 -1
  412. esphome/components/online_image/online_image.cpp +26 -4
  413. esphome/components/online_image/online_image.h +21 -4
  414. esphome/components/opentherm/generate.py +3 -3
  415. esphome/components/opentherm/hub.cpp +11 -7
  416. esphome/components/opentherm/number/number.cpp +5 -3
  417. esphome/components/opentherm/opentherm.h +1 -1
  418. esphome/components/opentherm/schema.py +13 -13
  419. esphome/components/opentherm/validate.py +1 -1
  420. esphome/components/openthread/__init__.py +146 -0
  421. esphome/components/openthread/const.py +10 -0
  422. esphome/components/openthread/openthread.cpp +206 -0
  423. esphome/components/openthread/openthread.h +68 -0
  424. esphome/components/openthread/openthread_esp.cpp +164 -0
  425. esphome/components/openthread/tlv.py +58 -0
  426. esphome/components/openthread_info/__init__.py +0 -0
  427. esphome/components/openthread_info/openthread_info_text_sensor.cpp +24 -0
  428. esphome/components/openthread_info/openthread_info_text_sensor.h +218 -0
  429. esphome/components/openthread_info/text_sensor.py +105 -0
  430. esphome/components/output/float_output.cpp +1 -1
  431. esphome/components/output/switch/output_switch.cpp +1 -1
  432. esphome/components/packet_transport/packet_transport.cpp +6 -4
  433. esphome/components/pca6416a/pca6416a.cpp +2 -2
  434. esphome/components/pca9554/pca9554.cpp +6 -4
  435. esphome/components/pca9685/pca9685_output.cpp +12 -8
  436. esphome/components/pcd8544/pcd_8544.cpp +1 -1
  437. esphome/components/pcf85063/pcf85063.cpp +2 -2
  438. esphome/components/pcf8563/pcf8563.cpp +2 -2
  439. esphome/components/pcf8574/pcf8574.cpp +2 -2
  440. esphome/components/pid/pid_climate.cpp +8 -5
  441. esphome/components/pid/pid_climate.h +1 -1
  442. esphome/components/pid/sensor/pid_climate_sensor.cpp +1 -1
  443. esphome/components/pipsolar/output/pipsolar_output.cpp +1 -1
  444. esphome/components/pipsolar/pipsolar.cpp +3 -3
  445. esphome/components/pm1006/pm1006.cpp +3 -7
  446. esphome/components/pm1006/pm1006.h +4 -1
  447. esphome/components/pm2005/pm2005.cpp +12 -13
  448. esphome/components/pm2005/sensor.py +1 -1
  449. esphome/components/pmsa003i/pmsa003i.cpp +2 -2
  450. esphome/components/pmsx003/pmsx003.cpp +0 -4
  451. esphome/components/pmsx003/pmsx003.h +5 -2
  452. esphome/components/pmwcs3/pmwcs3.cpp +9 -13
  453. esphome/components/pmwcs3/pmwcs3.h +0 -1
  454. esphome/components/pn532/pn532.cpp +7 -7
  455. esphome/components/pn532/pn532.h +1 -1
  456. esphome/components/pn532_spi/pn532_spi.cpp +1 -1
  457. esphome/components/pn7150/pn7150.cpp +4 -4
  458. esphome/components/pn7160/pn7160.cpp +4 -4
  459. esphome/components/power_supply/power_supply.cpp +6 -4
  460. esphome/components/power_supply/power_supply.h +1 -1
  461. esphome/components/prometheus/__init__.py +0 -1
  462. esphome/components/psram/__init__.py +59 -35
  463. esphome/components/pulse_counter/pulse_counter_sensor.cpp +7 -4
  464. esphome/components/pvvx_mithermometer/display/pvvx_display.cpp +8 -5
  465. esphome/components/pylontech/pylontech.cpp +2 -2
  466. esphome/components/pylontech/sensor/pylontech_sensor.cpp +4 -2
  467. esphome/components/pylontech/text_sensor/pylontech_text_sensor.cpp +4 -2
  468. esphome/components/pzemac/pzemac.cpp +4 -2
  469. esphome/components/pzemdc/pzemdc.cpp +4 -2
  470. esphome/components/qmc5883l/qmc5883l.cpp +2 -2
  471. esphome/components/qmp6988/qmp6988.cpp +2 -2
  472. esphome/components/qmp6988/qmp6988.h +1 -1
  473. esphome/components/qr_code/qr_code.cpp +5 -3
  474. esphome/components/qspi_dbi/qspi_dbi.cpp +1 -1
  475. esphome/components/qwiic_pir/qwiic_pir.cpp +26 -28
  476. esphome/components/rc522/rc522.cpp +5 -5
  477. esphome/components/rdm6300/rdm6300.cpp +1 -0
  478. esphome/components/remote_receiver/__init__.py +10 -2
  479. esphome/components/remote_receiver/remote_receiver_esp32.cpp +22 -12
  480. esphome/components/remote_receiver/remote_receiver_esp8266.cpp +10 -7
  481. esphome/components/remote_receiver/remote_receiver_libretiny.cpp +10 -7
  482. esphome/components/remote_transmitter/__init__.py +10 -2
  483. esphome/components/remote_transmitter/remote_transmitter_esp32.cpp +10 -6
  484. esphome/components/remote_transmitter/remote_transmitter_esp8266.cpp +5 -3
  485. esphome/components/remote_transmitter/remote_transmitter_libretiny.cpp +5 -3
  486. esphome/components/resistance/resistance_sensor.cpp +6 -3
  487. esphome/components/restart/button/restart_button.cpp +1 -1
  488. esphome/components/restart/switch/restart_switch.cpp +1 -1
  489. esphome/components/rotary_encoder/rotary_encoder.cpp +2 -2
  490. esphome/components/rp2040/__init__.py +7 -0
  491. esphome/components/rp2040/core.cpp +8 -1
  492. esphome/components/rp2040/preferences.cpp +3 -3
  493. esphome/components/rp2040_pio_led_strip/led_strip.cpp +11 -8
  494. esphome/components/rp2040_pio_led_strip/light.py +1 -1
  495. esphome/components/rp2040_pwm/rp2040_pwm.cpp +1 -1
  496. esphome/components/rpi_dpi_rgb/rpi_dpi_rgb.cpp +1 -1
  497. esphome/components/rtttl/rtttl.cpp +11 -9
  498. esphome/components/safe_mode/button/safe_mode_button.cpp +1 -1
  499. esphome/components/safe_mode/safe_mode.cpp +9 -8
  500. esphome/components/safe_mode/switch/safe_mode_switch.cpp +1 -1
  501. esphome/components/scd30/scd30.cpp +11 -8
  502. esphome/components/scd4x/scd4x.cpp +12 -8
  503. esphome/components/sdl/display.py +40 -0
  504. esphome/components/sdl/sdl_esphome.cpp +2 -2
  505. esphome/components/sdl/sdl_esphome.h +8 -0
  506. esphome/components/sdm_meter/sdm_meter.cpp +5 -2
  507. esphome/components/sdp3x/sdp3x.cpp +11 -11
  508. esphome/components/sds011/sds011.cpp +5 -6
  509. esphome/components/sds011/sds011.h +4 -1
  510. esphome/components/seeed_mr24hpc1/seeed_mr24hpc1.cpp +3 -2
  511. esphome/components/seeed_mr60bha2/seeed_mr60bha2.cpp +1 -0
  512. esphome/components/seeed_mr60fda2/seeed_mr60fda2.cpp +3 -2
  513. esphome/components/selec_meter/selec_meter.cpp +5 -2
  514. esphome/components/select/__init__.py +1 -0
  515. esphome/components/select/select.cpp +1 -1
  516. esphome/components/select/select.h +0 -4
  517. esphome/components/sen0321/sen0321.cpp +2 -2
  518. esphome/components/sen21231/sen21231.cpp +1 -1
  519. esphome/components/sen5x/sen5x.cpp +10 -7
  520. esphome/components/sensirion_common/i2c_sensirion.cpp +2 -1
  521. esphome/components/sensirion_common/i2c_sensirion.h +1 -0
  522. esphome/components/sensor/__init__.py +11 -1
  523. esphome/components/sensor/filter.h +1 -1
  524. esphome/components/sensor/sensor.cpp +8 -4
  525. esphome/components/sensor/sensor.h +12 -11
  526. esphome/components/servo/servo.cpp +12 -9
  527. esphome/components/servo/servo.h +1 -1
  528. esphome/components/sfa30/sfa30.cpp +1 -1
  529. esphome/components/sgp30/sgp30.cpp +10 -8
  530. esphome/components/sgp4x/sgp4x.cpp +49 -61
  531. esphome/components/sgp4x/sgp4x.h +0 -1
  532. esphome/components/shelly_dimmer/shelly_dimmer.cpp +11 -7
  533. esphome/components/sht3xd/sht3xd.cpp +1 -1
  534. esphome/components/sht4x/sht4x.cpp +2 -2
  535. esphome/components/shtcx/shtcx.cpp +13 -16
  536. esphome/components/shutdown/button/shutdown_button.cpp +1 -1
  537. esphome/components/shutdown/switch/shutdown_switch.cpp +1 -1
  538. esphome/components/sim800l/sim800l.cpp +2 -2
  539. esphome/components/slow_pwm/slow_pwm_output.cpp +4 -2
  540. esphome/components/sm16716/sm16716.cpp +1 -1
  541. esphome/components/sm2135/sm2135.cpp +1 -1
  542. esphome/components/sm2235/sm2235.cpp +5 -3
  543. esphome/components/sm2335/sm2335.cpp +5 -3
  544. esphome/components/sml/sml.cpp +1 -1
  545. esphome/components/sn74hc165/sn74hc165.cpp +1 -2
  546. esphome/components/sn74hc595/sn74hc595.cpp +1 -2
  547. esphome/components/sntp/sntp_component.cpp +1 -1
  548. esphome/components/socket/__init__.py +2 -0
  549. esphome/components/socket/bsd_sockets_impl.cpp +51 -7
  550. esphome/components/socket/lwip_raw_tcp_impl.cpp +5 -0
  551. esphome/components/socket/lwip_sockets_impl.cpp +51 -7
  552. esphome/components/socket/socket.cpp +31 -0
  553. esphome/components/socket/socket.h +27 -1
  554. esphome/components/sonoff_d1/sonoff_d1.cpp +7 -4
  555. esphome/components/sonoff_d1/sonoff_d1.h +2 -2
  556. esphome/components/sound_level/sound_level.cpp +4 -2
  557. esphome/components/speaker/media_player/__init__.py +3 -0
  558. esphome/components/speaker/media_player/speaker_media_player.cpp +1 -3
  559. esphome/components/speaker/media_player/speaker_media_player.h +6 -0
  560. esphome/components/spi/__init__.py +10 -2
  561. esphome/components/spi/spi.cpp +4 -4
  562. esphome/components/spi_device/spi_device.cpp +1 -2
  563. esphome/components/sprinkler/sprinkler.cpp +9 -6
  564. esphome/components/sps30/sps30.cpp +16 -15
  565. esphome/components/ssd1306_base/ssd1306_base.cpp +1 -1
  566. esphome/components/ssd1306_i2c/ssd1306_i2c.cpp +11 -8
  567. esphome/components/ssd1306_spi/ssd1306_spi.cpp +10 -7
  568. esphome/components/ssd1322_base/ssd1322_base.cpp +1 -1
  569. esphome/components/ssd1322_spi/ssd1322_spi.cpp +1 -1
  570. esphome/components/ssd1325_base/ssd1325_base.cpp +1 -1
  571. esphome/components/ssd1325_spi/ssd1325_spi.cpp +1 -1
  572. esphome/components/ssd1327_base/ssd1327_base.cpp +1 -1
  573. esphome/components/ssd1327_i2c/ssd1327_i2c.cpp +2 -2
  574. esphome/components/ssd1327_spi/ssd1327_spi.cpp +1 -1
  575. esphome/components/ssd1331_base/ssd1331_base.cpp +1 -1
  576. esphome/components/ssd1331_spi/ssd1331_spi.cpp +1 -1
  577. esphome/components/ssd1351_base/ssd1351_base.cpp +1 -1
  578. esphome/components/ssd1351_spi/ssd1351_spi.cpp +1 -1
  579. esphome/components/st7567_base/st7567_base.cpp +3 -3
  580. esphome/components/st7567_i2c/st7567_i2c.cpp +7 -5
  581. esphome/components/st7567_spi/st7567_spi.cpp +1 -1
  582. esphome/components/st7701s/st7701s.cpp +4 -2
  583. esphome/components/st7735/st7735.cpp +3 -3
  584. esphome/components/st7789v/st7789v.cpp +10 -7
  585. esphome/components/st7920/st7920.cpp +6 -4
  586. esphome/components/statsd/statsd.cpp +9 -5
  587. esphome/components/status_led/light/status_led_light.cpp +3 -3
  588. esphome/components/status_led/light/status_led_light.h +1 -1
  589. esphome/components/status_led/status_led.cpp +1 -1
  590. esphome/components/stepper/stepper.h +5 -3
  591. esphome/components/sts3x/sts3x.cpp +2 -2
  592. esphome/components/switch/__init__.py +1 -0
  593. esphome/components/switch/switch.cpp +18 -12
  594. esphome/components/switch/switch.h +1 -1
  595. esphome/components/sx1509/__init__.py +53 -20
  596. esphome/components/sx1509/sx1509.cpp +29 -5
  597. esphome/components/sx1509/sx1509.h +9 -1
  598. esphome/components/t6615/t6615.cpp +1 -0
  599. esphome/components/tc74/tc74.cpp +1 -1
  600. esphome/components/tca9548a/tca9548a.cpp +1 -1
  601. esphome/components/tca9555/tca9555.cpp +2 -2
  602. esphome/components/tcs34725/tcs34725.cpp +4 -4
  603. esphome/components/tee501/tee501.cpp +3 -2
  604. esphome/components/tem3200/tem3200.cpp +5 -6
  605. esphome/components/template/alarm_control_panel/__init__.py +6 -0
  606. esphome/components/template/alarm_control_panel/template_alarm_control_panel.cpp +43 -12
  607. esphome/components/template/alarm_control_panel/template_alarm_control_panel.h +4 -1
  608. esphome/components/template/cover/template_cover.cpp +1 -1
  609. esphome/components/template/select/template_select.cpp +6 -4
  610. esphome/components/template/text/template_text.cpp +2 -3
  611. esphome/components/template/valve/template_valve.cpp +5 -3
  612. esphome/components/text/__init__.py +10 -11
  613. esphome/components/text/text.cpp +1 -1
  614. esphome/components/text/text.h +0 -4
  615. esphome/components/text_sensor/__init__.py +1 -0
  616. esphome/components/text_sensor/text_sensor.cpp +8 -4
  617. esphome/components/text_sensor/text_sensor.h +6 -6
  618. esphome/components/thermostat/thermostat_climate.cpp +67 -43
  619. esphome/components/time/__init__.py +1 -2
  620. esphome/components/time_based/time_based_cover.cpp +4 -2
  621. esphome/components/tlc59208f/tlc59208f_output.cpp +8 -6
  622. esphome/components/tm1621/tm1621.cpp +3 -3
  623. esphome/components/tm1637/tm1637.cpp +9 -7
  624. esphome/components/tm1638/tm1638.cpp +7 -5
  625. esphome/components/tm1651/tm1651.cpp +2 -2
  626. esphome/components/tmp102/tmp102.cpp +1 -3
  627. esphome/components/tmp102/tmp102.h +0 -3
  628. esphome/components/tmp1075/tmp1075.cpp +12 -9
  629. esphome/components/tmp117/tmp117.cpp +2 -2
  630. esphome/components/tof10120/tof10120_sensor.cpp +2 -2
  631. esphome/components/tormatic/tormatic_cover.cpp +4 -2
  632. esphome/components/tsl2561/tsl2561.cpp +7 -5
  633. esphome/components/tsl2591/tsl2591.cpp +25 -27
  634. esphome/components/tt21100/touchscreen/tt21100.cpp +1 -1
  635. esphome/components/ttp229_bsf/ttp229_bsf.cpp +1 -1
  636. esphome/components/ttp229_lsf/ttp229_lsf.cpp +2 -2
  637. esphome/components/tuya/select/tuya_select.cpp +5 -3
  638. esphome/components/tx20/tx20.cpp +3 -3
  639. esphome/components/uart/__init__.py +4 -5
  640. esphome/components/uart/button/uart_button.cpp +1 -1
  641. esphome/components/uart/switch/uart_switch.cpp +2 -2
  642. esphome/components/uart/uart.cpp +2 -2
  643. esphome/components/uart/uart_component_esp32_arduino.cpp +8 -6
  644. esphome/components/uart/uart_component_esp8266.cpp +9 -7
  645. esphome/components/uart/uart_component_esp_idf.cpp +9 -7
  646. esphome/components/uart/uart_component_host.cpp +11 -8
  647. esphome/components/uart/uart_component_libretiny.cpp +8 -6
  648. esphome/components/uart/uart_component_rp2040.cpp +8 -6
  649. esphome/components/udp/udp_component.cpp +9 -5
  650. esphome/components/ufire_ec/ufire_ec.cpp +5 -3
  651. esphome/components/ufire_ise/ufire_ise.cpp +1 -1
  652. esphome/components/ultrasonic/ultrasonic_sensor.cpp +5 -3
  653. esphome/components/update/__init__.py +1 -0
  654. esphome/components/update/update_entity.cpp +1 -1
  655. esphome/components/update/update_entity.h +0 -3
  656. esphome/components/uponor_smatrix/climate/uponor_smatrix_climate.cpp +1 -1
  657. esphome/components/uponor_smatrix/sensor/uponor_smatrix_sensor.cpp +4 -2
  658. esphome/components/uponor_smatrix/uponor_smatrix.cpp +2 -1
  659. esphome/components/uptime/sensor/uptime_timestamp_sensor.cpp +1 -1
  660. esphome/components/usb_host/__init__.py +64 -0
  661. esphome/components/usb_host/usb_host.h +116 -0
  662. esphome/components/usb_host/usb_host_client.cpp +394 -0
  663. esphome/components/usb_host/usb_host_component.cpp +35 -0
  664. esphome/components/usb_uart/__init__.py +134 -0
  665. esphome/components/usb_uart/ch34x.cpp +80 -0
  666. esphome/components/usb_uart/cp210x.cpp +126 -0
  667. esphome/components/usb_uart/usb_uart.cpp +328 -0
  668. esphome/components/usb_uart/usb_uart.h +151 -0
  669. esphome/components/valve/__init__.py +1 -0
  670. esphome/components/veml3235/veml3235.cpp +13 -9
  671. esphome/components/veml7700/veml7700.cpp +10 -6
  672. esphome/components/voice_assistant/voice_assistant.cpp +7 -7
  673. esphome/components/wake_on_lan/wake_on_lan.cpp +1 -1
  674. esphome/components/waveshare_epaper/waveshare_epaper.cpp +1 -1
  675. esphome/components/web_server/server_index_v2.h +632 -630
  676. esphome/components/web_server/server_index_v3.h +411 -409
  677. esphome/components/web_server/web_server.cpp +5 -3
  678. esphome/components/web_server_base/web_server_base.cpp +1 -1
  679. esphome/components/web_server_idf/__init__.py +0 -2
  680. esphome/components/web_server_idf/utils.cpp +1 -1
  681. esphome/components/web_server_idf/web_server_idf.cpp +7 -3
  682. esphome/components/web_server_idf/web_server_idf.h +7 -0
  683. esphome/components/weikai/__init__.py +2 -0
  684. esphome/components/weikai/weikai.cpp +24 -22
  685. esphome/components/weikai_i2c/weikai_i2c.cpp +14 -9
  686. esphome/components/weikai_spi/weikai_spi.cpp +11 -6
  687. esphome/components/wiegand/wiegand.cpp +1 -1
  688. esphome/components/wifi/wifi_component.cpp +50 -37
  689. esphome/components/wifi/wifi_component.h +7 -4
  690. esphome/components/wifi/wifi_component_esp32_arduino.cpp +2 -2
  691. esphome/components/wifi/wifi_component_esp8266.cpp +3 -3
  692. esphome/components/wifi/wifi_component_libretiny.cpp +4 -4
  693. esphome/components/wireguard/wireguard.cpp +21 -21
  694. esphome/components/wl_134/text_sensor.py +1 -2
  695. esphome/components/wled/wled_light_effect.cpp +1 -1
  696. esphome/components/x9c/x9c.cpp +5 -3
  697. esphome/components/xgzp68xx/xgzp68xx.cpp +8 -6
  698. esphome/components/xiaomi_cgd1/xiaomi_cgd1.cpp +4 -2
  699. esphome/components/xiaomi_cgdk2/xiaomi_cgdk2.cpp +4 -2
  700. esphome/components/xiaomi_cgg1/xiaomi_cgg1.cpp +4 -2
  701. esphome/components/xiaomi_hhccjcy10/xiaomi_hhccjcy10.cpp +1 -1
  702. esphome/components/xiaomi_lywsd02mmc/xiaomi_lywsd02mmc.cpp +4 -2
  703. esphome/components/xiaomi_lywsd03mmc/xiaomi_lywsd03mmc.cpp +4 -2
  704. esphome/components/xiaomi_mhoc401/xiaomi_mhoc401.cpp +4 -2
  705. esphome/components/xl9535/xl9535.cpp +2 -2
  706. esphome/components/xpt2046/touchscreen/xpt2046.cpp +12 -11
  707. esphome/components/xpt2046/touchscreen/xpt2046.h +2 -2
  708. esphome/config.py +3 -2
  709. esphome/config_validation.py +46 -17
  710. esphome/const.py +10 -1
  711. esphome/core/__init__.py +37 -18
  712. esphome/core/application.cpp +197 -8
  713. esphome/core/application.h +116 -6
  714. esphome/core/component.cpp +36 -15
  715. esphome/core/component.h +43 -13
  716. esphome/core/config.py +12 -0
  717. esphome/core/defines.h +10 -2
  718. esphome/core/entity_base.cpp +4 -16
  719. esphome/core/entity_base.h +27 -13
  720. esphome/core/helpers.cpp +1 -1
  721. esphome/core/helpers.h +5 -5
  722. esphome/core/log.h +2 -0
  723. esphome/core/log_const_en.h +4 -0
  724. esphome/core/scheduler.cpp +2 -2
  725. esphome/coroutine.py +3 -4
  726. esphome/cpp_generator.py +32 -32
  727. esphome/dashboard/core.py +2 -2
  728. esphome/dashboard/web_server.py +2 -2
  729. esphome/git.py +4 -4
  730. esphome/helpers.py +5 -6
  731. esphome/loader.py +8 -7
  732. esphome/log.py +7 -1
  733. esphome/platformio_api.py +2 -3
  734. esphome/storage_json.py +13 -5
  735. esphome/types.py +12 -13
  736. esphome/util.py +1 -2
  737. esphome/wizard.py +0 -16
  738. esphome/writer.py +5 -3
  739. esphome/yaml_util.py +6 -1
  740. esphome/zeroconf.py +1 -1
  741. {esphome-2025.5.2.dist-info → esphome-2025.6.0b2.dist-info}/METADATA +12 -11
  742. {esphome-2025.5.2.dist-info → esphome-2025.6.0b2.dist-info}/RECORD +746 -692
  743. {esphome-2025.5.2.dist-info → esphome-2025.6.0b2.dist-info}/WHEEL +1 -1
  744. {esphome-2025.5.2.dist-info → esphome-2025.6.0b2.dist-info}/entry_points.txt +0 -0
  745. {esphome-2025.5.2.dist-info → esphome-2025.6.0b2.dist-info}/licenses/LICENSE +0 -0
  746. {esphome-2025.5.2.dist-info → esphome-2025.6.0b2.dist-info}/top_level.txt +0 -0
@@ -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
@@ -43,8 +43,10 @@ enum MixerEventGroupBits : uint32_t {
43
43
  };
44
44
 
45
45
  void SourceSpeaker::dump_config() {
46
- ESP_LOGCONFIG(TAG, "Mixer Source Speaker");
47
- ESP_LOGCONFIG(TAG, " Buffer Duration: %" PRIu32 " ms", this->buffer_duration_ms_);
46
+ ESP_LOGCONFIG(TAG,
47
+ "Mixer Source Speaker\n"
48
+ " Buffer Duration: %" PRIu32 " ms",
49
+ this->buffer_duration_ms_);
48
50
  if (this->timeout_ms_.has_value()) {
49
51
  ESP_LOGCONFIG(TAG, " Timeout: %" PRIu32 " ms", this->timeout_ms_.value());
50
52
  } else {
@@ -291,8 +293,10 @@ void SourceSpeaker::duck_samples(int16_t *input_buffer, uint32_t input_samples_t
291
293
  }
292
294
 
293
295
  void MixerSpeaker::dump_config() {
294
- ESP_LOGCONFIG(TAG, "Speaker Mixer:");
295
- ESP_LOGCONFIG(TAG, " Number of output channels: %u", this->output_channels_);
296
+ ESP_LOGCONFIG(TAG,
297
+ "Speaker Mixer:\n"
298
+ " Number of output channels: %u",
299
+ this->output_channels_);
296
300
  }
297
301
 
298
302
  void MixerSpeaker::setup() {
@@ -103,7 +103,7 @@ bool MLX90393Cls::apply_all_settings_() {
103
103
  }
104
104
 
105
105
  void MLX90393Cls::setup() {
106
- ESP_LOGCONFIG(TAG, "Setting up MLX90393...");
106
+ ESP_LOGCONFIG(TAG, "Running setup");
107
107
  // note the two arguments A0 and A1 which are used to construct an i2c address
108
108
  // we can hard-code these because we never actually use the constructed address
109
109
  // see the transceive function above, which uses the address from I2CComponent
@@ -122,7 +122,7 @@ void MLX90393Cls::dump_config() {
122
122
  LOG_I2C_DEVICE(this);
123
123
 
124
124
  if (this->is_failed()) {
125
- ESP_LOGE(TAG, "Communication with MLX90393 failed!");
125
+ ESP_LOGE(TAG, ESP_LOG_MSG_COMM_FAIL);
126
126
  return;
127
127
  }
128
128
  LOG_UPDATE_INTERVAL(this);
@@ -1,6 +1,7 @@
1
1
  #include "mlx90614.h"
2
2
 
3
3
  #include "esphome/core/hal.h"
4
+ #include "esphome/core/helpers.h"
4
5
  #include "esphome/core/log.h"
5
6
 
6
7
  namespace esphome {
@@ -27,9 +28,9 @@ static const uint8_t MLX90614_ID4 = 0x3F;
27
28
  static const char *const TAG = "mlx90614";
28
29
 
29
30
  void MLX90614Component::setup() {
30
- ESP_LOGCONFIG(TAG, "Setting up MLX90614...");
31
+ ESP_LOGCONFIG(TAG, "Running setup");
31
32
  if (!this->write_emissivity_()) {
32
- ESP_LOGE(TAG, "Communication with MLX90614 failed!");
33
+ ESP_LOGE(TAG, ESP_LOG_MSG_COMM_FAIL);
33
34
  this->mark_failed();
34
35
  return;
35
36
  }
@@ -79,7 +80,7 @@ void MLX90614Component::dump_config() {
79
80
  ESP_LOGCONFIG(TAG, "MLX90614:");
80
81
  LOG_I2C_DEVICE(this);
81
82
  if (this->is_failed()) {
82
- ESP_LOGE(TAG, "Communication with MLX90614 failed!");
83
+ ESP_LOGE(TAG, ESP_LOG_MSG_COMM_FAIL);
83
84
  }
84
85
  LOG_UPDATE_INTERVAL(this);
85
86
  LOG_SENSOR(" ", "Ambient", this->ambient_sensor_);
@@ -31,7 +31,7 @@ static const uint8_t MMC56X3_CTRL2_REG = 0x1D;
31
31
  static const uint8_t MMC5603_ODR_REG = 0x1A;
32
32
 
33
33
  void MMC5603Component::setup() {
34
- ESP_LOGCONFIG(TAG, "Setting up MMC5603...");
34
+ ESP_LOGCONFIG(TAG, "Running setup");
35
35
  uint8_t id = 0;
36
36
  if (!this->read_byte(MMC56X3_PRODUCT_ID, &id)) {
37
37
  this->error_code_ = COMMUNICATION_FAILED;
@@ -79,7 +79,7 @@ void MMC5603Component::dump_config() {
79
79
  ESP_LOGCONFIG(TAG, "MMC5603:");
80
80
  LOG_I2C_DEVICE(this);
81
81
  if (this->error_code_ == COMMUNICATION_FAILED) {
82
- ESP_LOGE(TAG, "Communication with MMC5603 failed!");
82
+ ESP_LOGE(TAG, ESP_LOG_MSG_COMM_FAIL);
83
83
  } else if (this->error_code_ == ID_REGISTERS) {
84
84
  ESP_LOGE(TAG, "The ID registers don't match - Is this really an MMC5603?");
85
85
  }
@@ -67,7 +67,7 @@ void MMC5983Component::update() {
67
67
  }
68
68
 
69
69
  void MMC5983Component::setup() {
70
- ESP_LOGCONFIG(TAG, "Setting up MMC5983...");
70
+ ESP_LOGCONFIG(TAG, "Running setup");
71
71
 
72
72
  // Verify product id.
73
73
  const uint8_t mmc5983_product_id = 0x30;
@@ -1,7 +1,7 @@
1
1
  #include "modbus.h"
2
- #include "esphome/core/log.h"
3
- #include "esphome/core/helpers.h"
4
2
  #include "esphome/core/application.h"
3
+ #include "esphome/core/helpers.h"
4
+ #include "esphome/core/log.h"
5
5
 
6
6
  namespace esphome {
7
7
  namespace modbus {
@@ -90,7 +90,7 @@ bool Modbus::parse_modbus_byte_(uint8_t byte) {
90
90
 
91
91
  } else {
92
92
  // data starts at 2 and length is 4 for read registers commands
93
- if (this->role == ModbusRole::SERVER && (function_code == 0x3 || function_code == 0x4)) {
93
+ if (this->role == ModbusRole::SERVER && (function_code == 0x1 || function_code == 0x3 || function_code == 0x4)) {
94
94
  data_offset = 2;
95
95
  data_len = 4;
96
96
  }
@@ -165,8 +165,10 @@ bool Modbus::parse_modbus_byte_(uint8_t byte) {
165
165
  void Modbus::dump_config() {
166
166
  ESP_LOGCONFIG(TAG, "Modbus:");
167
167
  LOG_PIN(" Flow Control Pin: ", this->flow_control_pin_);
168
- ESP_LOGCONFIG(TAG, " Send Wait Time: %d ms", this->send_wait_time_);
169
- ESP_LOGCONFIG(TAG, " CRC Disabled: %s", YESNO(this->disable_crc_));
168
+ ESP_LOGCONFIG(TAG,
169
+ " Send Wait Time: %d ms\n"
170
+ " CRC Disabled: %s",
171
+ this->send_wait_time_, YESNO(this->disable_crc_));
170
172
  }
171
173
  float Modbus::get_setup_priority() const {
172
174
  // After UART bus
@@ -346,10 +346,12 @@ size_t ModbusController::create_register_ranges_() {
346
346
  }
347
347
 
348
348
  void ModbusController::dump_config() {
349
- ESP_LOGCONFIG(TAG, "ModbusController:");
350
- ESP_LOGCONFIG(TAG, " Address: 0x%02X", this->address_);
351
- ESP_LOGCONFIG(TAG, " Max Command Retries: %d", this->max_cmd_retries_);
352
- ESP_LOGCONFIG(TAG, " Offline Skip Updates: %d", this->offline_skip_updates_);
349
+ ESP_LOGCONFIG(TAG,
350
+ "ModbusController:\n"
351
+ " Address: 0x%02X\n"
352
+ " Max Command Retries: %d\n"
353
+ " Offline Skip Updates: %d",
354
+ this->address_, this->max_cmd_retries_, this->offline_skip_updates_);
353
355
  #if ESPHOME_LOG_LEVEL >= ESPHOME_LOG_LEVEL_VERBOSE
354
356
  ESP_LOGCONFIG(TAG, "sensormap");
355
357
  for (auto &it : this->sensorset_) {
@@ -52,9 +52,11 @@ void ModbusFloatOutput::write_state(float value) {
52
52
  void ModbusFloatOutput::dump_config() {
53
53
  ESP_LOGCONFIG(TAG, "Modbus Float Output:");
54
54
  LOG_FLOAT_OUTPUT(this);
55
- ESP_LOGCONFIG(TAG, " Device start address: 0x%X", this->start_address);
56
- ESP_LOGCONFIG(TAG, " Register count: %d", this->register_count);
57
- ESP_LOGCONFIG(TAG, " Value type: %d", static_cast<int>(this->sensor_value_type));
55
+ ESP_LOGCONFIG(TAG,
56
+ " Device start address: 0x%X\n"
57
+ " Register count: %d\n"
58
+ " Value type: %d",
59
+ this->start_address, this->register_count, static_cast<int>(this->sensor_value_type));
58
60
  }
59
61
 
60
62
  // ModbusBinaryOutput
@@ -102,9 +104,11 @@ void ModbusBinaryOutput::write_state(bool state) {
102
104
  void ModbusBinaryOutput::dump_config() {
103
105
  ESP_LOGCONFIG(TAG, "Modbus Binary Output:");
104
106
  LOG_BINARY_OUTPUT(this);
105
- ESP_LOGCONFIG(TAG, " Device start address: 0x%X", this->start_address);
106
- ESP_LOGCONFIG(TAG, " Register count: %d", this->register_count);
107
- ESP_LOGCONFIG(TAG, " Value type: %d", static_cast<int>(this->sensor_value_type));
107
+ ESP_LOGCONFIG(TAG,
108
+ " Device start address: 0x%X\n"
109
+ " Register count: %d\n"
110
+ " Value type: %d",
111
+ this->start_address, this->register_count, static_cast<int>(this->sensor_value_type));
108
112
  }
109
113
 
110
114
  } // namespace modbus_controller
@@ -1,7 +1,7 @@
1
1
  import esphome.codegen as cg
2
2
  from esphome.components import switch
3
3
  import esphome.config_validation as cv
4
- from esphome.const import CONF_ADDRESS, CONF_ID
4
+ from esphome.const import CONF_ADDRESS, CONF_ASSUMED_STATE, CONF_ID
5
5
 
6
6
  from .. import (
7
7
  MODBUS_REGISTER_TYPE,
@@ -36,6 +36,7 @@ CONFIG_SCHEMA = cv.All(
36
36
  .extend(ModbusItemBaseSchema)
37
37
  .extend(
38
38
  {
39
+ cv.Optional(CONF_ASSUMED_STATE, default=False): cv.boolean,
39
40
  cv.Optional(CONF_REGISTER_TYPE): cv.enum(MODBUS_REGISTER_TYPE),
40
41
  cv.Optional(CONF_USE_WRITE_MULTIPLE, default=False): cv.boolean,
41
42
  cv.Optional(CONF_WRITE_LAMBDA): cv.returning_lambda,
@@ -62,7 +63,10 @@ async def to_code(config):
62
63
  paren = await cg.get_variable(config[CONF_MODBUS_CONTROLLER_ID])
63
64
  cg.add(var.set_parent(paren))
64
65
  cg.add(var.set_use_write_mutiple(config[CONF_USE_WRITE_MULTIPLE]))
65
- cg.add(paren.add_sensor_item(var))
66
+ assumed_state = config[CONF_ASSUMED_STATE]
67
+ cg.add(var.set_assumed_state(assumed_state))
68
+ if not assumed_state:
69
+ cg.add(paren.add_sensor_item(var))
66
70
  if CONF_WRITE_LAMBDA in config:
67
71
  template_ = await cg.process_lambda(
68
72
  config[CONF_WRITE_LAMBDA],
@@ -19,6 +19,10 @@ void ModbusSwitch::setup() {
19
19
  }
20
20
  void ModbusSwitch::dump_config() { LOG_SWITCH(TAG, "Modbus Controller Switch", this); }
21
21
 
22
+ void ModbusSwitch::set_assumed_state(bool assumed_state) { this->assumed_state_ = assumed_state; }
23
+
24
+ bool ModbusSwitch::assumed_state() { return this->assumed_state_; }
25
+
22
26
  void ModbusSwitch::parse_and_publish(const std::vector<uint8_t> &data) {
23
27
  bool value = false;
24
28
  switch (this->register_type) {
@@ -29,6 +29,7 @@ class ModbusSwitch : public Component, public switch_::Switch, public SensorItem
29
29
  void setup() override;
30
30
  void write_state(bool state) override;
31
31
  void dump_config() override;
32
+ void set_assumed_state(bool assumed_state);
32
33
  void set_state(bool state) { this->state = state; }
33
34
  void parse_and_publish(const std::vector<uint8_t> &data) override;
34
35
  void set_parent(ModbusController *parent) { this->parent_ = parent; }
@@ -40,10 +41,12 @@ class ModbusSwitch : public Component, public switch_::Switch, public SensorItem
40
41
  void set_use_write_mutiple(bool use_write_multiple) { this->use_write_multiple_ = use_write_multiple; }
41
42
 
42
43
  protected:
44
+ bool assumed_state() override;
43
45
  ModbusController *parent_{nullptr};
44
46
  bool use_write_multiple_{false};
45
47
  optional<transform_func_t> publish_transform_func_{nullopt};
46
48
  optional<write_transform_func_t> write_transform_func_{nullopt};
49
+ bool assumed_state_{false};
47
50
  };
48
51
 
49
52
  } // namespace modbus_controller
@@ -1,5 +1,6 @@
1
1
  #include "mpl3115a2.h"
2
2
  #include "esphome/core/hal.h"
3
+ #include "esphome/core/helpers.h"
3
4
  #include "esphome/core/log.h"
4
5
 
5
6
  namespace esphome {
@@ -8,7 +9,7 @@ namespace mpl3115a2 {
8
9
  static const char *const TAG = "mpl3115a2";
9
10
 
10
11
  void MPL3115A2Component::setup() {
11
- ESP_LOGCONFIG(TAG, "Setting up MPL3115A2...");
12
+ ESP_LOGCONFIG(TAG, "Running setup");
12
13
 
13
14
  uint8_t whoami = 0xFF;
14
15
  if (!this->read_byte(MPL3115A2_WHOAMI, &whoami, false)) {
@@ -37,7 +38,7 @@ void MPL3115A2Component::dump_config() {
37
38
  if (this->is_failed()) {
38
39
  switch (this->error_code_) {
39
40
  case COMMUNICATION_FAILED:
40
- ESP_LOGE(TAG, "Communication with MPL3115A2 failed!");
41
+ ESP_LOGE(TAG, ESP_LOG_MSG_COMM_FAIL);
41
42
  break;
42
43
  case WRONG_ID:
43
44
  ESP_LOGE(TAG, "MPL3115A2 has invalid id");
@@ -11,7 +11,7 @@ namespace mpr121 {
11
11
  static const char *const TAG = "mpr121";
12
12
 
13
13
  void MPR121Component::setup() {
14
- ESP_LOGCONFIG(TAG, "Setting up MPR121...");
14
+ ESP_LOGCONFIG(TAG, "Running setup");
15
15
  // soft reset device
16
16
  this->write_byte(MPR121_SOFTRESET, 0x63);
17
17
  delay(100); // NOLINT
@@ -72,7 +72,7 @@ void MPR121Component::dump_config() {
72
72
  LOG_I2C_DEVICE(this);
73
73
  switch (this->error_code_) {
74
74
  case COMMUNICATION_FAILED:
75
- ESP_LOGE(TAG, "Communication with MPR121 failed!");
75
+ ESP_LOGE(TAG, ESP_LOG_MSG_COMM_FAIL);
76
76
  break;
77
77
  case WRONG_CHIP_STATE:
78
78
  ESP_LOGE(TAG, "MPR121 has wrong default value for CONFIG2?");
@@ -21,7 +21,7 @@ const uint8_t MPU6050_BIT_TEMPERATURE_DISABLED = 3;
21
21
  const float GRAVITY_EARTH = 9.80665f;
22
22
 
23
23
  void MPU6050Component::setup() {
24
- ESP_LOGCONFIG(TAG, "Setting up MPU6050...");
24
+ ESP_LOGCONFIG(TAG, "Running setup");
25
25
  uint8_t who_am_i;
26
26
  if (!this->read_byte(MPU6050_REGISTER_WHO_AM_I, &who_am_i) ||
27
27
  (who_am_i != 0x68 && who_am_i != 0x70 && who_am_i != 0x98)) {
@@ -29,7 +29,7 @@ void MPU6050Component::setup() {
29
29
  return;
30
30
  }
31
31
 
32
- ESP_LOGV(TAG, " Setting up Power Management...");
32
+ ESP_LOGV(TAG, " Setting up Power Management");
33
33
  // Setup power management
34
34
  uint8_t power_management;
35
35
  if (!this->read_byte(MPU6050_REGISTER_POWER_MANAGEMENT_1, &power_management)) {
@@ -50,7 +50,7 @@ void MPU6050Component::setup() {
50
50
  return;
51
51
  }
52
52
 
53
- ESP_LOGV(TAG, " Setting up Gyro Config...");
53
+ ESP_LOGV(TAG, " Setting up Gyro Config");
54
54
  // Set scale - 2000DPS
55
55
  uint8_t gyro_config;
56
56
  if (!this->read_byte(MPU6050_REGISTER_GYRO_CONFIG, &gyro_config)) {
@@ -66,7 +66,7 @@ void MPU6050Component::setup() {
66
66
  return;
67
67
  }
68
68
 
69
- ESP_LOGV(TAG, " Setting up Accel Config...");
69
+ ESP_LOGV(TAG, " Setting up Accel Config");
70
70
  // Set range - 2G
71
71
  uint8_t accel_config;
72
72
  if (!this->read_byte(MPU6050_REGISTER_ACCEL_CONFIG, &accel_config)) {
@@ -86,7 +86,7 @@ void MPU6050Component::dump_config() {
86
86
  ESP_LOGCONFIG(TAG, "MPU6050:");
87
87
  LOG_I2C_DEVICE(this);
88
88
  if (this->is_failed()) {
89
- ESP_LOGE(TAG, "Communication with MPU6050 failed!");
89
+ ESP_LOGE(TAG, ESP_LOG_MSG_COMM_FAIL);
90
90
  }
91
91
  LOG_UPDATE_INTERVAL(this);
92
92
  LOG_SENSOR(" ", "Acceleration X", this->accel_x_sensor_);
@@ -99,7 +99,7 @@ void MPU6050Component::dump_config() {
99
99
  }
100
100
 
101
101
  void MPU6050Component::update() {
102
- ESP_LOGV(TAG, " Updating MPU6050...");
102
+ ESP_LOGV(TAG, "Updating");
103
103
  uint16_t raw_data[7];
104
104
  if (!this->read_bytes_16(MPU6050_REGISTER_ACCEL_XOUT_H, raw_data, 7)) {
105
105
  this->status_set_warning();
@@ -26,14 +26,14 @@ const float TEMPERATURE_SENSITIVITY = 326.8;
26
26
  const float TEMPERATURE_OFFSET = 25.0;
27
27
 
28
28
  void MPU6886Component::setup() {
29
- ESP_LOGCONFIG(TAG, "Setting up MPU6886...");
29
+ ESP_LOGCONFIG(TAG, "Running setup");
30
30
  uint8_t who_am_i;
31
31
  if (!this->read_byte(MPU6886_REGISTER_WHO_AM_I, &who_am_i) || who_am_i != MPU6886_WHO_AM_I_IDENTIFIER) {
32
32
  this->mark_failed();
33
33
  return;
34
34
  }
35
35
 
36
- ESP_LOGV(TAG, " Setting up Power Management...");
36
+ ESP_LOGV(TAG, " Setting up Power Management");
37
37
  // Setup power management
38
38
  uint8_t power_management;
39
39
  if (!this->read_byte(MPU6886_REGISTER_POWER_MANAGEMENT_1, &power_management)) {
@@ -54,7 +54,7 @@ void MPU6886Component::setup() {
54
54
  return;
55
55
  }
56
56
 
57
- ESP_LOGV(TAG, " Setting up Gyroscope Config...");
57
+ ESP_LOGV(TAG, " Setting up Gyroscope Config");
58
58
  // Set scale - 2000DPS
59
59
  uint8_t gyro_config;
60
60
  if (!this->read_byte(MPU6886_REGISTER_GYRO_CONFIG, &gyro_config)) {
@@ -70,7 +70,7 @@ void MPU6886Component::setup() {
70
70
  return;
71
71
  }
72
72
 
73
- ESP_LOGV(TAG, " Setting up Accelerometer Config...");
73
+ ESP_LOGV(TAG, " Setting up Accelerometer Config");
74
74
  // Set range - 2G
75
75
  uint8_t accel_config;
76
76
  if (!this->read_byte(MPU6886_REGISTER_ACCEL_CONFIG, &accel_config)) {
@@ -91,7 +91,7 @@ void MPU6886Component::dump_config() {
91
91
  ESP_LOGCONFIG(TAG, "MPU6886:");
92
92
  LOG_I2C_DEVICE(this);
93
93
  if (this->is_failed()) {
94
- ESP_LOGE(TAG, "Communication with MPU6886 failed!");
94
+ ESP_LOGE(TAG, ESP_LOG_MSG_COMM_FAIL);
95
95
  }
96
96
  LOG_UPDATE_INTERVAL(this);
97
97
  LOG_SENSOR(" ", "Acceleration X", this->accel_x_sensor_);
@@ -104,7 +104,7 @@ void MPU6886Component::dump_config() {
104
104
  }
105
105
 
106
106
  void MPU6886Component::update() {
107
- ESP_LOGV(TAG, " Updating MPU6886...");
107
+ ESP_LOGV(TAG, " Updating");
108
108
  uint16_t raw_data[7];
109
109
  if (!this->read_bytes_16(MPU6886_REGISTER_ACCEL_XOUT_H, raw_data, 7)) {
110
110
  this->status_set_warning();
@@ -45,9 +45,13 @@ void MQTTAlarmControlPanelComponent::setup() {
45
45
  void MQTTAlarmControlPanelComponent::dump_config() {
46
46
  ESP_LOGCONFIG(TAG, "MQTT alarm_control_panel '%s':", this->alarm_control_panel_->get_name().c_str());
47
47
  LOG_MQTT_COMPONENT(true, true)
48
- ESP_LOGCONFIG(TAG, " Supported Features: %" PRIu32, this->alarm_control_panel_->get_supported_features());
49
- ESP_LOGCONFIG(TAG, " Requires Code to Disarm: %s", YESNO(this->alarm_control_panel_->get_requires_code()));
50
- ESP_LOGCONFIG(TAG, " Requires Code To Arm: %s", YESNO(this->alarm_control_panel_->get_requires_code_to_arm()));
48
+ ESP_LOGCONFIG(TAG,
49
+ " Supported Features: %" PRIu32 "\n"
50
+ " Requires Code to Disarm: %s\n"
51
+ " Requires Code To Arm: %s",
52
+ this->alarm_control_panel_->get_supported_features(),
53
+ YESNO(this->alarm_control_panel_->get_requires_code()),
54
+ YESNO(this->alarm_control_panel_->get_requires_code_to_arm()));
51
55
  }
52
56
 
53
57
  void MQTTAlarmControlPanelComponent::send_discovery(JsonObject root, mqtt::SendDiscoveryConfig &config) {
@@ -4,8 +4,8 @@
4
4
  #ifdef USE_ESP32
5
5
 
6
6
  #include <string>
7
- #include "esphome/core/log.h"
8
7
  #include "esphome/core/helpers.h"
8
+ #include "esphome/core/log.h"
9
9
 
10
10
  namespace esphome {
11
11
  namespace mqtt {
@@ -34,7 +34,7 @@ MQTTClientComponent::MQTTClientComponent() {
34
34
 
35
35
  // Connection
36
36
  void MQTTClientComponent::setup() {
37
- ESP_LOGCONFIG(TAG, "Setting up MQTT...");
37
+ ESP_LOGCONFIG(TAG, "Running setup");
38
38
  this->mqtt_backend_.set_on_message(
39
39
  [this](const char *topic, const char *payload, size_t len, size_t index, size_t total) {
40
40
  if (index == 0)
@@ -149,18 +149,23 @@ void MQTTClientComponent::send_device_info_() {
149
149
  }
150
150
 
151
151
  void MQTTClientComponent::dump_config() {
152
- ESP_LOGCONFIG(TAG, "MQTT:");
153
- ESP_LOGCONFIG(TAG, " Server Address: %s:%u (%s)", this->credentials_.address.c_str(), this->credentials_.port,
154
- this->ip_.str().c_str());
155
- ESP_LOGCONFIG(TAG, " Username: " LOG_SECRET("'%s'"), this->credentials_.username.c_str());
156
- ESP_LOGCONFIG(TAG, " Client ID: " LOG_SECRET("'%s'"), this->credentials_.client_id.c_str());
157
- ESP_LOGCONFIG(TAG, " Clean Session: %s", YESNO(this->credentials_.clean_session));
152
+ ESP_LOGCONFIG(TAG,
153
+ "MQTT:\n"
154
+ " Server Address: %s:%u (%s)\n"
155
+ " Username: " LOG_SECRET("'%s'") "\n"
156
+ " Client ID: " LOG_SECRET("'%s'") "\n"
157
+ " Clean Session: %s",
158
+ this->credentials_.address.c_str(), this->credentials_.port, this->ip_.str().c_str(),
159
+ this->credentials_.username.c_str(), this->credentials_.client_id.c_str(),
160
+ YESNO(this->credentials_.clean_session));
158
161
  if (this->is_discovery_ip_enabled()) {
159
162
  ESP_LOGCONFIG(TAG, " Discovery IP enabled");
160
163
  }
161
164
  if (!this->discovery_info_.prefix.empty()) {
162
- ESP_LOGCONFIG(TAG, " Discovery prefix: '%s'", this->discovery_info_.prefix.c_str());
163
- ESP_LOGCONFIG(TAG, " Discovery retain: %s", YESNO(this->discovery_info_.retain));
165
+ ESP_LOGCONFIG(TAG,
166
+ " Discovery prefix: '%s'\n"
167
+ " Discovery retain: %s",
168
+ this->discovery_info_.prefix.c_str(), YESNO(this->discovery_info_.retain));
164
169
  }
165
170
  ESP_LOGCONFIG(TAG, " Topic Prefix: '%s'", this->topic_prefix_.c_str());
166
171
  if (!this->log_message_.topic.empty()) {
@@ -201,13 +206,13 @@ void MQTTClientComponent::start_dnslookup_() {
201
206
  }
202
207
  case ERR_INPROGRESS: {
203
208
  // wait for callback
204
- ESP_LOGD(TAG, "Resolving MQTT broker IP address...");
209
+ ESP_LOGD(TAG, "Resolving broker IP address");
205
210
  break;
206
211
  }
207
212
  default:
208
213
  case ERR_ARG: {
209
214
  // error
210
- ESP_LOGW(TAG, "Error resolving MQTT broker IP address: %d", err);
215
+ ESP_LOGW(TAG, "Error resolving broker IP address: %d", err);
211
216
  break;
212
217
  }
213
218
  }
@@ -221,7 +226,7 @@ void MQTTClientComponent::check_dnslookup_() {
221
226
  }
222
227
 
223
228
  if (this->dns_resolve_error_) {
224
- ESP_LOGW(TAG, "Couldn't resolve IP address for '%s'!", this->credentials_.address.c_str());
229
+ ESP_LOGW(TAG, "Couldn't resolve IP address for '%s'", this->credentials_.address.c_str());
225
230
  this->state_ = MQTT_CLIENT_DISCONNECTED;
226
231
  return;
227
232
  }
@@ -251,7 +256,7 @@ void MQTTClientComponent::start_connect_() {
251
256
  if (!network::is_connected())
252
257
  return;
253
258
 
254
- ESP_LOGI(TAG, "Connecting to MQTT...");
259
+ ESP_LOGI(TAG, "Connecting");
255
260
  // Force disconnect first
256
261
  this->mqtt_backend_.disconnect();
257
262
 
@@ -292,7 +297,7 @@ void MQTTClientComponent::check_connected() {
292
297
  this->state_ = MQTT_CLIENT_CONNECTED;
293
298
  this->sent_birth_message_ = false;
294
299
  this->status_clear_warning();
295
- ESP_LOGI(TAG, "MQTT Connected!");
300
+ ESP_LOGI(TAG, "Connected");
296
301
  // MQTT Client needs some time to be fully set up.
297
302
  delay(100); // NOLINT
298
303
 
@@ -341,7 +346,7 @@ void MQTTClientComponent::loop() {
341
346
  if (!network::is_connected()) {
342
347
  reason_s = LOG_STR("WiFi disconnected");
343
348
  }
344
- ESP_LOGW(TAG, "MQTT Disconnected: %s.", LOG_STR_ARG(reason_s));
349
+ ESP_LOGW(TAG, "Disconnected: %s", LOG_STR_ARG(reason_s));
345
350
  this->disconnect_reason_.reset();
346
351
  }
347
352
 
@@ -364,7 +369,7 @@ void MQTTClientComponent::loop() {
364
369
  case MQTT_CLIENT_CONNECTED:
365
370
  if (!this->mqtt_backend_.connected()) {
366
371
  this->state_ = MQTT_CLIENT_DISCONNECTED;
367
- ESP_LOGW(TAG, "Lost MQTT Client connection!");
372
+ ESP_LOGW(TAG, "Lost client connection");
368
373
  this->start_dnslookup_();
369
374
  } else {
370
375
  if (!this->birth_message_.topic.empty() && !this->sent_birth_message_) {
@@ -378,7 +383,7 @@ void MQTTClientComponent::loop() {
378
383
  }
379
384
 
380
385
  if (millis() - this->last_connected_ > this->reboot_timeout_ && this->reboot_timeout_ != 0) {
381
- ESP_LOGE(TAG, "Can't connect to MQTT... Restarting...");
386
+ ESP_LOGE(TAG, "Can't connect; restarting");
382
387
  App.reboot();
383
388
  }
384
389
  }
@@ -396,7 +401,7 @@ bool MQTTClientComponent::subscribe_(const char *topic, uint8_t qos) {
396
401
  ESP_LOGV(TAG, "subscribe(topic='%s')", topic);
397
402
  } else {
398
403
  delay(5);
399
- ESP_LOGV(TAG, "Subscribe failed for topic='%s'. Will retry later.", topic);
404
+ ESP_LOGV(TAG, "Subscribe failed for topic='%s'. Will retry", topic);
400
405
  this->status_momentary_warning("subscribe", 1000);
401
406
  }
402
407
  return ret != 0;
@@ -499,7 +504,7 @@ bool MQTTClientComponent::publish(const MQTTMessage &message) {
499
504
  ESP_LOGV(TAG, "Publish(topic='%s' payload='%s' retain=%d qos=%d)", message.topic.c_str(), message.payload.c_str(),
500
505
  message.retain, message.qos);
501
506
  } else {
502
- ESP_LOGV(TAG, "Publish failed for topic='%s' (len=%u). will retry later..", message.topic.c_str(),
507
+ ESP_LOGV(TAG, "Publish failed for topic='%s' (len=%u). Will retry", message.topic.c_str(),
503
508
  message.payload.length());
504
509
  this->status_momentary_warning("publish", 1000);
505
510
  }
@@ -515,7 +520,7 @@ bool MQTTClientComponent::publish_json(const std::string &topic, const json::jso
515
520
  void MQTTClientComponent::enable() {
516
521
  if (this->state_ != MQTT_CLIENT_DISABLED)
517
522
  return;
518
- ESP_LOGD(TAG, "Enabling MQTT...");
523
+ ESP_LOGD(TAG, "Enabling");
519
524
  this->state_ = MQTT_CLIENT_DISCONNECTED;
520
525
  this->last_connected_ = millis();
521
526
  this->start_dnslookup_();
@@ -524,7 +529,7 @@ void MQTTClientComponent::enable() {
524
529
  void MQTTClientComponent::disable() {
525
530
  if (this->state_ == MQTT_CLIENT_DISABLED)
526
531
  return;
527
- ESP_LOGD(TAG, "Disabling MQTT...");
532
+ ESP_LOGD(TAG, "Disabling");
528
533
  this->state_ = MQTT_CLIENT_DISABLED;
529
534
  this->on_shutdown();
530
535
  }
@@ -721,9 +726,11 @@ void MQTTMessageTrigger::setup() {
721
726
  this->qos_);
722
727
  }
723
728
  void MQTTMessageTrigger::dump_config() {
724
- ESP_LOGCONFIG(TAG, "MQTT Message Trigger:");
725
- ESP_LOGCONFIG(TAG, " Topic: '%s'", this->topic_.c_str());
726
- ESP_LOGCONFIG(TAG, " QoS: %u", this->qos_);
729
+ ESP_LOGCONFIG(TAG,
730
+ "MQTT Message Trigger:\n"
731
+ " Topic: '%s'\n"
732
+ " QoS: %u",
733
+ this->topic_.c_str(), this->qos_);
727
734
  }
728
735
  float MQTTMessageTrigger::get_setup_priority() const { return setup_priority::AFTER_CONNECTION; }
729
736