esphome 2025.7.4__py3-none-any.whl → 2025.8.0b1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of esphome might be problematic. Click here for more details.

Files changed (754) hide show
  1. esphome/__main__.py +189 -82
  2. esphome/automation.py +2 -4
  3. esphome/build_gen/__init__.py +0 -0
  4. esphome/build_gen/platformio.py +102 -0
  5. esphome/components/a4988/a4988.cpp +0 -1
  6. esphome/components/absolute_humidity/absolute_humidity.cpp +0 -2
  7. esphome/components/absolute_humidity/sensor.py +2 -2
  8. esphome/components/adc/__init__.py +123 -85
  9. esphome/components/adc/adc_sensor.h +98 -35
  10. esphome/components/adc/adc_sensor_common.cpp +10 -4
  11. esphome/components/adc/adc_sensor_esp32.cpp +291 -123
  12. esphome/components/adc/adc_sensor_esp8266.cpp +1 -4
  13. esphome/components/adc/adc_sensor_libretiny.cpp +1 -2
  14. esphome/components/adc/adc_sensor_rp2040.cpp +1 -2
  15. esphome/components/adc/adc_sensor_zephyr.cpp +207 -0
  16. esphome/components/adc/sensor.py +61 -27
  17. esphome/components/adc128s102/adc128s102.cpp +1 -4
  18. esphome/components/ade7880/sensor.py +75 -49
  19. esphome/components/ads1115/ads1115.cpp +0 -1
  20. esphome/components/ads1118/ads1118.cpp +0 -1
  21. esphome/components/ags10/ags10.cpp +0 -4
  22. esphome/components/aht10/aht10.cpp +0 -4
  23. esphome/components/aic3204/aic3204.cpp +0 -2
  24. esphome/components/airthings_wave_plus/__init__.py +1 -1
  25. esphome/components/airthings_wave_plus/airthings_wave_plus.cpp +22 -4
  26. esphome/components/airthings_wave_plus/airthings_wave_plus.h +10 -1
  27. esphome/components/airthings_wave_plus/sensor.py +55 -28
  28. esphome/components/alarm_control_panel/__init__.py +4 -9
  29. esphome/components/am2315c/am2315c.cpp +0 -2
  30. esphome/components/am2320/am2320.cpp +0 -1
  31. esphome/components/animation/__init__.py +14 -11
  32. esphome/components/apds9306/apds9306.cpp +0 -4
  33. esphome/components/apds9960/apds9960.cpp +0 -1
  34. esphome/components/api/__init__.py +29 -4
  35. esphome/components/api/api_connection.cpp +378 -401
  36. esphome/components/api/api_connection.h +112 -56
  37. esphome/components/api/api_frame_helper.cpp +69 -896
  38. esphome/components/api/api_frame_helper.h +31 -126
  39. esphome/components/api/api_frame_helper_noise.cpp +583 -0
  40. esphome/components/api/api_frame_helper_noise.h +68 -0
  41. esphome/components/api/api_frame_helper_plaintext.cpp +290 -0
  42. esphome/components/api/api_frame_helper_plaintext.h +53 -0
  43. esphome/components/api/api_noise_context.h +2 -4
  44. esphome/components/api/api_pb2.cpp +1601 -1808
  45. esphome/components/api/api_pb2.h +367 -323
  46. esphome/components/api/api_pb2_dump.cpp +1137 -3466
  47. esphome/components/api/api_pb2_includes.h +34 -0
  48. esphome/components/api/api_pb2_service.cpp +94 -105
  49. esphome/components/api/api_pb2_service.h +27 -16
  50. esphome/components/api/api_server.cpp +18 -17
  51. esphome/components/api/api_server.h +8 -5
  52. esphome/components/api/client.py +16 -8
  53. esphome/components/api/custom_api_device.h +68 -14
  54. esphome/components/api/homeassistant_service.h +24 -19
  55. esphome/components/api/list_entities.cpp +3 -5
  56. esphome/components/api/list_entities.h +2 -4
  57. esphome/components/api/proto.cpp +3 -5
  58. esphome/components/api/proto.h +239 -274
  59. esphome/components/api/subscribe_state.cpp +2 -4
  60. esphome/components/api/subscribe_state.h +2 -4
  61. esphome/components/api/user_services.cpp +2 -4
  62. esphome/components/api/user_services.h +8 -8
  63. esphome/components/as3935/as3935.cpp +0 -2
  64. esphome/components/as3935_spi/as3935_spi.cpp +0 -2
  65. esphome/components/as5600/__init__.py +1 -1
  66. esphome/components/as5600/as5600.cpp +0 -2
  67. esphome/components/as5600/sensor/__init__.py +0 -1
  68. esphome/components/as7341/as7341.cpp +0 -1
  69. esphome/components/async_tcp/__init__.py +1 -1
  70. esphome/components/at581x/at581x.cpp +1 -1
  71. esphome/components/atm90e26/atm90e26.cpp +0 -1
  72. esphome/components/atm90e32/atm90e32.cpp +488 -118
  73. esphome/components/atm90e32/atm90e32.h +44 -5
  74. esphome/components/audio/audio.h +2 -2
  75. esphome/components/axs15231/touchscreen/axs15231_touchscreen.cpp +0 -2
  76. esphome/components/beken_spi_led_strip/led_strip.cpp +0 -2
  77. esphome/components/bh1750/bh1750.cpp +0 -1
  78. esphome/components/binary_sensor/__init__.py +14 -12
  79. esphome/components/ble_client/__init__.py +4 -7
  80. esphome/components/bluetooth_proxy/__init__.py +40 -3
  81. esphome/components/bluetooth_proxy/bluetooth_connection.cpp +387 -82
  82. esphome/components/bluetooth_proxy/bluetooth_connection.h +16 -5
  83. esphome/components/bluetooth_proxy/bluetooth_proxy.cpp +102 -311
  84. esphome/components/bluetooth_proxy/bluetooth_proxy.h +30 -14
  85. esphome/components/bme280_base/bme280_base.cpp +15 -16
  86. esphome/components/bme680/bme680.cpp +2 -3
  87. esphome/components/bme680_bsec/bme680_bsec.cpp +0 -2
  88. esphome/components/bme68x_bsec2/bme68x_bsec2.cpp +0 -2
  89. esphome/components/bmi160/bmi160.cpp +0 -1
  90. esphome/components/bmp085/bmp085.cpp +0 -1
  91. esphome/components/bmp280_base/bmp280_base.cpp +13 -14
  92. esphome/components/bmp3xx_base/bmp3xx_base.cpp +0 -1
  93. esphome/components/bmp581/bmp581.cpp +0 -2
  94. esphome/components/bp1658cj/bp1658cj.cpp +0 -1
  95. esphome/components/bp5758d/bp5758d.cpp +0 -1
  96. esphome/components/button/__init__.py +0 -1
  97. esphome/components/canbus/__init__.py +2 -3
  98. esphome/components/canbus/canbus.cpp +0 -1
  99. esphome/components/cap1188/cap1188.cpp +0 -2
  100. esphome/components/captive_portal/__init__.py +1 -1
  101. esphome/components/cd74hc4067/cd74hc4067.cpp +0 -2
  102. esphome/components/ch422g/ch422g.cpp +0 -1
  103. esphome/components/chsc6x/chsc6x_touchscreen.cpp +0 -3
  104. esphome/components/climate/__init__.py +0 -1
  105. esphome/components/climate/climate_traits.h +24 -0
  106. esphome/components/cm1106/cm1106.cpp +0 -1
  107. esphome/components/const/__init__.py +6 -0
  108. esphome/components/cover/__init__.py +0 -1
  109. esphome/components/cover/cover.cpp +9 -13
  110. esphome/components/cs5460a/cs5460a.cpp +0 -2
  111. esphome/components/cse7761/cse7761.cpp +0 -1
  112. esphome/components/cst226/touchscreen/cst226_touchscreen.cpp +0 -2
  113. esphome/components/cst816/touchscreen/cst816_touchscreen.cpp +0 -2
  114. esphome/components/dac7678/dac7678_output.cpp +0 -2
  115. esphome/components/dallas_temp/dallas_temp.cpp +0 -1
  116. esphome/components/datetime/__init__.py +0 -2
  117. esphome/components/debug/__init__.py +15 -1
  118. esphome/components/debug/debug_zephyr.cpp +281 -0
  119. esphome/components/debug/sensor.py +2 -1
  120. esphome/components/deep_sleep/deep_sleep_component.cpp +0 -1
  121. esphome/components/deep_sleep/deep_sleep_esp32.cpp +20 -1
  122. esphome/components/dfrobot_sen0395/__init__.py +1 -2
  123. esphome/components/dht/dht.cpp +0 -1
  124. esphome/components/dht12/dht12.cpp +0 -1
  125. esphome/components/display/__init__.py +16 -3
  126. esphome/components/display_menu_base/__init__.py +1 -1
  127. esphome/components/dps310/dps310.cpp +0 -2
  128. esphome/components/ds1307/ds1307.cpp +0 -1
  129. esphome/components/ds2484/ds2484.cpp +0 -1
  130. esphome/components/duty_cycle/duty_cycle_sensor.cpp +0 -1
  131. esphome/components/ee895/ee895.cpp +0 -1
  132. esphome/components/ektf2232/touchscreen/ektf2232.cpp +0 -1
  133. esphome/components/emc2101/emc2101.cpp +0 -2
  134. esphome/components/ens160_base/ens160_base.cpp +0 -2
  135. esphome/components/ens210/ens210.cpp +0 -1
  136. esphome/components/es7210/es7210.cpp +0 -2
  137. esphome/components/es7243e/es7243e.cpp +0 -2
  138. esphome/components/es8156/es8156.cpp +0 -2
  139. esphome/components/es8311/es8311.cpp +0 -2
  140. esphome/components/es8388/es8388.cpp +0 -2
  141. esphome/components/esp32/__init__.py +199 -58
  142. esphome/components/esp32/boards.py +17 -0
  143. esphome/components/esp32/gpio.cpp +0 -1
  144. esphome/components/esp32/gpio.py +1 -2
  145. esphome/components/esp32/gpio_esp32_h2.py +2 -7
  146. esphome/components/esp32/gpio_esp32_p4.py +2 -7
  147. esphome/components/esp32/post_build.py.script +112 -61
  148. esphome/components/esp32_ble/__init__.py +40 -2
  149. esphome/components/esp32_ble/ble.cpp +12 -8
  150. esphome/components/esp32_ble/ble.h +18 -18
  151. esphome/components/esp32_ble/ble_advertising.cpp +5 -5
  152. esphome/components/esp32_ble/ble_advertising.h +7 -5
  153. esphome/components/esp32_ble/ble_event.h +2 -4
  154. esphome/components/esp32_ble/ble_scan_result.h +2 -4
  155. esphome/components/esp32_ble/ble_uuid.cpp +5 -5
  156. esphome/components/esp32_ble/ble_uuid.h +6 -5
  157. esphome/components/esp32_ble_beacon/__init__.py +4 -0
  158. esphome/components/esp32_ble_client/__init__.py +1 -1
  159. esphome/components/esp32_ble_client/ble_characteristic.cpp +4 -4
  160. esphome/components/esp32_ble_client/ble_characteristic.h +6 -4
  161. esphome/components/esp32_ble_client/ble_client_base.cpp +155 -104
  162. esphome/components/esp32_ble_client/ble_client_base.h +17 -6
  163. esphome/components/esp32_ble_client/ble_descriptor.h +6 -4
  164. esphome/components/esp32_ble_client/ble_service.cpp +4 -4
  165. esphome/components/esp32_ble_client/ble_service.h +6 -4
  166. esphome/components/esp32_ble_server/__init__.py +15 -12
  167. esphome/components/esp32_ble_tracker/__init__.py +79 -11
  168. esphome/components/esp32_ble_tracker/automation.h +4 -4
  169. esphome/components/esp32_ble_tracker/esp32_ble_tracker.cpp +264 -261
  170. esphome/components/esp32_ble_tracker/esp32_ble_tracker.h +103 -37
  171. esphome/components/esp32_camera/__init__.py +13 -1
  172. esphome/components/esp32_camera/esp32_camera.cpp +7 -2
  173. esphome/components/esp32_camera/esp32_camera.h +1 -0
  174. esphome/components/esp32_dac/esp32_dac.cpp +3 -19
  175. esphome/components/esp32_dac/esp32_dac.h +4 -8
  176. esphome/components/esp32_rmt_led_strip/led_strip.cpp +1 -6
  177. esphome/components/esp32_rmt_led_strip/light.py +1 -1
  178. esphome/components/esp32_touch/__init__.py +2 -3
  179. esphome/components/esp32_touch/esp32_touch.h +9 -6
  180. esphome/components/esp32_touch/esp32_touch_common.cpp +2 -0
  181. esphome/components/esp32_touch/esp32_touch_v1.cpp +7 -9
  182. esphome/components/esp32_touch/esp32_touch_v2.cpp +10 -6
  183. esphome/components/esp8266/__init__.py +3 -1
  184. esphome/components/esp8266_pwm/esp8266_pwm.cpp +0 -1
  185. esphome/components/esphome/ota/__init__.py +1 -2
  186. esphome/components/esphome/ota/ota_esphome.cpp +150 -77
  187. esphome/components/esphome/ota/ota_esphome.h +8 -1
  188. esphome/components/espnow/__init__.py +309 -0
  189. esphome/components/espnow/automation.h +175 -0
  190. esphome/components/espnow/espnow_component.cpp +468 -0
  191. esphome/components/espnow/espnow_component.h +183 -0
  192. esphome/components/espnow/espnow_err.h +19 -0
  193. esphome/components/espnow/espnow_packet.h +166 -0
  194. esphome/components/ethernet/__init__.py +7 -1
  195. esphome/components/ethernet/esp_eth_phy_jl1101.c +5 -0
  196. esphome/components/ethernet/ethernet_component.cpp +0 -1
  197. esphome/components/ethernet/ethernet_component.h +4 -0
  198. esphome/components/ethernet_info/ethernet_info_text_sensor.h +0 -3
  199. esphome/components/event/__init__.py +0 -1
  200. esphome/components/factory_reset/__init__.py +92 -0
  201. esphome/components/factory_reset/factory_reset.cpp +76 -0
  202. esphome/components/factory_reset/factory_reset.h +43 -0
  203. esphome/components/fan/__init__.py +0 -1
  204. esphome/components/fan/fan_traits.h +16 -0
  205. esphome/components/fastled_base/fastled_light.cpp +0 -1
  206. esphome/components/fastled_spi/light.py +1 -3
  207. esphome/components/fingerprint_grow/fingerprint_grow.cpp +0 -2
  208. esphome/components/font/__init__.py +9 -1
  209. esphome/components/fs3000/fs3000.cpp +0 -2
  210. esphome/components/ft5x06/touchscreen/ft5x06_touchscreen.cpp +0 -2
  211. esphome/components/ft63x6/ft63x6.cpp +0 -1
  212. esphome/components/gdk101/gdk101.cpp +0 -1
  213. esphome/components/gl_r01_i2c/gl_r01_i2c.cpp +0 -1
  214. esphome/components/gl_r01_i2c/sensor.py +1 -1
  215. esphome/components/gpio/one_wire/gpio_one_wire.cpp +0 -1
  216. esphome/components/gpio/switch/gpio_switch.cpp +0 -2
  217. esphome/components/gpio_expander/cached_gpio.h +24 -15
  218. esphome/components/gps/__init__.py +6 -2
  219. esphome/components/gps/gps.cpp +50 -49
  220. esphome/components/gps/gps.h +4 -8
  221. esphome/components/gps/time/gps_time.cpp +3 -9
  222. esphome/components/gps/time/gps_time.h +4 -7
  223. esphome/components/graph/__init__.py +1 -1
  224. esphome/components/grove_gas_mc_v2/grove_gas_mc_v2.cpp +0 -1
  225. esphome/components/grove_tb6612fng/grove_tb6612fng.cpp +0 -1
  226. esphome/components/gt911/touchscreen/gt911_touchscreen.cpp +21 -12
  227. esphome/components/gt911/touchscreen/gt911_touchscreen.h +26 -2
  228. esphome/components/haier/climate.py +5 -10
  229. esphome/components/haier/haier_base.cpp +0 -1
  230. esphome/components/hbridge/switch/hbridge_switch.cpp +0 -2
  231. esphome/components/hdc1080/hdc1080.cpp +0 -2
  232. esphome/components/heatpumpir/climate.py +2 -2
  233. esphome/components/hlw8012/hlw8012.cpp +0 -1
  234. esphome/components/hm3301/hm3301.cpp +0 -1
  235. esphome/components/hmc5883l/hmc5883l.cpp +0 -1
  236. esphome/components/homeassistant/__init__.py +1 -0
  237. esphome/components/homeassistant/number/__init__.py +1 -0
  238. esphome/components/homeassistant/number/homeassistant_number.cpp +11 -7
  239. esphome/components/homeassistant/switch/__init__.py +1 -0
  240. esphome/components/homeassistant/switch/homeassistant_switch.cpp +9 -5
  241. esphome/components/honeywellabp/honeywellabp.cpp +1 -4
  242. esphome/components/host/__init__.py +2 -0
  243. esphome/components/hte501/hte501.cpp +0 -1
  244. esphome/components/http_request/__init__.py +2 -3
  245. esphome/components/http_request/http_request_idf.cpp +2 -2
  246. esphome/components/htu21d/htu21d.cpp +0 -2
  247. esphome/components/htu31d/htu31d.cpp +0 -2
  248. esphome/components/hx711/hx711.cpp +0 -1
  249. esphome/components/hydreon_rgxx/hydreon_rgxx.cpp +0 -1
  250. esphome/components/hydreon_rgxx/sensor.py +4 -5
  251. esphome/components/i2c/i2c_bus.h +1 -1
  252. esphome/components/i2c/i2c_bus_arduino.cpp +1 -2
  253. esphome/components/i2c/i2c_bus_esp_idf.cpp +192 -17
  254. esphome/components/i2c/i2c_bus_esp_idf.h +11 -1
  255. esphome/components/i2s_audio/__init__.py +6 -5
  256. esphome/components/i2s_audio/i2s_audio.cpp +0 -2
  257. esphome/components/i2s_audio/media_player/i2s_audio_media_player.cpp +1 -4
  258. esphome/components/i2s_audio/microphone/__init__.py +4 -6
  259. esphome/components/i2s_audio/microphone/i2s_audio_microphone.cpp +46 -19
  260. esphome/components/i2s_audio/microphone/i2s_audio_microphone.h +4 -3
  261. esphome/components/i2s_audio/speaker/i2s_audio_speaker.cpp +273 -269
  262. esphome/components/i2s_audio/speaker/i2s_audio_speaker.h +19 -34
  263. esphome/components/ili9xxx/display.py +4 -3
  264. esphome/components/ili9xxx/ili9xxx_display.cpp +0 -2
  265. esphome/components/image/__init__.py +123 -92
  266. esphome/components/improv_serial/__init__.py +7 -8
  267. esphome/components/ina219/ina219.cpp +0 -1
  268. esphome/components/ina226/ina226.cpp +0 -2
  269. esphome/components/ina260/ina260.cpp +0 -2
  270. esphome/components/ina2xx_base/__init__.py +2 -5
  271. esphome/components/ina2xx_base/ina2xx_base.cpp +0 -2
  272. esphome/components/ina3221/ina3221.cpp +0 -1
  273. esphome/components/internal_temperature/internal_temperature.cpp +0 -2
  274. esphome/components/interval/interval.h +5 -9
  275. esphome/components/json/__init__.py +1 -1
  276. esphome/components/kmeteriso/kmeteriso.cpp +0 -2
  277. esphome/components/lc709203f/lc709203f.cpp +0 -2
  278. esphome/components/lcd_gpio/display.py +1 -3
  279. esphome/components/lcd_gpio/gpio_lcd_display.cpp +0 -1
  280. esphome/components/lcd_pcf8574/pcf8574_display.cpp +0 -1
  281. esphome/components/ld2410/__init__.py +4 -6
  282. esphome/components/ld2410/binary_sensor.py +4 -0
  283. esphome/components/ld2410/ld2410.cpp +56 -100
  284. esphome/components/ld2410/ld2410.h +17 -15
  285. esphome/components/ld2410/sensor.py +24 -10
  286. esphome/components/ld2412/__init__.py +46 -0
  287. esphome/components/ld2412/binary_sensor.py +70 -0
  288. esphome/components/ld2412/button/__init__.py +74 -0
  289. esphome/components/ld2412/button/factory_reset_button.cpp +9 -0
  290. esphome/components/ld2412/button/factory_reset_button.h +18 -0
  291. esphome/components/ld2412/button/query_button.cpp +9 -0
  292. esphome/components/ld2412/button/query_button.h +18 -0
  293. esphome/components/ld2412/button/restart_button.cpp +9 -0
  294. esphome/components/ld2412/button/restart_button.h +18 -0
  295. esphome/components/ld2412/button/start_dynamic_background_correction_button.cpp +11 -0
  296. esphome/components/ld2412/button/start_dynamic_background_correction_button.h +18 -0
  297. esphome/components/ld2412/ld2412.cpp +861 -0
  298. esphome/components/ld2412/ld2412.h +141 -0
  299. esphome/components/ld2412/number/__init__.py +126 -0
  300. esphome/components/ld2412/number/gate_threshold_number.cpp +14 -0
  301. esphome/components/ld2412/number/gate_threshold_number.h +19 -0
  302. esphome/components/ld2412/number/light_threshold_number.cpp +12 -0
  303. esphome/components/ld2412/number/light_threshold_number.h +18 -0
  304. esphome/components/ld2412/number/max_distance_timeout_number.cpp +12 -0
  305. esphome/components/ld2412/number/max_distance_timeout_number.h +18 -0
  306. esphome/components/ld2412/select/__init__.py +82 -0
  307. esphome/components/ld2412/select/baud_rate_select.cpp +12 -0
  308. esphome/components/ld2412/select/baud_rate_select.h +18 -0
  309. esphome/components/ld2412/select/distance_resolution_select.cpp +12 -0
  310. esphome/components/ld2412/select/distance_resolution_select.h +18 -0
  311. esphome/components/ld2412/select/light_out_control_select.cpp +12 -0
  312. esphome/components/ld2412/select/light_out_control_select.h +18 -0
  313. esphome/components/ld2412/sensor.py +124 -0
  314. esphome/components/ld2412/switch/__init__.py +45 -0
  315. esphome/components/ld2412/switch/bluetooth_switch.cpp +12 -0
  316. esphome/components/ld2412/switch/bluetooth_switch.h +18 -0
  317. esphome/components/ld2412/switch/engineering_mode_switch.cpp +12 -0
  318. esphome/components/ld2412/switch/engineering_mode_switch.h +18 -0
  319. esphome/components/ld2412/text_sensor.py +34 -0
  320. esphome/components/ld2420/ld2420.cpp +0 -1
  321. esphome/components/ld2450/__init__.py +3 -4
  322. esphome/components/ld2450/binary_sensor.py +3 -0
  323. esphome/components/ld2450/ld2450.cpp +77 -165
  324. esphome/components/ld2450/ld2450.h +26 -54
  325. esphome/components/ld2450/sensor.py +120 -6
  326. esphome/components/ld2450/text_sensor.py +5 -4
  327. esphome/components/ld24xx/__init__.py +1 -0
  328. esphome/components/ld24xx/ld24xx.h +65 -0
  329. esphome/components/ledc/ledc_output.cpp +0 -1
  330. esphome/components/libretiny/__init__.py +2 -0
  331. esphome/components/light/__init__.py +0 -1
  332. esphome/components/light/effects.py +70 -45
  333. esphome/components/light/light_call.cpp +101 -66
  334. esphome/components/light/light_color_values.h +16 -11
  335. esphome/components/light/light_json_schema.cpp +46 -44
  336. esphome/components/light/light_state.cpp +8 -11
  337. esphome/components/light/light_traits.h +17 -0
  338. esphome/components/lightwaverf/lightwaverf.cpp +0 -2
  339. esphome/components/lilygo_t5_47/touchscreen/lilygo_t5_47_touchscreen.cpp +0 -1
  340. esphome/components/lock/__init__.py +0 -1
  341. esphome/components/logger/__init__.py +31 -9
  342. esphome/components/logger/logger.cpp +12 -7
  343. esphome/components/logger/logger.h +25 -14
  344. esphome/components/logger/logger_esp32.cpp +2 -7
  345. esphome/components/logger/logger_esp8266.cpp +2 -4
  346. esphome/components/logger/logger_host.cpp +2 -4
  347. esphome/components/logger/logger_libretiny.cpp +2 -4
  348. esphome/components/logger/logger_rp2040.cpp +2 -4
  349. esphome/components/logger/logger_zephyr.cpp +86 -0
  350. esphome/components/logger/select/logger_level_select.cpp +2 -4
  351. esphome/components/logger/select/logger_level_select.h +2 -4
  352. esphome/components/logger/task_log_buffer.cpp +2 -4
  353. esphome/components/logger/task_log_buffer.h +2 -4
  354. esphome/components/lps22/sensor.py +5 -5
  355. esphome/components/ltr390/ltr390.cpp +0 -2
  356. esphome/components/ltr501/ltr501.cpp +0 -1
  357. esphome/components/ltr_als_ps/ltr_als_ps.cpp +0 -1
  358. esphome/components/lvgl/__init__.py +14 -13
  359. esphome/components/lvgl/automation.py +2 -4
  360. esphome/components/lvgl/defines.py +0 -2
  361. esphome/components/lvgl/helpers.py +1 -1
  362. esphome/components/lvgl/lv_validation.py +7 -4
  363. esphome/components/lvgl/lvgl_esphome.cpp +2 -3
  364. esphome/components/lvgl/styles.py +2 -2
  365. esphome/components/lvgl/types.py +1 -1
  366. esphome/components/lvgl/widgets/__init__.py +2 -2
  367. esphome/components/lvgl/widgets/arc.py +14 -11
  368. esphome/components/lvgl/widgets/buttonmatrix.py +1 -1
  369. esphome/components/lvgl/widgets/qrcode.py +7 -7
  370. esphome/components/lvgl/widgets/spinner.py +6 -6
  371. esphome/components/lvgl/widgets/switch.py +2 -2
  372. esphome/components/lvgl/widgets/tabview.py +3 -3
  373. esphome/components/lvgl/widgets/tileview.py +15 -7
  374. esphome/components/m5stack_8angle/m5stack_8angle.cpp +0 -1
  375. esphome/components/matrix_keypad/__init__.py +4 -3
  376. esphome/components/max17043/max17043.cpp +0 -2
  377. esphome/components/max31855/max31855.cpp +1 -4
  378. esphome/components/max31856/max31856.cpp +0 -4
  379. esphome/components/max31865/max31865.cpp +0 -1
  380. esphome/components/max44009/max44009.cpp +0 -1
  381. esphome/components/max6675/max6675.cpp +1 -4
  382. esphome/components/max6956/max6956.cpp +0 -1
  383. esphome/components/max7219/max7219.cpp +0 -1
  384. esphome/components/max7219digit/display.py +1 -1
  385. esphome/components/max7219digit/max7219digit.cpp +0 -1
  386. esphome/components/max9611/max9611.cpp +0 -1
  387. esphome/components/mcp23008/__init__.py +1 -1
  388. esphome/components/mcp23008/mcp23008.cpp +0 -1
  389. esphome/components/mcp23016/mcp23016.cpp +0 -1
  390. esphome/components/mcp23017/__init__.py +1 -1
  391. esphome/components/mcp23017/mcp23017.cpp +0 -1
  392. esphome/components/mcp23s08/__init__.py +1 -1
  393. esphome/components/mcp23s08/mcp23s08.cpp +0 -1
  394. esphome/components/mcp23s17/__init__.py +1 -1
  395. esphome/components/mcp23s17/mcp23s17.cpp +0 -1
  396. esphome/components/mcp23x08_base/__init__.py +2 -0
  397. esphome/components/mcp23x08_base/mcp23x08_base.cpp +9 -7
  398. esphome/components/mcp23x08_base/mcp23x08_base.h +9 -4
  399. esphome/components/mcp23x17_base/__init__.py +2 -0
  400. esphome/components/mcp23x17_base/mcp23x17_base.cpp +20 -7
  401. esphome/components/mcp23x17_base/mcp23x17_base.h +9 -4
  402. esphome/components/mcp23xxx_base/__init__.py +11 -5
  403. esphome/components/mcp23xxx_base/mcp23xxx_base.cpp +15 -12
  404. esphome/components/mcp23xxx_base/mcp23xxx_base.h +8 -7
  405. esphome/components/mcp3008/mcp3008.cpp +1 -4
  406. esphome/components/mcp3204/mcp3204.cpp +1 -4
  407. esphome/components/mcp4461/mcp4461.cpp +0 -1
  408. esphome/components/mcp4725/mcp4725.cpp +0 -1
  409. esphome/components/mcp4728/mcp4728.cpp +0 -1
  410. esphome/components/mcp9600/mcp9600.cpp +0 -2
  411. esphome/components/mcp9808/mcp9808.cpp +0 -2
  412. esphome/components/mdns/__init__.py +3 -0
  413. esphome/components/mdns/mdns_component.cpp +2 -0
  414. esphome/components/mdns/mdns_component.h +4 -0
  415. esphome/components/media_player/__init__.py +40 -0
  416. esphome/components/media_player/automation.h +16 -0
  417. esphome/components/media_player/media_player.cpp +13 -0
  418. esphome/components/media_player/media_player.h +50 -3
  419. esphome/components/micro_wake_word/micro_wake_word.cpp +0 -3
  420. esphome/components/mics_4514/mics_4514.cpp +1 -6
  421. esphome/components/midea/ir_transmitter.h +4 -4
  422. esphome/components/mipi/__init__.py +416 -0
  423. esphome/components/mipi_dsi/__init__.py +5 -0
  424. esphome/components/mipi_dsi/display.py +233 -0
  425. esphome/components/mipi_dsi/mipi_dsi.cpp +379 -0
  426. esphome/components/mipi_dsi/mipi_dsi.h +123 -0
  427. esphome/components/mipi_dsi/models/__init__.py +0 -0
  428. esphome/components/mipi_dsi/models/guition.py +38 -0
  429. esphome/components/mipi_dsi/models/m5stack.py +57 -0
  430. esphome/components/mipi_dsi/models/waveshare.py +105 -0
  431. esphome/components/mipi_rgb/models/lilygo.py +0 -0
  432. esphome/components/mipi_spi/__init__.py +0 -9
  433. esphome/components/mipi_spi/display.py +220 -256
  434. esphome/components/mipi_spi/mipi_spi.cpp +1 -485
  435. esphome/components/mipi_spi/mipi_spi.h +556 -108
  436. esphome/components/mipi_spi/models/__init__.py +0 -65
  437. esphome/components/mipi_spi/models/adafruit.py +30 -0
  438. esphome/components/mipi_spi/models/amoled.py +41 -5
  439. esphome/components/mipi_spi/models/ili.py +5 -5
  440. esphome/components/mipi_spi/models/jc.py +1 -3
  441. esphome/components/mipi_spi/models/lilygo.py +1 -1
  442. esphome/components/mipi_spi/models/waveshare.py +16 -1
  443. esphome/components/mixer/speaker/__init__.py +4 -5
  444. esphome/components/mlx90393/sensor.py +7 -5
  445. esphome/components/mlx90393/sensor_mlx90393.cpp +0 -1
  446. esphome/components/mlx90614/mlx90614.cpp +0 -1
  447. esphome/components/mmc5603/mmc5603.cpp +0 -1
  448. esphome/components/mmc5983/mmc5983.cpp +0 -2
  449. esphome/components/mpl3115a2/mpl3115a2.cpp +0 -2
  450. esphome/components/mpr121/__init__.py +7 -6
  451. esphome/components/mpr121/mpr121.cpp +0 -1
  452. esphome/components/mpu6050/mpu6050.cpp +0 -1
  453. esphome/components/mpu6886/mpu6886.cpp +0 -1
  454. esphome/components/mqtt/__init__.py +1 -2
  455. esphome/components/mqtt/mqtt_button.cpp +1 -1
  456. esphome/components/mqtt/mqtt_client.cpp +0 -1
  457. esphome/components/mqtt/mqtt_component.cpp +8 -14
  458. esphome/components/mqtt/mqtt_component.h +0 -7
  459. esphome/components/mqtt/mqtt_sensor.cpp +0 -1
  460. esphome/components/mqtt/mqtt_sensor.h +0 -1
  461. esphome/components/mqtt/mqtt_text_sensor.cpp +0 -1
  462. esphome/components/mqtt/mqtt_text_sensor.h +0 -1
  463. esphome/components/ms5611/ms5611.cpp +0 -1
  464. esphome/components/ms8607/ms8607.cpp +0 -1
  465. esphome/components/msa3xx/msa3xx.cpp +0 -2
  466. esphome/components/my9231/my9231.cpp +0 -2
  467. esphome/components/nau7802/nau7802.cpp +0 -1
  468. esphome/components/neopixelbus/light.py +3 -0
  469. esphome/components/network/util.cpp +29 -0
  470. esphome/components/nextion/nextion.cpp +0 -1
  471. esphome/components/nfc/binary_sensor/{binary_sensor.cpp → nfc_binary_sensor.cpp} +1 -1
  472. esphome/components/npi19/npi19.cpp +0 -2
  473. esphome/components/nrf52/__init__.py +223 -0
  474. esphome/components/nrf52/boards.py +34 -0
  475. esphome/components/nrf52/const.py +18 -0
  476. esphome/components/nrf52/gpio.py +79 -0
  477. esphome/components/number/__init__.py +2 -1
  478. esphome/components/one_wire/__init__.py +1 -2
  479. esphome/components/one_wire/one_wire.cpp +0 -2
  480. esphome/components/one_wire/one_wire.h +0 -2
  481. esphome/components/opentherm/hub.cpp +0 -1
  482. esphome/components/opentherm/number/__init__.py +2 -2
  483. esphome/components/openthread/__init__.py +2 -3
  484. esphome/components/openthread/openthread.cpp +30 -13
  485. esphome/components/openthread/openthread.h +3 -0
  486. esphome/components/openthread/openthread_esp.cpp +3 -1
  487. esphome/components/opt3001/sensor.py +2 -6
  488. esphome/components/output/__init__.py +38 -0
  489. esphome/components/output/automation.h +24 -0
  490. esphome/components/output/switch/output_switch.cpp +0 -2
  491. esphome/components/packages/__init__.py +1 -2
  492. esphome/components/packet_transport/__init__.py +4 -3
  493. esphome/components/pca6416a/pca6416a.cpp +0 -1
  494. esphome/components/pca9554/pca9554.cpp +0 -1
  495. esphome/components/pca9685/pca9685_output.cpp +0 -2
  496. esphome/components/pcf85063/pcf85063.cpp +0 -1
  497. esphome/components/pcf8563/pcf8563.cpp +0 -1
  498. esphome/components/pcf8574/pcf8574.cpp +0 -1
  499. esphome/components/pi4ioe5v6408/pi4ioe5v6408.cpp +0 -1
  500. esphome/components/pipsolar/sensor/__init__.py +1 -1
  501. esphome/components/pm2005/pm2005.cpp +0 -1
  502. esphome/components/pmsa003i/pmsa003i.cpp +0 -2
  503. esphome/components/pmwcs3/sensor.py +1 -2
  504. esphome/components/pn532/pn532.cpp +0 -2
  505. esphome/components/pn532_spi/pn532_spi.cpp +0 -2
  506. esphome/components/power_supply/power_supply.cpp +7 -10
  507. esphome/components/power_supply/power_supply.h +1 -1
  508. esphome/components/psram/__init__.py +2 -1
  509. esphome/components/pulse_counter/pulse_counter_sensor.cpp +0 -1
  510. esphome/components/pulse_counter/sensor.py +9 -6
  511. esphome/components/pylontech/pylontech.cpp +0 -1
  512. esphome/components/qmc5883l/qmc5883l.cpp +0 -1
  513. esphome/components/qmp6988/qmp6988.cpp +0 -2
  514. esphome/components/qspi_dbi/display.py +2 -3
  515. esphome/components/qspi_dbi/qspi_dbi.cpp +0 -2
  516. esphome/components/qwiic_pir/binary_sensor.py +2 -3
  517. esphome/components/qwiic_pir/qwiic_pir.cpp +0 -2
  518. esphome/components/rc522/rc522.cpp +9 -31
  519. esphome/components/rc522_spi/rc522_spi.cpp +0 -1
  520. esphome/components/remote_base/__init__.py +5 -6
  521. esphome/components/remote_receiver/remote_receiver_esp32.cpp +0 -1
  522. esphome/components/remote_receiver/remote_receiver_esp8266.cpp +0 -1
  523. esphome/components/remote_receiver/remote_receiver_libretiny.cpp +0 -1
  524. esphome/components/remote_transmitter/__init__.py +26 -0
  525. esphome/components/remote_transmitter/automation.h +18 -0
  526. esphome/components/remote_transmitter/remote_transmitter.h +2 -1
  527. esphome/components/remote_transmitter/remote_transmitter_esp32.cpp +0 -1
  528. esphome/components/remote_transmitter/remote_transmitter_esp8266.cpp +2 -0
  529. esphome/components/remote_transmitter/remote_transmitter_libretiny.cpp +2 -0
  530. esphome/components/resampler/speaker/__init__.py +4 -5
  531. esphome/components/rf_bridge/__init__.py +4 -8
  532. esphome/components/rotary_encoder/rotary_encoder.cpp +0 -2
  533. esphome/components/rp2040/__init__.py +3 -1
  534. esphome/components/rp2040_pio_led_strip/led_strip.cpp +0 -2
  535. esphome/components/rp2040_pio_led_strip/light.py +1 -2
  536. esphome/components/rp2040_pwm/rp2040_pwm.cpp +1 -5
  537. esphome/components/rpi_dpi_rgb/display.py +13 -15
  538. esphome/components/rpi_dpi_rgb/rpi_dpi_rgb.cpp +0 -3
  539. esphome/components/runtime_stats/__init__.py +34 -0
  540. esphome/components/runtime_stats/runtime_stats.cpp +102 -0
  541. esphome/components/runtime_stats/runtime_stats.h +132 -0
  542. esphome/components/scd30/scd30.cpp +0 -2
  543. esphome/components/scd30/sensor.py +1 -2
  544. esphome/components/scd4x/scd4x.cpp +0 -1
  545. esphome/components/scd4x/sensor.py +1 -3
  546. esphome/components/sdl/display.py +3 -1
  547. esphome/components/sdl/sdl_esphome.cpp +0 -2
  548. esphome/components/sdp3x/sdp3x.cpp +0 -2
  549. esphome/components/seeed_mr24hpc1/seeed_mr24hpc1.cpp +0 -2
  550. esphome/components/seeed_mr60fda2/seeed_mr60fda2.cpp +0 -3
  551. esphome/components/select/__init__.py +2 -3
  552. esphome/components/select/select_traits.cpp +1 -1
  553. esphome/components/select/select_traits.h +1 -1
  554. esphome/components/sen0321/sen0321.cpp +0 -1
  555. esphome/components/sen5x/sen5x.cpp +0 -2
  556. esphome/components/sensor/__init__.py +36 -4
  557. esphome/components/sensor/filter.cpp +49 -10
  558. esphome/components/sensor/filter.h +22 -7
  559. esphome/components/sensor/sensor.cpp +0 -1
  560. esphome/components/sensor/sensor.h +0 -9
  561. esphome/components/sfa30/sfa30.cpp +0 -4
  562. esphome/components/sgp30/sgp30.cpp +0 -2
  563. esphome/components/sgp4x/sensor.py +1 -1
  564. esphome/components/sgp4x/sgp4x.cpp +0 -2
  565. esphome/components/shelly_dimmer/shelly_dimmer.cpp +0 -2
  566. esphome/components/sht3xd/sht3xd.cpp +0 -2
  567. esphome/components/sht4x/sht4x.cpp +0 -2
  568. esphome/components/shtcx/shtcx.cpp +0 -1
  569. esphome/components/sim800l/__init__.py +2 -4
  570. esphome/components/sm16716/sm16716.cpp +0 -1
  571. esphome/components/sm2135/sm2135.cpp +0 -1
  572. esphome/components/sm2235/sm2235.cpp +0 -1
  573. esphome/components/sm2335/sm2335.cpp +0 -1
  574. esphome/components/sn74hc165/sn74hc165.cpp +0 -1
  575. esphome/components/sn74hc595/sn74hc595.cpp +0 -1
  576. esphome/components/sntp/sntp_component.cpp +0 -1
  577. esphome/components/sound_level/sensor.py +1 -1
  578. esphome/components/speaker/media_player/__init__.py +21 -33
  579. esphome/components/speaker/media_player/audio_pipeline.cpp +4 -7
  580. esphome/components/spi/__init__.py +29 -13
  581. esphome/components/spi/spi.cpp +0 -2
  582. esphome/components/spi_device/spi_device.cpp +1 -4
  583. esphome/components/sprinkler/__init__.py +4 -4
  584. esphome/components/sps30/sps30.cpp +0 -1
  585. esphome/components/ssd1306_base/__init__.py +11 -11
  586. esphome/components/ssd1306_base/ssd1306_base.cpp +1 -1
  587. esphome/components/ssd1306_i2c/ssd1306_i2c.cpp +0 -1
  588. esphome/components/ssd1306_spi/ssd1306_spi.cpp +0 -1
  589. esphome/components/ssd1322_spi/ssd1322_spi.cpp +0 -1
  590. esphome/components/ssd1325_spi/ssd1325_spi.cpp +0 -1
  591. esphome/components/ssd1327_i2c/ssd1327_i2c.cpp +0 -1
  592. esphome/components/ssd1327_spi/ssd1327_spi.cpp +0 -1
  593. esphome/components/ssd1331_spi/ssd1331_spi.cpp +0 -1
  594. esphome/components/ssd1351_spi/ssd1351_spi.cpp +0 -1
  595. esphome/components/st7567_i2c/st7567_i2c.cpp +0 -1
  596. esphome/components/st7567_spi/st7567_spi.cpp +0 -1
  597. esphome/components/st7701s/display.py +10 -14
  598. esphome/components/st7701s/st7701s.cpp +0 -3
  599. esphome/components/st7735/st7735.cpp +0 -1
  600. esphome/components/st7789v/st7789v.cpp +0 -1
  601. esphome/components/st7920/st7920.cpp +0 -1
  602. esphome/components/status_led/light/status_led_light.cpp +0 -2
  603. esphome/components/status_led/status_led.cpp +0 -1
  604. esphome/components/stepper/__init__.py +2 -4
  605. esphome/components/sts3x/sts3x.cpp +0 -1
  606. esphome/components/substitutions/__init__.py +10 -16
  607. esphome/components/substitutions/jinja.py +24 -1
  608. esphome/components/sun/__init__.py +2 -3
  609. esphome/components/switch/__init__.py +31 -1
  610. esphome/components/switch/automation.h +24 -0
  611. esphome/components/switch/switch.cpp +8 -0
  612. esphome/components/switch/switch.h +8 -0
  613. esphome/components/sx126x/sx126x.cpp +0 -2
  614. esphome/components/sx127x/sx127x.cpp +0 -2
  615. esphome/components/sx1509/__init__.py +7 -5
  616. esphome/components/sx1509/output/sx1509_float_output.cpp +1 -1
  617. esphome/components/sx1509/sx1509.cpp +0 -2
  618. esphome/components/syslog/esphome_syslog.cpp +1 -1
  619. esphome/components/tc74/tc74.cpp +0 -1
  620. esphome/components/tca9548a/tca9548a.cpp +0 -1
  621. esphome/components/tca9555/tca9555.cpp +0 -1
  622. esphome/components/tcs34725/tcs34725.cpp +0 -1
  623. esphome/components/tee501/tee501.cpp +0 -1
  624. esphome/components/tem3200/tem3200.cpp +0 -2
  625. esphome/components/template/alarm_control_panel/template_alarm_control_panel.cpp +0 -1
  626. esphome/components/template/cover/template_cover.cpp +0 -1
  627. esphome/components/template/select/template_select.cpp +0 -1
  628. esphome/components/template/text/template_text.cpp +0 -2
  629. esphome/components/template/valve/template_valve.cpp +0 -1
  630. esphome/components/text/__init__.py +0 -1
  631. esphome/components/text/text_traits.h +2 -0
  632. esphome/components/text_sensor/__init__.py +2 -1
  633. esphome/components/text_sensor/text_sensor.cpp +0 -2
  634. esphome/components/text_sensor/text_sensor.h +0 -8
  635. esphome/components/thermostat/climate.py +4 -4
  636. esphome/components/time/__init__.py +7 -4
  637. esphome/components/time/real_time_clock.cpp +16 -3
  638. esphome/components/tlc59208f/tlc59208f_output.cpp +0 -2
  639. esphome/components/tlc5947/tlc5947.cpp +0 -2
  640. esphome/components/tlc5971/tlc5971.cpp +0 -2
  641. esphome/components/tm1621/tm1621.cpp +0 -2
  642. esphome/components/tm1637/tm1637.cpp +0 -2
  643. esphome/components/tm1638/tm1638.cpp +0 -2
  644. esphome/components/tm1651/__init__.py +45 -48
  645. esphome/components/tm1651/tm1651.cpp +213 -47
  646. esphome/components/tm1651/tm1651.h +37 -32
  647. esphome/components/tmp117/tmp117.cpp +0 -2
  648. esphome/components/tsl2561/tsl2561.cpp +0 -1
  649. esphome/components/tsl2591/tsl2591.cpp +0 -1
  650. esphome/components/tt21100/touchscreen/tt21100.cpp +0 -2
  651. esphome/components/ttp229_bsf/ttp229_bsf.cpp +0 -1
  652. esphome/components/ttp229_lsf/ttp229_lsf.cpp +0 -1
  653. esphome/components/tuya/climate/__init__.py +9 -10
  654. esphome/components/tuya/number/__init__.py +8 -6
  655. esphome/components/tx20/tx20.cpp +0 -1
  656. esphome/components/uart/uart_component_esp32_arduino.cpp +0 -1
  657. esphome/components/uart/uart_component_esp8266.cpp +0 -1
  658. esphome/components/uart/uart_component_esp_idf.cpp +0 -2
  659. esphome/components/uart/uart_component_libretiny.cpp +0 -2
  660. esphome/components/uart/uart_component_rp2040.cpp +0 -2
  661. esphome/components/udp/__init__.py +1 -1
  662. esphome/components/ufire_ec/sensor.py +1 -2
  663. esphome/components/ufire_ec/ufire_ec.cpp +0 -2
  664. esphome/components/ufire_ise/sensor.py +1 -2
  665. esphome/components/ufire_ise/ufire_ise.cpp +0 -2
  666. esphome/components/ultrasonic/ultrasonic_sensor.cpp +0 -1
  667. esphome/components/update/__init__.py +0 -1
  668. esphome/components/uptime/sensor/uptime_seconds_sensor.cpp +0 -1
  669. esphome/components/uptime/sensor/uptime_seconds_sensor.h +0 -2
  670. esphome/components/usb_host/usb_host_client.cpp +0 -1
  671. esphome/components/usb_host/usb_host_component.cpp +0 -1
  672. esphome/components/valve/__init__.py +0 -1
  673. esphome/components/veml3235/veml3235.cpp +0 -3
  674. esphome/components/veml7700/veml7700.cpp +0 -2
  675. esphome/components/version/version_text_sensor.cpp +0 -1
  676. esphome/components/version/version_text_sensor.h +0 -1
  677. esphome/components/vl53l0x/vl53l0x_sensor.cpp +0 -4
  678. esphome/components/voice_assistant/voice_assistant.cpp +9 -8
  679. esphome/components/web_server/__init__.py +13 -0
  680. esphome/components/web_server/web_server.cpp +187 -352
  681. esphome/components/web_server/web_server.h +61 -1
  682. esphome/components/web_server_base/__init__.py +1 -1
  683. esphome/components/web_server_base/web_server_base.cpp +2 -0
  684. esphome/components/web_server_base/web_server_base.h +6 -0
  685. esphome/components/web_server_idf/web_server_idf.cpp +10 -8
  686. esphome/components/web_server_idf/web_server_idf.h +2 -0
  687. esphome/components/weikai_i2c/weikai_i2c.cpp +1 -2
  688. esphome/components/weikai_spi/weikai_spi.cpp +1 -1
  689. esphome/components/wifi/__init__.py +8 -43
  690. esphome/components/wifi/wifi_component.cpp +100 -36
  691. esphome/components/wifi/wifi_component.h +5 -1
  692. esphome/components/wifi/wifi_component_esp32_arduino.cpp +30 -0
  693. esphome/components/wifi/wifi_component_esp_idf.cpp +30 -0
  694. esphome/components/wifi_info/wifi_info_text_sensor.h +0 -6
  695. esphome/components/wifi_signal/wifi_signal_sensor.h +0 -1
  696. esphome/components/wireguard/wireguard.cpp +0 -2
  697. esphome/components/x9c/x9c.cpp +0 -2
  698. esphome/components/xgzp68xx/xgzp68xx.cpp +0 -1
  699. esphome/components/xl9535/xl9535.cpp +0 -2
  700. esphome/components/zephyr/__init__.py +252 -0
  701. esphome/components/zephyr/const.py +16 -0
  702. esphome/components/zephyr/core.cpp +90 -0
  703. esphome/components/zephyr/gpio.cpp +120 -0
  704. esphome/components/zephyr/gpio.h +38 -0
  705. esphome/components/zephyr/pre_build.py.script +4 -0
  706. esphome/components/zephyr/preferences.cpp +156 -0
  707. esphome/components/zephyr/preferences.h +13 -0
  708. esphome/config.py +38 -16
  709. esphome/config_helpers.py +1 -2
  710. esphome/config_validation.py +8 -15
  711. esphome/const.py +26 -1
  712. esphome/core/__init__.py +88 -51
  713. esphome/core/application.cpp +75 -21
  714. esphome/core/application.h +106 -171
  715. esphome/core/color.h +10 -0
  716. esphome/core/component.cpp +41 -25
  717. esphome/core/component.h +9 -6
  718. esphome/core/component_iterator.cpp +61 -261
  719. esphome/core/component_iterator.h +15 -0
  720. esphome/core/config.py +26 -11
  721. esphome/core/defines.h +40 -2
  722. esphome/core/entity_base.h +18 -0
  723. esphome/core/entity_helpers.py +41 -6
  724. esphome/core/helpers.cpp +8 -15
  725. esphome/core/helpers.h +60 -6
  726. esphome/core/lock_free_queue.h +1 -1
  727. esphome/core/scheduler.cpp +277 -74
  728. esphome/core/scheduler.h +89 -27
  729. esphome/cpp_generator.py +2 -6
  730. esphome/cpp_helpers.py +1 -1
  731. esphome/dashboard/dashboard.py +2 -3
  732. esphome/dashboard/dns.py +2 -8
  733. esphome/dashboard/web_server.py +34 -19
  734. esphome/espota2.py +1 -4
  735. esphome/git.py +3 -1
  736. esphome/helpers.py +23 -4
  737. esphome/log.py +3 -1
  738. esphome/mqtt.py +3 -5
  739. esphome/platformio_api.py +7 -4
  740. esphome/types.py +12 -0
  741. esphome/util.py +20 -8
  742. esphome/voluptuous_schema.py +4 -3
  743. esphome/vscode.py +1 -2
  744. esphome/wizard.py +1 -4
  745. esphome/writer.py +5 -107
  746. esphome/yaml_util.py +7 -5
  747. {esphome-2025.7.4.dist-info → esphome-2025.8.0b1.dist-info}/METADATA +12 -13
  748. {esphome-2025.7.4.dist-info → esphome-2025.8.0b1.dist-info}/RECORD +753 -673
  749. esphome/components/mipi_spi/models/commands.py +0 -82
  750. /esphome/components/nfc/binary_sensor/{binary_sensor.h → nfc_binary_sensor.h} +0 -0
  751. {esphome-2025.7.4.dist-info → esphome-2025.8.0b1.dist-info}/WHEEL +0 -0
  752. {esphome-2025.7.4.dist-info → esphome-2025.8.0b1.dist-info}/entry_points.txt +0 -0
  753. {esphome-2025.7.4.dist-info → esphome-2025.8.0b1.dist-info}/licenses/LICENSE +0 -0
  754. {esphome-2025.7.4.dist-info → esphome-2025.8.0b1.dist-info}/top_level.txt +0 -0
