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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (713) hide show
  1. esphome/__main__.py +34 -10
  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/am2315c.cpp +4 -4
  27. esphome/components/am2315c/sensor.py +1 -1
  28. esphome/components/am2320/sensor.py +1 -1
  29. esphome/components/am43/cover/__init__.py +1 -1
  30. esphome/components/am43/sensor/__init__.py +3 -3
  31. esphome/components/analog_threshold/binary_sensor.py +2 -5
  32. esphome/components/anova/climate.py +1 -1
  33. esphome/components/apds9306/sensor.py +1 -1
  34. esphome/components/apds9960/__init__.py +1 -1
  35. esphome/components/apds9960/binary_sensor.py +2 -1
  36. esphome/components/apds9960/sensor.py +3 -2
  37. esphome/components/api/api_frame_helper.cpp +25 -1
  38. esphome/components/as3935/__init__.py +3 -3
  39. esphome/components/as3935/binary_sensor.py +2 -1
  40. esphome/components/as3935/sensor.py +4 -3
  41. esphome/components/as3935_i2c/__init__.py +1 -1
  42. esphome/components/as3935_spi/__init__.py +1 -1
  43. esphome/components/as5600/__init__.py +2 -2
  44. esphome/components/as5600/sensor/__init__.py +10 -9
  45. esphome/components/as7341/sensor.py +1 -2
  46. esphome/components/at581x/__init__.py +4 -8
  47. esphome/components/at581x/switch/__init__.py +2 -4
  48. esphome/components/atc_mithermometer/sensor.py +3 -3
  49. esphome/components/axs15231/touchscreen/axs15231_touchscreen.cpp +7 -3
  50. esphome/components/b_parasite/sensor.py +2 -2
  51. esphome/components/ballu/climate.py +1 -1
  52. esphome/components/bang_bang/climate.py +2 -2
  53. esphome/components/bedjet/__init__.py +2 -6
  54. esphome/components/bedjet/climate/__init__.py +3 -6
  55. esphome/components/bedjet/fan/__init__.py +4 -9
  56. esphome/components/bedjet/sensor/__init__.py +3 -6
  57. esphome/components/beken_spi_led_strip/light.py +2 -2
  58. esphome/components/bh1750/sensor.py +2 -6
  59. esphome/components/binary/fan/__init__.py +2 -1
  60. esphome/components/binary/light/__init__.py +3 -2
  61. esphome/components/binary_sensor_map/sensor.py +5 -6
  62. esphome/components/bl0939/sensor.py +1 -1
  63. esphome/components/bl0940/sensor.py +3 -3
  64. esphome/components/ble_client/__init__.py +3 -2
  65. esphome/components/ble_client/sensor/__init__.py +1 -1
  66. esphome/components/ble_client/text_sensor/__init__.py +1 -1
  67. esphome/components/bluetooth_proxy/__init__.py +35 -23
  68. esphome/components/bme280_base/__init__.py +1 -1
  69. esphome/components/bme280_i2c/sensor.py +3 -2
  70. esphome/components/bme280_spi/sensor.py +3 -2
  71. esphome/components/bme680/sensor.py +4 -4
  72. esphome/components/bme680_bsec/__init__.py +1 -1
  73. esphome/components/bme680_bsec/sensor.py +3 -6
  74. esphome/components/bme680_bsec/text_sensor.py +3 -2
  75. esphome/components/bmi160/sensor.py +6 -6
  76. esphome/components/bmp085/sensor.py +1 -1
  77. esphome/components/bmp280_base/__init__.py +1 -1
  78. esphome/components/bmp280_i2c/sensor.py +3 -2
  79. esphome/components/bmp280_spi/sensor.py +3 -2
  80. esphome/components/bmp3xx_base/__init__.py +1 -1
  81. esphome/components/bmp3xx_i2c/sensor.py +2 -1
  82. esphome/components/bmp3xx_spi/sensor.py +2 -1
  83. esphome/components/bmp581/sensor.py +2 -1
  84. esphome/components/bp1658cj/__init__.py +2 -6
  85. esphome/components/bp1658cj/output.py +2 -1
  86. esphome/components/bp5758d/__init__.py +2 -6
  87. esphome/components/bp5758d/output.py +3 -2
  88. esphome/components/canbus/__init__.py +13 -2
  89. esphome/components/canbus/canbus.cpp +7 -1
  90. esphome/components/cap1188/__init__.py +2 -2
  91. esphome/components/cap1188/binary_sensor.py +3 -2
  92. esphome/components/captive_portal/__init__.py +3 -3
  93. esphome/components/ccs811/sensor.py +10 -10
  94. esphome/components/cd74hc4067/__init__.py +2 -5
  95. esphome/components/cd74hc4067/sensor.py +6 -5
  96. esphome/components/climate_ir/__init__.py +2 -2
  97. esphome/components/climate_ir_lg/climate.py +1 -1
  98. esphome/components/color/__init__.py +1 -2
  99. esphome/components/color_temperature/light.py +2 -2
  100. esphome/components/combination/sensor.py +1 -1
  101. esphome/components/coolix/climate.py +1 -1
  102. esphome/components/copy/binary_sensor/__init__.py +1 -1
  103. esphome/components/copy/button/__init__.py +1 -1
  104. esphome/components/copy/cover/__init__.py +1 -1
  105. esphome/components/copy/fan/__init__.py +2 -7
  106. esphome/components/copy/lock/__init__.py +2 -7
  107. esphome/components/copy/number/__init__.py +1 -1
  108. esphome/components/copy/select/__init__.py +2 -7
  109. esphome/components/copy/sensor/__init__.py +2 -2
  110. esphome/components/copy/switch/__init__.py +1 -1
  111. esphome/components/copy/text/__init__.py +2 -7
  112. esphome/components/copy/text_sensor/__init__.py +2 -6
  113. esphome/components/cs5460a/sensor.py +7 -7
  114. esphome/components/cse7761/sensor.py +2 -2
  115. esphome/components/cse7766/sensor.py +1 -1
  116. esphome/components/cst226/touchscreen/__init__.py +3 -4
  117. esphome/components/ct_clamp/sensor.py +1 -1
  118. esphome/components/current_based/cover.py +3 -4
  119. esphome/components/cwww/light.py +3 -3
  120. esphome/components/dac7678/__init__.py +1 -1
  121. esphome/components/dac7678/output.py +2 -1
  122. esphome/components/daikin/climate.py +1 -1
  123. esphome/components/daikin_arc/climate.py +1 -1
  124. esphome/components/daikin_brc/climate.py +1 -1
  125. esphome/components/dallas_temp/sensor.py +1 -1
  126. esphome/components/daly_bms/__init__.py +2 -2
  127. esphome/components/daly_bms/binary_sensor.py +3 -2
  128. esphome/components/daly_bms/sensor.py +14 -13
  129. esphome/components/daly_bms/text_sensor.py +3 -2
  130. esphome/components/dashboard_import/__init__.py +5 -5
  131. esphome/components/debug/sensor.py +7 -6
  132. esphome/components/debug/text_sensor.py +1 -1
  133. esphome/components/deep_sleep/__init__.py +12 -13
  134. esphome/components/delonghi/climate.py +1 -1
  135. esphome/components/demo/__init__.py +1 -1
  136. esphome/components/dfplayer/__init__.py +3 -3
  137. esphome/components/dfrobot_sen0395/__init__.py +3 -3
  138. esphome/components/dfrobot_sen0395/binary_sensor.py +2 -1
  139. esphome/components/dfrobot_sen0395/switch/__init__.py +2 -3
  140. esphome/components/dht/sensor.py +4 -5
  141. esphome/components/dht12/sensor.py +3 -3
  142. esphome/components/dps310/sensor.py +3 -3
  143. esphome/components/ds1307/time.py +2 -3
  144. esphome/components/dsmr/__init__.py +3 -7
  145. esphome/components/dsmr/sensor.py +5 -4
  146. esphome/components/dsmr/text_sensor.py +3 -2
  147. esphome/components/duty_cycle/sensor.py +3 -8
  148. esphome/components/duty_time/sensor.py +7 -7
  149. esphome/components/e131/__init__.py +3 -3
  150. esphome/components/ee895/sensor.py +5 -5
  151. esphome/components/ektf2232/touchscreen/__init__.py +2 -3
  152. esphome/components/emc2101/__init__.py +1 -1
  153. esphome/components/emc2101/output/__init__.py +3 -2
  154. esphome/components/emc2101/sensor/__init__.py +4 -3
  155. esphome/components/emmeti/climate.py +1 -1
  156. esphome/components/endstop/cover.py +3 -3
  157. esphome/components/ens160_base/__init__.py +1 -1
  158. esphome/components/ens160_i2c/sensor.py +2 -1
  159. esphome/components/ens160_spi/sensor.py +2 -1
  160. esphome/components/ens210/sensor.py +1 -1
  161. esphome/components/esp32/__init__.py +10 -0
  162. esphome/components/esp32_ble_tracker/__init__.py +135 -51
  163. esphome/components/esp32_camera/__init__.py +7 -8
  164. esphome/components/esp32_camera_web_server/__init__.py +2 -2
  165. esphome/components/esp32_can/canbus.py +21 -0
  166. esphome/components/esp32_can/esp32_can.cpp +1 -1
  167. esphome/components/esp32_can/esp32_can.h +4 -0
  168. esphome/components/esp32_dac/output.py +2 -2
  169. esphome/components/esp32_hall/sensor.py +2 -6
  170. esphome/components/esp32_touch/__init__.py +7 -7
  171. esphome/components/esp32_touch/binary_sensor.py +4 -7
  172. esphome/components/esp8266_pwm/output.py +3 -8
  173. esphome/components/ethernet/__init__.py +1 -0
  174. esphome/components/ethernet/ethernet_component.cpp +1 -1
  175. esphome/components/ethernet_info/ethernet_info_text_sensor.h +1 -0
  176. esphome/components/exposure_notifications/__init__.py +2 -2
  177. esphome/components/external_components/__init__.py +1 -1
  178. esphome/components/ezo/sensor.py +2 -2
  179. esphome/components/ezo_pmp/__init__.py +4 -4
  180. esphome/components/ezo_pmp/binary_sensor.py +4 -4
  181. esphome/components/ezo_pmp/sensor.py +4 -5
  182. esphome/components/ezo_pmp/text_sensor.py +2 -6
  183. esphome/components/factory_reset/button/__init__.py +2 -1
  184. esphome/components/factory_reset/switch/__init__.py +3 -2
  185. esphome/components/fastled_base/__init__.py +3 -3
  186. esphome/components/fastled_clockless/light.py +2 -2
  187. esphome/components/fastled_spi/light.py +2 -2
  188. esphome/components/feedback/cover.py +3 -3
  189. esphome/components/fingerprint_grow/__init__.py +5 -6
  190. esphome/components/fingerprint_grow/binary_sensor.py +2 -1
  191. esphome/components/fingerprint_grow/sensor.py +2 -1
  192. esphome/components/fs3000/sensor.py +2 -6
  193. esphome/components/ft5x06/touchscreen/__init__.py +2 -2
  194. esphome/components/ft63x6/touchscreen.py +2 -3
  195. esphome/components/fujitsu_general/climate.py +1 -1
  196. esphome/components/gcja5/sensor.py +4 -4
  197. esphome/components/gdk101/__init__.py +1 -1
  198. esphome/components/gdk101/binary_sensor.py +2 -1
  199. esphome/components/gdk101/sensor.py +5 -4
  200. esphome/components/globals/__init__.py +1 -2
  201. esphome/components/gp2y1010au0f/sensor.py +3 -3
  202. esphome/components/gp8403/__init__.py +1 -2
  203. esphome/components/gp8403/output/__init__.py +3 -4
  204. esphome/components/gpio/binary_sensor/__init__.py +3 -2
  205. esphome/components/gpio/one_wire/__init__.py +3 -2
  206. esphome/components/gpio/output/__init__.py +3 -2
  207. esphome/components/gpio/switch/__init__.py +3 -2
  208. esphome/components/gps/__init__.py +4 -5
  209. esphome/components/gps/time/__init__.py +3 -2
  210. esphome/components/graph/__init__.py +12 -12
  211. esphome/components/grove_tb6612fng/__init__.py +5 -6
  212. esphome/components/growatt_solar/sensor.py +1 -1
  213. esphome/components/gt911/binary_sensor/__init__.py +2 -2
  214. esphome/components/haier/binary_sensor/__init__.py +4 -10
  215. esphome/components/haier/button/__init__.py +3 -6
  216. esphome/components/haier/sensor/__init__.py +4 -6
  217. esphome/components/haier/switch/__init__.py +4 -7
  218. esphome/components/haier/text_sensor/__init__.py +4 -9
  219. esphome/components/havells_solar/sensor.py +1 -1
  220. esphome/components/hbridge/fan/__init__.py +6 -6
  221. esphome/components/hbridge/light/__init__.py +2 -1
  222. esphome/components/hdc1080/sensor.py +1 -1
  223. esphome/components/he60r/cover.py +2 -6
  224. esphome/components/heatpumpir/climate.py +1 -1
  225. esphome/components/hitachi_ac344/climate.py +1 -1
  226. esphome/components/hitachi_ac424/climate.py +1 -1
  227. esphome/components/hlw8012/sensor.py +6 -6
  228. esphome/components/hm3301/sensor.py +3 -3
  229. esphome/components/hmc5883l/sensor.py +4 -4
  230. esphome/components/homeassistant/time/__init__.py +2 -1
  231. esphome/components/honeywell_hih_i2c/sensor.py +3 -3
  232. esphome/components/honeywellabp/sensor.py +1 -2
  233. esphome/components/honeywellabp2_i2c/sensor.py +1 -2
  234. esphome/components/host/time/__init__.py +2 -2
  235. esphome/components/hrxl_maxsonar_wr/sensor.py +1 -1
  236. esphome/components/hte501/sensor.py +3 -3
  237. esphome/components/http_request/ota/__init__.py +5 -9
  238. esphome/components/http_request/update/__init__.py +3 -7
  239. esphome/components/htu21d/sensor.py +6 -6
  240. esphome/components/htu31d/sensor.py +1 -1
  241. esphome/components/hx711/sensor.py +3 -8
  242. esphome/components/hydreon_rgxx/binary_sensor.py +3 -7
  243. esphome/components/hydreon_rgxx/sensor.py +4 -4
  244. esphome/components/hyt271/sensor.py +1 -1
  245. esphome/components/i2c_device/__init__.py +1 -1
  246. esphome/components/i2s_audio/media_player/__init__.py +6 -8
  247. esphome/components/iaqcore/sensor.py +2 -2
  248. esphome/components/ina219/sensor.py +2 -2
  249. esphome/components/ina226/sensor.py +4 -4
  250. esphome/components/ina260/sensor.py +4 -4
  251. esphome/components/ina2xx_base/__init__.py +2 -2
  252. esphome/components/ina2xx_i2c/sensor.py +1 -1
  253. esphome/components/ina2xx_spi/sensor.py +1 -1
  254. esphome/components/ina3221/sensor.py +3 -3
  255. esphome/components/inkbird_ibsth1_mini/sensor.py +2 -2
  256. esphome/components/inkplate6/display.py +2 -2
  257. esphome/components/integration/sensor.py +4 -4
  258. esphome/components/internal_temperature/sensor.py +5 -7
  259. esphome/components/interval/__init__.py +1 -1
  260. esphome/components/jsn_sr04t/sensor.py +3 -3
  261. esphome/components/kamstrup_kmp/sensor.py +1 -1
  262. esphome/components/key_collector/__init__.py +2 -2
  263. esphome/components/kmeteriso/sensor.py +2 -2
  264. esphome/components/kuntze/sensor.py +5 -5
  265. esphome/components/lcd_base/__init__.py +2 -2
  266. esphome/components/lcd_gpio/display.py +4 -4
  267. esphome/components/lcd_menu/__init__.py +3 -7
  268. esphome/components/lcd_pcf8574/display.py +1 -1
  269. esphome/components/ld2410/__init__.py +4 -4
  270. esphome/components/ld2410/binary_sensor.py +5 -4
  271. esphome/components/ld2410/button/__init__.py +3 -2
  272. esphome/components/ld2410/number/__init__.py +5 -4
  273. esphome/components/ld2410/select/__init__.py +4 -3
  274. esphome/components/ld2410/sensor.py +6 -5
  275. esphome/components/ld2410/switch/__init__.py +2 -1
  276. esphome/components/ld2410/text_sensor.py +3 -2
  277. esphome/components/ld2420/__init__.py +1 -1
  278. esphome/components/ld2420/binary_sensor/__init__.py +4 -3
  279. esphome/components/ld2420/button/__init__.py +3 -2
  280. esphome/components/ld2420/number/__init__.py +3 -2
  281. esphome/components/ld2420/select/__init__.py +1 -0
  282. esphome/components/ld2420/sensor/__init__.py +3 -2
  283. esphome/components/ld2420/text_sensor/__init__.py +2 -6
  284. esphome/components/ld2450/__init__.py +2 -5
  285. esphome/components/ledc/output.py +3 -3
  286. esphome/components/libretiny/text_sensor.py +1 -1
  287. esphome/components/libretiny_pwm/output.py +3 -7
  288. esphome/components/lightwaverf/__init__.py +6 -8
  289. esphome/components/lilygo_t5_47/touchscreen/__init__.py +2 -3
  290. esphome/components/ltr390/sensor.py +1 -1
  291. esphome/components/ltr501/sensor.py +2 -2
  292. esphome/components/ltr_als_ps/sensor.py +2 -2
  293. esphome/components/lvgl/__init__.py +9 -12
  294. esphome/components/lvgl/automation.py +15 -3
  295. esphome/components/lvgl/defines.py +5 -2
  296. esphome/components/lvgl/encoders.py +3 -2
  297. esphome/components/lvgl/lv_validation.py +17 -9
  298. esphome/components/lvgl/lvcode.py +11 -9
  299. esphome/components/lvgl/lvgl_esphome.h +21 -0
  300. esphome/components/lvgl/number/__init__.py +23 -20
  301. esphome/components/lvgl/number/lvgl_number.h +27 -14
  302. esphome/components/lvgl/schemas.py +70 -19
  303. esphome/components/lvgl/select/__init__.py +11 -13
  304. esphome/components/lvgl/select/lvgl_select.h +25 -18
  305. esphome/components/lvgl/styles.py +42 -11
  306. esphome/components/lvgl/trigger.py +10 -1
  307. esphome/components/lvgl/widgets/__init__.py +1 -2
  308. esphome/components/lvgl/widgets/buttonmatrix.py +2 -2
  309. esphome/components/lvgl/widgets/canvas.py +407 -0
  310. esphome/components/lvgl/widgets/line.py +22 -32
  311. esphome/components/lvgl/widgets/meter.py +3 -1
  312. esphome/components/m5stack_8angle/__init__.py +1 -2
  313. esphome/components/m5stack_8angle/binary_sensor/__init__.py +2 -3
  314. esphome/components/m5stack_8angle/light/__init__.py +2 -4
  315. esphome/components/m5stack_8angle/sensor/__init__.py +2 -4
  316. esphome/components/matrix_keypad/binary_sensor/__init__.py +4 -3
  317. esphome/components/max31855/sensor.py +1 -1
  318. esphome/components/max31865/sensor.py +1 -1
  319. esphome/components/max44009/sensor.py +1 -1
  320. esphome/components/max6675/sensor.py +1 -1
  321. esphome/components/max6956/__init__.py +5 -5
  322. esphome/components/max6956/output/__init__.py +4 -3
  323. esphome/components/max7219/display.py +1 -1
  324. esphome/components/max7219digit/display.py +1 -1
  325. esphome/components/max9611/sensor.py +10 -10
  326. esphome/components/mcp23008/__init__.py +1 -1
  327. esphome/components/mcp23016/__init__.py +4 -4
  328. esphome/components/mcp23017/__init__.py +1 -1
  329. esphome/components/mcp23s08/__init__.py +1 -1
  330. esphome/components/mcp23s17/__init__.py +1 -1
  331. esphome/components/mcp23xxx_base/__init__.py +4 -4
  332. esphome/components/mcp2515/canbus.py +2 -2
  333. esphome/components/mcp3008/__init__.py +1 -1
  334. esphome/components/mcp3008/sensor/__init__.py +4 -4
  335. esphome/components/mcp3204/__init__.py +1 -1
  336. esphome/components/mcp3204/sensor/__init__.py +3 -2
  337. esphome/components/mcp4461/__init__.py +42 -0
  338. esphome/components/mcp4461/mcp4461.cpp +618 -0
  339. esphome/components/mcp4461/mcp4461.h +171 -0
  340. esphome/components/mcp4461/output/__init__.py +60 -0
  341. esphome/components/mcp4461/output/mcp4461_output.cpp +73 -0
  342. esphome/components/mcp4461/output/mcp4461_output.h +49 -0
  343. esphome/components/mcp4725/output.py +2 -2
  344. esphome/components/mcp4728/__init__.py +1 -1
  345. esphome/components/mcp4728/output/__init__.py +4 -3
  346. esphome/components/mcp47a1/output.py +2 -2
  347. esphome/components/mcp9808/sensor.py +1 -1
  348. esphome/components/mhz19/sensor.py +4 -4
  349. esphome/components/micronova/__init__.py +3 -5
  350. esphome/components/micronova/button/__init__.py +5 -5
  351. esphome/components/micronova/number/__init__.py +6 -10
  352. esphome/components/micronova/sensor/__init__.py +6 -6
  353. esphome/components/micronova/switch/__init__.py +6 -8
  354. esphome/components/micronova/text_sensor/__init__.py +5 -5
  355. esphome/components/microphone/__init__.py +2 -4
  356. esphome/components/midea/climate.py +6 -10
  357. esphome/components/midea_ir/climate.py +1 -1
  358. esphome/components/mitsubishi/climate.py +1 -1
  359. esphome/components/mlx90614/sensor.py +1 -1
  360. esphome/components/mmc5603/sensor.py +4 -4
  361. esphome/components/mmc5983/sensor.py +1 -1
  362. esphome/components/modbus/__init__.py +5 -9
  363. esphome/components/modbus_controller/__init__.py +1 -1
  364. esphome/components/monochromatic/light.py +2 -2
  365. esphome/components/mopeka_ble/__init__.py +1 -1
  366. esphome/components/mopeka_pro_check/sensor.py +12 -12
  367. esphome/components/mopeka_std_check/sensor.py +8 -8
  368. esphome/components/mpl3115a2/sensor.py +1 -1
  369. esphome/components/mpr121/__init__.py +3 -3
  370. esphome/components/mpr121/binary_sensor/__init__.py +5 -4
  371. esphome/components/mpu6050/sensor.py +4 -4
  372. esphome/components/mpu6886/sensor.py +4 -4
  373. esphome/components/mqtt_subscribe/sensor/__init__.py +3 -5
  374. esphome/components/mqtt_subscribe/text_sensor/__init__.py +1 -1
  375. esphome/components/ms5611/sensor.py +2 -2
  376. esphome/components/ms8607/sensor.py +1 -1
  377. esphome/components/my9231/__init__.py +1 -1
  378. esphome/components/my9231/output.py +2 -1
  379. esphome/components/nau7802/nau7802.cpp +0 -4
  380. esphome/components/nau7802/nau7802.h +0 -2
  381. esphome/components/neopixelbus/_methods.py +11 -9
  382. esphome/components/neopixelbus/light.py +11 -18
  383. esphome/components/nextion/binary_sensor/__init__.py +6 -14
  384. esphome/components/nextion/sensor/__init__.py +7 -10
  385. esphome/components/nextion/switch/__init__.py +3 -5
  386. esphome/components/nextion/text_sensor/__init__.py +3 -7
  387. esphome/components/noblex/climate.py +1 -1
  388. esphome/components/ntc/sensor.py +1 -1
  389. esphome/components/opentherm/__init__.py +6 -6
  390. esphome/components/opentherm/input.py +2 -1
  391. esphome/components/opentherm/number/__init__.py +5 -4
  392. esphome/components/opentherm/output/__init__.py +3 -2
  393. esphome/components/opentherm/schema.py +7 -7
  394. esphome/components/opentherm/switch/__init__.py +3 -2
  395. esphome/components/opentherm/validate.py +1 -1
  396. esphome/components/output/__init__.py +2 -3
  397. esphome/components/output/button/__init__.py +3 -2
  398. esphome/components/output/lock/__init__.py +2 -1
  399. esphome/components/output/switch/__init__.py +2 -1
  400. esphome/components/partition/light.py +4 -4
  401. esphome/components/pca6416a/__init__.py +4 -4
  402. esphome/components/pca9554/__init__.py +4 -4
  403. esphome/components/pca9685/__init__.py +2 -2
  404. esphome/components/pca9685/output.py +2 -1
  405. esphome/components/pcf85063/time.py +2 -3
  406. esphome/components/pcf8563/time.py +2 -2
  407. esphome/components/pcf8574/__init__.py +4 -4
  408. esphome/components/pid/climate.py +2 -2
  409. esphome/components/pid/sensor/__init__.py +4 -8
  410. esphome/components/pipsolar/__init__.py +1 -1
  411. esphome/components/pipsolar/binary_sensor/__init__.py +2 -2
  412. esphome/components/pipsolar/output/__init__.py +4 -3
  413. esphome/components/pipsolar/sensor/__init__.py +5 -4
  414. esphome/components/pipsolar/switch/__init__.py +2 -1
  415. esphome/components/pipsolar/text_sensor/__init__.py +2 -1
  416. esphome/components/pm1006/sensor.py +2 -2
  417. esphome/components/pmsa003i/sensor.py +4 -4
  418. esphome/components/pmsx003/sensor.py +10 -11
  419. esphome/components/pmwcs3/sensor.py +5 -5
  420. esphome/components/pn532/__init__.py +3 -3
  421. esphome/components/pn532_i2c/__init__.py +1 -1
  422. esphome/components/pn532_spi/__init__.py +1 -1
  423. esphome/components/pn7150/__init__.py +2 -2
  424. esphome/components/pn7150_i2c/__init__.py +1 -1
  425. esphome/components/pn7160/__init__.py +2 -2
  426. esphome/components/pn7160_i2c/__init__.py +1 -1
  427. esphome/components/pn7160_spi/__init__.py +1 -1
  428. esphome/components/power_supply/__init__.py +1 -1
  429. esphome/components/prometheus/__init__.py +3 -8
  430. esphome/components/psram/__init__.py +75 -11
  431. esphome/components/psram/psram.cpp +18 -7
  432. esphome/components/pulse_counter/sensor.py +4 -4
  433. esphome/components/pulse_meter/sensor.py +3 -3
  434. esphome/components/pulse_width/sensor.py +3 -8
  435. esphome/components/pvvx_mithermometer/display/__init__.py +1 -1
  436. esphome/components/pvvx_mithermometer/sensor.py +3 -3
  437. esphome/components/pylontech/__init__.py +1 -0
  438. esphome/components/pylontech/sensor/__init__.py +8 -13
  439. esphome/components/pylontech/text_sensor/__init__.py +2 -7
  440. esphome/components/pzem004t/sensor.py +3 -3
  441. esphome/components/pzemac/sensor.py +9 -9
  442. esphome/components/pzemdc/sensor.py +6 -6
  443. esphome/components/qmc5883l/sensor.py +5 -5
  444. esphome/components/qmp6988/sensor.py +3 -3
  445. esphome/components/qr_code/__init__.py +1 -1
  446. esphome/components/qspi_dbi/display.py +1 -1
  447. esphome/components/qspi_dbi/qspi_dbi.cpp +1 -1
  448. esphome/components/qspi_dbi/qspi_dbi.h +1 -1
  449. esphome/components/qwiic_pir/binary_sensor.py +2 -5
  450. esphome/components/radon_eye_ble/__init__.py +1 -1
  451. esphome/components/radon_eye_rd200/sensor.py +3 -4
  452. esphome/components/rc522/__init__.py +3 -3
  453. esphome/components/rc522_i2c/__init__.py +1 -1
  454. esphome/components/rc522_spi/__init__.py +1 -1
  455. esphome/components/rdm6300/__init__.py +2 -2
  456. esphome/components/rdm6300/binary_sensor.py +2 -1
  457. esphome/components/resistance/sensor.py +2 -2
  458. esphome/components/restart/button/__init__.py +1 -1
  459. esphome/components/restart/switch/__init__.py +2 -5
  460. esphome/components/rf_bridge/__init__.py +3 -3
  461. esphome/components/rgb/light.py +2 -2
  462. esphome/components/rgbct/light.py +3 -3
  463. esphome/components/rgbw/light.py +2 -2
  464. esphome/components/rgbww/light.py +4 -4
  465. esphome/components/rotary_encoder/sensor.py +8 -8
  466. esphome/components/rp2040_pio/__init__.py +0 -1
  467. esphome/components/rp2040_pio_led_strip/light.py +2 -4
  468. esphome/components/rp2040_pwm/output.py +3 -7
  469. esphome/components/rtttl/__init__.py +6 -6
  470. esphome/components/ruuvi_ble/__init__.py +1 -1
  471. esphome/components/ruuvitag/sensor.py +15 -15
  472. esphome/components/safe_mode/__init__.py +2 -3
  473. esphome/components/safe_mode/button/__init__.py +3 -2
  474. esphome/components/safe_mode/switch/__init__.py +4 -7
  475. esphome/components/scd30/sensor.py +5 -6
  476. esphome/components/scd4x/sensor.py +6 -8
  477. esphome/components/script/__init__.py +2 -2
  478. esphome/components/sdl/display.py +3 -3
  479. esphome/components/sdl/touchscreen/__init__.py +2 -2
  480. esphome/components/sdm_meter/sensor.py +3 -3
  481. esphome/components/sdp3x/sensor.py +1 -2
  482. esphome/components/sds011/sensor.py +4 -4
  483. esphome/components/seeed_mr24hpc1/__init__.py +1 -1
  484. esphome/components/seeed_mr24hpc1/binary_sensor.py +2 -5
  485. esphome/components/seeed_mr24hpc1/button/__init__.py +1 -0
  486. esphome/components/seeed_mr24hpc1/number/__init__.py +2 -4
  487. esphome/components/seeed_mr24hpc1/select/__init__.py +2 -3
  488. esphome/components/seeed_mr24hpc1/sensor.py +1 -0
  489. esphome/components/seeed_mr24hpc1/switch/__init__.py +2 -4
  490. esphome/components/seeed_mr24hpc1/text_sensor.py +1 -0
  491. esphome/components/seeed_mr60bha2/binary_sensor.py +2 -4
  492. esphome/components/seeed_mr60bha2/sensor.py +1 -1
  493. esphome/components/seeed_mr60fda2/button/__init__.py +1 -1
  494. esphome/components/seeed_mr60fda2/select/__init__.py +0 -1
  495. esphome/components/selec_meter/sensor.py +1 -1
  496. esphome/components/sen0321/sensor.py +2 -2
  497. esphome/components/sen21231/sensor.py +1 -1
  498. esphome/components/senseair/sensor.py +3 -3
  499. esphome/components/sensirion_common/__init__.py +0 -2
  500. esphome/components/servo/__init__.py +3 -3
  501. esphome/components/sfa30/sensor.py +4 -5
  502. esphome/components/sgp4x/sensor.py +2 -2
  503. esphome/components/shelly_dimmer/light.py +16 -16
  504. esphome/components/sht3xd/sensor.py +1 -1
  505. esphome/components/sht4x/sensor.py +6 -6
  506. esphome/components/shtcx/sensor.py +1 -1
  507. esphome/components/shutdown/button/__init__.py +2 -6
  508. esphome/components/shutdown/switch/__init__.py +2 -5
  509. esphome/components/sigma_delta_output/output.py +2 -7
  510. esphome/components/sim800l/__init__.py +3 -7
  511. esphome/components/sim800l/binary_sensor.py +3 -5
  512. esphome/components/sim800l/sensor.py +2 -1
  513. esphome/components/slow_pwm/output.py +4 -5
  514. esphome/components/sm10bit_base/__init__.py +2 -6
  515. esphome/components/sm16716/__init__.py +1 -1
  516. esphome/components/sm16716/output.py +2 -1
  517. esphome/components/sm2135/__init__.py +2 -6
  518. esphome/components/sm2135/output.py +2 -1
  519. esphome/components/sm2235/__init__.py +1 -1
  520. esphome/components/sm2235/output.py +2 -1
  521. esphome/components/sm2335/__init__.py +1 -1
  522. esphome/components/sm2335/output.py +2 -1
  523. esphome/components/sm300d2/sensor.py +13 -13
  524. esphome/components/sml/__init__.py +1 -1
  525. esphome/components/sml/sensor/__init__.py +1 -1
  526. esphome/components/sml/sml.cpp +8 -6
  527. esphome/components/sml/sml.h +1 -1
  528. esphome/components/sml/sml_parser.cpp +16 -18
  529. esphome/components/sml/sml_parser.h +42 -12
  530. esphome/components/sml/text_sensor/__init__.py +1 -1
  531. esphome/components/smt100/sensor.py +5 -6
  532. esphome/components/sn74hc165/__init__.py +5 -5
  533. esphome/components/sn74hc595/__init__.py +5 -5
  534. esphome/components/socket/__init__.py +1 -1
  535. esphome/components/sonoff_d1/light.py +2 -6
  536. esphome/components/speaker/media_player/audio_pipeline.cpp +3 -2
  537. esphome/components/speed/fan/__init__.py +2 -2
  538. esphome/components/spi/__init__.py +45 -36
  539. esphome/components/spi/spi.h +1 -0
  540. esphome/components/spi/spi_esp_idf.cpp +13 -5
  541. esphome/components/sprinkler/__init__.py +4 -5
  542. esphome/components/sps30/sensor.py +8 -8
  543. esphome/components/ssd1306_i2c/display.py +2 -2
  544. esphome/components/ssd1322_base/__init__.py +2 -2
  545. esphome/components/ssd1325_base/__init__.py +2 -2
  546. esphome/components/ssd1327_base/__init__.py +2 -2
  547. esphome/components/ssd1327_i2c/display.py +1 -1
  548. esphome/components/ssd1331_base/__init__.py +2 -2
  549. esphome/components/ssd1351_base/__init__.py +2 -2
  550. esphome/components/st7567_base/__init__.py +4 -4
  551. esphome/components/st7567_i2c/display.py +1 -1
  552. esphome/components/st7920/display.py +2 -2
  553. esphome/components/statsd/__init__.py +3 -3
  554. esphome/components/status/binary_sensor.py +2 -5
  555. esphome/components/status_led/__init__.py +1 -1
  556. esphome/components/status_led/light/__init__.py +2 -1
  557. esphome/components/stepper/__init__.py +2 -2
  558. esphome/components/sts3x/sensor.py +1 -1
  559. esphome/components/substitutions/__init__.py +2 -2
  560. esphome/components/sun/__init__.py +4 -4
  561. esphome/components/sun/sensor/__init__.py +4 -7
  562. esphome/components/sun/text_sensor/__init__.py +5 -4
  563. esphome/components/sun_gtil2/__init__.py +1 -1
  564. esphome/components/sun_gtil2/sensor.py +7 -6
  565. esphome/components/sun_gtil2/text_sensor.py +3 -2
  566. esphome/components/sx1509/__init__.py +5 -5
  567. esphome/components/sx1509/binary_sensor/__init__.py +3 -3
  568. esphome/components/sx1509/output/__init__.py +4 -3
  569. esphome/components/t6615/sensor.py +1 -1
  570. esphome/components/tca9548a/__init__.py +1 -1
  571. esphome/components/tcl112/climate.py +1 -1
  572. esphome/components/tcs34725/sensor.py +4 -4
  573. esphome/components/tee501/sensor.py +1 -1
  574. esphome/components/teleinfo/__init__.py +1 -1
  575. esphome/components/teleinfo/sensor/__init__.py +1 -7
  576. esphome/components/teleinfo/text_sensor/__init__.py +1 -1
  577. esphome/components/tem3200/sensor.py +1 -2
  578. esphome/components/template/alarm_control_panel/__init__.py +3 -10
  579. esphome/components/template/cover/__init__.py +4 -3
  580. esphome/components/template/datetime/__init__.py +8 -9
  581. esphome/components/template/event/__init__.py +2 -5
  582. esphome/components/template/fan/__init__.py +2 -6
  583. esphome/components/template/lock/__init__.py +3 -2
  584. esphome/components/template/number/__init__.py +3 -2
  585. esphome/components/template/output/__init__.py +4 -3
  586. esphome/components/template/select/__init__.py +3 -2
  587. esphome/components/template/sensor/__init__.py +4 -7
  588. esphome/components/template/switch/__init__.py +3 -2
  589. esphome/components/template/text/__init__.py +4 -3
  590. esphome/components/template/text_sensor/__init__.py +3 -2
  591. esphome/components/template/valve/__init__.py +3 -2
  592. esphome/components/time/real_time_clock.cpp +0 -4
  593. esphome/components/time/real_time_clock.h +4 -3
  594. esphome/components/time_based/cover.py +3 -3
  595. esphome/components/tlc59208f/__init__.py +1 -1
  596. esphome/components/tlc59208f/output.py +2 -1
  597. esphome/components/tlc5947/__init__.py +1 -1
  598. esphome/components/tlc5947/output/__init__.py +2 -1
  599. esphome/components/tlc5971/__init__.py +2 -8
  600. esphome/components/tlc5971/output/__init__.py +2 -1
  601. esphome/components/tm1621/display.py +3 -3
  602. esphome/components/tm1637/binary_sensor.py +1 -1
  603. esphome/components/tm1637/display.py +3 -3
  604. esphome/components/tm1651/__init__.py +4 -4
  605. esphome/components/tmp102/sensor.py +1 -1
  606. esphome/components/tmp1075/sensor.py +2 -2
  607. esphome/components/tmp117/sensor.py +1 -1
  608. esphome/components/tof10120/sensor.py +2 -2
  609. esphome/components/tormatic/cover.py +2 -6
  610. esphome/components/toshiba/climate.py +1 -1
  611. esphome/components/total_daily_energy/sensor.py +4 -4
  612. esphome/components/tsl2561/sensor.py +1 -1
  613. esphome/components/tsl2591/sensor.py +9 -9
  614. esphome/components/tt21100/binary_sensor/__init__.py +2 -2
  615. esphome/components/tt21100/touchscreen/__init__.py +2 -3
  616. esphome/components/ttp229_bsf/__init__.py +2 -2
  617. esphome/components/ttp229_bsf/binary_sensor.py +3 -2
  618. esphome/components/ttp229_lsf/__init__.py +1 -1
  619. esphome/components/ttp229_lsf/binary_sensor.py +3 -2
  620. esphome/components/tuya/__init__.py +3 -5
  621. esphome/components/tuya/binary_sensor/__init__.py +2 -2
  622. esphome/components/tuya/climate/__init__.py +6 -5
  623. esphome/components/tuya/cover/__init__.py +5 -4
  624. esphome/components/tuya/fan/__init__.py +3 -2
  625. esphome/components/tuya/light/__init__.py +9 -8
  626. esphome/components/tuya/number/__init__.py +6 -5
  627. esphome/components/tuya/select/__init__.py +4 -3
  628. esphome/components/tuya/sensor/__init__.py +3 -2
  629. esphome/components/tuya/switch/__init__.py +3 -2
  630. esphome/components/tuya/text_sensor/__init__.py +3 -2
  631. esphome/components/tx20/sensor.py +6 -6
  632. esphome/components/uart/__init__.py +20 -19
  633. esphome/components/uart/button/__init__.py +2 -1
  634. esphome/components/uart/switch/__init__.py +2 -1
  635. esphome/components/ufire_ise/sensor.py +2 -2
  636. esphome/components/uln2003/stepper.py +2 -2
  637. esphome/components/ultrasonic/sensor.py +4 -4
  638. esphome/components/uponor_smatrix/__init__.py +2 -6
  639. esphome/components/uponor_smatrix/climate/__init__.py +3 -3
  640. esphome/components/vbus/__init__.py +1 -1
  641. esphome/components/vbus/binary_sensor/__init__.py +7 -6
  642. esphome/components/vbus/sensor/__init__.py +7 -6
  643. esphome/components/veml3235/sensor.py +1 -1
  644. esphome/components/veml7700/sensor.py +1 -1
  645. esphome/components/version/text_sensor.py +2 -6
  646. esphome/components/vl53l0x/sensor.py +6 -6
  647. esphome/components/web_server_base/__init__.py +2 -2
  648. esphome/components/web_server_idf/__init__.py +1 -1
  649. esphome/components/weikai/__init__.py +1 -1
  650. esphome/components/whirlpool/climate.py +1 -1
  651. esphome/components/whynter/climate.py +1 -1
  652. esphome/components/wireguard/binary_sensor.py +1 -1
  653. esphome/components/wireguard/sensor.py +2 -5
  654. esphome/components/wireguard/text_sensor.py +2 -5
  655. esphome/components/wk2132_i2c/__init__.py +1 -1
  656. esphome/components/wk2132_spi/__init__.py +1 -2
  657. esphome/components/wk2168_i2c/__init__.py +3 -8
  658. esphome/components/wk2168_spi/__init__.py +3 -8
  659. esphome/components/wk2204_i2c/__init__.py +1 -1
  660. esphome/components/wk2204_spi/__init__.py +1 -1
  661. esphome/components/wk2212_i2c/__init__.py +3 -8
  662. esphome/components/wk2212_spi/__init__.py +3 -8
  663. esphome/components/wl_134/text_sensor.py +2 -4
  664. esphome/components/wled/__init__.py +2 -2
  665. esphome/components/x9c/output.py +4 -4
  666. esphome/components/xgzp68xx/sensor.py +5 -5
  667. esphome/components/xiaomi_ble/__init__.py +1 -1
  668. esphome/components/xiaomi_cgd1/sensor.py +3 -3
  669. esphome/components/xiaomi_cgdk2/sensor.py +3 -3
  670. esphome/components/xiaomi_cgg1/sensor.py +2 -2
  671. esphome/components/xiaomi_cgpr1/binary_sensor.py +6 -6
  672. esphome/components/xiaomi_gcls002/sensor.py +7 -7
  673. esphome/components/xiaomi_hhccjcy01/sensor.py +9 -9
  674. esphome/components/xiaomi_hhccjcy10/sensor.py +9 -9
  675. esphome/components/xiaomi_hhccpot002/sensor.py +7 -7
  676. esphome/components/xiaomi_jqjcy01ym/sensor.py +6 -6
  677. esphome/components/xiaomi_lywsd02/sensor.py +4 -4
  678. esphome/components/xiaomi_lywsd02mmc/sensor.py +5 -5
  679. esphome/components/xiaomi_lywsd03mmc/sensor.py +6 -6
  680. esphome/components/xiaomi_lywsdcgq/sensor.py +5 -5
  681. esphome/components/xiaomi_mhoc303/sensor.py +4 -4
  682. esphome/components/xiaomi_mhoc401/sensor.py +6 -6
  683. esphome/components/xiaomi_miscale/sensor.py +6 -6
  684. esphome/components/xiaomi_mjyd02yla/binary_sensor.py +8 -8
  685. esphome/components/xiaomi_mue4094rt/binary_sensor.py +2 -7
  686. esphome/components/xiaomi_rtcgq02lm/__init__.py +2 -3
  687. esphome/components/xiaomi_rtcgq02lm/binary_sensor.py +3 -3
  688. esphome/components/xiaomi_rtcgq02lm/sensor.py +3 -3
  689. esphome/components/xiaomi_wx08zm/binary_sensor.py +2 -3
  690. esphome/components/xl9535/__init__.py +2 -2
  691. esphome/components/yashima/climate.py +1 -1
  692. esphome/components/zhlt01/climate.py +1 -1
  693. esphome/components/zio_ultrasonic/sensor.py +2 -5
  694. esphome/components/zyaura/sensor.py +7 -7
  695. esphome/config_validation.py +0 -42
  696. esphome/const.py +3 -1
  697. esphome/core/__init__.py +0 -1
  698. esphome/core/component.cpp +3 -1
  699. esphome/core/component.h +15 -2
  700. esphome/core/config.py +4 -0
  701. esphome/core/defines.h +21 -0
  702. esphome/core/helpers.cpp +6 -7
  703. esphome/core/scheduler.cpp +34 -67
  704. esphome/core/scheduler.h +7 -17
  705. esphome/dashboard/status/mqtt.py +0 -2
  706. esphome/vscode.py +27 -8
  707. esphome/yaml_util.py +75 -39
  708. {esphome-2025.3.3.dist-info → esphome-2025.4.0.dist-info}/METADATA +45 -44
  709. {esphome-2025.3.3.dist-info → esphome-2025.4.0.dist-info}/RECORD +713 -706
  710. {esphome-2025.3.3.dist-info → esphome-2025.4.0.dist-info}/WHEEL +1 -1
  711. {esphome-2025.3.3.dist-info → esphome-2025.4.0.dist-info}/entry_points.txt +0 -0
  712. {esphome-2025.3.3.dist-info → esphome-2025.4.0.dist-info/licenses}/LICENSE +0 -0
  713. {esphome-2025.3.3.dist-info → esphome-2025.4.0.dist-info}/top_level.txt +0 -0
