esphome 2025.3.3__py3-none-any.whl → 2025.4.0b1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (695) hide show
  1. esphome/__main__.py +29 -7
  2. esphome/components/a01nyub/sensor.py +2 -2
  3. esphome/components/a02yyuw/sensor.py +2 -2
  4. esphome/components/a4988/stepper.py +1 -2
  5. esphome/components/absolute_humidity/sensor.py +3 -3
  6. esphome/components/ac_dimmer/output.py +3 -3
  7. esphome/components/adalight/__init__.py +2 -2
  8. esphome/components/adc128s102/__init__.py +1 -1
  9. esphome/components/adc128s102/sensor/__init__.py +3 -3
  10. esphome/components/addressable_light/display.py +5 -5
  11. esphome/components/ade7880/sensor.py +2 -2
  12. esphome/components/ade7953_base/__init__.py +10 -10
  13. esphome/components/ade7953_i2c/sensor.py +1 -2
  14. esphome/components/ade7953_spi/sensor.py +1 -2
  15. esphome/components/ads1115/__init__.py +1 -1
  16. esphome/components/ads1115/sensor/__init__.py +4 -3
  17. esphome/components/ads1118/__init__.py +1 -1
  18. esphome/components/ads1118/sensor/__init__.py +5 -4
  19. esphome/components/ags10/sensor.py +9 -9
  20. esphome/components/aht10/sensor.py +2 -2
  21. esphome/components/airthings_ble/__init__.py +1 -1
  22. esphome/components/airthings_wave_base/__init__.py +2 -3
  23. esphome/components/airthings_wave_mini/sensor.py +2 -5
  24. esphome/components/airthings_wave_plus/sensor.py +8 -9
  25. esphome/components/alpha3/sensor.py +5 -5
  26. esphome/components/am2315c/sensor.py +1 -1
  27. esphome/components/am2320/sensor.py +1 -1
  28. esphome/components/am43/cover/__init__.py +1 -1
  29. esphome/components/am43/sensor/__init__.py +3 -3
  30. esphome/components/analog_threshold/binary_sensor.py +2 -5
  31. esphome/components/anova/climate.py +1 -1
  32. esphome/components/apds9306/sensor.py +1 -1
  33. esphome/components/apds9960/__init__.py +1 -1
  34. esphome/components/apds9960/binary_sensor.py +2 -1
  35. esphome/components/apds9960/sensor.py +3 -2
  36. esphome/components/api/api_frame_helper.cpp +21 -1
  37. esphome/components/as3935/__init__.py +3 -3
  38. esphome/components/as3935/binary_sensor.py +2 -1
  39. esphome/components/as3935/sensor.py +4 -3
  40. esphome/components/as3935_i2c/__init__.py +1 -1
  41. esphome/components/as3935_spi/__init__.py +1 -1
  42. esphome/components/as5600/__init__.py +2 -2
  43. esphome/components/as5600/sensor/__init__.py +10 -9
  44. esphome/components/as7341/sensor.py +1 -2
  45. esphome/components/at581x/__init__.py +4 -8
  46. esphome/components/at581x/switch/__init__.py +2 -4
  47. esphome/components/atc_mithermometer/sensor.py +3 -3
  48. esphome/components/b_parasite/sensor.py +2 -2
  49. esphome/components/ballu/climate.py +1 -1
  50. esphome/components/bang_bang/climate.py +2 -2
  51. esphome/components/bedjet/__init__.py +2 -6
  52. esphome/components/bedjet/climate/__init__.py +3 -6
  53. esphome/components/bedjet/fan/__init__.py +4 -9
  54. esphome/components/bedjet/sensor/__init__.py +3 -6
  55. esphome/components/beken_spi_led_strip/light.py +2 -2
  56. esphome/components/bh1750/sensor.py +2 -6
  57. esphome/components/binary/fan/__init__.py +2 -1
  58. esphome/components/binary/light/__init__.py +3 -2
  59. esphome/components/binary_sensor_map/sensor.py +5 -6
  60. esphome/components/bl0939/sensor.py +1 -1
  61. esphome/components/bl0940/sensor.py +3 -3
  62. esphome/components/ble_client/__init__.py +3 -2
  63. esphome/components/ble_client/sensor/__init__.py +1 -1
  64. esphome/components/ble_client/text_sensor/__init__.py +1 -1
  65. esphome/components/bluetooth_proxy/__init__.py +35 -23
  66. esphome/components/bme280_base/__init__.py +1 -1
  67. esphome/components/bme280_i2c/sensor.py +3 -2
  68. esphome/components/bme280_spi/sensor.py +3 -2
  69. esphome/components/bme680/sensor.py +4 -4
  70. esphome/components/bme680_bsec/__init__.py +1 -1
  71. esphome/components/bme680_bsec/sensor.py +3 -6
  72. esphome/components/bme680_bsec/text_sensor.py +3 -2
  73. esphome/components/bmi160/sensor.py +6 -6
  74. esphome/components/bmp085/sensor.py +1 -1
  75. esphome/components/bmp280_base/__init__.py +1 -1
  76. esphome/components/bmp280_i2c/sensor.py +3 -2
  77. esphome/components/bmp280_spi/sensor.py +3 -2
  78. esphome/components/bmp3xx_base/__init__.py +1 -1
  79. esphome/components/bmp3xx_i2c/sensor.py +2 -1
  80. esphome/components/bmp3xx_spi/sensor.py +2 -1
  81. esphome/components/bmp581/sensor.py +2 -1
  82. esphome/components/bp1658cj/__init__.py +2 -6
  83. esphome/components/bp1658cj/output.py +2 -1
  84. esphome/components/bp5758d/__init__.py +2 -6
  85. esphome/components/bp5758d/output.py +3 -2
  86. esphome/components/canbus/__init__.py +13 -2
  87. esphome/components/canbus/canbus.cpp +7 -1
  88. esphome/components/cap1188/__init__.py +2 -2
  89. esphome/components/cap1188/binary_sensor.py +3 -2
  90. esphome/components/captive_portal/__init__.py +3 -3
  91. esphome/components/ccs811/sensor.py +10 -10
  92. esphome/components/cd74hc4067/__init__.py +2 -5
  93. esphome/components/cd74hc4067/sensor.py +6 -5
  94. esphome/components/climate_ir/__init__.py +2 -2
  95. esphome/components/climate_ir_lg/climate.py +1 -1
  96. esphome/components/color/__init__.py +1 -2
  97. esphome/components/color_temperature/light.py +2 -2
  98. esphome/components/combination/sensor.py +1 -1
  99. esphome/components/coolix/climate.py +1 -1
  100. esphome/components/copy/binary_sensor/__init__.py +1 -1
  101. esphome/components/copy/button/__init__.py +1 -1
  102. esphome/components/copy/cover/__init__.py +1 -1
  103. esphome/components/copy/fan/__init__.py +2 -7
  104. esphome/components/copy/lock/__init__.py +2 -7
  105. esphome/components/copy/number/__init__.py +1 -1
  106. esphome/components/copy/select/__init__.py +2 -7
  107. esphome/components/copy/sensor/__init__.py +2 -2
  108. esphome/components/copy/switch/__init__.py +1 -1
  109. esphome/components/copy/text/__init__.py +2 -7
  110. esphome/components/copy/text_sensor/__init__.py +2 -6
  111. esphome/components/cs5460a/sensor.py +7 -7
  112. esphome/components/cse7761/sensor.py +2 -2
  113. esphome/components/cse7766/sensor.py +1 -1
  114. esphome/components/cst226/touchscreen/__init__.py +3 -4
  115. esphome/components/ct_clamp/sensor.py +1 -1
  116. esphome/components/current_based/cover.py +3 -4
  117. esphome/components/cwww/light.py +3 -3
  118. esphome/components/dac7678/__init__.py +1 -1
  119. esphome/components/dac7678/output.py +2 -1
  120. esphome/components/daikin/climate.py +1 -1
  121. esphome/components/daikin_arc/climate.py +1 -1
  122. esphome/components/daikin_brc/climate.py +1 -1
  123. esphome/components/dallas_temp/sensor.py +1 -1
  124. esphome/components/daly_bms/__init__.py +2 -2
  125. esphome/components/daly_bms/binary_sensor.py +3 -2
  126. esphome/components/daly_bms/sensor.py +14 -13
  127. esphome/components/daly_bms/text_sensor.py +3 -2
  128. esphome/components/dashboard_import/__init__.py +5 -5
  129. esphome/components/debug/sensor.py +7 -6
  130. esphome/components/debug/text_sensor.py +1 -1
  131. esphome/components/deep_sleep/__init__.py +12 -13
  132. esphome/components/delonghi/climate.py +1 -1
  133. esphome/components/demo/__init__.py +1 -1
  134. esphome/components/dfplayer/__init__.py +3 -3
  135. esphome/components/dfrobot_sen0395/__init__.py +3 -3
  136. esphome/components/dfrobot_sen0395/binary_sensor.py +2 -1
  137. esphome/components/dfrobot_sen0395/switch/__init__.py +2 -3
  138. esphome/components/dht/sensor.py +4 -5
  139. esphome/components/dht12/sensor.py +3 -3
  140. esphome/components/dps310/sensor.py +3 -3
  141. esphome/components/ds1307/time.py +2 -3
  142. esphome/components/dsmr/__init__.py +3 -7
  143. esphome/components/dsmr/sensor.py +5 -4
  144. esphome/components/dsmr/text_sensor.py +3 -2
  145. esphome/components/duty_cycle/sensor.py +3 -8
  146. esphome/components/duty_time/sensor.py +7 -7
  147. esphome/components/e131/__init__.py +3 -3
  148. esphome/components/ee895/sensor.py +5 -5
  149. esphome/components/ektf2232/touchscreen/__init__.py +2 -3
  150. esphome/components/emc2101/__init__.py +1 -1
  151. esphome/components/emc2101/output/__init__.py +3 -2
  152. esphome/components/emc2101/sensor/__init__.py +4 -3
  153. esphome/components/emmeti/climate.py +1 -1
  154. esphome/components/endstop/cover.py +3 -3
  155. esphome/components/ens160_base/__init__.py +1 -1
  156. esphome/components/ens160_i2c/sensor.py +2 -1
  157. esphome/components/ens160_spi/sensor.py +2 -1
  158. esphome/components/ens210/sensor.py +1 -1
  159. esphome/components/esp32/__init__.py +10 -0
  160. esphome/components/esp32_ble_tracker/__init__.py +135 -51
  161. esphome/components/esp32_camera/__init__.py +7 -8
  162. esphome/components/esp32_camera_web_server/__init__.py +2 -2
  163. esphome/components/esp32_can/canbus.py +21 -0
  164. esphome/components/esp32_can/esp32_can.cpp +1 -1
  165. esphome/components/esp32_can/esp32_can.h +4 -0
  166. esphome/components/esp32_dac/output.py +2 -2
  167. esphome/components/esp32_hall/sensor.py +2 -6
  168. esphome/components/esp32_touch/__init__.py +7 -7
  169. esphome/components/esp32_touch/binary_sensor.py +4 -7
  170. esphome/components/esp8266_pwm/output.py +3 -8
  171. esphome/components/ethernet/__init__.py +1 -0
  172. esphome/components/ethernet/ethernet_component.cpp +1 -1
  173. esphome/components/ethernet_info/ethernet_info_text_sensor.h +1 -0
  174. esphome/components/exposure_notifications/__init__.py +2 -2
  175. esphome/components/external_components/__init__.py +1 -1
  176. esphome/components/ezo/sensor.py +2 -2
  177. esphome/components/ezo_pmp/__init__.py +4 -4
  178. esphome/components/ezo_pmp/binary_sensor.py +4 -4
  179. esphome/components/ezo_pmp/sensor.py +4 -5
  180. esphome/components/ezo_pmp/text_sensor.py +2 -6
  181. esphome/components/factory_reset/button/__init__.py +2 -1
  182. esphome/components/factory_reset/switch/__init__.py +3 -2
  183. esphome/components/fastled_base/__init__.py +3 -3
  184. esphome/components/fastled_clockless/light.py +2 -2
  185. esphome/components/fastled_spi/light.py +2 -2
  186. esphome/components/feedback/cover.py +3 -3
  187. esphome/components/fingerprint_grow/__init__.py +5 -6
  188. esphome/components/fingerprint_grow/binary_sensor.py +2 -1
  189. esphome/components/fingerprint_grow/sensor.py +2 -1
  190. esphome/components/fs3000/sensor.py +2 -6
  191. esphome/components/ft5x06/touchscreen/__init__.py +2 -2
  192. esphome/components/ft63x6/touchscreen.py +2 -3
  193. esphome/components/fujitsu_general/climate.py +1 -1
  194. esphome/components/gcja5/sensor.py +4 -4
  195. esphome/components/gdk101/__init__.py +1 -1
  196. esphome/components/gdk101/binary_sensor.py +2 -1
  197. esphome/components/gdk101/sensor.py +5 -4
  198. esphome/components/globals/__init__.py +1 -2
  199. esphome/components/gp2y1010au0f/sensor.py +3 -3
  200. esphome/components/gp8403/__init__.py +1 -2
  201. esphome/components/gp8403/output/__init__.py +3 -4
  202. esphome/components/gpio/binary_sensor/__init__.py +3 -2
  203. esphome/components/gpio/one_wire/__init__.py +3 -2
  204. esphome/components/gpio/output/__init__.py +3 -2
  205. esphome/components/gpio/switch/__init__.py +3 -2
  206. esphome/components/gps/__init__.py +4 -5
  207. esphome/components/gps/time/__init__.py +3 -2
  208. esphome/components/graph/__init__.py +12 -12
  209. esphome/components/grove_tb6612fng/__init__.py +5 -6
  210. esphome/components/growatt_solar/sensor.py +1 -1
  211. esphome/components/gt911/binary_sensor/__init__.py +2 -2
  212. esphome/components/haier/binary_sensor/__init__.py +4 -10
  213. esphome/components/haier/button/__init__.py +3 -6
  214. esphome/components/haier/sensor/__init__.py +4 -6
  215. esphome/components/haier/switch/__init__.py +4 -7
  216. esphome/components/haier/text_sensor/__init__.py +4 -9
  217. esphome/components/havells_solar/sensor.py +1 -1
  218. esphome/components/hbridge/fan/__init__.py +6 -6
  219. esphome/components/hbridge/light/__init__.py +2 -1
  220. esphome/components/hdc1080/sensor.py +1 -1
  221. esphome/components/he60r/cover.py +2 -6
  222. esphome/components/heatpumpir/climate.py +1 -1
  223. esphome/components/hitachi_ac344/climate.py +1 -1
  224. esphome/components/hitachi_ac424/climate.py +1 -1
  225. esphome/components/hlw8012/sensor.py +6 -6
  226. esphome/components/hm3301/sensor.py +3 -3
  227. esphome/components/hmc5883l/sensor.py +4 -4
  228. esphome/components/homeassistant/time/__init__.py +2 -1
  229. esphome/components/honeywell_hih_i2c/sensor.py +3 -3
  230. esphome/components/honeywellabp/sensor.py +1 -2
  231. esphome/components/honeywellabp2_i2c/sensor.py +1 -2
  232. esphome/components/host/time/__init__.py +2 -2
  233. esphome/components/hrxl_maxsonar_wr/sensor.py +1 -1
  234. esphome/components/hte501/sensor.py +3 -3
  235. esphome/components/http_request/ota/__init__.py +5 -9
  236. esphome/components/http_request/update/__init__.py +3 -7
  237. esphome/components/htu21d/sensor.py +6 -6
  238. esphome/components/htu31d/sensor.py +1 -1
  239. esphome/components/hx711/sensor.py +3 -8
  240. esphome/components/hydreon_rgxx/binary_sensor.py +3 -7
  241. esphome/components/hydreon_rgxx/sensor.py +4 -4
  242. esphome/components/hyt271/sensor.py +1 -1
  243. esphome/components/i2c_device/__init__.py +1 -1
  244. esphome/components/i2s_audio/media_player/__init__.py +6 -8
  245. esphome/components/iaqcore/sensor.py +2 -2
  246. esphome/components/ina219/sensor.py +2 -2
  247. esphome/components/ina226/sensor.py +4 -4
  248. esphome/components/ina260/sensor.py +4 -4
  249. esphome/components/ina2xx_base/__init__.py +2 -2
  250. esphome/components/ina2xx_i2c/sensor.py +1 -1
  251. esphome/components/ina2xx_spi/sensor.py +1 -1
  252. esphome/components/ina3221/sensor.py +3 -3
  253. esphome/components/inkbird_ibsth1_mini/sensor.py +2 -2
  254. esphome/components/inkplate6/display.py +2 -2
  255. esphome/components/integration/sensor.py +4 -4
  256. esphome/components/internal_temperature/sensor.py +5 -7
  257. esphome/components/interval/__init__.py +1 -1
  258. esphome/components/jsn_sr04t/sensor.py +3 -3
  259. esphome/components/kamstrup_kmp/sensor.py +1 -1
  260. esphome/components/key_collector/__init__.py +2 -2
  261. esphome/components/kmeteriso/sensor.py +2 -2
  262. esphome/components/kuntze/sensor.py +5 -5
  263. esphome/components/lcd_base/__init__.py +2 -2
  264. esphome/components/lcd_gpio/display.py +4 -4
  265. esphome/components/lcd_menu/__init__.py +3 -7
  266. esphome/components/lcd_pcf8574/display.py +1 -1
  267. esphome/components/ld2410/__init__.py +4 -4
  268. esphome/components/ld2410/binary_sensor.py +5 -4
  269. esphome/components/ld2410/button/__init__.py +3 -2
  270. esphome/components/ld2410/number/__init__.py +5 -4
  271. esphome/components/ld2410/select/__init__.py +4 -3
  272. esphome/components/ld2410/sensor.py +6 -5
  273. esphome/components/ld2410/switch/__init__.py +2 -1
  274. esphome/components/ld2410/text_sensor.py +3 -2
  275. esphome/components/ld2420/__init__.py +1 -1
  276. esphome/components/ld2420/binary_sensor/__init__.py +4 -3
  277. esphome/components/ld2420/button/__init__.py +3 -2
  278. esphome/components/ld2420/number/__init__.py +3 -2
  279. esphome/components/ld2420/select/__init__.py +1 -0
  280. esphome/components/ld2420/sensor/__init__.py +3 -2
  281. esphome/components/ld2420/text_sensor/__init__.py +2 -6
  282. esphome/components/ld2450/__init__.py +2 -5
  283. esphome/components/ledc/output.py +3 -3
  284. esphome/components/libretiny/text_sensor.py +1 -1
  285. esphome/components/libretiny_pwm/output.py +3 -7
  286. esphome/components/lightwaverf/__init__.py +6 -8
  287. esphome/components/lilygo_t5_47/touchscreen/__init__.py +2 -3
  288. esphome/components/ltr390/sensor.py +1 -1
  289. esphome/components/ltr501/sensor.py +2 -2
  290. esphome/components/ltr_als_ps/sensor.py +2 -2
  291. esphome/components/lvgl/__init__.py +9 -12
  292. esphome/components/lvgl/automation.py +1 -1
  293. esphome/components/lvgl/defines.py +5 -2
  294. esphome/components/lvgl/lv_validation.py +17 -9
  295. esphome/components/lvgl/lvcode.py +9 -8
  296. esphome/components/lvgl/lvgl_esphome.h +19 -0
  297. esphome/components/lvgl/schemas.py +67 -18
  298. esphome/components/lvgl/styles.py +42 -11
  299. esphome/components/lvgl/trigger.py +10 -1
  300. esphome/components/lvgl/widgets/__init__.py +1 -2
  301. esphome/components/lvgl/widgets/canvas.py +403 -0
  302. esphome/components/lvgl/widgets/line.py +22 -32
  303. esphome/components/m5stack_8angle/__init__.py +1 -2
  304. esphome/components/m5stack_8angle/binary_sensor/__init__.py +2 -3
  305. esphome/components/m5stack_8angle/light/__init__.py +2 -4
  306. esphome/components/m5stack_8angle/sensor/__init__.py +2 -4
  307. esphome/components/matrix_keypad/binary_sensor/__init__.py +4 -3
  308. esphome/components/max31855/sensor.py +1 -1
  309. esphome/components/max31865/sensor.py +1 -1
  310. esphome/components/max44009/sensor.py +1 -1
  311. esphome/components/max6675/sensor.py +1 -1
  312. esphome/components/max6956/__init__.py +5 -5
  313. esphome/components/max6956/output/__init__.py +4 -3
  314. esphome/components/max7219/display.py +1 -1
  315. esphome/components/max7219digit/display.py +1 -1
  316. esphome/components/max9611/sensor.py +10 -10
  317. esphome/components/mcp23008/__init__.py +1 -1
  318. esphome/components/mcp23016/__init__.py +4 -4
  319. esphome/components/mcp23017/__init__.py +1 -1
  320. esphome/components/mcp23s08/__init__.py +1 -1
  321. esphome/components/mcp23s17/__init__.py +1 -1
  322. esphome/components/mcp23xxx_base/__init__.py +4 -4
  323. esphome/components/mcp2515/canbus.py +2 -2
  324. esphome/components/mcp3008/__init__.py +1 -1
  325. esphome/components/mcp3008/sensor/__init__.py +4 -4
  326. esphome/components/mcp3204/__init__.py +1 -1
  327. esphome/components/mcp3204/sensor/__init__.py +3 -2
  328. esphome/components/mcp4461/__init__.py +42 -0
  329. esphome/components/mcp4461/mcp4461.cpp +618 -0
  330. esphome/components/mcp4461/mcp4461.h +171 -0
  331. esphome/components/mcp4461/output/__init__.py +60 -0
  332. esphome/components/mcp4461/output/mcp4461_output.cpp +73 -0
  333. esphome/components/mcp4461/output/mcp4461_output.h +49 -0
  334. esphome/components/mcp4725/output.py +2 -2
  335. esphome/components/mcp4728/__init__.py +1 -1
  336. esphome/components/mcp4728/output/__init__.py +4 -3
  337. esphome/components/mcp47a1/output.py +2 -2
  338. esphome/components/mcp9808/sensor.py +1 -1
  339. esphome/components/mhz19/sensor.py +4 -4
  340. esphome/components/micronova/__init__.py +3 -5
  341. esphome/components/micronova/button/__init__.py +5 -5
  342. esphome/components/micronova/number/__init__.py +6 -10
  343. esphome/components/micronova/sensor/__init__.py +6 -6
  344. esphome/components/micronova/switch/__init__.py +6 -8
  345. esphome/components/micronova/text_sensor/__init__.py +5 -5
  346. esphome/components/microphone/__init__.py +2 -4
  347. esphome/components/midea/climate.py +6 -10
  348. esphome/components/midea_ir/climate.py +1 -1
  349. esphome/components/mitsubishi/climate.py +1 -1
  350. esphome/components/mlx90614/sensor.py +1 -1
  351. esphome/components/mmc5603/sensor.py +4 -4
  352. esphome/components/mmc5983/sensor.py +1 -1
  353. esphome/components/modbus/__init__.py +5 -9
  354. esphome/components/modbus_controller/__init__.py +1 -1
  355. esphome/components/monochromatic/light.py +2 -2
  356. esphome/components/mopeka_ble/__init__.py +1 -1
  357. esphome/components/mopeka_pro_check/sensor.py +12 -12
  358. esphome/components/mopeka_std_check/sensor.py +8 -8
  359. esphome/components/mpl3115a2/sensor.py +1 -1
  360. esphome/components/mpr121/__init__.py +3 -3
  361. esphome/components/mpr121/binary_sensor/__init__.py +5 -4
  362. esphome/components/mpu6050/sensor.py +4 -4
  363. esphome/components/mpu6886/sensor.py +4 -4
  364. esphome/components/mqtt_subscribe/sensor/__init__.py +3 -5
  365. esphome/components/mqtt_subscribe/text_sensor/__init__.py +1 -1
  366. esphome/components/ms5611/sensor.py +2 -2
  367. esphome/components/ms8607/sensor.py +1 -1
  368. esphome/components/my9231/__init__.py +1 -1
  369. esphome/components/my9231/output.py +2 -1
  370. esphome/components/nau7802/nau7802.cpp +0 -4
  371. esphome/components/nau7802/nau7802.h +0 -2
  372. esphome/components/neopixelbus/_methods.py +11 -9
  373. esphome/components/neopixelbus/light.py +11 -18
  374. esphome/components/nextion/binary_sensor/__init__.py +6 -14
  375. esphome/components/nextion/sensor/__init__.py +7 -10
  376. esphome/components/nextion/switch/__init__.py +3 -5
  377. esphome/components/nextion/text_sensor/__init__.py +3 -7
  378. esphome/components/noblex/climate.py +1 -1
  379. esphome/components/ntc/sensor.py +1 -1
  380. esphome/components/opentherm/__init__.py +6 -6
  381. esphome/components/opentherm/input.py +2 -1
  382. esphome/components/opentherm/number/__init__.py +5 -4
  383. esphome/components/opentherm/output/__init__.py +3 -2
  384. esphome/components/opentherm/schema.py +7 -7
  385. esphome/components/opentherm/switch/__init__.py +3 -2
  386. esphome/components/opentherm/validate.py +1 -1
  387. esphome/components/output/__init__.py +2 -3
  388. esphome/components/output/button/__init__.py +3 -2
  389. esphome/components/output/lock/__init__.py +2 -1
  390. esphome/components/output/switch/__init__.py +2 -1
  391. esphome/components/partition/light.py +4 -4
  392. esphome/components/pca6416a/__init__.py +4 -4
  393. esphome/components/pca9554/__init__.py +4 -4
  394. esphome/components/pca9685/__init__.py +2 -2
  395. esphome/components/pca9685/output.py +2 -1
  396. esphome/components/pcf85063/time.py +2 -3
  397. esphome/components/pcf8563/time.py +2 -2
  398. esphome/components/pcf8574/__init__.py +4 -4
  399. esphome/components/pid/climate.py +2 -2
  400. esphome/components/pid/sensor/__init__.py +4 -8
  401. esphome/components/pipsolar/__init__.py +1 -1
  402. esphome/components/pipsolar/binary_sensor/__init__.py +2 -2
  403. esphome/components/pipsolar/output/__init__.py +4 -3
  404. esphome/components/pipsolar/sensor/__init__.py +5 -4
  405. esphome/components/pipsolar/switch/__init__.py +2 -1
  406. esphome/components/pipsolar/text_sensor/__init__.py +2 -1
  407. esphome/components/pm1006/sensor.py +2 -2
  408. esphome/components/pmsa003i/sensor.py +4 -4
  409. esphome/components/pmsx003/sensor.py +10 -11
  410. esphome/components/pmwcs3/sensor.py +5 -5
  411. esphome/components/pn532/__init__.py +3 -3
  412. esphome/components/pn532_i2c/__init__.py +1 -1
  413. esphome/components/pn532_spi/__init__.py +1 -1
  414. esphome/components/pn7150/__init__.py +2 -2
  415. esphome/components/pn7150_i2c/__init__.py +1 -1
  416. esphome/components/pn7160/__init__.py +2 -2
  417. esphome/components/pn7160_i2c/__init__.py +1 -1
  418. esphome/components/pn7160_spi/__init__.py +1 -1
  419. esphome/components/power_supply/__init__.py +1 -1
  420. esphome/components/prometheus/__init__.py +3 -8
  421. esphome/components/psram/__init__.py +75 -11
  422. esphome/components/psram/psram.cpp +18 -7
  423. esphome/components/pulse_counter/sensor.py +4 -4
  424. esphome/components/pulse_meter/sensor.py +3 -3
  425. esphome/components/pulse_width/sensor.py +3 -8
  426. esphome/components/pvvx_mithermometer/display/__init__.py +1 -1
  427. esphome/components/pvvx_mithermometer/sensor.py +3 -3
  428. esphome/components/pylontech/__init__.py +1 -0
  429. esphome/components/pylontech/sensor/__init__.py +8 -13
  430. esphome/components/pylontech/text_sensor/__init__.py +2 -7
  431. esphome/components/pzem004t/sensor.py +3 -3
  432. esphome/components/pzemac/sensor.py +9 -9
  433. esphome/components/pzemdc/sensor.py +6 -6
  434. esphome/components/qmc5883l/sensor.py +5 -5
  435. esphome/components/qmp6988/sensor.py +3 -3
  436. esphome/components/qr_code/__init__.py +1 -1
  437. esphome/components/qspi_dbi/display.py +1 -1
  438. esphome/components/qspi_dbi/qspi_dbi.cpp +1 -1
  439. esphome/components/qspi_dbi/qspi_dbi.h +1 -1
  440. esphome/components/qwiic_pir/binary_sensor.py +2 -5
  441. esphome/components/radon_eye_ble/__init__.py +1 -1
  442. esphome/components/radon_eye_rd200/sensor.py +3 -4
  443. esphome/components/rc522/__init__.py +3 -3
  444. esphome/components/rc522_i2c/__init__.py +1 -1
  445. esphome/components/rc522_spi/__init__.py +1 -1
  446. esphome/components/rdm6300/__init__.py +2 -2
  447. esphome/components/rdm6300/binary_sensor.py +2 -1
  448. esphome/components/resistance/sensor.py +2 -2
  449. esphome/components/restart/button/__init__.py +1 -1
  450. esphome/components/restart/switch/__init__.py +2 -5
  451. esphome/components/rf_bridge/__init__.py +3 -3
  452. esphome/components/rgb/light.py +2 -2
  453. esphome/components/rgbct/light.py +3 -3
  454. esphome/components/rgbw/light.py +2 -2
  455. esphome/components/rgbww/light.py +4 -4
  456. esphome/components/rotary_encoder/sensor.py +8 -8
  457. esphome/components/rp2040_pio/__init__.py +0 -1
  458. esphome/components/rp2040_pio_led_strip/light.py +2 -4
  459. esphome/components/rp2040_pwm/output.py +3 -7
  460. esphome/components/rtttl/__init__.py +6 -6
  461. esphome/components/ruuvi_ble/__init__.py +1 -1
  462. esphome/components/ruuvitag/sensor.py +15 -15
  463. esphome/components/safe_mode/__init__.py +2 -3
  464. esphome/components/safe_mode/button/__init__.py +3 -2
  465. esphome/components/safe_mode/switch/__init__.py +4 -7
  466. esphome/components/scd30/sensor.py +5 -6
  467. esphome/components/scd4x/sensor.py +6 -8
  468. esphome/components/script/__init__.py +2 -2
  469. esphome/components/sdl/display.py +3 -3
  470. esphome/components/sdl/touchscreen/__init__.py +2 -2
  471. esphome/components/sdm_meter/sensor.py +3 -3
  472. esphome/components/sdp3x/sensor.py +1 -2
  473. esphome/components/sds011/sensor.py +4 -4
  474. esphome/components/seeed_mr24hpc1/__init__.py +1 -1
  475. esphome/components/seeed_mr24hpc1/binary_sensor.py +2 -5
  476. esphome/components/seeed_mr24hpc1/button/__init__.py +1 -0
  477. esphome/components/seeed_mr24hpc1/number/__init__.py +2 -4
  478. esphome/components/seeed_mr24hpc1/select/__init__.py +2 -3
  479. esphome/components/seeed_mr24hpc1/sensor.py +1 -0
  480. esphome/components/seeed_mr24hpc1/switch/__init__.py +2 -4
  481. esphome/components/seeed_mr24hpc1/text_sensor.py +1 -0
  482. esphome/components/seeed_mr60bha2/binary_sensor.py +2 -4
  483. esphome/components/seeed_mr60bha2/sensor.py +1 -1
  484. esphome/components/seeed_mr60fda2/button/__init__.py +1 -1
  485. esphome/components/seeed_mr60fda2/select/__init__.py +0 -1
  486. esphome/components/selec_meter/sensor.py +1 -1
  487. esphome/components/sen0321/sensor.py +2 -2
  488. esphome/components/sen21231/sensor.py +1 -1
  489. esphome/components/senseair/sensor.py +3 -3
  490. esphome/components/sensirion_common/__init__.py +0 -2
  491. esphome/components/servo/__init__.py +3 -3
  492. esphome/components/sfa30/sensor.py +4 -5
  493. esphome/components/sgp4x/sensor.py +2 -2
  494. esphome/components/shelly_dimmer/light.py +16 -16
  495. esphome/components/sht3xd/sensor.py +1 -1
  496. esphome/components/sht4x/sensor.py +6 -6
  497. esphome/components/shtcx/sensor.py +1 -1
  498. esphome/components/shutdown/button/__init__.py +2 -6
  499. esphome/components/shutdown/switch/__init__.py +2 -5
  500. esphome/components/sigma_delta_output/output.py +2 -7
  501. esphome/components/sim800l/__init__.py +3 -7
  502. esphome/components/sim800l/binary_sensor.py +3 -5
  503. esphome/components/sim800l/sensor.py +2 -1
  504. esphome/components/slow_pwm/output.py +4 -5
  505. esphome/components/sm10bit_base/__init__.py +2 -6
  506. esphome/components/sm16716/__init__.py +1 -1
  507. esphome/components/sm16716/output.py +2 -1
  508. esphome/components/sm2135/__init__.py +2 -6
  509. esphome/components/sm2135/output.py +2 -1
  510. esphome/components/sm2235/__init__.py +1 -1
  511. esphome/components/sm2235/output.py +2 -1
  512. esphome/components/sm2335/__init__.py +1 -1
  513. esphome/components/sm2335/output.py +2 -1
  514. esphome/components/sm300d2/sensor.py +13 -13
  515. esphome/components/sml/__init__.py +1 -1
  516. esphome/components/sml/sensor/__init__.py +1 -1
  517. esphome/components/sml/text_sensor/__init__.py +1 -1
  518. esphome/components/smt100/sensor.py +5 -6
  519. esphome/components/sn74hc165/__init__.py +5 -5
  520. esphome/components/sn74hc595/__init__.py +5 -5
  521. esphome/components/socket/__init__.py +1 -1
  522. esphome/components/sonoff_d1/light.py +2 -6
  523. esphome/components/speed/fan/__init__.py +2 -2
  524. esphome/components/spi/__init__.py +45 -36
  525. esphome/components/spi/spi.h +1 -0
  526. esphome/components/spi/spi_esp_idf.cpp +13 -5
  527. esphome/components/sprinkler/__init__.py +4 -5
  528. esphome/components/sps30/sensor.py +8 -8
  529. esphome/components/ssd1306_i2c/display.py +2 -2
  530. esphome/components/ssd1322_base/__init__.py +2 -2
  531. esphome/components/ssd1325_base/__init__.py +2 -2
  532. esphome/components/ssd1327_base/__init__.py +2 -2
  533. esphome/components/ssd1327_i2c/display.py +1 -1
  534. esphome/components/ssd1331_base/__init__.py +2 -2
  535. esphome/components/ssd1351_base/__init__.py +2 -2
  536. esphome/components/st7567_base/__init__.py +4 -4
  537. esphome/components/st7567_i2c/display.py +1 -1
  538. esphome/components/st7920/display.py +2 -2
  539. esphome/components/statsd/__init__.py +3 -3
  540. esphome/components/status/binary_sensor.py +2 -5
  541. esphome/components/status_led/__init__.py +1 -1
  542. esphome/components/status_led/light/__init__.py +2 -1
  543. esphome/components/stepper/__init__.py +2 -2
  544. esphome/components/sts3x/sensor.py +1 -1
  545. esphome/components/substitutions/__init__.py +2 -2
  546. esphome/components/sun/__init__.py +4 -4
  547. esphome/components/sun/sensor/__init__.py +4 -7
  548. esphome/components/sun/text_sensor/__init__.py +5 -4
  549. esphome/components/sun_gtil2/__init__.py +1 -1
  550. esphome/components/sun_gtil2/sensor.py +7 -6
  551. esphome/components/sun_gtil2/text_sensor.py +3 -2
  552. esphome/components/sx1509/__init__.py +5 -5
  553. esphome/components/sx1509/binary_sensor/__init__.py +3 -3
  554. esphome/components/sx1509/output/__init__.py +4 -3
  555. esphome/components/t6615/sensor.py +1 -1
  556. esphome/components/tca9548a/__init__.py +1 -1
  557. esphome/components/tcl112/climate.py +1 -1
  558. esphome/components/tcs34725/sensor.py +4 -4
  559. esphome/components/tee501/sensor.py +1 -1
  560. esphome/components/teleinfo/__init__.py +1 -1
  561. esphome/components/teleinfo/sensor/__init__.py +1 -7
  562. esphome/components/teleinfo/text_sensor/__init__.py +1 -1
  563. esphome/components/tem3200/sensor.py +1 -2
  564. esphome/components/template/alarm_control_panel/__init__.py +3 -10
  565. esphome/components/template/cover/__init__.py +4 -3
  566. esphome/components/template/datetime/__init__.py +8 -9
  567. esphome/components/template/event/__init__.py +2 -5
  568. esphome/components/template/fan/__init__.py +2 -6
  569. esphome/components/template/lock/__init__.py +3 -2
  570. esphome/components/template/number/__init__.py +3 -2
  571. esphome/components/template/output/__init__.py +4 -3
  572. esphome/components/template/select/__init__.py +3 -2
  573. esphome/components/template/sensor/__init__.py +4 -7
  574. esphome/components/template/switch/__init__.py +3 -2
  575. esphome/components/template/text/__init__.py +4 -3
  576. esphome/components/template/text_sensor/__init__.py +3 -2
  577. esphome/components/template/valve/__init__.py +3 -2
  578. esphome/components/time/real_time_clock.cpp +0 -4
  579. esphome/components/time/real_time_clock.h +4 -3
  580. esphome/components/time_based/cover.py +3 -3
  581. esphome/components/tlc59208f/__init__.py +1 -1
  582. esphome/components/tlc59208f/output.py +2 -1
  583. esphome/components/tlc5947/__init__.py +1 -1
  584. esphome/components/tlc5947/output/__init__.py +2 -1
  585. esphome/components/tlc5971/__init__.py +2 -8
  586. esphome/components/tlc5971/output/__init__.py +2 -1
  587. esphome/components/tm1621/display.py +3 -3
  588. esphome/components/tm1637/binary_sensor.py +1 -1
  589. esphome/components/tm1637/display.py +3 -3
  590. esphome/components/tm1651/__init__.py +4 -4
  591. esphome/components/tmp102/sensor.py +1 -1
  592. esphome/components/tmp1075/sensor.py +2 -2
  593. esphome/components/tmp117/sensor.py +1 -1
  594. esphome/components/tof10120/sensor.py +2 -2
  595. esphome/components/tormatic/cover.py +2 -6
  596. esphome/components/toshiba/climate.py +1 -1
  597. esphome/components/total_daily_energy/sensor.py +4 -4
  598. esphome/components/tsl2561/sensor.py +1 -1
  599. esphome/components/tsl2591/sensor.py +9 -9
  600. esphome/components/tt21100/binary_sensor/__init__.py +2 -2
  601. esphome/components/tt21100/touchscreen/__init__.py +2 -3
  602. esphome/components/ttp229_bsf/__init__.py +2 -2
  603. esphome/components/ttp229_bsf/binary_sensor.py +3 -2
  604. esphome/components/ttp229_lsf/__init__.py +1 -1
  605. esphome/components/ttp229_lsf/binary_sensor.py +3 -2
  606. esphome/components/tuya/__init__.py +3 -5
  607. esphome/components/tuya/binary_sensor/__init__.py +2 -2
  608. esphome/components/tuya/climate/__init__.py +6 -5
  609. esphome/components/tuya/cover/__init__.py +5 -4
  610. esphome/components/tuya/fan/__init__.py +3 -2
  611. esphome/components/tuya/light/__init__.py +9 -8
  612. esphome/components/tuya/number/__init__.py +6 -5
  613. esphome/components/tuya/select/__init__.py +4 -3
  614. esphome/components/tuya/sensor/__init__.py +3 -2
  615. esphome/components/tuya/switch/__init__.py +3 -2
  616. esphome/components/tuya/text_sensor/__init__.py +3 -2
  617. esphome/components/tx20/sensor.py +6 -6
  618. esphome/components/uart/__init__.py +20 -19
  619. esphome/components/uart/button/__init__.py +2 -1
  620. esphome/components/uart/switch/__init__.py +2 -1
  621. esphome/components/ufire_ise/sensor.py +2 -2
  622. esphome/components/uln2003/stepper.py +2 -2
  623. esphome/components/ultrasonic/sensor.py +4 -4
  624. esphome/components/uponor_smatrix/__init__.py +2 -6
  625. esphome/components/uponor_smatrix/climate/__init__.py +3 -3
  626. esphome/components/vbus/__init__.py +1 -1
  627. esphome/components/vbus/binary_sensor/__init__.py +7 -6
  628. esphome/components/vbus/sensor/__init__.py +7 -6
  629. esphome/components/veml3235/sensor.py +1 -1
  630. esphome/components/veml7700/sensor.py +1 -1
  631. esphome/components/version/text_sensor.py +2 -6
  632. esphome/components/vl53l0x/sensor.py +6 -6
  633. esphome/components/web_server_base/__init__.py +2 -2
  634. esphome/components/web_server_idf/__init__.py +1 -1
  635. esphome/components/weikai/__init__.py +1 -1
  636. esphome/components/whirlpool/climate.py +1 -1
  637. esphome/components/whynter/climate.py +1 -1
  638. esphome/components/wireguard/binary_sensor.py +1 -1
  639. esphome/components/wireguard/sensor.py +2 -5
  640. esphome/components/wireguard/text_sensor.py +2 -5
  641. esphome/components/wk2132_i2c/__init__.py +1 -1
  642. esphome/components/wk2132_spi/__init__.py +1 -2
  643. esphome/components/wk2168_i2c/__init__.py +3 -8
  644. esphome/components/wk2168_spi/__init__.py +3 -8
  645. esphome/components/wk2204_i2c/__init__.py +1 -1
  646. esphome/components/wk2204_spi/__init__.py +1 -1
  647. esphome/components/wk2212_i2c/__init__.py +3 -8
  648. esphome/components/wk2212_spi/__init__.py +3 -8
  649. esphome/components/wl_134/text_sensor.py +2 -4
  650. esphome/components/wled/__init__.py +2 -2
  651. esphome/components/x9c/output.py +4 -4
  652. esphome/components/xgzp68xx/sensor.py +5 -5
  653. esphome/components/xiaomi_ble/__init__.py +1 -1
  654. esphome/components/xiaomi_cgd1/sensor.py +3 -3
  655. esphome/components/xiaomi_cgdk2/sensor.py +3 -3
  656. esphome/components/xiaomi_cgg1/sensor.py +2 -2
  657. esphome/components/xiaomi_cgpr1/binary_sensor.py +6 -6
  658. esphome/components/xiaomi_gcls002/sensor.py +7 -7
  659. esphome/components/xiaomi_hhccjcy01/sensor.py +9 -9
  660. esphome/components/xiaomi_hhccjcy10/sensor.py +9 -9
  661. esphome/components/xiaomi_hhccpot002/sensor.py +7 -7
  662. esphome/components/xiaomi_jqjcy01ym/sensor.py +6 -6
  663. esphome/components/xiaomi_lywsd02/sensor.py +4 -4
  664. esphome/components/xiaomi_lywsd02mmc/sensor.py +5 -5
  665. esphome/components/xiaomi_lywsd03mmc/sensor.py +6 -6
  666. esphome/components/xiaomi_lywsdcgq/sensor.py +5 -5
  667. esphome/components/xiaomi_mhoc303/sensor.py +4 -4
  668. esphome/components/xiaomi_mhoc401/sensor.py +6 -6
  669. esphome/components/xiaomi_miscale/sensor.py +6 -6
  670. esphome/components/xiaomi_mjyd02yla/binary_sensor.py +8 -8
  671. esphome/components/xiaomi_mue4094rt/binary_sensor.py +2 -7
  672. esphome/components/xiaomi_rtcgq02lm/__init__.py +2 -3
  673. esphome/components/xiaomi_rtcgq02lm/binary_sensor.py +3 -3
  674. esphome/components/xiaomi_rtcgq02lm/sensor.py +3 -3
  675. esphome/components/xiaomi_wx08zm/binary_sensor.py +2 -3
  676. esphome/components/xl9535/__init__.py +2 -2
  677. esphome/components/yashima/climate.py +1 -1
  678. esphome/components/zhlt01/climate.py +1 -1
  679. esphome/components/zio_ultrasonic/sensor.py +2 -5
  680. esphome/components/zyaura/sensor.py +7 -7
  681. esphome/const.py +3 -1
  682. esphome/core/component.cpp +3 -1
  683. esphome/core/component.h +15 -2
  684. esphome/core/config.py +4 -0
  685. esphome/core/defines.h +21 -0
  686. esphome/core/helpers.cpp +6 -7
  687. esphome/core/scheduler.cpp +34 -67
  688. esphome/core/scheduler.h +7 -17
  689. esphome/dashboard/status/mqtt.py +0 -2
  690. {esphome-2025.3.3.dist-info → esphome-2025.4.0b1.dist-info}/METADATA +45 -44
  691. {esphome-2025.3.3.dist-info → esphome-2025.4.0b1.dist-info}/RECORD +695 -688
  692. {esphome-2025.3.3.dist-info → esphome-2025.4.0b1.dist-info}/WHEEL +1 -1
  693. {esphome-2025.3.3.dist-info → esphome-2025.4.0b1.dist-info}/entry_points.txt +0 -0
  694. {esphome-2025.3.3.dist-info → esphome-2025.4.0b1.dist-info/licenses}/LICENSE +0 -0
  695. {esphome-2025.3.3.dist-info → esphome-2025.4.0b1.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  import esphome.codegen as cg
2
- import esphome.config_validation as cv
3
2
  from esphome.components import i2c, sensor
3
+ import esphome.config_validation as cv
4
4
  from esphome.const import (
5
5
  CONF_FIELD_STRENGTH_X,
6
6
  CONF_FIELD_STRENGTH_Y,
@@ -1,18 +1,14 @@
1
1
  from __future__ import annotations
2
+
2
3
  from typing import Literal
3
4
 
5
+ from esphome import pins
4
6
  import esphome.codegen as cg
7
+ from esphome.components import uart
5
8
  import esphome.config_validation as cv
6
- import esphome.final_validate as fv
9
+ from esphome.const import CONF_ADDRESS, CONF_DISABLE_CRC, CONF_FLOW_CONTROL_PIN, CONF_ID
7
10
  from esphome.cpp_helpers import gpio_pin_expression
8
- from esphome.components import uart
9
- from esphome.const import (
10
- CONF_FLOW_CONTROL_PIN,
11
- CONF_ID,
12
- CONF_ADDRESS,
13
- CONF_DISABLE_CRC,
14
- )
15
- from esphome import pins
11
+ import esphome.final_validate as fv
16
12
 
17
13
  DEPENDENCIES = ["uart"]
18
14
 
@@ -25,8 +25,8 @@ from .const import (
25
25
  CONF_MODBUS_CONTROLLER_ID,
26
26
  CONF_OFFLINE_SKIP_UPDATES,
27
27
  CONF_ON_COMMAND_SENT,
28
- CONF_ON_ONLINE,
29
28
  CONF_ON_OFFLINE,
29
+ CONF_ON_ONLINE,
30
30
  CONF_REGISTER_COUNT,
31
31
  CONF_REGISTER_TYPE,
32
32
  CONF_RESPONSE_SIZE,
@@ -1,7 +1,7 @@
1
1
  import esphome.codegen as cg
2
- import esphome.config_validation as cv
3
2
  from esphome.components import light, output
4
- from esphome.const import CONF_OUTPUT_ID, CONF_OUTPUT
3
+ import esphome.config_validation as cv
4
+ from esphome.const import CONF_OUTPUT, CONF_OUTPUT_ID
5
5
 
6
6
  monochromatic_ns = cg.esphome_ns.namespace("monochromatic")
7
7
  MonochromaticLightOutput = monochromatic_ns.class_(
@@ -1,6 +1,6 @@
1
1
  import esphome.codegen as cg
2
- import esphome.config_validation as cv
3
2
  from esphome.components import esp32_ble_tracker
3
+ import esphome.config_validation as cv
4
4
  from esphome.const import CONF_ID
5
5
 
6
6
  CODEOWNERS = ["@spbrogan", "@Fabian-Schmidt"]
@@ -1,25 +1,25 @@
1
1
  import esphome.codegen as cg
2
+ from esphome.components import esp32_ble_tracker, sensor
2
3
  import esphome.config_validation as cv
3
- from esphome.components import sensor, esp32_ble_tracker
4
4
  from esphome.const import (
5
+ CONF_BATTERY_LEVEL,
5
6
  CONF_DISTANCE,
6
- CONF_MAC_ADDRESS,
7
7
  CONF_ID,
8
- ICON_COUNTER,
9
- ICON_THERMOMETER,
10
- ICON_RULER,
11
- ICON_SIGNAL,
12
- UNIT_PERCENT,
13
- UNIT_EMPTY,
14
8
  CONF_LEVEL,
9
+ CONF_MAC_ADDRESS,
15
10
  CONF_TEMPERATURE,
11
+ DEVICE_CLASS_BATTERY,
16
12
  DEVICE_CLASS_TEMPERATURE,
13
+ ENTITY_CATEGORY_DIAGNOSTIC,
14
+ ICON_COUNTER,
15
+ ICON_RULER,
16
+ ICON_SIGNAL,
17
+ ICON_THERMOMETER,
18
+ STATE_CLASS_MEASUREMENT,
17
19
  UNIT_CELSIUS,
20
+ UNIT_EMPTY,
18
21
  UNIT_MILLIMETER,
19
- STATE_CLASS_MEASUREMENT,
20
- CONF_BATTERY_LEVEL,
21
- DEVICE_CLASS_BATTERY,
22
- ENTITY_CATEGORY_DIAGNOSTIC,
22
+ UNIT_PERCENT,
23
23
  )
24
24
 
25
25
  CONF_TANK_TYPE = "tank_type"
@@ -1,21 +1,21 @@
1
1
  import esphome.codegen as cg
2
+ from esphome.components import esp32_ble_tracker, sensor
2
3
  import esphome.config_validation as cv
3
- from esphome.components import sensor, esp32_ble_tracker
4
4
  from esphome.const import (
5
+ CONF_BATTERY_LEVEL,
5
6
  CONF_DISTANCE,
6
- CONF_MAC_ADDRESS,
7
7
  CONF_ID,
8
- ICON_THERMOMETER,
9
- ICON_RULER,
10
- UNIT_PERCENT,
11
8
  CONF_LEVEL,
9
+ CONF_MAC_ADDRESS,
12
10
  CONF_TEMPERATURE,
11
+ DEVICE_CLASS_BATTERY,
13
12
  DEVICE_CLASS_TEMPERATURE,
13
+ ICON_RULER,
14
+ ICON_THERMOMETER,
15
+ STATE_CLASS_MEASUREMENT,
14
16
  UNIT_CELSIUS,
15
17
  UNIT_MILLIMETER,
16
- STATE_CLASS_MEASUREMENT,
17
- CONF_BATTERY_LEVEL,
18
- DEVICE_CLASS_BATTERY,
18
+ UNIT_PERCENT,
19
19
  )
20
20
 
21
21
  CONF_TANK_TYPE = "tank_type"
@@ -1,6 +1,6 @@
1
1
  import esphome.codegen as cg
2
- import esphome.config_validation as cv
3
2
  from esphome.components import i2c, sensor
3
+ import esphome.config_validation as cv
4
4
  from esphome.const import (
5
5
  CONF_ALTITUDE,
6
6
  CONF_ID,
@@ -1,8 +1,7 @@
1
- import esphome.codegen as cg
2
- import esphome.config_validation as cv
3
- import esphome.final_validate as fv
4
1
  from esphome import pins
2
+ import esphome.codegen as cg
5
3
  from esphome.components import i2c
4
+ import esphome.config_validation as cv
6
5
  from esphome.const import (
7
6
  CONF_BINARY_SENSOR,
8
7
  CONF_CHANNEL,
@@ -13,6 +12,7 @@ from esphome.const import (
13
12
  CONF_NUMBER,
14
13
  CONF_OUTPUT,
15
14
  )
15
+ import esphome.final_validate as fv
16
16
 
17
17
  CONF_TOUCH_THRESHOLD = "touch_threshold"
18
18
  CONF_RELEASE_THRESHOLD = "release_threshold"
@@ -1,13 +1,14 @@
1
1
  import esphome.codegen as cg
2
- import esphome.config_validation as cv
3
2
  from esphome.components import binary_sensor
3
+ import esphome.config_validation as cv
4
4
  from esphome.const import CONF_CHANNEL
5
+
5
6
  from .. import (
6
- mpr121_ns,
7
- MPR121Component,
8
7
  CONF_MPR121_ID,
9
- CONF_TOUCH_THRESHOLD,
10
8
  CONF_RELEASE_THRESHOLD,
9
+ CONF_TOUCH_THRESHOLD,
10
+ MPR121Component,
11
+ mpr121_ns,
11
12
  )
12
13
 
13
14
  DEPENDENCIES = ["mpr121"]
@@ -1,16 +1,16 @@
1
1
  import esphome.codegen as cg
2
- import esphome.config_validation as cv
3
2
  from esphome.components import i2c, sensor
3
+ import esphome.config_validation as cv
4
4
  from esphome.const import (
5
5
  CONF_ID,
6
6
  CONF_TEMPERATURE,
7
7
  DEVICE_CLASS_TEMPERATURE,
8
8
  ICON_BRIEFCASE_DOWNLOAD,
9
- STATE_CLASS_MEASUREMENT,
10
- UNIT_METER_PER_SECOND_SQUARED,
11
9
  ICON_SCREEN_ROTATION,
12
- UNIT_DEGREE_PER_SECOND,
10
+ STATE_CLASS_MEASUREMENT,
13
11
  UNIT_CELSIUS,
12
+ UNIT_DEGREE_PER_SECOND,
13
+ UNIT_METER_PER_SECOND_SQUARED,
14
14
  )
15
15
 
16
16
  DEPENDENCIES = ["i2c"]
@@ -1,16 +1,16 @@
1
1
  import esphome.codegen as cg
2
- import esphome.config_validation as cv
3
2
  from esphome.components import i2c, sensor
3
+ import esphome.config_validation as cv
4
4
  from esphome.const import (
5
5
  CONF_ID,
6
6
  CONF_TEMPERATURE,
7
7
  DEVICE_CLASS_TEMPERATURE,
8
8
  ICON_BRIEFCASE_DOWNLOAD,
9
- STATE_CLASS_MEASUREMENT,
10
- UNIT_METER_PER_SECOND_SQUARED,
11
9
  ICON_SCREEN_ROTATION,
12
- UNIT_DEGREE_PER_SECOND,
10
+ STATE_CLASS_MEASUREMENT,
13
11
  UNIT_CELSIUS,
12
+ UNIT_DEGREE_PER_SECOND,
13
+ UNIT_METER_PER_SECOND_SQUARED,
14
14
  )
15
15
 
16
16
  CODEOWNERS = ["@fabaff"]
@@ -1,10 +1,8 @@
1
1
  import esphome.codegen as cg
2
- import esphome.config_validation as cv
3
2
  from esphome.components import mqtt, sensor
4
- from esphome.const import (
5
- CONF_QOS,
6
- CONF_TOPIC,
7
- )
3
+ import esphome.config_validation as cv
4
+ from esphome.const import CONF_QOS, CONF_TOPIC
5
+
8
6
  from .. import mqtt_subscribe_ns
9
7
 
10
8
  DEPENDENCIES = ["mqtt"]
@@ -1,6 +1,6 @@
1
1
  import esphome.codegen as cg
2
+ from esphome.components import mqtt, text_sensor
2
3
  import esphome.config_validation as cv
3
- from esphome.components import text_sensor, mqtt
4
4
  from esphome.const import CONF_QOS, CONF_TOPIC
5
5
 
6
6
  from .. import mqtt_subscribe_ns
@@ -1,15 +1,15 @@
1
1
  import esphome.codegen as cg
2
- import esphome.config_validation as cv
3
2
  from esphome.components import i2c, sensor
3
+ import esphome.config_validation as cv
4
4
  from esphome.const import (
5
5
  CONF_ID,
6
6
  CONF_PRESSURE,
7
7
  CONF_TEMPERATURE,
8
8
  DEVICE_CLASS_PRESSURE,
9
9
  DEVICE_CLASS_TEMPERATURE,
10
+ ICON_GAUGE,
10
11
  STATE_CLASS_MEASUREMENT,
11
12
  UNIT_CELSIUS,
12
- ICON_GAUGE,
13
13
  UNIT_HECTOPASCAL,
14
14
  )
15
15
 
@@ -1,6 +1,6 @@
1
1
  import esphome.codegen as cg
2
- import esphome.config_validation as cv
3
2
  from esphome.components import i2c, sensor
3
+ import esphome.config_validation as cv
4
4
  from esphome.const import (
5
5
  CONF_HUMIDITY,
6
6
  CONF_ID,
@@ -1,6 +1,6 @@
1
+ from esphome import pins
1
2
  import esphome.codegen as cg
2
3
  import esphome.config_validation as cv
3
- from esphome import pins
4
4
  from esphome.const import (
5
5
  CONF_BIT_DEPTH,
6
6
  CONF_CLOCK_PIN,
@@ -1,7 +1,8 @@
1
1
  import esphome.codegen as cg
2
- import esphome.config_validation as cv
3
2
  from esphome.components import output
3
+ import esphome.config_validation as cv
4
4
  from esphome.const import CONF_CHANNEL, CONF_ID
5
+
5
6
  from . import MY9231OutputComponent
6
7
 
7
8
  DEPENDENCIES = ["my9231"]
@@ -120,8 +120,6 @@ void NAU7802Sensor::complete_setup_() {
120
120
  // PGA stabilizer cap on output
121
121
  i2c::I2CRegister pwr_reg = this->reg(POWER_REG);
122
122
  pwr_reg |= POWER_PGA_CAP_EN;
123
-
124
- this->setup_complete_ = true;
125
123
  }
126
124
 
127
125
  void NAU7802Sensor::dump_config() {
@@ -317,7 +315,5 @@ void NAU7802Sensor::update() {
317
315
 
318
316
  bool NAU7802Sensor::is_data_ready_() { return this->reg(PU_CTRL_REG).get() & PU_CTRL_CYCLE_READY; }
319
317
 
320
- bool NAU7802Sensor::can_proceed() { return this->setup_complete_; }
321
-
322
318
  } // namespace nau7802
323
319
  } // namespace esphome
@@ -61,7 +61,6 @@ class NAU7802Sensor : public sensor::Sensor, public PollingComponent, public i2c
61
61
 
62
62
  void setup() override;
63
63
  void loop() override;
64
- bool can_proceed() override;
65
64
  void dump_config() override;
66
65
  float get_setup_priority() const override;
67
66
  void update() override;
@@ -80,7 +79,6 @@ class NAU7802Sensor : public sensor::Sensor, public PollingComponent, public i2c
80
79
  int32_t offset_calibration_;
81
80
  bool offset_calibration_failed_ = false;
82
81
  bool gain_calibration_failed_ = false;
83
- bool setup_complete_ = false;
84
82
 
85
83
  //
86
84
  // Config values
@@ -1,6 +1,14 @@
1
1
  from dataclasses import dataclass
2
2
  from typing import Any
3
+
3
4
  import esphome.codegen as cg
5
+ from esphome.components.esp32 import get_esp32_variant
6
+ from esphome.components.esp32.const import (
7
+ VARIANT_ESP32,
8
+ VARIANT_ESP32C3,
9
+ VARIANT_ESP32S2,
10
+ VARIANT_ESP32S3,
11
+ )
4
12
  import esphome.config_validation as cv
5
13
  from esphome.const import (
6
14
  CONF_CHANNEL,
@@ -10,17 +18,9 @@ from esphome.const import (
10
18
  CONF_PIN,
11
19
  CONF_SPEED,
12
20
  )
13
- from esphome.components.esp32 import get_esp32_variant
14
- from esphome.components.esp32.const import (
15
- VARIANT_ESP32,
16
- VARIANT_ESP32C3,
17
- VARIANT_ESP32S2,
18
- VARIANT_ESP32S3,
19
- )
20
21
  from esphome.core import CORE
22
+
21
23
  from .const import (
22
- CONF_ASYNC,
23
- CONF_BUS,
24
24
  CHIP_400KBPS,
25
25
  CHIP_800KBPS,
26
26
  CHIP_APA106,
@@ -38,6 +38,8 @@ from .const import (
38
38
  CHIP_WS2812,
39
39
  CHIP_WS2812X,
40
40
  CHIP_WS2813,
41
+ CONF_ASYNC,
42
+ CONF_BUS,
41
43
  ONE_WIRE_CHIPS,
42
44
  TWO_WIRE_CHIPS,
43
45
  )
@@ -1,40 +1,33 @@
1
- import esphome.codegen as cg
2
- import esphome.config_validation as cv
3
1
  from esphome import pins
2
+ import esphome.codegen as cg
4
3
  from esphome.components import light
4
+ from esphome.components.esp32 import get_esp32_variant
5
+ from esphome.components.esp32.const import VARIANT_ESP32C3, VARIANT_ESP32S3
6
+ import esphome.config_validation as cv
5
7
  from esphome.const import (
6
8
  CONF_CHANNEL,
7
9
  CONF_CLOCK_PIN,
8
10
  CONF_DATA_PIN,
11
+ CONF_INVERT,
9
12
  CONF_METHOD,
10
13
  CONF_NUM_LEDS,
14
+ CONF_OUTPUT_ID,
11
15
  CONF_PIN,
12
16
  CONF_TYPE,
13
17
  CONF_VARIANT,
14
- CONF_OUTPUT_ID,
15
- CONF_INVERT,
16
- )
17
- from esphome.components.esp32 import get_esp32_variant
18
- from esphome.components.esp32.const import (
19
- VARIANT_ESP32C3,
20
- VARIANT_ESP32S3,
21
18
  )
22
19
  from esphome.core import CORE
20
+
23
21
  from ._methods import (
24
- METHODS,
25
- METHOD_SPI,
26
- METHOD_ESP8266_UART,
27
22
  METHOD_BIT_BANG,
28
23
  METHOD_ESP32_I2S,
29
24
  METHOD_ESP32_RMT,
30
25
  METHOD_ESP8266_DMA,
26
+ METHOD_ESP8266_UART,
27
+ METHOD_SPI,
28
+ METHODS,
31
29
  )
32
- from .const import (
33
- CHIP_TYPES,
34
- CONF_ASYNC,
35
- CONF_BUS,
36
- ONE_WIRE_CHIPS,
37
- )
30
+ from .const import CHIP_TYPES, CONF_ASYNC, CONF_BUS, ONE_WIRE_CHIPS
38
31
 
39
32
  neopixelbus_ns = cg.esphome_ns.namespace("neopixelbus")
40
33
  NeoPixelBusLightOutputBase = neopixelbus_ns.class_(
@@ -1,23 +1,15 @@
1
1
  from esphome import automation
2
2
  import esphome.codegen as cg
3
- import esphome.config_validation as cv
4
3
  from esphome.components import binary_sensor
4
+ import esphome.config_validation as cv
5
+ from esphome.const import CONF_COMPONENT_ID, CONF_ID, CONF_PAGE_ID, CONF_STATE
5
6
 
6
- from esphome.const import (
7
- CONF_ID,
8
- CONF_STATE,
9
- CONF_COMPONENT_ID,
10
- CONF_PAGE_ID,
11
- )
12
-
13
- from .. import nextion_ns, CONF_NEXTION_ID, CONF_PUBLISH_STATE, CONF_SEND_TO_NEXTION
14
-
15
-
7
+ from .. import CONF_NEXTION_ID, CONF_PUBLISH_STATE, CONF_SEND_TO_NEXTION, nextion_ns
16
8
  from ..base_component import (
17
- setup_component_core_,
18
- CONFIG_BINARY_SENSOR_SCHEMA,
19
- CONF_VARIABLE_NAME,
20
9
  CONF_COMPONENT_NAME,
10
+ CONF_VARIABLE_NAME,
11
+ CONFIG_BINARY_SENSOR_SCHEMA,
12
+ setup_component_core_,
21
13
  )
22
14
 
23
15
  CODEOWNERS = ["@senexcrenshaw"]
@@ -1,25 +1,22 @@
1
1
  from esphome import automation
2
2
  import esphome.codegen as cg
3
- import esphome.config_validation as cv
4
3
  from esphome.components import sensor
4
+ import esphome.config_validation as cv
5
+ from esphome.const import CONF_COMPONENT_ID, CONF_ID, CONF_STATE
5
6
 
6
- from esphome.const import CONF_ID, CONF_COMPONENT_ID, CONF_STATE
7
-
8
- from .. import nextion_ns, CONF_NEXTION_ID, CONF_PUBLISH_STATE, CONF_SEND_TO_NEXTION
9
-
7
+ from .. import CONF_NEXTION_ID, CONF_PUBLISH_STATE, CONF_SEND_TO_NEXTION, nextion_ns
10
8
  from ..base_component import (
11
- setup_component_core_,
12
- CONFIG_SENSOR_COMPONENT_SCHEMA,
13
- CONF_VARIABLE_NAME,
14
9
  CONF_COMPONENT_NAME,
15
10
  CONF_PRECISION,
11
+ CONF_VARIABLE_NAME,
16
12
  CONF_WAVE_CHANNEL_ID,
13
+ CONF_WAVE_MAX_LENGTH,
17
14
  CONF_WAVE_MAX_VALUE,
18
15
  CONF_WAVEFORM_SEND_LAST_VALUE,
19
- CONF_WAVE_MAX_LENGTH,
16
+ CONFIG_SENSOR_COMPONENT_SCHEMA,
17
+ setup_component_core_,
20
18
  )
21
19
 
22
-
23
20
  CODEOWNERS = ["@senexcrenshaw"]
24
21
 
25
22
  NextionSensor = nextion_ns.class_("NextionSensor", sensor.Sensor, cg.PollingComponent)
@@ -1,17 +1,15 @@
1
1
  from esphome import automation
2
2
  import esphome.codegen as cg
3
- import esphome.config_validation as cv
4
3
  from esphome.components import switch
5
-
4
+ import esphome.config_validation as cv
6
5
  from esphome.const import CONF_ID, CONF_STATE
7
6
 
8
- from .. import nextion_ns, CONF_NEXTION_ID, CONF_PUBLISH_STATE, CONF_SEND_TO_NEXTION
9
-
7
+ from .. import CONF_NEXTION_ID, CONF_PUBLISH_STATE, CONF_SEND_TO_NEXTION, nextion_ns
10
8
  from ..base_component import (
11
- setup_component_core_,
12
9
  CONF_COMPONENT_NAME,
13
10
  CONF_VARIABLE_NAME,
14
11
  CONFIG_SWITCH_COMPONENT_SCHEMA,
12
+ setup_component_core_,
15
13
  )
16
14
 
17
15
  CODEOWNERS = ["@senexcrenshaw"]
@@ -1,15 +1,11 @@
1
1
  from esphome import automation
2
+ import esphome.codegen as cg
2
3
  from esphome.components import text_sensor
3
4
  import esphome.config_validation as cv
4
- import esphome.codegen as cg
5
5
  from esphome.const import CONF_ID, CONF_STATE
6
6
 
7
- from .. import nextion_ns, CONF_NEXTION_ID, CONF_PUBLISH_STATE, CONF_SEND_TO_NEXTION
8
-
9
- from ..base_component import (
10
- setup_component_core_,
11
- CONFIG_TEXT_COMPONENT_SCHEMA,
12
- )
7
+ from .. import CONF_NEXTION_ID, CONF_PUBLISH_STATE, CONF_SEND_TO_NEXTION, nextion_ns
8
+ from ..base_component import CONFIG_TEXT_COMPONENT_SCHEMA, setup_component_core_
13
9
 
14
10
  CODEOWNERS = ["@senexcrenshaw"]
15
11
 
@@ -1,6 +1,6 @@
1
1
  import esphome.codegen as cg
2
- import esphome.config_validation as cv
3
2
  from esphome.components import climate_ir
3
+ import esphome.config_validation as cv
4
4
  from esphome.const import CONF_ID
5
5
 
6
6
  AUTO_LOAD = ["climate_ir"]
@@ -1,8 +1,8 @@
1
1
  from math import log
2
2
 
3
- import esphome.config_validation as cv
4
3
  import esphome.codegen as cg
5
4
  from esphome.components import sensor
5
+ import esphome.config_validation as cv
6
6
  from esphome.const import (
7
7
  CONF_CALIBRATION,
8
8
  CONF_REFERENCE_RESISTANCE,
@@ -1,13 +1,13 @@
1
+ import logging
1
2
  from typing import Any
2
3
 
3
- import logging
4
- from esphome import automation
4
+ from esphome import automation, pins
5
5
  import esphome.codegen as cg
6
- import esphome.config_validation as cv
7
- from esphome import pins
8
6
  from esphome.components import sensor
9
- from esphome.const import CONF_ID, PLATFORM_ESP32, PLATFORM_ESP8266, CONF_TRIGGER_ID
10
- from . import const, schema, validate, generate
7
+ import esphome.config_validation as cv
8
+ from esphome.const import CONF_ID, CONF_TRIGGER_ID, PLATFORM_ESP32, PLATFORM_ESP8266
9
+
10
+ from . import const, generate, schema, validate
11
11
 
12
12
  CODEOWNERS = ["@olegtarasov"]
13
13
  MULTI_CONF = True
@@ -2,7 +2,8 @@ from typing import Any
2
2
 
3
3
  import esphome.codegen as cg
4
4
  import esphome.config_validation as cv
5
- from . import schema, generate
5
+
6
+ from . import generate, schema
6
7
 
7
8
  CONF_min_value = "min_value"
8
9
  CONF_max_value = "max_value"
@@ -1,16 +1,17 @@
1
1
  from typing import Any
2
2
 
3
3
  import esphome.codegen as cg
4
- import esphome.config_validation as cv
5
4
  from esphome.components import number
5
+ import esphome.config_validation as cv
6
6
  from esphome.const import (
7
7
  CONF_ID,
8
- CONF_UNIT_OF_MEASUREMENT,
9
- CONF_STEP,
10
8
  CONF_INITIAL_VALUE,
11
9
  CONF_RESTORE_VALUE,
10
+ CONF_STEP,
11
+ CONF_UNIT_OF_MEASUREMENT,
12
12
  )
13
- from .. import const, schema, validate, input, generate
13
+
14
+ from .. import const, generate, input, schema, validate
14
15
 
15
16
  DEPENDENCIES = [const.OPENTHERM]
16
17
  COMPONENT_TYPE = const.NUMBER
@@ -1,10 +1,11 @@
1
1
  from typing import Any
2
2
 
3
3
  import esphome.codegen as cg
4
- import esphome.config_validation as cv
5
4
  from esphome.components import output
5
+ import esphome.config_validation as cv
6
6
  from esphome.const import CONF_ID
7
- from .. import const, schema, validate, input, generate
7
+
8
+ from .. import const, generate, input, schema, validate
8
9
 
9
10
  DEPENDENCIES = [const.OPENTHERM]
10
11
  COMPONENT_TYPE = const.OUTPUT
@@ -2,16 +2,10 @@
2
2
  # inputs of the OpenTherm component.
3
3
 
4
4
  from dataclasses import dataclass
5
- from typing import Optional, TypeVar, Any
5
+ from typing import Any, Optional, TypeVar
6
6
 
7
7
  import esphome.config_validation as cv
8
8
  from esphome.const import (
9
- UNIT_CELSIUS,
10
- UNIT_EMPTY,
11
- UNIT_KILOWATT,
12
- UNIT_MICROAMP,
13
- UNIT_PERCENT,
14
- UNIT_REVOLUTIONS_PER_MINUTE,
15
9
  DEVICE_CLASS_COLD,
16
10
  DEVICE_CLASS_CURRENT,
17
11
  DEVICE_CLASS_EMPTY,
@@ -22,6 +16,12 @@ from esphome.const import (
22
16
  STATE_CLASS_MEASUREMENT,
23
17
  STATE_CLASS_NONE,
24
18
  STATE_CLASS_TOTAL_INCREASING,
19
+ UNIT_CELSIUS,
20
+ UNIT_EMPTY,
21
+ UNIT_KILOWATT,
22
+ UNIT_MICROAMP,
23
+ UNIT_PERCENT,
24
+ UNIT_REVOLUTIONS_PER_MINUTE,
25
25
  )
26
26
 
27
27
 
@@ -1,10 +1,11 @@
1
1
  from typing import Any
2
2
 
3
3
  import esphome.codegen as cg
4
- import esphome.config_validation as cv
5
4
  from esphome.components import switch
5
+ import esphome.config_validation as cv
6
6
  from esphome.const import CONF_ID
7
- from .. import const, schema, validate, generate
7
+
8
+ from .. import const, generate, schema, validate
8
9
 
9
10
  DEPENDENCIES = [const.OPENTHERM]
10
11
  COMPONENT_TYPE = const.SWITCH