@@ -1,65 +0,0 @@
1
- from esphome.components.spi import TYPE_OCTAL, TYPE_QUAD, TYPE_SINGLE
2
- import esphome.config_validation as cv
3
- from esphome.const import CONF_HEIGHT, CONF_OFFSET_HEIGHT, CONF_OFFSET_WIDTH, CONF_WIDTH
4
-
5
- from .. import CONF_NATIVE_HEIGHT, CONF_NATIVE_WIDTH
6
-
7
- MADCTL_MY = 0x80 # Bit 7 Bottom to top
8
- MADCTL_MX = 0x40 # Bit 6 Right to left
9
- MADCTL_MV = 0x20 # Bit 5 Reverse Mode
10
- MADCTL_ML = 0x10 # Bit 4 LCD refresh Bottom to top
11
- MADCTL_RGB = 0x00 # Bit 3 Red-Green-Blue pixel order
12
- MADCTL_BGR = 0x08 # Bit 3 Blue-Green-Red pixel order
13
- MADCTL_MH = 0x04 # Bit 2 LCD refresh right to left
14
-
15
- # These bits are used instead of the above bits on some chips, where using MX and MY results in incorrect
16
- # partial updates.
17
- MADCTL_XFLIP = 0x02 # Mirror the display horizontally
18
- MADCTL_YFLIP = 0x01 # Mirror the display vertically
19
-
20
- DELAY_FLAG = 0xFFF # Special flag to indicate a delay
21
-
22
-
23
- def delay(ms):
24
- return DELAY_FLAG, ms
25
-
26
-
27
- class DriverChip:
28
- models = {}
29
-
30
- def __init__(
31
- self,
32
- name: str,
33
- modes=(TYPE_SINGLE, TYPE_QUAD, TYPE_OCTAL),
34
- initsequence=None,
35
- **defaults,
36
- ):
37
- name = name.upper()
38
- self.name = name
39
- self.modes = modes
40
- self.initsequence = initsequence
41
- self.defaults = defaults
42
- DriverChip.models[name] = self
43
-
44
- def extend(self, name, **kwargs):
45
- defaults = self.defaults.copy()
46
- if (
47
- CONF_WIDTH in defaults
48
- and CONF_OFFSET_WIDTH in kwargs
49
- and CONF_NATIVE_WIDTH not in defaults
50
- ):
51
- defaults[CONF_NATIVE_WIDTH] = defaults[CONF_WIDTH]
52
- if (
53
- CONF_HEIGHT in defaults
54
- and CONF_OFFSET_HEIGHT in kwargs
55
- and CONF_NATIVE_HEIGHT not in defaults
56
- ):
57
- defaults[CONF_NATIVE_HEIGHT] = defaults[CONF_HEIGHT]
58
- defaults.update(kwargs)
59
- return DriverChip(name, self.modes, initsequence=self.initsequence, **defaults)
60
-
61
- def get_default(self, key, fallback=False):
62
- return self.defaults.get(key, fallback)
63
-
64
- def option(self, name, fallback=False):
65
- return cv.Optional(name, default=self.get_default(name, fallback))
@@ -0,0 +1,30 @@
1
+ from .ili import ST7789V
2
+
3
+ ST7789V.extend(
4
+ "ADAFRUIT-FUNHOUSE",
5
+ height=240,
6
+ width=240,
7
+ offset_height=0,
8
+ offset_width=0,
9
+ cs_pin=40,
10
+ dc_pin=39,
11
+ reset_pin=41,
12
+ invert_colors=True,
13
+ mirror_x=True,
14
+ mirror_y=True,
15
+ data_rate="80MHz",
16
+ )
17
+
18
+ ST7789V.extend(
19
+ "ADAFRUIT-S2-TFT-FEATHER",
20
+ height=240,
21
+ width=135,
22
+ offset_height=52,
23
+ offset_width=40,
24
+ cs_pin=7,
25
+ dc_pin=39,
26
+ reset_pin=40,
27
+ invert_colors=True,
28
+ )
29
+
30
+ models = {}
@@ -1,9 +1,22 @@
1
+ from esphome.components.mipi import (
2
+ MIPI,
3
+ MODE_RGB,
4
+ NORON,
5
+ PAGESEL,
6
+ PIXFMT,
7
+ SLPOUT,
8
+ SPIMODESEL,
9
+ SWIRE1,
10
+ SWIRE2,
11
+ TEON,
12
+ WCE,
13
+ WRAM,
14
+ WRCTRLD,
15
+ DriverChip,
16
+ delay,
17
+ )
1
18
  from esphome.components.spi import TYPE_QUAD