@@ -1,25 +1,36 @@
1
- #include "psram.h"
2
1
 
3
2
  #ifdef USE_ESP32
3
+ #include "psram.h"
4
+ #ifdef USE_ESP_IDF
5
+ #include <esp_psram.h>
6
+ #endif // USE_ESP_IDF
4
7
 
5
8
  #include "esphome/core/log.h"
6
9
 
7
10
  #include <esp_heap_caps.h>
8
- #include <esp_idf_version.h>
9
11
 
10
12
  namespace esphome {
11
13
  namespace psram {
12
-
13
14
  static const char *const TAG = "psram";
14
15
 
15
16
  void PsramComponent::dump_config() {
17
+ ESP_LOGCONFIG(TAG, "PSRAM:");
18
+ #ifdef USE_ESP_IDF
19
+ bool available = esp_psram_is_initialized();
20
+
21
+ ESP_LOGCONFIG(TAG, " Available: %s", YESNO(available));
22
+ if (available) {
23
+ ESP_LOGCONFIG(TAG, " Size: %zu KB", esp_psram_get_size() / 1024);
24
+ #if CONFIG_SPIRAM_ECC_ENABLE
25
+ ESP_LOGCONFIG(TAG, " ECC enabled: YES");
26
+ #endif
27
+ }
28
+ #else
16
29
  // Technically this can be false if the PSRAM is full, but heap_caps_get_total_size() isn't always available, and it's
17
30
  // very unlikely for the PSRAM to be full.
18
31
  bool available = heap_caps_get_free_size(MALLOC_CAP_SPIRAM) > 0;
19
-
20
- ESP_LOGCONFIG(TAG, "PSRAM:");
21
32
  ESP_LOGCONFIG(TAG, " Available: %s", YESNO(available));
22
- #if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(4, 1, 0)
33
+
23
34
  if (available) {
24
35
  const size_t psram_total_size_bytes = heap_caps_get_total_size(MALLOC_CAP_SPIRAM);
25
36
  const float psram_total_size_kb = psram_total_size_bytes / 1024.0f;
@@ -30,7 +41,7 @@ void PsramComponent::dump_config() {
30
41
  ESP_LOGCONFIG(TAG, " Size: %zu bytes", psram_total_size_bytes);
31
42
  }
32
43
  }
33
- #endif
44
+ #endif // USE_ESP_IDF
34
45
  }
35
46
 
36
47
  } // namespace psram
@@ -1,22 +1,22 @@
1
- import esphome.codegen as cg
2
- import esphome.config_validation as cv
3
1
  from esphome import automation, pins
2
+ import esphome.codegen as cg
4
3
  from esphome.components import sensor
4
+ import esphome.config_validation as cv
5
5
  from esphome.const import (
6
6
  CONF_COUNT_MODE,
7
7
  CONF_FALLING_EDGE,
8
8
  CONF_ID,
9
9
  CONF_INTERNAL_FILTER,
10
+ CONF_NUMBER,
10
11
  CONF_PIN,
11
12
  CONF_RISING_EDGE,
12
- CONF_NUMBER,
13
13
  CONF_TOTAL,
14
14
  CONF_VALUE,
15
15
  ICON_PULSE,
16
16
  STATE_CLASS_MEASUREMENT,
17
17
  STATE_CLASS_TOTAL_INCREASING,
18
- UNIT_PULSES_PER_MINUTE,
19
18
  UNIT_PULSES,
19
+ UNIT_PULSES_PER_MINUTE,
20
20
  )
21
21
  from esphome.core import CORE
22
22
 
@@ -1,13 +1,13 @@
1
- import esphome.codegen as cg
2
- import esphome.config_validation as cv
3
1
  from esphome import automation, pins
2
+ import esphome.codegen as cg
4
3
  from esphome.components import sensor
4
+ import esphome.config_validation as cv
5
5
  from esphome.const import (
6
6
  CONF_ID,
7
7
  CONF_INTERNAL_FILTER,
8
8
  CONF_INTERNAL_FILTER_MODE,
9
- CONF_PIN,
10
9
  CONF_NUMBER,
10
+ CONF_PIN,
11
11
  CONF_TIMEOUT,
12
12
  CONF_TOTAL,
13
13
  CONF_VALUE,
@@ -1,13 +1,8 @@
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 sensor
5
- from esphome.const import (
6
- CONF_PIN,
7
- STATE_CLASS_MEASUREMENT,
8
- UNIT_SECOND,
9
- ICON_TIMER,
10
- )
4
+ import esphome.config_validation as cv
5
+ from esphome.const import CONF_PIN, ICON_TIMER, STATE_CLASS_MEASUREMENT, UNIT_SECOND
11
6
 
12
7
  pulse_width_ns = cg.esphome_ns.namespace("pulse_width")
13
8
 
@@ -1,6 +1,6 @@
1
1
  import esphome.codegen as cg
2
- import esphome.config_validation as cv
3
2
  from esphome.components import ble_client, display, time
3
+ import esphome.config_validation as cv
4
4
  from esphome.const import (
5
5
  CONF_AUTO_CLEAR_ENABLED,
6
6
  CONF_DISCONNECT_DELAY,
@@ -1,14 +1,14 @@
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
5
  CONF_BATTERY_LEVEL,
6
6
  CONF_BATTERY_VOLTAGE,
7
- CONF_MAC_ADDRESS,
8
7
  CONF_HUMIDITY,
8
+ CONF_ID,
9
+ CONF_MAC_ADDRESS,
9
10
  CONF_SIGNAL_STRENGTH,
10
11
  CONF_TEMPERATURE,
11
- CONF_ID,
12
12
  DEVICE_CLASS_BATTERY,
13
13
  DEVICE_CLASS_HUMIDITY,
14
14
  DEVICE_CLASS_SIGNAL_STRENGTH,
@@ -1,4 +1,5 @@
1
1
  import logging
2
+
2
3
  import esphome.codegen as cg
3
4
  from esphome.components import uart
4
5
  import esphome.config_validation as cv
@@ -1,27 +1,22 @@
1
1
  import esphome.codegen as cg
2
- import esphome.config_validation as cv
3
2
  from esphome.components import sensor
3
+ import esphome.config_validation as cv
4
4
  from esphome.const import (
5
- CONF_VOLTAGE,
6
5
  CONF_CURRENT,
6
+ CONF_ID,
7
7
  CONF_TEMPERATURE,
8
- UNIT_VOLT,
9
- UNIT_AMPERE,
10
- DEVICE_CLASS_VOLTAGE,
8
+ CONF_VOLTAGE,
9
+ DEVICE_CLASS_BATTERY,
11
10
  DEVICE_CLASS_CURRENT,
12
11
  DEVICE_CLASS_TEMPERATURE,
13
- DEVICE_CLASS_BATTERY,
12
+ DEVICE_CLASS_VOLTAGE,
13
+ UNIT_AMPERE,
14
14
  UNIT_CELSIUS,
15
15
  UNIT_PERCENT,
16
- CONF_ID,
16
+ UNIT_VOLT,
17
17
  )
18
18
 
19
- from .. import (
20
- CONF_PYLONTECH_ID,
21
- PYLONTECH_COMPONENT_SCHEMA,
22
- CONF_BATTERY,
23
- pylontech_ns,
24
- )
19
+ from .. import CONF_BATTERY, CONF_PYLONTECH_ID, PYLONTECH_COMPONENT_SCHEMA, pylontech_ns
25
20
 
26
21
  PylontechSensor = pylontech_ns.class_("PylontechSensor", cg.Component)
27
22
 
@@ -1,14 +1,9 @@
1
1
  import esphome.codegen as cg
2
- import esphome.config_validation as cv
3
2
  from esphome.components import text_sensor
3
+ import esphome.config_validation as cv
4
4
  from esphome.const import CONF_ID
5
5
 
6
- from .. import (
7
- CONF_PYLONTECH_ID,
8
- PYLONTECH_COMPONENT_SCHEMA,
9
- CONF_BATTERY,
10
- pylontech_ns,
11
- )
6
+ from .. import CONF_BATTERY, CONF_PYLONTECH_ID, PYLONTECH_COMPONENT_SCHEMA, pylontech_ns
12
7
 
13
8
  PylontechTextSensor = pylontech_ns.class_("PylontechTextSensor", cg.Component)
14
9
 
@@ -1,20 +1,20 @@
1
1
  import esphome.codegen as cg
2
- import esphome.config_validation as cv
3
2
  from esphome.components import sensor, uart
3
+ import esphome.config_validation as cv
4
4
  from esphome.const import (
5
5
  CONF_CURRENT,
6
+ CONF_ENERGY,
6
7
  CONF_ID,
7
8
  CONF_POWER,
8
9
  CONF_VOLTAGE,
9
- CONF_ENERGY,
10
10
  DEVICE_CLASS_CURRENT,
11
11
  DEVICE_CLASS_ENERGY,
12
12
  DEVICE_CLASS_POWER,
13
13
  DEVICE_CLASS_VOLTAGE,
14
14
  STATE_CLASS_MEASUREMENT,
15
15
  STATE_CLASS_TOTAL_INCREASING,
16
- UNIT_VOLT,
17
16
  UNIT_AMPERE,
17
+ UNIT_VOLT,
18
18
  UNIT_WATT,
19
19
  UNIT_WATT_HOURS,
20
20
  )
@@ -1,27 +1,27 @@
1
- import esphome.codegen as cg
2
- import esphome.config_validation as cv
3
1
  from esphome import automation
4
2
  from esphome.automation import maybe_simple_id
5
- from esphome.components import sensor, modbus
3
+ import esphome.codegen as cg
4
+ from esphome.components import modbus, sensor
5
+ import esphome.config_validation as cv
6
6
  from esphome.const import (
7
7
  CONF_CURRENT,
8
8
  CONF_ENERGY,
9
+ CONF_FREQUENCY,
9
10
  CONF_ID,
10
11
  CONF_POWER,
11
- CONF_VOLTAGE,
12
- CONF_FREQUENCY,
13
12
  CONF_POWER_FACTOR,
14
- DEVICE_CLASS_POWER_FACTOR,
15
- DEVICE_CLASS_VOLTAGE,
13
+ CONF_VOLTAGE,
16
14
  DEVICE_CLASS_CURRENT,
17
- DEVICE_CLASS_POWER,
18
15
  DEVICE_CLASS_ENERGY,
16
+ DEVICE_CLASS_POWER,
17
+ DEVICE_CLASS_POWER_FACTOR,
18
+ DEVICE_CLASS_VOLTAGE,
19
19
  ICON_CURRENT_AC,
20
20
  STATE_CLASS_MEASUREMENT,
21
21
  STATE_CLASS_TOTAL_INCREASING,
22
+ UNIT_AMPERE,
22
23
  UNIT_HERTZ,
23
24
  UNIT_VOLT,
24
- UNIT_AMPERE,
25
25
  UNIT_WATT,
26
26
  UNIT_WATT_HOURS,
27
27
  )
@@ -1,13 +1,13 @@
1
- import esphome.codegen as cg
2
- import esphome.config_validation as cv
3
1
  from esphome import automation
4
2
  from esphome.automation import maybe_simple_id
5
- from esphome.components import sensor, modbus
3
+ import esphome.codegen as cg
4
+ from esphome.components import modbus, sensor
5
+ import esphome.config_validation as cv
6
6
  from esphome.const import (
7
7
  CONF_CURRENT,
8
+ CONF_ENERGY,
8
9
  CONF_ID,
9
10
  CONF_POWER,
10
- CONF_ENERGY,
11
11
  CONF_VOLTAGE,
12
12
  DEVICE_CLASS_CURRENT,
13
13
  DEVICE_CLASS_ENERGY,
@@ -15,10 +15,10 @@ from esphome.const import (
15
15
  DEVICE_CLASS_VOLTAGE,
16
16
  STATE_CLASS_MEASUREMENT,
17
17
  STATE_CLASS_TOTAL_INCREASING,
18
- UNIT_VOLT,
19
18
  UNIT_AMPERE,
20
- UNIT_WATT,
21
19
  UNIT_KILOWATT_HOURS,
20
+ UNIT_VOLT,
21
+ UNIT_WATT,
22
22
  )
23
23
 
24
24
  AUTO_LOAD = ["modbus"]
@@ -1,24 +1,24 @@
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_ADDRESS,
6
6
  CONF_FIELD_STRENGTH_X,
7
7
  CONF_FIELD_STRENGTH_Y,
8
8
  CONF_FIELD_STRENGTH_Z,
9
9
  CONF_HEADING,
10
- CONF_TEMPERATURE,
11
10
  CONF_ID,
12
11
  CONF_OVERSAMPLING,
13
12
  CONF_RANGE,
13
+ CONF_TEMPERATURE,
14
+ CONF_UPDATE_INTERVAL,
14
15
  DEVICE_CLASS_TEMPERATURE,
15
16
  ICON_MAGNET,
17
+ ICON_SCREEN_ROTATION,
16
18
  STATE_CLASS_MEASUREMENT,
17
- UNIT_MICROTESLA,
18
19
  UNIT_CELSIUS,
19
20
  UNIT_DEGREES,
20
- ICON_SCREEN_ROTATION,
21
- CONF_UPDATE_INTERVAL,
21
+ UNIT_MICROTESLA,
22
22
  )
23
23
 
24
24
  DEPENDENCIES = ["i2c"]
@@ -1,8 +1,10 @@
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
+ CONF_IIR_FILTER,
7
+ CONF_OVERSAMPLING,
6
8
  CONF_PRESSURE,
7
9
  CONF_TEMPERATURE,
8
10
  DEVICE_CLASS_PRESSURE,
@@ -10,8 +12,6 @@ from esphome.const import (
10
12
  STATE_CLASS_MEASUREMENT,
11
13
  UNIT_CELSIUS,
12
14
  UNIT_HECTOPASCAL,
13
- CONF_IIR_FILTER,
14
- CONF_OVERSAMPLING,
15
15
  )
16
16
 
17
17
  DEPENDENCIES = ["i2c"]
@@ -1,5 +1,5 @@
1
- import esphome.config_validation as cv
2
1
  import esphome.codegen as cg
2
+ import esphome.config_validation as cv
3
3
  from esphome.const import CONF_ID, CONF_VALUE
4
4
 
5
5
  CONF_SCALE = "scale"
@@ -113,7 +113,7 @@ BASE_SCHEMA = display.FULL_DISPLAY_SCHEMA.extend(
113
113
  cs_pin_required=False,
114
114
  default_mode="MODE0",
115
115
  default_data_rate=10e6,
116
- quad=True,
116
+ mode=spi.TYPE_QUAD,
117
117
  )
118
118
  )
119
119
  )
@@ -1,4 +1,4 @@
1
- #ifdef USE_ESP_IDF
1
+ #if defined(USE_ESP_IDF) && defined(USE_ESP32_VARIANT_ESP32S3)
2
2
  #include "qspi_dbi.h"
3
3
  #include "esphome/core/log.h"
4
4
 
@@ -3,7 +3,7 @@
3
3
  //
4
4
  #pragma once
5
5
 
6
- #ifdef USE_ESP_IDF
6
+ #if defined(USE_ESP_IDF) && defined(USE_ESP32_VARIANT_ESP32S3)
7
7
  #include "esphome/components/spi/spi.h"
8
8
  #include "esphome/components/display/display.h"
9
9
  #include "esphome/components/display/display_buffer.h"
@@ -1,11 +1,8 @@
1
1
  from esphome import core
2
2
  import esphome.codegen as cg
3
+ from esphome.components import binary_sensor, i2c
3
4
  import esphome.config_validation as cv
4
- from esphome.components import i2c, binary_sensor
5
- from esphome.const import (
6
- CONF_DEBOUNCE,
7
- DEVICE_CLASS_MOTION,
8
- )
5
+ from esphome.const import CONF_DEBOUNCE, DEVICE_CLASS_MOTION
9
6
 
10
7
  DEPENDENCIES = ["i2c"]
11
8
  CODEOWNERS = ["@kahrendt"]
@@ -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
  DEPENDENCIES = ["esp32_ble_tracker"]
@@ -1,14 +1,13 @@
1
1
  import esphome.codegen as cg
2
+ from esphome.components import ble_client, sensor
2
3
  import esphome.config_validation as cv
3
- from esphome.components import sensor, ble_client
4
-
5
4
  from esphome.const import (
6
- STATE_CLASS_MEASUREMENT,
7
- UNIT_BECQUEREL_PER_CUBIC_METER,
8
5
  CONF_ID,
9
6
  CONF_RADON,
10
7
  CONF_RADON_LONG_TERM,
11
8
  ICON_RADIOACTIVE,
9
+ STATE_CLASS_MEASUREMENT,
10
+ UNIT_BECQUEREL_PER_CUBIC_METER,
12
11
  )
13
12
 
14
13
  DEPENDENCIES = ["ble_client"]
@@ -1,12 +1,12 @@
1
- import esphome.codegen as cg
2
- import esphome.config_validation as cv
3
1
  from esphome import automation, pins
2
+ import esphome.codegen as cg
4
3
  from esphome.components import i2c
4
+ import esphome.config_validation as cv
5
5
  from esphome.const import (
6
6
  CONF_ON_TAG,
7
7
  CONF_ON_TAG_REMOVED,
8
- CONF_TRIGGER_ID,
9
8
  CONF_RESET_PIN,
9
+ CONF_TRIGGER_ID,
10
10
  )
11
11
 
12
12
  CODEOWNERS = ["@glmnet"]
@@ -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, rc522
3
+ import esphome.config_validation as cv
4
4
  from esphome.const import CONF_ID
5
5
 
6
6
  CODEOWNERS = ["@glmnet"]
@@ -1,6 +1,6 @@
1
1
  import esphome.codegen as cg
2
+ from esphome.components import rc522, spi
2
3
  import esphome.config_validation as cv
3
- from esphome.components import spi, rc522
4
4
  from esphome.const import CONF_ID
5
5
 
6
6
  CODEOWNERS = ["@glmnet"]
@@ -1,7 +1,7 @@
1
- import esphome.codegen as cg
2
- import esphome.config_validation as cv
3
1
  from esphome import automation
2
+ import esphome.codegen as cg
4
3
  from esphome.components import uart
4
+ import esphome.config_validation as cv
5
5
  from esphome.const import CONF_ID, CONF_ON_TAG, CONF_TRIGGER_ID
6
6
 
7
7
  DEPENDENCIES = ["uart"]
@@ -1,7 +1,8 @@
1
1
  import esphome.codegen as cg
2
- import esphome.config_validation as cv
3
2
  from esphome.components import binary_sensor, rdm6300
3
+ import esphome.config_validation as cv
4
4
  from esphome.const import CONF_UID
5
+
5
6
  from . import rdm6300_ns
6
7
 
7
8
  DEPENDENCIES = ["rdm6300"]
@@ -1,12 +1,12 @@
1
1
  import esphome.codegen as cg
2
- import esphome.config_validation as cv
3
2
  from esphome.components import sensor
3
+ import esphome.config_validation as cv
4
4
  from esphome.const import (
5
5
  CONF_REFERENCE_VOLTAGE,
6
6
  CONF_SENSOR,
7
+ ICON_FLASH,
7
8
  STATE_CLASS_MEASUREMENT,
8
9
  UNIT_OHM,
9
- ICON_FLASH,
10
10
  )
11
11
 
12
12
  resistance_ns = cg.esphome_ns.namespace("resistance")
@@ -1,6 +1,6 @@
1
1
  import esphome.codegen as cg
2
- import esphome.config_validation as cv
3
2
  from esphome.components import button
3
+ import esphome.config_validation as cv
4
4
  from esphome.const import (
5
5
  CONF_ID,
6
6
  DEVICE_CLASS_RESTART,
@@ -1,10 +1,7 @@
1
1
  import esphome.codegen as cg
2
- import esphome.config_validation as cv
3
2
  from esphome.components import switch
4
- from esphome.const import (
5
- ENTITY_CATEGORY_CONFIG,
6
- ICON_RESTART,
7
- )
3
+ import esphome.config_validation as cv
4
+ from esphome.const import ENTITY_CATEGORY_CONFIG, ICON_RESTART
8
5
 
9
6
  restart_ns = cg.esphome_ns.namespace("restart")
10
7
  RestartSwitch = restart_ns.class_("RestartSwitch", switch.Switch, cg.Component)
@@ -1,9 +1,10 @@
1
- import esphome.codegen as cg
2
- import esphome.config_validation as cv
3
1
  from esphome import automation
2
+ import esphome.codegen as cg
4
3
  from esphome.components import uart
4
+ import esphome.config_validation as cv
5
5
  from esphome.const import (
6
6
  CONF_CODE,
7
+ CONF_DURATION,
7
8
  CONF_HIGH,
8
9
  CONF_ID,
9
10
  CONF_LENGTH,
@@ -12,7 +13,6 @@ from esphome.const import (
12
13
  CONF_RAW,
13
14
  CONF_SYNC,
14
15
  CONF_TRIGGER_ID,
15
- CONF_DURATION,
16
16
  )
17
17
 
18
18
  DEPENDENCIES = ["uart"]
@@ -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_BLUE, CONF_GREEN, CONF_RED, CONF_OUTPUT_ID
3
+ import esphome.config_validation as cv
4
+ from esphome.const import CONF_BLUE, CONF_GREEN, CONF_OUTPUT_ID, CONF_RED
5
5
 
6
6
  rgb_ns = cg.esphome_ns.namespace("rgb")
7
7
  RGBLightOutput = rgb_ns.class_("RGBLightOutput", light.LightOutput)
@@ -1,14 +1,14 @@
1
1
  import esphome.codegen as cg
2
- import esphome.config_validation as cv
3
2
  from esphome.components import light, output
3
+ import esphome.config_validation as cv
4
4
  from esphome.const import (
5
5
  CONF_BLUE,
6
+ CONF_COLD_WHITE_COLOR_TEMPERATURE,
6
7
  CONF_COLOR_INTERLOCK,
7
8
  CONF_COLOR_TEMPERATURE,
8
9
  CONF_GREEN,
9
- CONF_RED,
10
10
  CONF_OUTPUT_ID,
11
- CONF_COLD_WHITE_COLOR_TEMPERATURE,
11
+ CONF_RED,
12
12
  CONF_WARM_WHITE_COLOR_TEMPERATURE,
13
13
  )
14
14
 
@@ -1,12 +1,12 @@
1
1
  import esphome.codegen as cg
2
- import esphome.config_validation as cv
3
2
  from esphome.components import light, output
3
+ import esphome.config_validation as cv
4
4
  from esphome.const import (
5
5
  CONF_BLUE,
6
6
  CONF_COLOR_INTERLOCK,
7
7
  CONF_GREEN,
8
- CONF_RED,
9
8
  CONF_OUTPUT_ID,
9
+ CONF_RED,
10
10
  CONF_WHITE,
11
11
  )
12
12
 
@@ -1,16 +1,16 @@
1
1
  import esphome.codegen as cg
2
- import esphome.config_validation as cv
3
2
  from esphome.components import light, output
3
+ import esphome.config_validation as cv
4
4
  from esphome.const import (
5
5
  CONF_BLUE,
6
+ CONF_COLD_WHITE,
7
+ CONF_COLD_WHITE_COLOR_TEMPERATURE,
6
8
  CONF_COLOR_INTERLOCK,
7
9
  CONF_CONSTANT_BRIGHTNESS,
8
10
  CONF_GREEN,
9
- CONF_RED,
10
11
  CONF_OUTPUT_ID,
11
- CONF_COLD_WHITE,
12
+ CONF_RED,
12
13
  CONF_WARM_WHITE,
13
- CONF_COLD_WHITE_COLOR_TEMPERATURE,
14
14
  CONF_WARM_WHITE_COLOR_TEMPERATURE,
15
15
  )
16
16
 
@@ -1,19 +1,19 @@
1
+ from esphome import automation, pins
1
2
  import esphome.codegen as cg
2
- import esphome.config_validation as cv
3
- from esphome import pins, automation
4
3
  from esphome.components import sensor
4
+ import esphome.config_validation as cv
5
5
  from esphome.const import (
6
6
  CONF_ID,
7
- CONF_RESOLUTION,
8
- CONF_MIN_VALUE,
9
7
  CONF_MAX_VALUE,
10
- UNIT_STEPS,
11
- ICON_ROTATE_RIGHT,
12
- CONF_VALUE,
8
+ CONF_MIN_VALUE,
13
9
  CONF_PIN_A,
14
10
  CONF_PIN_B,
15
- CONF_TRIGGER_ID,
11
+ CONF_RESOLUTION,
16
12
  CONF_RESTORE_MODE,
13
+ CONF_TRIGGER_ID,
14
+ CONF_VALUE,
15
+ ICON_ROTATE_RIGHT,
16
+ UNIT_STEPS,
17
17
  )
18
18
 
19
19
  rotary_encoder_ns = cg.esphome_ns.namespace("rotary_encoder")
@@ -2,7 +2,6 @@ import platform
2
2
 
3
3
  import esphome.codegen as cg
4
4
 
5
-
6
5
  DEPENDENCIES = ["rp2040"]
7
6
 
8
7
 
@@ -1,7 +1,9 @@
1
1
  from dataclasses import dataclass
2
2
 
3
3
  from esphome import pins
4
+ import esphome.codegen as cg
4
5
  from esphome.components import light, rp2040
6
+ import esphome.config_validation as cv
5
7
  from esphome.const import (
6
8
  CONF_CHIPSET,
7
9
  CONF_ID,
@@ -11,10 +13,6 @@ from esphome.const import (
11
13
  CONF_PIN,
12
14
  CONF_RGB_ORDER,
13
15
  )
14
-
15
- import esphome.codegen as cg
16
- import esphome.config_validation as cv
17
-
18
16
  from esphome.util import _LOGGER
19
17
 
20
18