homeassistant-stubs 2025.3.4__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 (332) hide show
  1. homeassistant-stubs/bootstrap.pyi +3 -2
  2. homeassistant-stubs/components/accuweather/const.pyi +3 -1
  3. homeassistant-stubs/components/accuweather/sensor.pyi +1 -1
  4. homeassistant-stubs/components/anova/config_flow.pyi +4 -1
  5. homeassistant-stubs/components/anthemav/media_player.pyi +2 -0
  6. homeassistant-stubs/components/arwn/sensor.pyi +3 -2
  7. homeassistant-stubs/components/assist_pipeline/pipeline.pyi +14 -5
  8. homeassistant-stubs/components/assist_satellite/const.pyi +3 -0
  9. homeassistant-stubs/components/assist_satellite/entity.pyi +6 -4
  10. homeassistant-stubs/components/azure_storage/__init__.pyi +1 -1
  11. homeassistant-stubs/components/azure_storage/backup.pyi +1 -1
  12. homeassistant-stubs/components/azure_storage/config_flow.pyi +7 -0
  13. homeassistant-stubs/components/backup/__init__.pyi +2 -2
  14. homeassistant-stubs/components/backup/agent.pyi +1 -1
  15. homeassistant-stubs/components/backup/backup.pyi +1 -1
  16. homeassistant-stubs/components/backup/config_flow.pyi +7 -0
  17. homeassistant-stubs/components/backup/coordinator.pyi +28 -0
  18. homeassistant-stubs/components/backup/diagnostics.pyi +7 -0
  19. homeassistant-stubs/components/backup/entity.pyi +13 -0
  20. homeassistant-stubs/components/backup/http.pyi +1 -0
  21. homeassistant-stubs/components/backup/manager.pyi +8 -3
  22. homeassistant-stubs/components/backup/sensor.pyi +23 -0
  23. homeassistant-stubs/components/bosch_alarm/__init__.pyi +12 -0
  24. homeassistant-stubs/components/bosch_alarm/alarm_control_panel.pyi +31 -0
  25. homeassistant-stubs/components/bosch_alarm/config_flow.pyi +20 -0
  26. homeassistant-stubs/components/bosch_alarm/const.pyi +4 -0
  27. homeassistant-stubs/components/bring/diagnostics.pyi +5 -0
  28. homeassistant-stubs/components/brother/__init__.pyi +1 -0
  29. homeassistant-stubs/components/brother/coordinator.pyi +1 -0
  30. homeassistant-stubs/components/cloud/backup.pyi +3 -3
  31. homeassistant-stubs/components/cloud/http_api.pyi +6 -3
  32. homeassistant-stubs/components/cloud/tts.pyi +2 -2
  33. homeassistant-stubs/components/comelit/__init__.pyi +11 -0
  34. homeassistant-stubs/components/comelit/alarm_control_panel.pyi +44 -0
  35. homeassistant-stubs/components/comelit/binary_sensor.pyi +22 -0
  36. homeassistant-stubs/components/comelit/climate.pyi +60 -0
  37. homeassistant-stubs/components/comelit/config_flow.pyi +28 -0
  38. homeassistant-stubs/components/comelit/const.pyi +7 -0
  39. homeassistant-stubs/components/comelit/coordinator.pyi +38 -0
  40. homeassistant-stubs/components/comelit/cover.pyi +39 -0
  41. homeassistant-stubs/components/comelit/diagnostics.pyi +10 -0
  42. homeassistant-stubs/components/comelit/humidifier.pyi +61 -0
  43. homeassistant-stubs/components/comelit/light.pyi +28 -0
  44. homeassistant-stubs/components/comelit/sensor.pyi +45 -0
  45. homeassistant-stubs/components/comelit/switch.pyi +27 -0
  46. homeassistant-stubs/components/cover/reproduce_state.pyi +17 -6
  47. homeassistant-stubs/components/demo/valve.pyi +30 -0
  48. homeassistant-stubs/components/discovergy/__init__.pyi +1 -1
  49. homeassistant-stubs/components/energy/data.pyi +1 -0
  50. homeassistant-stubs/components/enigma2/config_flow.pyi +1 -0
  51. homeassistant-stubs/components/esphome/__init__.pyi +1 -1
  52. homeassistant-stubs/components/esphome/assist_satellite.pyi +2 -0
  53. homeassistant-stubs/components/esphome/config_flow.pyi +1 -0
  54. homeassistant-stubs/components/esphome/const.pyi +1 -0
  55. homeassistant-stubs/components/esphome/diagnostics.pyi +0 -1
  56. homeassistant-stubs/components/esphome/event.pyi +2 -0
  57. homeassistant-stubs/components/esphome/manager.pyi +1 -1
  58. homeassistant-stubs/components/fritzbox/climate.pyi +1 -1
  59. homeassistant-stubs/components/frontend/__init__.pyi +9 -10
  60. homeassistant-stubs/components/frontend/storage.pyi +2 -1
  61. homeassistant-stubs/components/gios/__init__.pyi +1 -0
  62. homeassistant-stubs/components/gios/config_flow.pyi +1 -0
  63. homeassistant-stubs/components/gios/coordinator.pyi +2 -2
  64. homeassistant-stubs/components/google/calendar.pyi +3 -2
  65. homeassistant-stubs/components/google_drive/backup.pyi +2 -2
  66. homeassistant-stubs/components/habitica/const.pyi +25 -0
  67. homeassistant-stubs/components/habitica/services.pyi +6 -2
  68. homeassistant-stubs/components/heos/const.pyi +1 -0
  69. homeassistant-stubs/components/heos/coordinator.pyi +5 -5
  70. homeassistant-stubs/components/heos/media_player.pyi +18 -8
  71. homeassistant-stubs/components/home_connect/__init__.pyi +6 -17
  72. homeassistant-stubs/components/home_connect/button.pyi +0 -2
  73. homeassistant-stubs/components/home_connect/const.pyi +0 -6
  74. homeassistant-stubs/components/home_connect/entity.pyi +1 -1
  75. homeassistant-stubs/components/home_connect/light.pyi +1 -1
  76. homeassistant-stubs/components/home_connect/number.pyi +1 -1
  77. homeassistant-stubs/components/home_connect/select.pyi +1 -1
  78. homeassistant-stubs/components/home_connect/services.pyi +35 -0
  79. homeassistant-stubs/components/home_connect/switch.pyi +2 -1
  80. homeassistant-stubs/components/home_connect/time.pyi +6 -1
  81. homeassistant-stubs/components/homeassistant_hardware/coordinator.pyi +15 -0
  82. homeassistant-stubs/components/homeassistant_hardware/firmware_config_flow.pyi +2 -1
  83. homeassistant-stubs/components/homeassistant_hardware/update.pyi +68 -0
  84. homeassistant-stubs/components/homeassistant_hardware/util.pyi +6 -1
  85. homeassistant-stubs/components/homeassistant_sky_connect/__init__.pyi +7 -1
  86. homeassistant-stubs/components/homeassistant_sky_connect/config_flow.pyi +1 -1
  87. homeassistant-stubs/components/homeassistant_sky_connect/const.pyi +10 -0
  88. homeassistant-stubs/components/homeassistant_sky_connect/update.pyi +29 -0
  89. homeassistant-stubs/components/homeassistant_yellow/__init__.pyi +1 -1
  90. homeassistant-stubs/components/homeassistant_yellow/config_flow.pyi +1 -1
  91. homeassistant-stubs/components/homeassistant_yellow/const.pyi +4 -0
  92. homeassistant-stubs/components/homeassistant_yellow/update.pyi +29 -0
  93. homeassistant-stubs/components/homee/binary_sensor.pyi +21 -0
  94. homeassistant-stubs/components/homee/button.pyi +1 -0
  95. homeassistant-stubs/components/homee/cover.pyi +1 -0
  96. homeassistant-stubs/components/homee/light.pyi +1 -0
  97. homeassistant-stubs/components/homee/lock.pyi +25 -0
  98. homeassistant-stubs/components/homee/number.pyi +1 -0
  99. homeassistant-stubs/components/homee/select.pyi +23 -0
  100. homeassistant-stubs/components/homee/sensor.pyi +2 -0
  101. homeassistant-stubs/components/homee/switch.pyi +2 -0
  102. homeassistant-stubs/components/homee/valve.pyi +1 -0
  103. homeassistant-stubs/components/homekit/__init__.pyi +3 -1
  104. homeassistant-stubs/components/homekit/accessories.pyi +1 -0
  105. homeassistant-stubs/components/homekit/type_switches.pyi +6 -0
  106. homeassistant-stubs/components/huawei_lte/__init__.pyi +1 -1
  107. homeassistant-stubs/components/husqvarna_automower/coordinator.pyi +7 -7
  108. homeassistant-stubs/components/incomfort/config_flow.pyi +1 -0
  109. homeassistant-stubs/components/iron_os/coordinator.pyi +2 -0
  110. homeassistant-stubs/components/iron_os/number.pyi +2 -0
  111. homeassistant-stubs/components/iron_os/select.pyi +3 -0
  112. homeassistant-stubs/components/jewish_calendar/__init__.pyi +9 -2
  113. homeassistant-stubs/components/jewish_calendar/binary_sensor.pyi +4 -4
  114. homeassistant-stubs/components/jewish_calendar/const.pyi +3 -0
  115. homeassistant-stubs/components/jewish_calendar/entity.pyi +2 -2
  116. homeassistant-stubs/components/jewish_calendar/sensor.pyi +5 -6
  117. homeassistant-stubs/components/jewish_calendar/service.pyi +10 -0
  118. homeassistant-stubs/components/lawn_mower/__init__.pyi +1 -0
  119. homeassistant-stubs/components/linkplay/entity.pyi +0 -1
  120. homeassistant-stubs/components/linkplay/media_player.pyi +3 -2
  121. homeassistant-stubs/components/linkplay/utils.pyi +0 -32
  122. homeassistant-stubs/components/lovelace/__init__.pyi +3 -1
  123. homeassistant-stubs/components/mastodon/__init__.pyi +2 -2
  124. homeassistant-stubs/components/mastodon/config_flow.pyi +2 -1
  125. homeassistant-stubs/components/mastodon/const.pyi +0 -7
  126. homeassistant-stubs/components/mastodon/coordinator.pyi +5 -5
  127. homeassistant-stubs/components/mastodon/diagnostics.pyi +2 -1
  128. homeassistant-stubs/components/mastodon/entity.pyi +1 -1
  129. homeassistant-stubs/components/mastodon/notify.pyi +3 -2
  130. homeassistant-stubs/components/mastodon/sensor.pyi +2 -3
  131. homeassistant-stubs/components/mastodon/services.pyi +1 -0
  132. homeassistant-stubs/components/mastodon/utils.pyi +3 -2
  133. homeassistant-stubs/components/mcp/coordinator.pyi +2 -9
  134. homeassistant-stubs/components/mcp_server/config_flow.pyi +1 -1
  135. homeassistant-stubs/components/mcp_server/const.pyi +1 -2
  136. homeassistant-stubs/components/mcp_server/server.pyi +1 -0
  137. homeassistant-stubs/components/modbus/__init__.pyi +1 -1
  138. homeassistant-stubs/components/modbus/climate.pyi +6 -2
  139. homeassistant-stubs/components/modbus/const.pyi +10 -0
  140. homeassistant-stubs/components/mqtt/config_flow.pyi +95 -7
  141. homeassistant-stubs/components/mqtt/const.pyi +65 -0
  142. homeassistant-stubs/components/mqtt/cover.pyi +2 -0
  143. homeassistant-stubs/components/mqtt/entity.pyi +4 -4
  144. homeassistant-stubs/components/mqtt/lawn_mower.pyi +1 -2
  145. homeassistant-stubs/components/mqtt/light/schema_basic.pyi +2 -48
  146. homeassistant-stubs/components/mqtt/light/schema_json.pyi +1 -14
  147. homeassistant-stubs/components/mqtt/light/schema_template.pyi +3 -14
  148. homeassistant-stubs/components/mqtt/models.pyi +25 -1
  149. homeassistant-stubs/components/mqtt/sensor.pyi +6 -5
  150. homeassistant-stubs/components/mqtt/update.pyi +1 -1
  151. homeassistant-stubs/components/mqtt/util.pyi +2 -0
  152. homeassistant-stubs/components/mysensors/__init__.pyi +1 -1
  153. homeassistant-stubs/components/mysensors/binary_sensor.pyi +0 -1
  154. homeassistant-stubs/components/mysensors/climate.pyi +0 -1
  155. homeassistant-stubs/components/mysensors/const.pyi +0 -1
  156. homeassistant-stubs/components/mysensors/cover.pyi +1 -2
  157. homeassistant-stubs/components/mysensors/device_tracker.pyi +0 -1
  158. homeassistant-stubs/components/mysensors/gateway.pyi +1 -1
  159. homeassistant-stubs/components/mysensors/helpers.pyi +1 -3
  160. homeassistant-stubs/components/mysensors/light.pyi +4 -5
  161. homeassistant-stubs/components/mysensors/remote.pyi +0 -1
  162. homeassistant-stubs/components/mysensors/sensor.pyi +0 -1
  163. homeassistant-stubs/components/mysensors/switch.pyi +1 -2
  164. homeassistant-stubs/components/mysensors/text.pyi +0 -1
  165. homeassistant-stubs/components/nam/button.pyi +2 -0
  166. homeassistant-stubs/components/nam/const.pyi +1 -0
  167. homeassistant-stubs/components/nam/sensor.pyi +2 -2
  168. homeassistant-stubs/components/nest/media_source.pyi +5 -0
  169. homeassistant-stubs/components/nextdns/__init__.pyi +1 -1
  170. homeassistant-stubs/components/nextdns/button.pyi +2 -0
  171. homeassistant-stubs/components/nextdns/config_flow.pyi +1 -0
  172. homeassistant-stubs/components/nextdns/switch.pyi +1 -0
  173. homeassistant-stubs/components/nut/__init__.pyi +1 -0
  174. homeassistant-stubs/components/nut/button.pyi +14 -0
  175. homeassistant-stubs/components/nut/entity.pyi +19 -0
  176. homeassistant-stubs/components/nut/sensor.pyi +8 -13
  177. homeassistant-stubs/components/nut/switch.pyi +18 -0
  178. homeassistant-stubs/components/onboarding/views.pyi +2 -1
  179. homeassistant-stubs/components/onedrive/__init__.pyi +4 -0
  180. homeassistant-stubs/components/onedrive/backup.pyi +1 -1
  181. homeassistant-stubs/components/onedrive/services.pyi +15 -0
  182. homeassistant-stubs/components/openai_conversation/__init__.pyi +5 -1
  183. homeassistant-stubs/components/openai_conversation/config_flow.pyi +5 -2
  184. homeassistant-stubs/components/openai_conversation/const.pyi +22 -11
  185. homeassistant-stubs/components/openai_conversation/conversation.pyi +6 -7
  186. homeassistant-stubs/components/overkiz/water_heater/__init__.pyi +1 -0
  187. homeassistant-stubs/components/overkiz/water_heater/atlantic_domestic_hot_water_production_v2_io_component.pyi +41 -0
  188. homeassistant-stubs/components/purpleair/__init__.pyi +5 -10
  189. homeassistant-stubs/components/purpleair/const.pyi +6 -4
  190. homeassistant-stubs/components/purpleair/coordinator.pyi +3 -2
  191. homeassistant-stubs/components/purpleair/diagnostics.pyi +2 -4
  192. homeassistant-stubs/components/purpleair/entity.pyi +2 -3
  193. homeassistant-stubs/components/purpleair/sensor.pyi +4 -5
  194. homeassistant-stubs/components/pyload/__init__.pyi +12 -0
  195. homeassistant-stubs/components/pyload/button.pyi +32 -0
  196. homeassistant-stubs/components/pyload/config_flow.pyi +23 -0
  197. homeassistant-stubs/components/pyload/const.pyi +6 -0
  198. homeassistant-stubs/components/pyload/coordinator.pyi +34 -0
  199. homeassistant-stubs/components/pyload/diagnostics.pyi +10 -0
  200. homeassistant-stubs/components/pyload/entity.pyi +13 -0
  201. homeassistant-stubs/components/pyload/sensor.pyi +33 -0
  202. homeassistant-stubs/components/pyload/switch.pyi +37 -0
  203. homeassistant-stubs/components/qbus/climate.pyi +41 -0
  204. homeassistant-stubs/components/qbus/light.pyi +3 -3
  205. homeassistant-stubs/components/recorder/const.pyi +1 -0
  206. homeassistant-stubs/components/recorder/core.pyi +1 -2
  207. homeassistant-stubs/components/recorder/db_schema.pyi +3 -1
  208. homeassistant-stubs/components/recorder/migration.pyi +16 -2
  209. homeassistant-stubs/components/recorder/models/__init__.pyi +2 -2
  210. homeassistant-stubs/components/recorder/models/statistics.pyi +10 -2
  211. homeassistant-stubs/components/recorder/statistics.pyi +27 -9
  212. homeassistant-stubs/components/recorder/table_managers/statistics_meta.pyi +5 -3
  213. homeassistant-stubs/components/recorder/websocket_api.pyi +1 -1
  214. homeassistant-stubs/components/remote_calendar/__init__.pyi +11 -0
  215. homeassistant-stubs/components/remote_calendar/calendar.pyi +26 -0
  216. homeassistant-stubs/components/remote_calendar/config_flow.pyi +13 -0
  217. homeassistant-stubs/components/remote_calendar/const.pyi +2 -0
  218. homeassistant-stubs/components/remote_calendar/coordinator.pyi +20 -0
  219. homeassistant-stubs/components/remote_calendar/diagnostics.pyi +5 -0
  220. homeassistant-stubs/components/renault/config_flow.pyi +1 -0
  221. homeassistant-stubs/components/reolink/__init__.pyi +1 -1
  222. homeassistant-stubs/components/reolink/binary_sensor.pyi +17 -1
  223. homeassistant-stubs/components/reolink/config_flow.pyi +1 -1
  224. homeassistant-stubs/components/reolink/const.pyi +1 -0
  225. homeassistant-stubs/components/reolink/host.pyi +4 -4
  226. homeassistant-stubs/components/reolink/number.pyi +21 -1
  227. homeassistant-stubs/components/reolink/select.pyi +17 -1
  228. homeassistant-stubs/components/reolink/update.pyi +2 -1
  229. homeassistant-stubs/components/reolink/util.pyi +7 -0
  230. homeassistant-stubs/components/roborock/__init__.pyi +5 -3
  231. homeassistant-stubs/components/roborock/binary_sensor.pyi +4 -1
  232. homeassistant-stubs/components/roborock/button.pyi +11 -1
  233. homeassistant-stubs/components/roborock/config_flow.pyi +7 -3
  234. homeassistant-stubs/components/roborock/const.pyi +7 -1
  235. homeassistant-stubs/components/roborock/coordinator.pyi +18 -3
  236. homeassistant-stubs/components/roborock/entity.pyi +3 -1
  237. homeassistant-stubs/components/roborock/image.pyi +2 -7
  238. homeassistant-stubs/components/roborock/models.pyi +7 -0
  239. homeassistant-stubs/components/roborock/number.pyi +1 -0
  240. homeassistant-stubs/components/roborock/select.pyi +7 -5
  241. homeassistant-stubs/components/roborock/sensor.pyi +14 -1
  242. homeassistant-stubs/components/roborock/switch.pyi +2 -0
  243. homeassistant-stubs/components/roborock/time.pyi +1 -0
  244. homeassistant-stubs/components/roborock/vacuum.pyi +1 -1
  245. homeassistant-stubs/components/sensor/const.pyi +2 -0
  246. homeassistant-stubs/components/sensor/recorder.pyi +15 -3
  247. homeassistant-stubs/components/shelly/__init__.pyi +2 -2
  248. homeassistant-stubs/components/shelly/bluetooth/__init__.pyi +4 -2
  249. homeassistant-stubs/components/shelly/button.pyi +22 -7
  250. homeassistant-stubs/components/shelly/climate.pyi +1 -1
  251. homeassistant-stubs/components/shelly/config_flow.pyi +5 -5
  252. homeassistant-stubs/components/shelly/const.pyi +0 -1
  253. homeassistant-stubs/components/shelly/coordinator.pyi +5 -1
  254. homeassistant-stubs/components/shelly/diagnostics.pyi +1 -2
  255. homeassistant-stubs/components/shelly/entity.pyi +1 -3
  256. homeassistant-stubs/components/shelly/event.pyi +1 -1
  257. homeassistant-stubs/components/shelly/number.pyi +1 -1
  258. homeassistant-stubs/components/shelly/sensor.pyi +2 -2
  259. homeassistant-stubs/components/shelly/switch.pyi +14 -14
  260. homeassistant-stubs/components/shelly/update.pyi +1 -1
  261. homeassistant-stubs/components/shelly/utils.pyi +6 -2
  262. homeassistant-stubs/components/skybell/config_flow.pyi +3 -0
  263. homeassistant-stubs/components/smlight/__init__.pyi +0 -2
  264. homeassistant-stubs/components/smlight/sensor.pyi +5 -2
  265. homeassistant-stubs/components/smlight/update.pyi +0 -1
  266. homeassistant-stubs/components/squeezebox/browse_media.pyi +6 -11
  267. homeassistant-stubs/components/squeezebox/button.pyi +31 -0
  268. homeassistant-stubs/components/squeezebox/entity.pyi +8 -2
  269. homeassistant-stubs/components/squeezebox/media_player.pyi +3 -5
  270. homeassistant-stubs/components/synology_dsm/__init__.pyi +5 -7
  271. homeassistant-stubs/components/synology_dsm/backup.pyi +3 -4
  272. homeassistant-stubs/components/synology_dsm/binary_sensor.pyi +2 -5
  273. homeassistant-stubs/components/synology_dsm/button.pyi +2 -3
  274. homeassistant-stubs/components/synology_dsm/camera.pyi +2 -4
  275. homeassistant-stubs/components/synology_dsm/config_flow.pyi +3 -2
  276. homeassistant-stubs/components/synology_dsm/coordinator.pyi +15 -5
  277. homeassistant-stubs/components/synology_dsm/diagnostics.pyi +3 -4
  278. homeassistant-stubs/components/synology_dsm/media_source.pyi +3 -1
  279. homeassistant-stubs/components/synology_dsm/repairs.pyi +2 -3
  280. homeassistant-stubs/components/synology_dsm/sensor.pyi +3 -5
  281. homeassistant-stubs/components/synology_dsm/service.pyi +1 -1
  282. homeassistant-stubs/components/synology_dsm/switch.pyi +2 -4
  283. homeassistant-stubs/components/synology_dsm/update.pyi +2 -5
  284. homeassistant-stubs/components/tibber/coordinator.pyi +1 -1
  285. homeassistant-stubs/components/todo/intent.pyi +8 -0
  286. homeassistant-stubs/components/trafikverket_ferry/config_flow.pyi +1 -0
  287. homeassistant-stubs/components/trafikverket_weatherstation/config_flow.pyi +3 -0
  288. homeassistant-stubs/components/tts/__init__.pyi +66 -51
  289. homeassistant-stubs/components/tts/entity.pyi +54 -0
  290. homeassistant-stubs/components/tts/media_source.pyi +1 -1
  291. homeassistant-stubs/components/update/__init__.pyi +2 -2
  292. homeassistant-stubs/components/usb/__init__.pyi +1 -5
  293. homeassistant-stubs/components/usb/utils.pyi +2 -0
  294. homeassistant-stubs/components/vodafone_station/__init__.pyi +11 -0
  295. homeassistant-stubs/components/vodafone_station/button.pyi +31 -0
  296. homeassistant-stubs/components/vodafone_station/config_flow.pyi +29 -0
  297. homeassistant-stubs/components/vodafone_station/const.pyi +9 -0
  298. homeassistant-stubs/components/vodafone_station/coordinator.pyi +43 -0
  299. homeassistant-stubs/components/vodafone_station/device_tracker.pyi +30 -0
  300. homeassistant-stubs/components/vodafone_station/diagnostics.pyi +10 -0
  301. homeassistant-stubs/components/vodafone_station/helpers.pyi +8 -0
  302. homeassistant-stubs/components/vodafone_station/sensor.pyi +38 -0
  303. homeassistant-stubs/components/zwave_js/__init__.pyi +5 -9
  304. homeassistant-stubs/components/zwave_js/api.pyi +15 -0
  305. homeassistant-stubs/components/zwave_js/config_flow.pyi +0 -1
  306. homeassistant-stubs/config_entries.pyi +2 -5
  307. homeassistant-stubs/helpers/backup.pyi +4 -1
  308. homeassistant-stubs/helpers/config_entry_oauth2_flow.pyi +14 -0
  309. homeassistant-stubs/helpers/config_validation.pyi +5 -2
  310. homeassistant-stubs/helpers/frame.pyi +14 -5
  311. homeassistant-stubs/helpers/intent.pyi +13 -4
  312. homeassistant-stubs/helpers/llm.pyi +7 -1
  313. homeassistant-stubs/helpers/script.pyi +1 -1
  314. homeassistant-stubs/helpers/selector.pyi +1 -0
  315. homeassistant-stubs/helpers/template.pyi +14 -1
  316. homeassistant-stubs/loader.pyi +18 -8
  317. homeassistant-stubs/scripts/check_config.pyi +0 -1
  318. homeassistant-stubs/util/logging.pyi +18 -1
  319. homeassistant-stubs/util/unit_conversion.pyi +3 -0
  320. homeassistant-stubs/util/unit_system.pyi +12 -10
  321. homeassistant-stubs/util/yaml/__init__.pyi +3 -4
  322. homeassistant-stubs/util/yaml/dumper.pyi +2 -8
  323. homeassistant-stubs/util/yaml/input.pyi +2 -9
  324. homeassistant-stubs/util/yaml/loader.pyi +4 -72
  325. homeassistant-stubs/util/yaml/objects.pyi +2 -26
  326. {homeassistant_stubs-2025.3.4.dist-info → homeassistant_stubs-2025.4.0.dist-info}/METADATA +2 -2
  327. {homeassistant_stubs-2025.3.4.dist-info → homeassistant_stubs-2025.4.0.dist-info}/RECORD +329 -268
  328. homeassistant-stubs/components/mcp_server/llm_api.pyi +0 -15
  329. homeassistant-stubs/components/synology_dsm/models.pyi +0 -10
  330. homeassistant-stubs/util/yaml/const.pyi +0 -1
  331. {homeassistant_stubs-2025.3.4.dist-info → homeassistant_stubs-2025.4.0.dist-info}/WHEEL +0 -0
  332. {homeassistant_stubs-2025.3.4.dist-info → homeassistant_stubs-2025.4.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,38 @@
1
+ from .const import LINE_TYPES as LINE_TYPES, _LOGGER as _LOGGER
2
+ from .coordinator import VodafoneConfigEntry as VodafoneConfigEntry, VodafoneStationRouter as VodafoneStationRouter
3
+ from _typeshed import Incomplete
4
+ from collections.abc import Callable as Callable
5
+ from dataclasses import dataclass
6
+ from datetime import datetime
7
+ from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription
8
+ from homeassistant.const import EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE, UnitOfDataRate as UnitOfDataRate
9
+ from homeassistant.core import HomeAssistant as HomeAssistant
10
+ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
11
+ from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
12
+ from typing import Final
13
+
14
+ PARALLEL_UPDATES: int
15
+ NOT_AVAILABLE: list
16
+ UPTIME_DEVIATION: int
17
+
18
+ @dataclass(frozen=True, kw_only=True)
19
+ class VodafoneStationEntityDescription(SensorEntityDescription):
20
+ value: Callable[[VodafoneStationRouter, str | datetime | float | None, str], str | datetime | float | None] = ...
21
+ is_suitable: Callable[[dict], bool] = ...
22
+
23
+ def _calculate_uptime(coordinator: VodafoneStationRouter, last_value: str | datetime | float | None, key: str) -> datetime: ...
24
+ def _line_connection(coordinator: VodafoneStationRouter, last_value: str | datetime | float | None, key: str) -> str | None: ...
25
+
26
+ SENSOR_TYPES: Final[Incomplete]
27
+
28
+ async def async_setup_entry(hass: HomeAssistant, entry: VodafoneConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
29
+
30
+ class VodafoneStationSensorEntity(CoordinatorEntity[VodafoneStationRouter], SensorEntity):
31
+ _attr_has_entity_name: bool
32
+ entity_description: VodafoneStationEntityDescription
33
+ _attr_device_info: Incomplete
34
+ _attr_unique_id: Incomplete
35
+ _old_state: str | datetime | float | None
36
+ def __init__(self, coordinator: VodafoneStationRouter, description: VodafoneStationEntityDescription) -> None: ...
37
+ @property
38
+ def native_value(self) -> str | datetime | float | None: ...
@@ -9,10 +9,10 @@ from .services import ZWaveServices as ZWaveServices
9
9
  from _typeshed import Incomplete
10
10
  from homeassistant.components.hassio import AddonError as AddonError, AddonManager as AddonManager, AddonState as AddonState
11
11
  from homeassistant.components.persistent_notification import async_create as async_create
12
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
12
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigEntryState as ConfigEntryState
13
13
  from homeassistant.const import ATTR_DEVICE_ID as ATTR_DEVICE_ID, ATTR_DOMAIN as ATTR_DOMAIN, ATTR_ENTITY_ID as ATTR_ENTITY_ID, CONF_URL as CONF_URL, EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP, EVENT_LOGGING_CHANGED as EVENT_LOGGING_CHANGED, Platform as Platform
14
14
  from homeassistant.core import Event as Event, HomeAssistant as HomeAssistant, callback as callback
15
- from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady
15
+ from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady, HomeAssistantError as HomeAssistantError
16
16
  from homeassistant.helpers import device_registry as dr
17
17
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
18
18
  from homeassistant.helpers.dispatcher import async_dispatcher_send as async_dispatcher_send
@@ -25,26 +25,23 @@ from zwave_js_server.model.node import Node as ZwaveNode
25
25
  from zwave_js_server.model.value import Value as Value, ValueNotification as ValueNotification
26
26
 
27
27
  CONNECT_TIMEOUT: int
28
- DATA_CLIENT_LISTEN_TASK: str
29
28
  DATA_DRIVER_EVENTS: str
30
- DATA_START_CLIENT_TASK: str
29
+ DRIVER_READY_TIMEOUT: int
31
30
  CONFIG_SCHEMA: Incomplete
31
+ PLATFORMS: Incomplete
32
32
 
33
33
  async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
34
34
  async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
35
- async def start_client(hass: HomeAssistant, entry: ConfigEntry, client: ZwaveClient) -> None: ...
35
+ def _get_listen_task_error(listen_task: asyncio.Task) -> tuple[BaseException | None, str]: ...
36
36
 
37
37
  class DriverEvents:
38
38
  driver: Driver
39
39
  config_entry: Incomplete
40
40
  dev_reg: Incomplete
41
41
  hass: Incomplete
42
- platform_setup_tasks: dict[str, asyncio.Task]
43
- ready: Incomplete
44
42
  controller_events: Incomplete
45
43
  def __init__(self, hass: HomeAssistant, entry: ConfigEntry) -> None: ...
46
44
  async def setup(self, driver: Driver) -> None: ...
47
- async def async_setup_platform(self, platform: Platform) -> None: ...
48
45
 
49
46
  class ControllerEvents:
50
47
  hass: Incomplete
@@ -83,7 +80,6 @@ class NodeEvents:
83
80
  def async_on_value_updated_fire_event(self, value_updates_disc_info: dict[str, ZwaveDiscoveryInfo], value: Value) -> None: ...
84
81
 
85
82
  async def client_listen(hass: HomeAssistant, entry: ConfigEntry, client: ZwaveClient, driver_ready: asyncio.Event) -> None: ...
86
- async def disconnect_client(hass: HomeAssistant, entry: ConfigEntry) -> None: ...
87
83
  async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
88
84
  async def async_remove_entry(hass: HomeAssistant, entry: ConfigEntry) -> None: ...
89
85
  async def async_remove_config_entry_device(hass: HomeAssistant, config_entry: ConfigEntry, device_entry: dr.DeviceEntry) -> bool: ...
@@ -153,6 +153,11 @@ async def websocket_try_parse_dsk_from_qr_code_string(hass: HomeAssistant, conne
153
153
  @websocket_api.async_response
154
154
  @async_handle_failed_command
155
155
  @async_get_entry
156
+ async def websocket_lookup_device(hass: HomeAssistant, connection: ActiveConnection, msg: dict[str, Any], entry: ConfigEntry, client: Client, driver: Driver) -> None: ...
157
+ @websocket_api.require_admin
158
+ @websocket_api.async_response
159
+ @async_handle_failed_command
160
+ @async_get_entry
156
161
  async def websocket_supports_feature(hass: HomeAssistant, connection: ActiveConnection, msg: dict[str, Any], entry: ConfigEntry, client: Client, driver: Driver) -> None: ...
157
162
  @websocket_api.require_admin
158
163
  @websocket_api.async_response
@@ -329,3 +334,13 @@ async def websocket_invoke_cc_api(hass: HomeAssistant, connection: ActiveConnect
329
334
  @callback
330
335
  @websocket_api.require_admin
331
336
  def websocket_get_integration_settings(hass: HomeAssistant, connection: ActiveConnection, msg: dict[str, Any]) -> None: ...
337
+ @websocket_api.require_admin
338
+ @websocket_api.async_response
339
+ @async_handle_failed_command
340
+ @async_get_entry
341
+ async def websocket_backup_nvm(hass: HomeAssistant, connection: ActiveConnection, msg: dict[str, Any], entry: ConfigEntry, client: Client, driver: Driver) -> None: ...
342
+ @websocket_api.require_admin
343
+ @websocket_api.async_response
344
+ @async_handle_failed_command
345
+ @async_get_entry
346
+ async def websocket_restore_nvm(hass: HomeAssistant, connection: ActiveConnection, msg: dict[str, Any], entry: ConfigEntry, client: Client, driver: Driver) -> None: ...
@@ -1,7 +1,6 @@
1
1
  import abc
2
2
  import asyncio
3
3
  import voluptuous as vol
4
- from . import disconnect_client as disconnect_client
5
4
  from .addon import get_addon_manager as get_addon_manager
6
5
  from .const import ADDON_SLUG as ADDON_SLUG, CONF_ADDON_DEVICE as CONF_ADDON_DEVICE, CONF_ADDON_EMULATE_HARDWARE as CONF_ADDON_EMULATE_HARDWARE, CONF_ADDON_LOG_LEVEL as CONF_ADDON_LOG_LEVEL, CONF_ADDON_LR_S2_ACCESS_CONTROL_KEY as CONF_ADDON_LR_S2_ACCESS_CONTROL_KEY, CONF_ADDON_LR_S2_AUTHENTICATED_KEY as CONF_ADDON_LR_S2_AUTHENTICATED_KEY, CONF_ADDON_NETWORK_KEY as CONF_ADDON_NETWORK_KEY, CONF_ADDON_S0_LEGACY_KEY as CONF_ADDON_S0_LEGACY_KEY, CONF_ADDON_S2_ACCESS_CONTROL_KEY as CONF_ADDON_S2_ACCESS_CONTROL_KEY, CONF_ADDON_S2_AUTHENTICATED_KEY as CONF_ADDON_S2_AUTHENTICATED_KEY, CONF_ADDON_S2_UNAUTHENTICATED_KEY as CONF_ADDON_S2_UNAUTHENTICATED_KEY, CONF_INTEGRATION_CREATED_ADDON as CONF_INTEGRATION_CREATED_ADDON, CONF_LR_S2_ACCESS_CONTROL_KEY as CONF_LR_S2_ACCESS_CONTROL_KEY, CONF_LR_S2_AUTHENTICATED_KEY as CONF_LR_S2_AUTHENTICATED_KEY, CONF_S0_LEGACY_KEY as CONF_S0_LEGACY_KEY, CONF_S2_ACCESS_CONTROL_KEY as CONF_S2_ACCESS_CONTROL_KEY, CONF_S2_AUTHENTICATED_KEY as CONF_S2_AUTHENTICATED_KEY, CONF_S2_UNAUTHENTICATED_KEY as CONF_S2_UNAUTHENTICATED_KEY, CONF_USB_PATH as CONF_USB_PATH, CONF_USE_ADDON as CONF_USE_ADDON, DOMAIN as DOMAIN
7
6
  from _typeshed import Incomplete
@@ -84,7 +84,6 @@ class ConfigEntryState(Enum):
84
84
  DEFAULT_DISCOVERY_UNIQUE_ID: str
85
85
  DISCOVERY_NOTIFICATION_ID: str
86
86
  DISCOVERY_SOURCES: Incomplete
87
- RECONFIGURE_NOTIFICATION_ID: str
88
87
  EVENT_FLOW_DISCOVERED: str
89
88
  SIGNAL_CONFIG_ENTRY_CHANGED: Incomplete
90
89
 
@@ -404,8 +403,6 @@ class ConfigFlow(ConfigEntryBaseFlow):
404
403
  async def _async_handle_discovery_without_unique_id(self) -> None: ...
405
404
  async def _async_step_discovery_without_unique_id(self) -> ConfigFlowResult: ...
406
405
  async def async_step_discovery(self, discovery_info: DiscoveryInfoType) -> ConfigFlowResult: ...
407
- @callback
408
- def async_abort(self, *, reason: str, description_placeholders: Mapping[str, str] | None = None) -> ConfigFlowResult: ...
409
406
  async def async_step_bluetooth(self, discovery_info: BluetoothServiceInfoBleak) -> ConfigFlowResult: ...
410
407
  async def async_step_dhcp(self, discovery_info: DhcpServiceInfo) -> ConfigFlowResult: ...
411
408
  async def async_step_hassio(self, discovery_info: HassioServiceInfo) -> ConfigFlowResult: ...
@@ -448,9 +445,9 @@ class ConfigSubentryFlow(data_entry_flow.FlowHandler[SubentryFlowContext, Subent
448
445
  @callback
449
446
  def async_update_and_abort(self, entry: ConfigEntry, subentry: ConfigSubentry, *, unique_id: str | None | UndefinedType = ..., title: str | UndefinedType = ..., data: Mapping[str, Any] | UndefinedType = ..., data_updates: Mapping[str, Any] | UndefinedType = ...) -> SubentryFlowResult: ...
450
447
  @property
451
- def _reconfigure_entry_id(self) -> str: ...
448
+ def _entry_id(self) -> str: ...
452
449
  @callback
453
- def _get_reconfigure_entry(self) -> ConfigEntry: ...
450
+ def _get_entry(self) -> ConfigEntry: ...
454
451
  @property
455
452
  def _reconfigure_subentry_id(self) -> str: ...
456
453
  @callback
@@ -1,7 +1,7 @@
1
1
  import asyncio
2
2
  from collections.abc import Callable as Callable
3
3
  from dataclasses import dataclass, field
4
- from homeassistant.components.backup import BackupManager as BackupManager, ManagerStateEvent as ManagerStateEvent
4
+ from homeassistant.components.backup import BackupManager as BackupManager, BackupPlatformEvent as BackupPlatformEvent, ManagerStateEvent as ManagerStateEvent
5
5
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
6
6
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
7
7
  from homeassistant.util.hass_dict import HassKey as HassKey
@@ -12,6 +12,7 @@ DATA_MANAGER: HassKey[BackupManager]
12
12
  @dataclass(slots=True)
13
13
  class BackupData:
14
14
  backup_event_subscriptions: list[Callable[[ManagerStateEvent], None]] = field(default_factory=list)
15
+ backup_platform_event_subscriptions: list[Callable[[BackupPlatformEvent], None]] = field(default_factory=list)
15
16
  manager_ready: asyncio.Future[None] = field(default_factory=asyncio.Future)
16
17
 
17
18
  @callback
@@ -19,3 +20,5 @@ def async_initialize_backup(hass: HomeAssistant) -> None: ...
19
20
  async def async_get_manager(hass: HomeAssistant) -> BackupManager: ...
20
21
  @callback
21
22
  def async_subscribe_events(hass: HomeAssistant, on_event: Callable[[ManagerStateEvent], None]) -> Callable[[], None]: ...
23
+ @callback
24
+ def async_subscribe_platform_events(hass: HomeAssistant, on_event: Callable[[BackupPlatformEvent], None]) -> Callable[[], None]: ...
@@ -58,11 +58,25 @@ class LocalOAuth2Implementation(AbstractOAuth2Implementation):
58
58
  def redirect_uri(self) -> str: ...
59
59
  @property
60
60
  def extra_authorize_data(self) -> dict: ...
61
+ @property
62
+ def extra_token_resolve_data(self) -> dict: ...
61
63
  async def async_generate_authorize_url(self, flow_id: str) -> str: ...
62
64
  async def async_resolve_external_data(self, external_data: Any) -> dict: ...
63
65
  async def _async_refresh_token(self, token: dict) -> dict: ...
64
66
  async def _token_request(self, data: dict) -> dict: ...
65
67
 
68
+ class LocalOAuth2ImplementationWithPkce(LocalOAuth2Implementation):
69
+ code_verifier: Incomplete
70
+ def __init__(self, hass: HomeAssistant, domain: str, client_id: str, authorize_url: str, token_url: str, client_secret: str = '', code_verifier_length: int = 128) -> None: ...
71
+ @property
72
+ def extra_authorize_data(self) -> dict: ...
73
+ @property
74
+ def extra_token_resolve_data(self) -> dict: ...
75
+ @staticmethod
76
+ def generate_code_verifier(code_verifier_length: int = 128) -> str: ...
77
+ @staticmethod
78
+ def compute_code_challenge(code_verifier: str) -> str: ...
79
+
66
80
  class AbstractOAuth2FlowHandler(config_entries.ConfigFlow, metaclass=ABCMeta):
67
81
  DOMAIN: str
68
82
  VERSION: int
@@ -149,7 +149,6 @@ def key_value_schemas(key: str, value_schemas: dict[Hashable, VolSchemaType | Ca
149
149
  def key_dependency[_KT: Hashable, _VT](key: Hashable, dependency: Hashable) -> Callable[[dict[_KT, _VT]], dict[_KT, _VT]]: ...
150
150
  def custom_serializer(schema: Any) -> Any: ...
151
151
  def _custom_serializer(schema: Any, *, allow_section: bool) -> Any: ...
152
- def expand_condition_shorthand(value: Any | None) -> Any: ...
153
152
  def empty_config_schema(domain: str) -> Callable[[dict], dict]: ...
154
153
  def _no_yaml_config_schema(domain: str, issue_base: str, translation_key: str, translation_placeholders: dict[str, str]) -> Callable[[dict], dict]: ...
155
154
  def config_entry_only_config_schema(domain: str) -> Callable[[dict], dict]: ...
@@ -202,10 +201,14 @@ NOT_CONDITION_SCHEMA: Incomplete
202
201
  NOT_CONDITION_SHORTHAND_SCHEMA: Incomplete
203
202
  DEVICE_CONDITION_BASE_SCHEMA: Incomplete
204
203
  DEVICE_CONDITION_SCHEMA: Incomplete
205
- dynamic_template_condition_action: Incomplete
204
+
205
+ def expand_condition_shorthand(value: Any | None) -> Any: ...
206
+
207
+ dynamic_template_condition: Incomplete
206
208
  CONDITION_SHORTHAND_SCHEMA: Incomplete
207
209
  CONDITION_SCHEMA: vol.Schema
208
210
  CONDITIONS_SCHEMA: Incomplete
211
+ dynamic_template_condition_action: Incomplete
209
212
  CONDITION_ACTION_SCHEMA: vol.Schema
210
213
 
211
214
  def _trigger_pre_validator(value: Any | None) -> Any: ...
@@ -3,15 +3,24 @@ import logging
3
3
  from _typeshed import Incomplete
4
4
  from collections.abc import Callable as Callable
5
5
  from dataclasses import dataclass
6
- from homeassistant.core import HomeAssistant as HomeAssistant, async_get_hass_or_none as async_get_hass_or_none
6
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
7
7
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
8
8
  from homeassistant.loader import Integration as Integration, async_get_issue_integration as async_get_issue_integration, async_suggest_report_issue as async_suggest_report_issue
9
+ from homeassistant.util.async_ import run_callback_threadsafe as run_callback_threadsafe
9
10
  from propcache.api import cached_property
10
11
  from types import FrameType
11
12
 
12
13
  _LOGGER: Incomplete
13
14
  _REPORTED_INTEGRATIONS: set[str]
14
15
 
16
+ class _Hass:
17
+ hass: HomeAssistant | None
18
+
19
+ _hass: Incomplete
20
+
21
+ @callback
22
+ def async_setup(hass: HomeAssistant) -> None: ...
23
+
15
24
  @dataclass(kw_only=True)
16
25
  class IntegrationFrame:
17
26
  custom_integration: bool
@@ -32,15 +41,15 @@ def get_integration_frame(exclude_integrations: set | None = None) -> Integratio
32
41
 
33
42
  class MissingIntegrationFrame(HomeAssistantError): ...
34
43
 
35
- def report(what: str, *, exclude_integrations: set[str] | None = None, error_if_core: bool = True, error_if_integration: bool = False, level: int = ..., log_custom_component_only: bool = False) -> None: ...
36
-
37
44
  class ReportBehavior(enum.Enum):
38
45
  IGNORE = ...
39
46
  LOG = ...
40
47
  ERROR = ...
41
48
 
42
49
  def report_usage(what: str, *, breaks_in_ha_version: str | None = None, core_behavior: ReportBehavior = ..., core_integration_behavior: ReportBehavior = ..., custom_integration_behavior: ReportBehavior = ..., exclude_integrations: set[str] | None = None, integration_domain: str | None = None, level: int = ...) -> None: ...
43
- def _report_integration_domain(hass: HomeAssistant | None, what: str, breaks_in_ha_version: str | None, integration: Integration, core_integration_behavior: ReportBehavior, custom_integration_behavior: ReportBehavior, level: int) -> None: ...
44
- def _report_integration_frame(what: str, breaks_in_ha_version: str | None, integration_frame: IntegrationFrame, level: int = ..., error: bool = False) -> None: ...
50
+ def _report_usage(hass: HomeAssistant, what: str, *, breaks_in_ha_version: str | None, core_behavior: ReportBehavior, core_integration_behavior: ReportBehavior, custom_integration_behavior: ReportBehavior, exclude_integrations: set[str] | None, integration_domain: str | None, level: int) -> None: ...
51
+ def _report_usage_integration_domain(hass: HomeAssistant | None, what: str, breaks_in_ha_version: str | None, integration: Integration, core_integration_behavior: ReportBehavior, custom_integration_behavior: ReportBehavior, level: int) -> None: ...
52
+ def _report_usage_integration_frame(hass: HomeAssistant, what: str, breaks_in_ha_version: str | None, integration_frame: IntegrationFrame, level: int = ..., error: bool = False) -> None: ...
53
+ def _report_usage_no_integration(what: str, core_behavior: ReportBehavior, breaks_in_ha_version: str | None, err: MissingIntegrationFrame | None) -> None: ...
45
54
  def warn_use[_CallableT: Callable](func: _CallableT, what: str) -> _CallableT: ...
46
55
  def report_non_thread_safe_operation(what: str) -> None: ...
@@ -19,7 +19,7 @@ from typing import Any
19
19
 
20
20
  _LOGGER: Incomplete
21
21
  type _SlotsType = dict[str, Any]
22
- type _IntentSlotsType = dict[str | tuple[str, str], VolSchemaType | Callable[[Any], Any]]
22
+ type _IntentSlotsType = dict[str | tuple[str, str], IntentSlotInfo | VolSchemaType | Callable[[Any], Any]]
23
23
  INTENT_TURN_OFF: str
24
24
  INTENT_TURN_ON: str
25
25
  INTENT_TOGGLE: str
@@ -135,8 +135,9 @@ def _filter_by_name(name: str, candidates: Iterable[MatchTargetsCandidate]) -> I
135
135
  def _filter_by_features(features: int, candidates: Iterable[MatchTargetsCandidate]) -> Iterable[MatchTargetsCandidate]: ...
136
136
  def _filter_by_device_classes(device_classes: Iterable[str], candidates: Iterable[MatchTargetsCandidate]) -> Iterable[MatchTargetsCandidate]: ...
137
137
  def _add_areas(areas: area_registry.AreaRegistry, devices: device_registry.DeviceRegistry, candidates: Iterable[MatchTargetsCandidate]) -> None: ...
138
+ def _default_area_candidate_filter(candidate: MatchTargetsCandidate, possible_area_ids: Collection[str]) -> bool: ...
138
139
  @callback
139
- def async_match_targets(hass: HomeAssistant, constraints: MatchTargetsConstraints, preferences: MatchTargetsPreferences | None = None, states: list[State] | None = None) -> MatchTargetsResult: ...
140
+ def async_match_targets(hass: HomeAssistant, constraints: MatchTargetsConstraints, preferences: MatchTargetsPreferences | None = None, states: list[State] | None = None, area_candidate_filter: Callable[[MatchTargetsCandidate, Collection[str]], bool] = ...) -> MatchTargetsResult: ...
140
141
  @callback
141
142
  @bind_hass
142
143
  def async_match_states(hass: HomeAssistant, name: str | None = None, area_name: str | None = None, floor_name: str | None = None, domains: Collection[str] | None = None, device_classes: Collection[str] | None = None, states: list[State] | None = None, assistant: str | None = None) -> Iterable[State]: ...
@@ -160,6 +161,14 @@ class IntentHandler:
160
161
 
161
162
  def non_empty_string(value: Any) -> str: ...
162
163
 
164
+ @dataclass(kw_only=True)
165
+ class IntentSlotInfo:
166
+ service_data_name: str | None = ...
167
+ description: str | None = ...
168
+ value_schema: VolSchemaType | Callable[[Any], Any] = ...
169
+
170
+ def _convert_slot_info(key: str | tuple[str, str], value: IntentSlotInfo | VolSchemaType | Callable[[Any], Any]) -> tuple[str, IntentSlotInfo]: ...
171
+
163
172
  class DynamicServiceIntentHandler(IntentHandler, metaclass=abc.ABCMeta):
164
173
  service_timeout: float
165
174
  intent_type: Incomplete
@@ -170,8 +179,8 @@ class DynamicServiceIntentHandler(IntentHandler, metaclass=abc.ABCMeta):
170
179
  description: Incomplete
171
180
  platforms: Incomplete
172
181
  device_classes: Incomplete
173
- required_slots: _IntentSlotsType
174
- optional_slots: _IntentSlotsType
182
+ required_slots: dict[str, IntentSlotInfo]
183
+ optional_slots: dict[str, IntentSlotInfo]
175
184
  def __init__(self, intent_type: str, speech: str | None = None, required_slots: _IntentSlotsType | None = None, optional_slots: _IntentSlotsType | None = None, required_domains: set[str] | None = None, required_features: int | None = None, required_states: set[str] | None = None, description: str | None = None, platforms: set[str] | None = None, device_classes: set[type[StrEnum]] | None = None) -> None: ...
176
185
  @cached_property
177
186
  def slot_schema(self) -> dict: ...
@@ -23,6 +23,7 @@ ACTION_PARAMETERS_CACHE: HassKey[dict[str, dict[str, tuple[str | None, vol.Schem
23
23
  LLM_API_ASSIST: str
24
24
  BASE_PROMPT: str
25
25
  DEFAULT_INSTRUCTIONS_PROMPT: str
26
+ NO_ENTITIES_PROMPT: str
26
27
 
27
28
  @callback
28
29
  def async_render_no_api_prompt(hass: HomeAssistant) -> str: ...
@@ -96,7 +97,7 @@ class AssistAPI(API):
96
97
  @callback
97
98
  def _async_get_tools(self, llm_context: LLMContext, exposed_entities: dict | None) -> list[Tool]: ...
98
99
 
99
- def _get_exposed_entities(hass: HomeAssistant, assistant: str) -> dict[str, dict[str, dict[str, Any]]]: ...
100
+ def _get_exposed_entities(hass: HomeAssistant, assistant: str, include_state: bool = True) -> dict[str, dict[str, dict[str, Any]]]: ...
100
101
  def _selector_serializer(schema: Any) -> Any: ...
101
102
  def _get_cached_action_parameters(hass: HomeAssistant, domain: str, action: str) -> tuple[str | None, vol.Schema]: ...
102
103
 
@@ -117,3 +118,8 @@ class CalendarGetEventsTool(Tool):
117
118
  parameters: Incomplete
118
119
  def __init__(self, calendars: list[str]) -> None: ...
119
120
  async def async_call(self, hass: HomeAssistant, tool_input: ToolInput, llm_context: LLMContext) -> JsonObjectType: ...
121
+
122
+ class GetHomeStateTool(Tool):
123
+ name: str
124
+ description: str
125
+ async def async_call(self, hass: HomeAssistant, tool_input: ToolInput, llm_context: LLMContext) -> JsonObjectType: ...
@@ -139,7 +139,7 @@ class _ScriptRun:
139
139
 
140
140
  class _QueuedScriptRun(_ScriptRun):
141
141
  lock_acquired: bool
142
- async def async_run(self) -> None: ...
142
+ async def async_run(self) -> ScriptRunResult | None: ...
143
143
  def _finish(self) -> None: ...
144
144
 
145
145
  @callback
@@ -42,6 +42,7 @@ class DeviceFilterSelectorConfig(TypedDict, total=False):
42
42
  integration: str
43
43
  manufacturer: str
44
44
  model: str
45
+ model_id: str
45
46
 
46
47
  class ActionSelectorConfig(TypedDict): ...
47
48
 
@@ -7,7 +7,7 @@ from .singleton import singleton as singleton
7
7
  from .translation import async_translate_state as async_translate_state
8
8
  from .typing import TemplateVarsType as TemplateVarsType
9
9
  from _typeshed import Incomplete, OptExcInfo as OptExcInfo
10
- from collections.abc import Callable as Callable, Generator, Iterable
10
+ from collections.abc import Callable as Callable, Generator, Iterable, MutableSequence
11
11
  from contextlib import AbstractContextManager
12
12
  from contextvars import ContextVar
13
13
  from datetime import datetime, timedelta
@@ -255,6 +255,7 @@ def floors(hass: HomeAssistant) -> Iterable[str | None]: ...
255
255
  def floor_id(hass: HomeAssistant, lookup_value: Any) -> str | None: ...
256
256
  def floor_name(hass: HomeAssistant, lookup_value: str) -> str | None: ...
257
257
  def floor_areas(hass: HomeAssistant, floor_id_or_name: str) -> Iterable[str]: ...
258
+ def floor_entities(hass: HomeAssistant, floor_id_or_name: str) -> Iterable[str]: ...
258
259
  def areas(hass: HomeAssistant) -> Iterable[str | None]: ...
259
260
  def area_id(hass: HomeAssistant, lookup_value: str) -> str | None: ...
260
261
  def _get_area_name(area_reg: area_registry.AreaRegistry, valid_area_id: str) -> str: ...
@@ -345,6 +346,18 @@ def time_until(hass: HomeAssistant, value: Any | datetime, precision: int = 1) -
345
346
  def urlencode(value): ...
346
347
  def slugify(value, separator: str = '_'): ...
347
348
  def iif(value: Any, if_true: Any = True, if_false: Any = False, if_none: Any = ...) -> Any: ...
349
+ def shuffle(*args: Any, seed: Any = None) -> MutableSequence[Any]: ...
350
+ def typeof(value: Any) -> Any: ...
351
+ def flatten(value: Iterable[Any], levels: int | None = None) -> list[Any]: ...
352
+ def intersect(value: Iterable[Any], other: Iterable[Any]) -> list[Any]: ...
353
+ def difference(value: Iterable[Any], other: Iterable[Any]) -> list[Any]: ...
354
+ def union(value: Iterable[Any], other: Iterable[Any]) -> list[Any]: ...
355
+ def symmetric_difference(value: Iterable[Any], other: Iterable[Any]) -> list[Any]: ...
356
+ def combine(*args: Any, recursive: bool = False) -> dict[Any, Any]: ...
357
+ def md5(value: str) -> str: ...
358
+ def sha1(value: str) -> str: ...
359
+ def sha256(value: str) -> str: ...
360
+ def sha512(value: str) -> str: ...
348
361
 
349
362
  class TemplateContextManager(AbstractContextManager):
350
363
  def set_template(self, template_str: str, action: str) -> None: ...
@@ -15,7 +15,8 @@ from .generated.usb import USB as USB
15
15
  from .generated.zeroconf import HOMEKIT as HOMEKIT, ZEROCONF as ZEROCONF
16
16
  from .helpers import device_registry as dr
17
17
  from .helpers.json import json_bytes as json_bytes, json_fragment as json_fragment
18
- from .helpers.typing import ConfigType as ConfigType
18
+ from .helpers.typing import ConfigType as ConfigType, UNDEFINED as UNDEFINED, UndefinedType as UndefinedType
19
+ from .util.async_ import create_eager_task as create_eager_task
19
20
  from .util.hass_dict import HassKey as HassKey
20
21
  from .util.json import JSON_DECODE_EXCEPTIONS as JSON_DECODE_EXCEPTIONS, json_loads as json_loads
21
22
  from _typeshed import Incomplete
@@ -158,8 +159,7 @@ class Integration:
158
159
  pkg_path: Incomplete
159
160
  file_path: Incomplete
160
161
  manifest: Incomplete
161
- _all_dependencies_resolved: bool | None
162
- _all_dependencies: set[str] | None
162
+ _all_dependencies: set[str] | Exception | None
163
163
  _platforms_to_preload: Incomplete
164
164
  _component_future: asyncio.Future[ComponentProtocol] | None
165
165
  _import_futures: dict[str, asyncio.Future[ModuleType]]
@@ -227,7 +227,7 @@ class Integration:
227
227
  def all_dependencies(self) -> set[str]: ...
228
228
  @property
229
229
  def all_dependencies_resolved(self) -> bool: ...
230
- async def resolve_dependencies(self) -> bool: ...
230
+ async def resolve_dependencies(self) -> set[str] | None: ...
231
231
  async def async_get_component(self) -> ComponentProtocol: ...
232
232
  def get_component(self) -> ComponentProtocol: ...
233
233
  def _get_component(self, preload_platforms: bool = False) -> ComponentProtocol: ...
@@ -250,6 +250,18 @@ def async_get_loaded_integration(hass: HomeAssistant, domain: str) -> Integratio
250
250
  async def async_get_integration(hass: HomeAssistant, domain: str) -> Integration: ...
251
251
  async def async_get_integrations(hass: HomeAssistant, domains: Iterable[str]) -> dict[str, Integration | Exception]: ...
252
252
 
253
+ class _ResolveDependenciesCacheProtocol(Protocol):
254
+ def get(self, itg: Integration) -> set[str] | Exception | None: ...
255
+ def __setitem__(self, itg: Integration, all_dependencies: set[str] | Exception) -> None: ...
256
+
257
+ class _ResolveDependenciesCache(_ResolveDependenciesCacheProtocol):
258
+ def get(self, itg: Integration) -> set[str] | Exception | None: ...
259
+ def __setitem__(self, itg: Integration, all_dependencies: set[str] | Exception) -> None: ...
260
+
261
+ async def resolve_integrations_dependencies(hass: HomeAssistant, integrations: Iterable[Integration]) -> dict[str, set[str]]: ...
262
+ async def resolve_integrations_after_dependencies(hass: HomeAssistant, integrations: Iterable[Integration], possible_after_dependencies: set[str] | None = None, *, ignore_exceptions: bool = False) -> dict[str, set[str]]: ...
263
+ async def _do_resolve_dependencies(itg: Integration, *, cache: _ResolveDependenciesCacheProtocol, possible_after_dependencies: set[str] | None | UndefinedType = ..., ignore_exceptions: bool = False) -> set[str]: ...
264
+
253
265
  class LoaderError(Exception): ...
254
266
 
255
267
  class IntegrationNotFound(LoaderError):
@@ -261,9 +273,8 @@ class IntegrationNotLoaded(LoaderError):
261
273
  def __init__(self, domain: str) -> None: ...
262
274
 
263
275
  class CircularDependency(LoaderError):
264
- from_domain: Incomplete
265
- to_domain: Incomplete
266
- def __init__(self, from_domain: str | set[str], to_domain: str) -> None: ...
276
+ def __init__(self, domain_cycle: list[str]) -> None: ...
277
+ def extend_cycle(self, domain: str) -> None: ...
267
278
 
268
279
  def _load_file(hass: HomeAssistant, comp_or_platform: str, base_paths: list[str]) -> ComponentProtocol | None: ...
269
280
 
@@ -284,7 +295,6 @@ class Helpers:
284
295
  def __getattr__(self, helper_name: str) -> ModuleWrapper: ...
285
296
 
286
297
  def bind_hass[_CallableT: Callable[..., Any]](func: _CallableT) -> _CallableT: ...
287
- async def _async_component_dependencies(hass: HomeAssistant, integration: Integration) -> set[str]: ...
288
298
  def _async_mount_config_dir(hass: HomeAssistant) -> None: ...
289
299
  def _lookup_path(hass: HomeAssistant) -> list[str]: ...
290
300
  def is_component_module_loaded(hass: HomeAssistant, module: str) -> bool: ...
@@ -5,7 +5,6 @@ from homeassistant.config import get_default_config_dir as get_default_config_di
5
5
  from homeassistant.config_entries import ConfigEntries as ConfigEntries
6
6
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
7
7
  from homeassistant.helpers.check_config import async_check_ha_config_file as async_check_ha_config_file
8
- from homeassistant.util.yaml import Secrets as Secrets
9
8
  from typing import Any
10
9
 
11
10
  REQUIREMENTS: Incomplete
@@ -1,8 +1,25 @@
1
1
  import logging
2
2
  import logging.handlers
3
+ from _typeshed import Incomplete
3
4
  from collections.abc import Callable, Coroutine
4
5
  from homeassistant.core import HassJobType as HassJobType, HomeAssistant as HomeAssistant, callback as callback, get_hassjob_callable_job_type as get_hassjob_callable_job_type
5
- from typing import Any, overload
6
+ from queue import SimpleQueue
7
+ from typing import Any, overload, override
8
+
9
+ _LOGGER: Incomplete
10
+
11
+ class HomeAssistantQueueListener(logging.handlers.QueueListener):
12
+ LOG_COUNTS_RESET_INTERVAL: int
13
+ MAX_LOGS_COUNT: int
14
+ EXCLUDED_LOG_COUNT_MODULES: Incomplete
15
+ _last_reset: float
16
+ _log_counts: dict[str, int]
17
+ _module_log_count_skip_flags: dict[str, bool]
18
+ def __init__(self, queue: SimpleQueue[logging.Handler], *handlers: logging.Handler) -> None: ...
19
+ @override
20
+ def handle(self, record: logging.LogRecord) -> None: ...
21
+ def _reset_counters(self, time_sec: float) -> None: ...
22
+ def _update_skip_flags(self, module_name: str) -> bool: ...
6
23
 
7
24
  class HomeAssistantQueueHandler(logging.handlers.QueueHandler):
8
25
  listener: logging.handlers.QueueListener | None
@@ -58,6 +58,9 @@ class BaseUnitConverter:
58
58
  def get_unit_ratio(cls, from_unit: str | None, to_unit: str | None) -> float: ...
59
59
  @classmethod
60
60
  @lru_cache
61
+ def get_unit_floored_log_ratio(cls, from_unit: str | None, to_unit: str | None) -> float: ...
62
+ @classmethod
63
+ @lru_cache
61
64
  def _are_unit_inverses(cls, from_unit: str | None, to_unit: str | None) -> bool: ...
62
65
 
63
66
  class DataRateConverter(BaseUnitConverter):
@@ -1,5 +1,6 @@
1
1
  from .unit_conversion import AreaConverter as AreaConverter, DistanceConverter as DistanceConverter, PressureConverter as PressureConverter, SpeedConverter as SpeedConverter, TemperatureConverter as TemperatureConverter, VolumeConverter as VolumeConverter
2
2
  from _typeshed import Incomplete
3
+ from dataclasses import dataclass
3
4
  from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass
4
5
  from homeassistant.const import ACCUMULATED_PRECIPITATION as ACCUMULATED_PRECIPITATION, AREA as AREA, LENGTH as LENGTH, MASS as MASS, PRESSURE as PRESSURE, TEMPERATURE as TEMPERATURE, UNIT_NOT_RECOGNIZED_TEMPLATE as UNIT_NOT_RECOGNIZED_TEMPLATE, UnitOfArea as UnitOfArea, UnitOfLength as UnitOfLength, UnitOfMass as UnitOfMass, UnitOfPrecipitationDepth as UnitOfPrecipitationDepth, UnitOfPressure as UnitOfPressure, UnitOfSpeed as UnitOfSpeed, UnitOfTemperature as UnitOfTemperature, UnitOfVolume as UnitOfVolume, UnitOfVolumetricFlux as UnitOfVolumetricFlux, VOLUME as VOLUME, WIND_SPEED as WIND_SPEED
5
6
  from typing import Final
@@ -18,17 +19,18 @@ _VALID_BY_TYPE: dict[str, set[str] | set[str | None]]
18
19
 
19
20
  def _is_valid_unit(unit: str, unit_type: str) -> bool: ...
20
21
 
22
+ @dataclass(frozen=True, kw_only=True)
21
23
  class UnitSystem:
22
- _name: Incomplete
23
- accumulated_precipitation_unit: Incomplete
24
- area_unit: Incomplete
25
- length_unit: Incomplete
26
- mass_unit: Incomplete
27
- pressure_unit: Incomplete
28
- temperature_unit: Incomplete
29
- volume_unit: Incomplete
30
- wind_speed_unit: Incomplete
31
- _conversions: Incomplete
24
+ _name: str
25
+ accumulated_precipitation_unit: UnitOfPrecipitationDepth
26
+ area_unit: UnitOfArea
27
+ length_unit: UnitOfLength
28
+ mass_unit: UnitOfMass
29
+ pressure_unit: UnitOfPressure
30
+ temperature_unit: UnitOfTemperature
31
+ volume_unit: UnitOfVolume
32
+ wind_speed_unit: UnitOfSpeed
33
+ _conversions: dict[tuple[SensorDeviceClass | str | None, str | None], str]
32
34
  def __init__(self, name: str, *, accumulated_precipitation: UnitOfPrecipitationDepth, area: UnitOfArea, conversions: dict[tuple[SensorDeviceClass | str | None, str | None], str], length: UnitOfLength, mass: UnitOfMass, pressure: UnitOfPressure, temperature: UnitOfTemperature, volume: UnitOfVolume, wind_speed: UnitOfSpeed) -> None: ...
33
35
  def temperature(self, temperature: float, from_unit: str) -> float: ...
34
36
  def length(self, length: float | None, from_unit: str) -> float: ...
@@ -1,7 +1,6 @@
1
- from .const import SECRET_YAML as SECRET_YAML
2
1
  from .dumper import dump as dump, save_yaml as save_yaml
3
- from .input import UndefinedSubstitution as UndefinedSubstitution, extract_inputs as extract_inputs, substitute as substitute
4
- from .loader import Secrets as Secrets, YamlTypeError as YamlTypeError, load_yaml as load_yaml, load_yaml_dict as load_yaml_dict, parse_yaml as parse_yaml, secret_yaml as secret_yaml
5
- from .objects import Input as Input
2
+ from .loader import Secrets as Secrets, load_yaml as load_yaml, load_yaml_dict as load_yaml_dict, parse_yaml as parse_yaml, secret_yaml as secret_yaml
3
+ from annotatedyaml import Input as Input, SECRET_YAML as SECRET_YAML, YamlTypeError as YamlTypeError
4
+ from annotatedyaml.input import UndefinedSubstitution as UndefinedSubstitution, extract_inputs as extract_inputs, substitute as substitute
6
5
 
7
6
  __all__ = ['SECRET_YAML', 'Input', 'Secrets', 'UndefinedSubstitution', 'YamlTypeError', 'dump', 'extract_inputs', 'load_yaml', 'load_yaml_dict', 'parse_yaml', 'save_yaml', 'secret_yaml', 'substitute']
@@ -1,9 +1,3 @@
1
- import yaml
2
- from .objects import Input as Input, NodeDictClass as NodeDictClass, NodeListClass as NodeListClass, NodeStrClass as NodeStrClass
3
- from _typeshed import Incomplete
4
- from typing import Any
1
+ from annotatedyaml.dumper import add_representer as add_representer, dump as dump, represent_odict as represent_odict, save_yaml as save_yaml
5
2
 
6
- def dump(_dict: dict | list) -> str: ...
7
- def save_yaml(path: str, data: dict) -> None: ...
8
- def represent_odict(dumper, tag, mapping, flow_style: Incomplete | None = None) -> yaml.MappingNode: ...
9
- def add_representer(klass: Any, representer: Any) -> None: ...
3
+ __all__ = ['add_representer', 'dump', 'represent_odict', 'save_yaml']
@@ -1,11 +1,4 @@
1
1
  from .objects import Input as Input
2
- from _typeshed import Incomplete
3
- from typing import Any
2
+ from annotatedyaml.input import UndefinedSubstitution as UndefinedSubstitution, extract_inputs as extract_inputs, substitute as substitute
4
3
 
5
- class UndefinedSubstitution(Exception):
6
- input: Incomplete
7
- def __init__(self, input_name: str) -> None: ...
8
-
9
- def extract_inputs(obj: Any) -> set[str]: ...
10
- def _extract_inputs(obj: Any, found: set[str]) -> None: ...
11
- def substitute(obj: Any, substitutions: dict[str, Any]) -> Any: ...
4
+ __all__ = ['Input', 'UndefinedSubstitution', 'extract_inputs', 'substitute']