2
19
 
3
- from .. import MODE_RGB
4
- from . import DriverChip, delay
5
- from .commands import MIPI, NORON, PAGESEL, PIXFMT, SLPOUT, SWIRE1, SWIRE2, TEON, WRAM
6
-
7
20
  DriverChip(
8
21
  "T-DISPLAY-S3-AMOLED",
9
22
  width=240,
@@ -67,6 +80,29 @@ RM690B0 = DriverChip(
67
80
  ),
68
81
  )
69
82
 
70
- T4_S3_AMOLED = RM690B0.extend("T4-S3", width=450, offset_width=16, bus_mode=TYPE_QUAD)
83
+ T4_S3_AMOLED = RM690B0.extend(
84
+ "T4-S3",
85
+ width=450,
86
+ offset_width=16,
87
+ cs_pin=11,
88
+ reset_pin=13,
89
+ enable_pin=9,
90
+ bus_mode=TYPE_QUAD,
91
+ )
92
+
93
+ CO5300 = DriverChip(
94
+ "CO5300",
95
+ brightness=0xD0,
96
+ color_order=MODE_RGB,
97
+ bus_mode=TYPE_QUAD,
98
+ initsequence=(
99
+ (SLPOUT,), # Requires early SLPOUT
100
+ (PAGESEL, 0x00),
101
+ (SPIMODESEL, 0x80),
102
+ (WRCTRLD, 0x20),
103
+ (WCE, 0x00),
104
+ ),
105
+ )
106
+
71
107
 
72
108
  models = {}
@@ -1,8 +1,4 @@
1
- from esphome.components.spi import TYPE_OCTAL
2
-
3
- from .. import MODE_RGB
4
- from . import DriverChip, delay
5
- from .commands import (
1
+ from esphome.components.mipi import (
6
2
  ADJCTL3,
7
3
  CSCON,
8
4
  DFUNCTR,
@@ -18,6 +14,7 @@ from .commands import (
18
14
  IFCTR,
19
15
  IFMODE,
20
16
  INVCTR,
17
+ MODE_RGB,
21
18
  NORON,
22
19
  PWCTR1,
23
20
  PWCTR2,
@@ -32,7 +29,10 @@ from .commands import (
32
29
  VMCTR1,
33
30
  VMCTR2,
34
31
  VSCRSADD,
32
+ DriverChip,
33
+ delay,
35
34
  )
35
+ from esphome.components.spi import TYPE_OCTAL
36
36
 
37
37
  DriverChip(
38
38
  "M5CORE",
@@ -1,10 +1,8 @@
1
+ from esphome.components.mipi import MODE_RGB, DriverChip
1
2
  from esphome.components.spi import TYPE_QUAD
2
3
  import esphome.config_validation as cv
3
4
  from esphome.const import CONF_IGNORE_STRAPPING_WARNING, CONF_NUMBER
4
5
 
5
- from .. import MODE_RGB
6
- from . import DriverChip
7
-
8
6
  AXS15231 = DriverChip(
9
7
  "AXS15231",
10
8
  draw_rounding=8,
@@ -1,6 +1,6 @@
1
+ from esphome.components.mipi import MODE_BGR
1
2
  from esphome.components.spi import TYPE_OCTAL
2
3
 
3
- from .. import MODE_BGR
4
4
  from .ili import ST7789V, ST7796
5
5
 
6
6
  ST7789V.extend(
@@ -1,4 +1,7 @@
1
- from . import DriverChip
1
+ from esphome.components.mipi import DriverChip
2
+ import esphome.config_validation as cv
3
+
4
+ from .amoled import CO5300
2
5
  from .ili import ILI9488_A
3
6
 
4
7
  DriverChip(
@@ -128,6 +131,7 @@ DriverChip(
128
131
 
129
132
  ILI9488_A.extend(
130
133
  "PICO-RESTOUCH-LCD-3.5",
134
+ swap_xy=cv.UNDEFINED,
131
135
  spi_16=True,
132
136
  pixel_mode="16bit",
133
137
  mirror_x=True,
@@ -137,3 +141,14 @@ ILI9488_A.extend(
137
141
  data_rate="20MHz",
138
142
  invert_colors=True,
139
143
  )
144
+
145
+ CO5300.extend(
146
+ "WAVESHARE-ESP32-S3-TOUCH-AMOLED-1.75",
147
+ width=466,
148
+ height=466,
149
+ pixel_mode="16bit",
150
+ offset_height=0,
151
+ offset_width=6,
152
+ cs_pin=12,
153
+ reset_pin=39,
154
+ )
@@ -124,11 +124,10 @@ async def to_code(config):
124
124
 
125
125
  if task_stack_in_psram := config.get(CONF_TASK_STACK_IN_PSRAM):
126
126
  cg.add(var.set_task_stack_in_psram(task_stack_in_psram))
127
- if task_stack_in_psram:
128
- if config[CONF_TASK_STACK_IN_PSRAM]:
129
- esp32.add_idf_sdkconfig_option(
130
- "CONFIG_SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY", True
131
- )
127
+ if task_stack_in_psram and config[CONF_TASK_STACK_IN_PSRAM]:
128
+ esp32.add_idf_sdkconfig_option(
129
+ "CONFIG_SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY", True
130
+ )
132
131
 
133
132
  for speaker_config in config[CONF_SOURCE_SPEAKERS]:
134
133
  source_speaker = cg.new_Pvariable(speaker_config[CONF_ID])
@@ -63,11 +63,13 @@ def _validate(config):
63
63
  raise cv.Invalid(
64
64
  f"{axis}: {CONF_RESOLUTION} cannot be {res} with {CONF_TEMPERATURE_COMPENSATION} enabled"
65
65
  )
66
- if config[CONF_HALLCONF] == 0xC:
67
- if (config[CONF_OVERSAMPLING], config[CONF_FILTER]) in [(0, 0), (1, 0), (0, 1)]:
68
- raise cv.Invalid(
69
- f"{CONF_OVERSAMPLING}=={config[CONF_OVERSAMPLING]} and {CONF_FILTER}=={config[CONF_FILTER]} not allowed with {CONF_HALLCONF}=={config[CONF_HALLCONF]:#02x}"
70
- )
66
+ if config[CONF_HALLCONF] == 0xC and (
67
+ config[CONF_OVERSAMPLING],
68
+ config[CONF_FILTER],
69
+ ) in [(0, 0), (1, 0), (0, 1)]:
70
+ raise cv.Invalid(
71
+ f"{CONF_OVERSAMPLING}=={config[CONF_OVERSAMPLING]} and {CONF_FILTER}=={config[CONF_FILTER]} not allowed with {CONF_HALLCONF}=={config[CONF_HALLCONF]:#02x}"
72
+ )
71
73
  return config
72
74
 
73
75
 
@@ -103,7 +103,6 @@ bool MLX90393Cls::apply_all_settings_() {
103
103
  }
104
104
 
105
105
  void MLX90393Cls::setup() {
106
- ESP_LOGCONFIG(TAG, "Running setup");
107
106
  // note the two arguments A0 and A1 which are used to construct an i2c address
108
107
  // we can hard-code these because we never actually use the constructed address
109
108
  // see the transceive function above, which uses the address from I2CComponent
@@ -28,7 +28,6 @@ static const uint8_t MLX90614_ID4 = 0x3F;
28
28
  static const char *const TAG = "mlx90614";
29
29
 
30
30
  void MLX90614Component::setup() {
31
- ESP_LOGCONFIG(TAG, "Running setup");
32
31
  if (!this->write_emissivity_()) {
33
32
  ESP_LOGE(TAG, ESP_LOG_MSG_COMM_FAIL);
34
33
  this->mark_failed();
@@ -31,7 +31,6 @@ 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, "Running setup");
35
34
  uint8_t id = 0;
36
35
  if (!this->read_byte(MMC56X3_PRODUCT_ID, &id)) {
37
36
  this->error_code_ = COMMUNICATION_FAILED;
@@ -67,8 +67,6 @@ void MMC5983Component::update() {
67
67
  }
68
68
 
69
69
  void MMC5983Component::setup() {
70
- ESP_LOGCONFIG(TAG, "Running setup");
71
-
72
70
  // Verify product id.
73
71
  const uint8_t mmc5983_product_id = 0x30;
74
72
  uint8_t id;
@@ -9,8 +9,6 @@ namespace mpl3115a2 {
9
9
  static const char *const TAG = "mpl3115a2";
10
10
 
11
11
  void MPL3115A2Component::setup() {
12
- ESP_LOGCONFIG(TAG, "Running setup");
13
-
14
12
  uint8_t whoami = 0xFF;
15
13
  if (!this->read_byte(MPL3115A2_WHOAMI, &whoami, false)) {
16
14
  this->error_code_ = COMMUNICATION_FAILED;
@@ -56,12 +56,13 @@ def _final_validate(config):
56
56
  for binary_sensor in binary_sensors:
57
57
  if binary_sensor.get(CONF_MPR121_ID) == config[CONF_ID]:
58
58
  max_touch_channel = max(max_touch_channel, binary_sensor[CONF_CHANNEL])
59
- if max_touch_channel_in_config := config.get(CONF_MAX_TOUCH_CHANNEL):
60
- if max_touch_channel != max_touch_channel_in_config:
61
- raise cv.Invalid(
62
- "Max touch channel must equal the highest binary sensor channel or be removed for auto calculation",
63
- path=[CONF_MAX_TOUCH_CHANNEL],
64
- )
59
+ if (
60
+ max_touch_channel_in_config := config.get(CONF_MAX_TOUCH_CHANNEL)
61
+ ) and max_touch_channel != max_touch_channel_in_config:
62
+ raise cv.Invalid(
63
+ "Max touch channel must equal the highest binary sensor channel or be removed for auto calculation",
64
+ path=[CONF_MAX_TOUCH_CHANNEL],
65
+ )
65
66
  path = fconf.get_path_for_id(config[CONF_ID])[:-1]
66
67
  this_config = fconf.get_config_for_path(path)
67
68
  this_config[CONF_MAX_TOUCH_CHANNEL] = max_touch_channel
@@ -11,7 +11,6 @@ namespace mpr121 {
11
11
  static const char *const TAG = "mpr121";
12
12
 
13
13
  void MPR121Component::setup() {
14
- ESP_LOGCONFIG(TAG, "Running setup");
15
14
  // soft reset device
16
15
  this->write_byte(MPR121_SOFTRESET, 0x63);
17
16
  delay(100); // NOLINT
@@ -21,7 +21,6 @@ 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, "Running setup");
25
24
  uint8_t who_am_i;
26
25
  if (!this->read_byte(MPU6050_REGISTER_WHO_AM_I, &who_am_i) ||
27
26
  (who_am_i != 0x68 && who_am_i != 0x70 && who_am_i != 0x98)) {
@@ -26,7 +26,6 @@ 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, "Running setup");
30
29
  uint8_t who_am_i;
31
30
  if (!this->read_byte(MPU6886_REGISTER_WHO_AM_I, &who_am_i) || who_am_i != MPU6886_WHO_AM_I_IDENTIFIER) {
32
31
  this->mark_failed();
@@ -312,14 +312,13 @@ CONFIG_SCHEMA = cv.All(
312
312
  def exp_mqtt_message(config):
313
313
  if config is None:
314
314
  return cg.optional(cg.TemplateArguments(MQTTMessage))
315
- exp = cg.StructInitializer(
315
+ return cg.StructInitializer(
316
316
  MQTTMessage,
317
317
  ("topic", config[CONF_TOPIC]),
318
318
  ("payload", config.get(CONF_PAYLOAD, "")),
319
319
  ("qos", config[CONF_QOS]),
320
320
  ("retain", config[CONF_RETAIN]),
321
321
  )
322
- return exp
323
322
 
324
323
 
325
324
  @coroutine_with_priority(40.0)
@@ -27,7 +27,7 @@ void MQTTButtonComponent::setup() {
27
27
  }
28
28
  void MQTTButtonComponent::dump_config() {
29
29
  ESP_LOGCONFIG(TAG, "MQTT Button '%s': ", this->button_->get_name().c_str());
30
- LOG_MQTT_COMPONENT(true, true);
30
+ LOG_MQTT_COMPONENT(false, true);
31
31
  }
32
32
 
33
33
  void MQTTButtonComponent::send_discovery(JsonObject root, mqtt::SendDiscoveryConfig &config) {
@@ -34,7 +34,6 @@ MQTTClientComponent::MQTTClientComponent() {
34
34
 
35
35
  // Connection
36
36
  void MQTTClientComponent::setup() {
37
- ESP_LOGCONFIG(TAG, "Running setup");
38
37
  this->mqtt_backend_.set_on_message(
39
38
  [this](const char *topic, const char *payload, size_t len, size_t index, size_t total) {
40
39
  if (index == 0)
@@ -129,21 +129,16 @@ bool MQTTComponent::send_discovery_() {
129
129
  root[MQTT_PAYLOAD_NOT_AVAILABLE] = this->availability_->payload_not_available;
130
130
  }
131
131
 
132
- std::string unique_id = this->unique_id();
133
132
  const MQTTDiscoveryInfo &discovery_info = global_mqtt_client->get_discovery_info();
134
- if (!unique_id.empty()) {
135
- root[MQTT_UNIQUE_ID] = unique_id;
133
+ if (discovery_info.unique_id_generator == MQTT_MAC_ADDRESS_UNIQUE_ID_GENERATOR) {
134
+ char friendly_name_hash[9];
135
+ sprintf(friendly_name_hash, "%08" PRIx32, fnv1_hash(this->friendly_name()));
136
+ friendly_name_hash[8] = 0; // ensure the hash-string ends with null
137
+ root[MQTT_UNIQUE_ID] = get_mac_address() + "-" + this->component_type() + "-" + friendly_name_hash;
136
138
  } else {
137
- if (discovery_info.unique_id_generator == MQTT_MAC_ADDRESS_UNIQUE_ID_GENERATOR) {
138
- char friendly_name_hash[9];
139
- sprintf(friendly_name_hash, "%08" PRIx32, fnv1_hash(this->friendly_name()));
140
- friendly_name_hash[8] = 0; // ensure the hash-string ends with null
141
- root[MQTT_UNIQUE_ID] = get_mac_address() + "-" + this->component_type() + "-" + friendly_name_hash;
142
- } else {
143
- // default to almost-unique ID. It's a hack but the only way to get that
144
- // gorgeous device registry view.
145
- root[MQTT_UNIQUE_ID] = "ESP" + this->component_type() + this->get_default_object_id_();
146
- }
139
+ // default to almost-unique ID. It's a hack but the only way to get that
140
+ // gorgeous device registry view.
141
+ root[MQTT_UNIQUE_ID] = "ESP" + this->component_type() + this->get_default_object_id_();
147
142
  }
148
143
 
149
144
  const std::string &node_name = App.get_name();
@@ -286,7 +281,6 @@ void MQTTComponent::call_dump_config() {
286
281
  this->dump_config();
287
282
  }
288
283
  void MQTTComponent::schedule_resend_state() { this->resend_state_ = true; }
289
- std::string MQTTComponent::unique_id() { return ""; }
290
284
  bool MQTTComponent::is_connected_() const { return global_mqtt_client->is_connected(); }
291
285
 
292
286
  // Pull these properties from EntityBase if not overridden
@@ -164,13 +164,6 @@ class MQTTComponent : public Component {
164
164
  */
165
165
  virtual const EntityBase *get_entity() const = 0;
166
166
 
167
- /** A unique ID for this MQTT component, empty for no unique id. See unique ID requirements:
168
- * https://developers.home-assistant.io/docs/en/entity_registry_index.html#unique-id-requirements
169
- *
170
- * @return The unique id as a string.
171
- */
172
- virtual std::string unique_id();
173
-
174
167
  /// Get the friendly name of this MQTT component.
175
168
  virtual std::string friendly_name() const;
176
169
 
@@ -76,7 +76,6 @@ bool MQTTSensorComponent::publish_state(float value) {
76
76
  int8_t accuracy = this->sensor_->get_accuracy_decimals();
77
77
  return this->publish(this->get_state_topic_(), value_accuracy_to_string(value, accuracy));
78
78
  }
79
- std::string MQTTSensorComponent::unique_id() { return this->sensor_->unique_id(); }
80
79
 
81
80
  } // namespace mqtt
82
81
  } // namespace esphome
@@ -46,7 +46,6 @@ class MQTTSensorComponent : public mqtt::MQTTComponent {
46
46
  /// Override for MQTTComponent, returns "sensor".
47
47
  std::string component_type() const override;
48
48
  const EntityBase *get_entity() const override;
49
- std::string unique_id() override;
50
49
 
51
50
  sensor::Sensor *sensor_;
52
51
  optional<uint32_t> expire_after_; // Override the expire after advertised to Home Assistant
@@ -40,7 +40,6 @@ bool MQTTTextSensor::send_initial_state() {
40
40
  }
41
41
  std::string MQTTTextSensor::component_type() const { return "sensor"; }
42
42
  const EntityBase *MQTTTextSensor::get_entity() const { return this->sensor_; }
43
- std::string MQTTTextSensor::unique_id() { return this->sensor_->unique_id(); }
44
43
 
45
44
  } // namespace mqtt
46
45
  } // namespace esphome
@@ -28,7 +28,6 @@ class MQTTTextSensor : public mqtt::MQTTComponent {
28
28
  protected:
29
29
  std::string component_type() const override;
30
30
  const EntityBase *get_entity() const override;
31
- std::string unique_id() override;
32
31
 
33
32
  text_sensor::TextSensor *sensor_;
34
33
  };
@@ -15,7 +15,6 @@ static const uint8_t MS5611_CMD_CONV_D2 = 0x50;
15
15
  static const uint8_t MS5611_CMD_READ_PROM = 0xA2;
16
16
 
17
17
  void MS5611Component::setup() {
18
- ESP_LOGCONFIG(TAG, "Running setup");
19
18
  if (!this->write_bytes(MS5611_CMD_RESET, nullptr, 0)) {
20
19
  this->mark_failed();
21
20
  return;
@@ -67,7 +67,6 @@ static uint8_t crc4(uint16_t *buffer, size_t length);
67
67
  static uint8_t hsensor_crc_check(uint16_t value);
68
68
 
69
69
  void MS8607Component::setup() {
70
- ESP_LOGCONFIG(TAG, "Running setup");
71
70
  this->error_code_ = ErrorCode::NONE;
72
71
  this->setup_status_ = SetupStatus::NEEDS_RESET;
73
72
 
@@ -118,8 +118,6 @@ const char *orientation_xy_to_string(OrientationXY orientation) {
118
118
  const char *orientation_z_to_string(bool orientation) { return orientation ? "Downwards looking" : "Upwards looking"; }
119
119
 
120
120
  void MSA3xxComponent::setup() {
121
- ESP_LOGCONFIG(TAG, "Running setup");
122
-
123
121
  uint8_t part_id{0xff};
124
122
  if (!this->read_byte(static_cast<uint8_t>(RegisterMap::PART_ID), &part_id) || (part_id != MSA_3XX_PART_ID)) {
125
123
  ESP_LOGE(TAG, "Part ID is wrong or missing. Got 0x%02X", part_id);
@@ -28,7 +28,6 @@ static const uint8_t MY9231_CMD_SCATTER_APDM = 0x0 << 0;
28
28
  static const uint8_t MY9231_CMD_SCATTER_PWM = 0x1 << 0;
29
29
 
30
30
  void MY9231OutputComponent::setup() {
31
- ESP_LOGCONFIG(TAG, "Running setup");
32
31
  this->pin_di_->setup();
33
32
  this->pin_di_->digital_write(false);
34
33
  this->pin_dcki_->setup();
@@ -57,7 +56,6 @@ void MY9231OutputComponent::setup() {
57
56
  this->send_dcki_pulses_(32 * this->num_chips_);
58
57
  this->init_chips_(command);
59
58
  }
60
- ESP_LOGV(TAG, " Chips initialized.");
61
59
  }
62
60
  void MY9231OutputComponent::dump_config() {
63
61
  ESP_LOGCONFIG(TAG, "MY9231:");
@@ -52,7 +52,6 @@ static const uint8_t POWER_PGA_CAP_EN = 0x80;
52
52
  static const uint8_t DEVICE_REV = 0x1F;
53
53
 
54
54
  void NAU7802Sensor::setup() {
55
- ESP_LOGCONFIG(TAG, "Running setup for '%s'", this->name_.c_str());
56
55
  i2c::I2CRegister pu_ctrl = this->reg(PU_CTRL_REG);
57
56
  uint8_t rev;
58
57
 
@@ -225,6 +225,9 @@ async def to_code(config):
225
225
  # https://github.com/Makuna/NeoPixelBus/blob/master/library.json
226
226
  # Version Listed Here: https://registry.platformio.org/libraries/makuna/NeoPixelBus/versions
227
227
  if CORE.is_esp32:
228
+ # disable built in rgb support as it uses the new RMT drivers and will
229
+ # conflict with NeoPixelBus which uses the legacy drivers
230
+ cg.add_build_flag("-DESP32_ARDUINO_NO_RGB_BUILTIN")
228
231
  cg.add_library("makuna/NeoPixelBus", "2.8.0")
229
232
  else:
230
233
  cg.add_library("makuna/NeoPixelBus", "2.7.3")
@@ -13,15 +13,27 @@
13
13
  #include "esphome/components/openthread/openthread.h"
14
14
  #endif
15
15
 
16
+ #ifdef USE_MODEM
17
+ #include "esphome/components/modem/modem_component.h"
18
+ #endif
19
+
16
20
  namespace esphome {
17
21
  namespace network {
18
22
 
23
+ // The order of the components is important: WiFi should come after any possible main interfaces (it may be used as
24
+ // an AP that use a previous interface for NAT).
25
+
19
26
  bool is_connected() {
20
27
  #ifdef USE_ETHERNET
21
28
  if (ethernet::global_eth_component != nullptr && ethernet::global_eth_component->is_connected())
22
29
  return true;
23
30
  #endif
24
31
 
32
+ #ifdef USE_MODEM
33
+ if (modem::global_modem_component != nullptr)
34
+ return modem::global_modem_component->is_connected();
35
+ #endif
36
+
25
37
  #ifdef USE_WIFI
26
38
  if (wifi::global_wifi_component != nullptr)
27
39
  return wifi::global_wifi_component->is_connected();
@@ -39,6 +51,11 @@ bool is_connected() {
39
51
  }
40
52
 
41
53
  bool is_disabled() {
54
+ #ifdef USE_MODEM
55
+ if (modem::global_modem_component != nullptr)
56
+ return modem::global_modem_component->is_disabled();
57
+ #endif
58
+
42
59
  #ifdef USE_WIFI
43
60
  if (wifi::global_wifi_component != nullptr)
44
61
  return wifi::global_wifi_component->is_disabled();
@@ -51,6 +68,12 @@ network::IPAddresses get_ip_addresses() {
51
68
  if (ethernet::global_eth_component != nullptr)
52
69
  return ethernet::global_eth_component->get_ip_addresses();
53
70
  #endif
71
+
72
+ #ifdef USE_MODEM
73
+ if (modem::global_modem_component != nullptr)
74
+ return modem::global_modem_component->get_ip_addresses();
75
+ #endif
76
+
54
77
  #ifdef USE_WIFI
55
78
  if (wifi::global_wifi_component != nullptr)
56
79
  return wifi::global_wifi_component->get_ip_addresses();
@@ -67,6 +90,12 @@ std::string get_use_address() {
67
90
  if (ethernet::global_eth_component != nullptr)
68
91
  return ethernet::global_eth_component->get_use_address();
69
92
  #endif
93
+
94
+ #ifdef USE_MODEM
95
+ if (modem::global_modem_component != nullptr)
96
+ return modem::global_modem_component->get_use_address();
97
+ #endif
98
+
70
99
  #ifdef USE_WIFI
71
100
  if (wifi::global_wifi_component != nullptr)
72
101
  return wifi::global_wifi_component->get_use_address();
@@ -450,7 +450,6 @@ void Nextion::process_nextion_commands_() {
450
450
  this->remove_from_q_();
451
451
  if (!this->is_setup_) {
452
452
  if (this->nextion_queue_.empty()) {
453
- ESP_LOGD(TAG, "Setup complete");
454
453
  this->is_setup_ = true;
455
454
  this->setup_callback_.call();
456
455
  }
@@ -1,4 +1,4 @@
1
- #include "binary_sensor.h"
1
+ #include "nfc_binary_sensor.h"
2
2
  #include "../nfc_helpers.h"
3
3
  #include "esphome/core/log.h"
4
4
 
@@ -11,8 +11,6 @@ static const char *const TAG = "npi19";
11
11
  static const uint8_t READ_COMMAND = 0xAC;
12
12
 
13
13
  void NPI19Component::setup() {
14
- ESP_LOGCONFIG(TAG, "Running setup");
15
-
16
14
  uint16_t raw_temperature(0);
17
15
  uint16_t raw_pressure(0);
18
16
  i2c::ErrorCode err = this->read_(raw_temperature, raw_pressure);