homeassistant-stubs 2025.4.4__py3-none-any.whl → 2025.5.0b0__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 (396) hide show
  1. homeassistant-stubs/components/adax/__init__.pyi +5 -4
  2. homeassistant-stubs/components/adax/climate.pyi +25 -17
  3. homeassistant-stubs/components/adax/const.pyi +2 -0
  4. homeassistant-stubs/components/adax/coordinator.pyi +21 -0
  5. homeassistant-stubs/components/androidtv_remote/media_player.pyi +1 -1
  6. homeassistant-stubs/components/apcupsd/binary_sensor.pyi +1 -1
  7. homeassistant-stubs/components/apcupsd/coordinator.pyi +2 -0
  8. homeassistant-stubs/components/apcupsd/sensor.pyi +1 -1
  9. homeassistant-stubs/components/apsystems/coordinator.pyi +1 -0
  10. homeassistant-stubs/components/apsystems/switch.pyi +1 -1
  11. homeassistant-stubs/components/asuswrt/router.pyi +2 -3
  12. homeassistant-stubs/components/automation/__init__.pyi +2 -2
  13. homeassistant-stubs/components/automation/config.pyi +2 -2
  14. homeassistant-stubs/components/automation/const.pyi +0 -4
  15. homeassistant-stubs/components/axis/hub/api.pyi +2 -2
  16. homeassistant-stubs/components/backup/config.pyi +10 -2
  17. homeassistant-stubs/components/backup/onboarding.pyi +30 -0
  18. homeassistant-stubs/components/bluetooth/passive_update_processor.pyi +3 -0
  19. homeassistant-stubs/components/bluetooth/storage.pyi +1 -1
  20. homeassistant-stubs/components/bond/config_flow.pyi +3 -0
  21. homeassistant-stubs/components/bosch_alarm/__init__.pyi +1 -1
  22. homeassistant-stubs/components/bosch_alarm/alarm_control_panel.pyi +2 -11
  23. homeassistant-stubs/components/bosch_alarm/config_flow.pyi +5 -1
  24. homeassistant-stubs/components/bosch_alarm/diagnostics.pyi +11 -0
  25. homeassistant-stubs/components/bosch_alarm/entity.pyi +29 -0
  26. homeassistant-stubs/components/bosch_alarm/sensor.pyi +30 -0
  27. homeassistant-stubs/components/cambridge_audio/media_player.pyi +2 -0
  28. homeassistant-stubs/components/canary/__init__.pyi +1 -5
  29. homeassistant-stubs/components/canary/config_flow.pyi +0 -1
  30. homeassistant-stubs/components/cloud/const.pyi +1 -0
  31. homeassistant-stubs/components/cloud/http_api.pyi +1 -1
  32. homeassistant-stubs/components/cloud/onboarding.pyi +35 -0
  33. homeassistant-stubs/components/cloud/tts.pyi +3 -1
  34. homeassistant-stubs/components/comelit/__init__.pyi +1 -0
  35. homeassistant-stubs/components/comelit/alarm_control_panel.pyi +0 -1
  36. homeassistant-stubs/components/comelit/binary_sensor.pyi +0 -1
  37. homeassistant-stubs/components/comelit/climate.pyi +2 -7
  38. homeassistant-stubs/components/comelit/config_flow.pyi +1 -0
  39. homeassistant-stubs/components/comelit/coordinator.pyi +3 -2
  40. homeassistant-stubs/components/comelit/cover.pyi +2 -7
  41. homeassistant-stubs/components/comelit/entity.pyi +11 -0
  42. homeassistant-stubs/components/comelit/humidifier.pyi +2 -6
  43. homeassistant-stubs/components/comelit/light.pyi +2 -9
  44. homeassistant-stubs/components/comelit/sensor.pyi +2 -7
  45. homeassistant-stubs/components/comelit/switch.pyi +2 -6
  46. homeassistant-stubs/components/comelit/utils.pyi +5 -0
  47. homeassistant-stubs/components/command_line/__init__.pyi +1 -1
  48. homeassistant-stubs/components/command_line/binary_sensor.pyi +2 -2
  49. homeassistant-stubs/components/command_line/cover.pyi +2 -2
  50. homeassistant-stubs/components/command_line/sensor.pyi +2 -2
  51. homeassistant-stubs/components/command_line/switch.pyi +2 -2
  52. homeassistant-stubs/components/config/config_entries.pyi +3 -1
  53. homeassistant-stubs/components/demo/light.pyi +3 -2
  54. homeassistant-stubs/components/demo/media_player.pyi +4 -0
  55. homeassistant-stubs/components/device_tracker/config_entry.pyi +2 -2
  56. homeassistant-stubs/components/devolo_home_control/__init__.pyi +2 -2
  57. homeassistant-stubs/components/devolo_home_network/device_tracker.pyi +1 -2
  58. homeassistant-stubs/components/dhcp/__init__.pyi +6 -13
  59. homeassistant-stubs/components/dhcp/const.pyi +5 -0
  60. homeassistant-stubs/components/dhcp/helpers.pyi +8 -0
  61. homeassistant-stubs/components/dhcp/models.pyi +25 -0
  62. homeassistant-stubs/components/dhcp/websocket_api.pyi +13 -0
  63. homeassistant-stubs/components/ecovacs/image.pyi +1 -0
  64. homeassistant-stubs/components/eheimdigital/number.pyi +38 -0
  65. homeassistant-stubs/components/eheimdigital/sensor.pyi +32 -0
  66. homeassistant-stubs/components/eheimdigital/switch.pyi +26 -0
  67. homeassistant-stubs/components/eheimdigital/time.pyi +37 -0
  68. homeassistant-stubs/components/elevenlabs/tts.pyi +2 -2
  69. homeassistant-stubs/components/energy/sensor.pyi +5 -0
  70. homeassistant-stubs/components/enphase_envoy/config_flow.pyi +3 -1
  71. homeassistant-stubs/components/enphase_envoy/coordinator.pyi +12 -1
  72. homeassistant-stubs/components/esphome/__init__.pyi +5 -4
  73. homeassistant-stubs/components/esphome/alarm_control_panel.pyi +1 -0
  74. homeassistant-stubs/components/esphome/assist_satellite.pyi +7 -6
  75. homeassistant-stubs/components/esphome/binary_sensor.pyi +5 -13
  76. homeassistant-stubs/components/esphome/button.pyi +2 -0
  77. homeassistant-stubs/components/esphome/camera.pyi +2 -0
  78. homeassistant-stubs/components/esphome/climate.pyi +1 -0
  79. homeassistant-stubs/components/esphome/config_flow.pyi +25 -5
  80. homeassistant-stubs/components/esphome/const.pyi +2 -1
  81. homeassistant-stubs/components/esphome/coordinator.pyi +4 -3
  82. homeassistant-stubs/components/esphome/cover.pyi +2 -0
  83. homeassistant-stubs/components/esphome/dashboard.pyi +1 -1
  84. homeassistant-stubs/components/esphome/date.pyi +2 -0
  85. homeassistant-stubs/components/esphome/datetime.pyi +2 -0
  86. homeassistant-stubs/components/esphome/diagnostics.pyi +2 -0
  87. homeassistant-stubs/components/esphome/entity.pyi +12 -9
  88. homeassistant-stubs/components/esphome/event.pyi +2 -0
  89. homeassistant-stubs/components/esphome/fan.pyi +4 -3
  90. homeassistant-stubs/components/esphome/ffmpeg_proxy.pyi +10 -2
  91. homeassistant-stubs/components/esphome/light.pyi +8 -7
  92. homeassistant-stubs/components/esphome/lock.pyi +6 -4
  93. homeassistant-stubs/components/esphome/manager.pyi +7 -3
  94. homeassistant-stubs/components/esphome/media_player.pyi +2 -1
  95. homeassistant-stubs/components/esphome/number.pyi +1 -0
  96. homeassistant-stubs/components/esphome/repairs.pyi +21 -2
  97. homeassistant-stubs/components/esphome/select.pyi +3 -2
  98. homeassistant-stubs/components/esphome/sensor.pyi +4 -2
  99. homeassistant-stubs/components/esphome/switch.pyi +3 -1
  100. homeassistant-stubs/components/esphome/text.pyi +1 -0
  101. homeassistant-stubs/components/esphome/time.pyi +2 -0
  102. homeassistant-stubs/components/esphome/update.pyi +8 -8
  103. homeassistant-stubs/components/esphome/valve.pyi +3 -1
  104. homeassistant-stubs/components/fritz/binary_sensor.pyi +1 -0
  105. homeassistant-stubs/components/fritz/button.pyi +1 -0
  106. homeassistant-stubs/components/fritz/coordinator.pyi +3 -4
  107. homeassistant-stubs/components/fritz/device_tracker.pyi +1 -0
  108. homeassistant-stubs/components/fritz/image.pyi +1 -0
  109. homeassistant-stubs/components/fritz/sensor.pyi +1 -0
  110. homeassistant-stubs/components/fritz/switch.pyi +1 -0
  111. homeassistant-stubs/components/fritz/update.pyi +1 -0
  112. homeassistant-stubs/components/fritzbox/binary_sensor.pyi +2 -5
  113. homeassistant-stubs/components/fritzbox/climate.pyi +3 -3
  114. homeassistant-stubs/components/fritzbox/coordinator.pyi +1 -1
  115. homeassistant-stubs/components/fritzbox/sensor.pyi +3 -6
  116. homeassistant-stubs/components/heos/const.pyi +4 -0
  117. homeassistant-stubs/components/heos/media_player.pyi +5 -4
  118. homeassistant-stubs/components/heos/services.pyi +22 -2
  119. homeassistant-stubs/components/history/websocket_api.pyi +1 -1
  120. homeassistant-stubs/components/history_stats/data.pyi +2 -1
  121. homeassistant-stubs/components/home_connect/__init__.pyi +0 -1
  122. homeassistant-stubs/components/home_connect/binary_sensor.pyi +2 -13
  123. homeassistant-stubs/components/home_connect/coordinator.pyi +5 -0
  124. homeassistant-stubs/components/home_connect/repairs.pyi +10 -0
  125. homeassistant-stubs/components/home_connect/select.pyi +6 -2
  126. homeassistant-stubs/components/home_connect/sensor.pyi +5 -3
  127. homeassistant-stubs/components/homee/climate.pyi +47 -0
  128. homeassistant-stubs/components/homee/const.pyi +1 -0
  129. homeassistant-stubs/components/homee/number.pyi +12 -4
  130. homeassistant-stubs/components/homekit/__init__.pyi +5 -3
  131. homeassistant-stubs/components/homekit/accessories.pyi +2 -1
  132. homeassistant-stubs/components/homekit/const.pyi +13 -0
  133. homeassistant-stubs/components/homekit/type_air_purifiers.pyi +69 -0
  134. homeassistant-stubs/components/homekit/type_fans.pyi +7 -4
  135. homeassistant-stubs/components/homekit/type_media_players.pyi +2 -1
  136. homeassistant-stubs/components/homekit/type_switches.pyi +1 -1
  137. homeassistant-stubs/components/homekit/type_triggers.pyi +1 -1
  138. homeassistant-stubs/components/homekit/util.pyi +2 -1
  139. homeassistant-stubs/components/http/headers.pyi +6 -0
  140. homeassistant-stubs/components/huawei_lte/binary_sensor.pyi +3 -1
  141. homeassistant-stubs/components/huawei_lte/config_flow.pyi +1 -1
  142. homeassistant-stubs/components/huawei_lte/entity.pyi +0 -3
  143. homeassistant-stubs/components/husqvarna_automower/coordinator.pyi +1 -0
  144. homeassistant-stubs/components/husqvarna_automower/sensor.pyi +2 -1
  145. homeassistant-stubs/components/hyperion/__init__.pyi +12 -5
  146. homeassistant-stubs/components/hyperion/camera.pyi +3 -4
  147. homeassistant-stubs/components/hyperion/const.pyi +0 -3
  148. homeassistant-stubs/components/hyperion/light.pyi +4 -6
  149. homeassistant-stubs/components/hyperion/sensor.pyi +3 -4
  150. homeassistant-stubs/components/hyperion/switch.pyi +3 -4
  151. homeassistant-stubs/components/incomfort/climate.pyi +1 -2
  152. homeassistant-stubs/components/iron_os/__init__.pyi +1 -3
  153. homeassistant-stubs/components/iron_os/config_flow.pyi +3 -0
  154. homeassistant-stubs/components/iron_os/coordinator.pyi +4 -2
  155. homeassistant-stubs/components/iron_os/entity.pyi +2 -0
  156. homeassistant-stubs/components/iron_os/update.pyi +4 -2
  157. homeassistant-stubs/components/isy994/entity.pyi +1 -0
  158. homeassistant-stubs/components/isy994/services.pyi +1 -0
  159. homeassistant-stubs/components/isy994/switch.pyi +1 -1
  160. homeassistant-stubs/components/jewish_calendar/config_flow.pyi +1 -2
  161. homeassistant-stubs/components/jewish_calendar/const.pyi +1 -0
  162. homeassistant-stubs/components/jewish_calendar/entity.pyi +0 -1
  163. homeassistant-stubs/components/jewish_calendar/sensor.pyi +1 -0
  164. homeassistant-stubs/components/jewish_calendar/service.pyi +4 -3
  165. homeassistant-stubs/components/kulersky/__init__.pyi +14 -0
  166. homeassistant-stubs/components/kulersky/config_flow.pyi +17 -0
  167. homeassistant-stubs/components/kulersky/const.pyi +4 -0
  168. homeassistant-stubs/components/kulersky/light.pyi +34 -0
  169. homeassistant-stubs/components/lamarzocco/__init__.pyi +4 -2
  170. homeassistant-stubs/components/lamarzocco/binary_sensor.pyi +3 -7
  171. homeassistant-stubs/components/lamarzocco/calendar.pyi +3 -4
  172. homeassistant-stubs/components/lamarzocco/config_flow.pyi +4 -3
  173. homeassistant-stubs/components/lamarzocco/coordinator.pyi +13 -16
  174. homeassistant-stubs/components/lamarzocco/diagnostics.pyi +1 -8
  175. homeassistant-stubs/components/lamarzocco/entity.pyi +1 -5
  176. homeassistant-stubs/components/lamarzocco/number.pyi +4 -29
  177. homeassistant-stubs/components/lamarzocco/select.pyi +3 -8
  178. homeassistant-stubs/components/lamarzocco/sensor.pyi +11 -24
  179. homeassistant-stubs/components/lamarzocco/switch.pyi +6 -5
  180. homeassistant-stubs/components/lamarzocco/update.pyi +4 -1
  181. homeassistant-stubs/components/lcn/__init__.pyi +4 -3
  182. homeassistant-stubs/components/lcn/entity.pyi +3 -3
  183. homeassistant-stubs/components/lcn/helpers.pyi +2 -2
  184. homeassistant-stubs/components/lcn/websocket.pyi +1 -1
  185. homeassistant-stubs/components/linkplay/__init__.pyi +1 -1
  186. homeassistant-stubs/components/linkplay/const.pyi +8 -2
  187. homeassistant-stubs/components/linkplay/media_player.pyi +6 -4
  188. homeassistant-stubs/components/logbook/websocket_api.pyi +1 -1
  189. homeassistant-stubs/components/logger/__init__.pyi +1 -1
  190. homeassistant-stubs/components/logger/helpers.pyi +4 -2
  191. homeassistant-stubs/components/logger/websocket_api.pyi +1 -1
  192. homeassistant-stubs/components/matter/entity.pyi +1 -0
  193. homeassistant-stubs/components/matter/select.pyi +1 -1
  194. homeassistant-stubs/components/matter/sensor.pyi +3 -1
  195. homeassistant-stubs/components/matter/switch.pyi +20 -0
  196. homeassistant-stubs/components/matter/water_heater.pyi +39 -0
  197. homeassistant-stubs/components/mcp/application_credentials.pyi +12 -0
  198. homeassistant-stubs/components/mcp/config_flow.pyi +27 -6
  199. homeassistant-stubs/components/mcp/const.pyi +3 -0
  200. homeassistant-stubs/components/mcp/coordinator.pyi +8 -5
  201. homeassistant-stubs/components/media_player/__init__.pyi +7 -3
  202. homeassistant-stubs/components/media_player/browse_media.pyi +16 -1
  203. homeassistant-stubs/components/media_player/const.pyi +4 -0
  204. homeassistant-stubs/components/media_player/errors.pyi +1 -0
  205. homeassistant-stubs/components/media_source/error.pyi +1 -0
  206. homeassistant-stubs/components/met_eireann/__init__.pyi +2 -2
  207. homeassistant-stubs/components/met_eireann/weather.pyi +3 -3
  208. homeassistant-stubs/components/mjpeg/config_flow.pyi +2 -2
  209. homeassistant-stubs/components/motionmount/select.pyi +1 -1
  210. homeassistant-stubs/components/mqtt/config_flow.pyi +18 -4
  211. homeassistant-stubs/components/mqtt/const.pyi +3 -0
  212. homeassistant-stubs/components/mqtt/device_tracker.pyi +11 -14
  213. homeassistant-stubs/components/mqtt/entity.pyi +3 -0
  214. homeassistant-stubs/components/mqtt/light/schema_basic.pyi +1 -2
  215. homeassistant-stubs/components/mqtt/light/schema_json.pyi +3 -2
  216. homeassistant-stubs/components/music_assistant/media_browser.pyi +17 -2
  217. homeassistant-stubs/components/music_assistant/media_player.pyi +3 -2
  218. homeassistant-stubs/components/network/__init__.pyi +2 -0
  219. homeassistant-stubs/components/ntfy/__init__.pyi +16 -0
  220. homeassistant-stubs/components/ntfy/config_flow.pyi +29 -0
  221. homeassistant-stubs/components/ntfy/const.pyi +6 -0
  222. homeassistant-stubs/components/ntfy/diagnostics.pyi +7 -0
  223. homeassistant-stubs/components/ntfy/notify.pyi +25 -0
  224. homeassistant-stubs/components/nut/__init__.pyi +7 -3
  225. homeassistant-stubs/components/nut/config_flow.pyi +11 -14
  226. homeassistant-stubs/components/nut/const.pyi +0 -1
  227. homeassistant-stubs/components/nut/device_action.pyi +5 -1
  228. homeassistant-stubs/components/nut/sensor.pyi +6 -3
  229. homeassistant-stubs/components/ohme/__init__.pyi +15 -0
  230. homeassistant-stubs/components/ohme/button.pyi +26 -0
  231. homeassistant-stubs/components/ohme/config_flow.pyi +17 -0
  232. homeassistant-stubs/components/ohme/const.pyi +5 -0
  233. homeassistant-stubs/components/ohme/coordinator.pyi +44 -0
  234. homeassistant-stubs/components/ohme/diagnostics.pyi +5 -0
  235. homeassistant-stubs/components/ohme/entity.pyi +23 -0
  236. homeassistant-stubs/components/ohme/number.pyi +30 -0
  237. homeassistant-stubs/components/ohme/select.pyi +33 -0
  238. homeassistant-stubs/components/ohme/sensor.pyi +26 -0
  239. homeassistant-stubs/components/ohme/services.pyi +19 -0
  240. homeassistant-stubs/components/ohme/switch.pyi +45 -0
  241. homeassistant-stubs/components/ohme/time.pyi +30 -0
  242. homeassistant-stubs/components/onboarding/__init__.pyi +1 -0
  243. homeassistant-stubs/components/onboarding/views.pyi +29 -43
  244. homeassistant-stubs/components/oncue/__init__.pyi +5 -11
  245. homeassistant-stubs/components/oncue/config_flow.pyi +2 -13
  246. homeassistant-stubs/components/onewire/sensor.pyi +1 -2
  247. homeassistant-stubs/components/onkyo/config_flow.pyi +2 -3
  248. homeassistant-stubs/components/onkyo/const.pyi +0 -2
  249. homeassistant-stubs/components/onkyo/media_player.pyi +3 -14
  250. homeassistant-stubs/components/openai_conversation/config_flow.pyi +3 -3
  251. homeassistant-stubs/components/openai_conversation/const.pyi +1 -0
  252. homeassistant-stubs/components/openai_conversation/conversation.pyi +1 -1
  253. homeassistant-stubs/components/overkiz/climate/atlantic_electrical_heater_with_adjustable_temperature_setpoint.pyi +4 -1
  254. homeassistant-stubs/components/overkiz/climate/atlantic_electrical_towel_dryer.pyi +2 -1
  255. homeassistant-stubs/components/overkiz/config_flow.pyi +1 -7
  256. homeassistant-stubs/components/overkiz/entity.pyi +2 -1
  257. homeassistant-stubs/components/overkiz/number.pyi +1 -1
  258. homeassistant-stubs/components/overkiz/sensor.pyi +1 -1
  259. homeassistant-stubs/components/pegel_online/__init__.pyi +13 -0
  260. homeassistant-stubs/components/pegel_online/config_flow.pyi +15 -0
  261. homeassistant-stubs/components/pegel_online/const.pyi +6 -0
  262. homeassistant-stubs/components/pegel_online/coordinator.pyi +16 -0
  263. homeassistant-stubs/components/pegel_online/diagnostics.pyi +5 -0
  264. homeassistant-stubs/components/pegel_online/entity.pyi +12 -0
  265. homeassistant-stubs/components/pegel_online/sensor.pyi +28 -0
  266. homeassistant-stubs/components/powerwall/sensor.pyi +0 -1
  267. homeassistant-stubs/components/recorder/core.pyi +2 -0
  268. homeassistant-stubs/components/recorder/entity_registry.pyi +2 -1
  269. homeassistant-stubs/components/recorder/tasks.pyi +2 -1
  270. homeassistant-stubs/components/renault/binary_sensor.pyi +8 -2
  271. homeassistant-stubs/components/renault/config_flow.pyi +2 -1
  272. homeassistant-stubs/components/renault/const.pyi +2 -1
  273. homeassistant-stubs/components/renault/coordinator.pyi +4 -1
  274. homeassistant-stubs/components/renault/entity.pyi +2 -0
  275. homeassistant-stubs/components/renault/renault_hub.pyi +5 -2
  276. homeassistant-stubs/components/renault/renault_vehicle.pyi +5 -2
  277. homeassistant-stubs/components/renault/services.pyi +5 -0
  278. homeassistant-stubs/components/rest/binary_sensor.pyi +2 -2
  279. homeassistant-stubs/components/rest/schema.pyi +1 -1
  280. homeassistant-stubs/components/rest/sensor.pyi +2 -2
  281. homeassistant-stubs/components/rest/switch.pyi +4 -3
  282. homeassistant-stubs/components/roborock/__init__.pyi +1 -0
  283. homeassistant-stubs/components/roborock/config_flow.pyi +1 -0
  284. homeassistant-stubs/components/samsungtv/__init__.pyi +6 -7
  285. homeassistant-stubs/components/samsungtv/config_flow.pyi +1 -1
  286. homeassistant-stubs/components/samsungtv/entity.pyi +3 -2
  287. homeassistant-stubs/components/samsungtv/media_player.pyi +1 -2
  288. homeassistant-stubs/components/samsungtv/remote.pyi +2 -2
  289. homeassistant-stubs/components/scrape/__init__.pyi +1 -1
  290. homeassistant-stubs/components/scrape/sensor.pyi +4 -5
  291. homeassistant-stubs/components/shelly/__init__.pyi +1 -0
  292. homeassistant-stubs/components/shelly/climate.pyi +2 -1
  293. homeassistant-stubs/components/shelly/const.pyi +2 -0
  294. homeassistant-stubs/components/shelly/coordinator.pyi +1 -0
  295. homeassistant-stubs/components/shelly/entity.pyi +5 -2
  296. homeassistant-stubs/components/shelly/number.pyi +4 -3
  297. homeassistant-stubs/components/shelly/repairs.pyi +19 -0
  298. homeassistant-stubs/components/shelly/select.pyi +3 -1
  299. homeassistant-stubs/components/shelly/text.pyi +4 -1
  300. homeassistant-stubs/components/shelly/utils.pyi +2 -3
  301. homeassistant-stubs/components/smlight/binary_sensor.pyi +1 -0
  302. homeassistant-stubs/components/smlight/button.pyi +1 -0
  303. homeassistant-stubs/components/smlight/sensor.pyi +2 -0
  304. homeassistant-stubs/components/smlight/switch.pyi +1 -0
  305. homeassistant-stubs/components/smlight/update.pyi +3 -1
  306. homeassistant-stubs/components/smtp/__init__.pyi +0 -0
  307. homeassistant-stubs/components/smtp/const.pyi +17 -0
  308. homeassistant-stubs/components/smtp/notify.pyi +47 -0
  309. homeassistant-stubs/components/sql/__init__.pyi +1 -1
  310. homeassistant-stubs/components/sql/sensor.pyi +4 -4
  311. homeassistant-stubs/components/ssdp/__init__.pyi +6 -96
  312. homeassistant-stubs/components/ssdp/common.pyi +5 -0
  313. homeassistant-stubs/components/ssdp/const.pyi +3 -0
  314. homeassistant-stubs/components/ssdp/scanner.pyi +75 -0
  315. homeassistant-stubs/components/ssdp/server.pyi +30 -0
  316. homeassistant-stubs/components/ssdp/websocket_api.pyi +16 -0
  317. homeassistant-stubs/components/switcher_kis/button.pyi +2 -1
  318. homeassistant-stubs/components/switcher_kis/climate.pyi +2 -4
  319. homeassistant-stubs/components/switcher_kis/config_flow.pyi +3 -2
  320. homeassistant-stubs/components/switcher_kis/cover.pyi +0 -2
  321. homeassistant-stubs/components/switcher_kis/entity.pyi +4 -0
  322. homeassistant-stubs/components/switcher_kis/light.pyi +3 -8
  323. homeassistant-stubs/components/switcher_kis/sensor.pyi +13 -6
  324. homeassistant-stubs/components/switcher_kis/switch.pyi +9 -15
  325. homeassistant-stubs/components/switcher_kis/utils.pyi +1 -1
  326. homeassistant-stubs/components/synology_dsm/common.pyi +3 -0
  327. homeassistant-stubs/components/synology_dsm/sensor.pyi +9 -1
  328. homeassistant-stubs/components/todo/__init__.pyi +1 -0
  329. homeassistant-stubs/components/tplink_omada/config_flow.pyi +1 -2
  330. homeassistant-stubs/components/tractive/__init__.pyi +1 -1
  331. homeassistant-stubs/components/tractive/binary_sensor.pyi +9 -3
  332. homeassistant-stubs/components/tractive/const.pyi +1 -0
  333. homeassistant-stubs/components/tractive/device_tracker.pyi +1 -1
  334. homeassistant-stubs/components/tts/__init__.pyi +22 -13
  335. homeassistant-stubs/components/tts/media_source.pyi +5 -2
  336. homeassistant-stubs/components/unifi/hub/api.pyi +2 -2
  337. homeassistant-stubs/components/uptimerobot/__init__.pyi +4 -5
  338. homeassistant-stubs/components/uptimerobot/binary_sensor.pyi +4 -4
  339. homeassistant-stubs/components/uptimerobot/coordinator.pyi +3 -2
  340. homeassistant-stubs/components/uptimerobot/diagnostics.pyi +2 -4
  341. homeassistant-stubs/components/uptimerobot/entity.pyi +0 -2
  342. homeassistant-stubs/components/uptimerobot/sensor.pyi +3 -4
  343. homeassistant-stubs/components/uptimerobot/switch.pyi +5 -4
  344. homeassistant-stubs/components/vodafone_station/__init__.pyi +1 -0
  345. homeassistant-stubs/components/vodafone_station/config_flow.pyi +1 -0
  346. homeassistant-stubs/components/vodafone_station/coordinator.pyi +2 -1
  347. homeassistant-stubs/components/vodafone_station/utils.pyi +5 -0
  348. homeassistant-stubs/components/websocket_api/commands.pyi +3 -1
  349. homeassistant-stubs/components/websocket_api/http.pyi +4 -1
  350. homeassistant-stubs/components/wemo/__init__.pyi +1 -1
  351. homeassistant-stubs/components/wemo/coordinator.pyi +1 -1
  352. homeassistant-stubs/components/wemo/models.pyi +3 -4
  353. homeassistant-stubs/components/workday/config_flow.pyi +1 -1
  354. homeassistant-stubs/components/xiaomi_ble/const.pyi +2 -0
  355. homeassistant-stubs/components/xiaomi_ble/device_trigger.pyi +1 -1
  356. homeassistant-stubs/components/xiaomi_ble/sensor.pyi +2 -2
  357. homeassistant-stubs/components/zeroconf/__init__.pyi +6 -49
  358. homeassistant-stubs/components/zeroconf/const.pyi +3 -0
  359. homeassistant-stubs/components/zeroconf/discovery.pyi +63 -0
  360. homeassistant-stubs/components/zeroconf/websocket_api.pyi +40 -0
  361. homeassistant-stubs/components/zone/__init__.pyi +4 -1
  362. homeassistant-stubs/components/zwave_js/__init__.pyi +2 -2
  363. homeassistant-stubs/components/zwave_js/api.pyi +8 -3
  364. homeassistant-stubs/components/zwave_js/config_flow.pyi +41 -59
  365. homeassistant-stubs/components/zwave_js/helpers.pyi +2 -1
  366. homeassistant-stubs/config_entries.pyi +13 -9
  367. homeassistant-stubs/const.pyi +5 -0
  368. homeassistant-stubs/core.pyi +1 -3
  369. homeassistant-stubs/core_config.pyi +1 -1
  370. homeassistant-stubs/data_entry_flow.pyi +5 -1
  371. homeassistant-stubs/helpers/area_registry.pyi +5 -1
  372. homeassistant-stubs/helpers/config_entry_oauth2_flow.pyi +1 -1
  373. homeassistant-stubs/helpers/config_validation.pyi +1 -0
  374. homeassistant-stubs/helpers/device_registry.pyi +1 -3
  375. homeassistant-stubs/helpers/entity.pyi +1 -1
  376. homeassistant-stubs/helpers/entity_platform.pyi +3 -3
  377. homeassistant-stubs/helpers/entity_registry.pyi +6 -6
  378. homeassistant-stubs/helpers/event.pyi +2 -0
  379. homeassistant-stubs/helpers/floor_registry.pyi +12 -3
  380. homeassistant-stubs/helpers/llm.pyi +24 -1
  381. homeassistant-stubs/helpers/network.pyi +1 -1
  382. homeassistant-stubs/helpers/script.pyi +2 -1
  383. homeassistant-stubs/helpers/template.pyi +1 -0
  384. homeassistant-stubs/helpers/trigger_template_entity.pyi +17 -2
  385. homeassistant-stubs/loader.pyi +2 -11
  386. homeassistant-stubs/setup.pyi +7 -6
  387. homeassistant-stubs/util/ssl.pyi +2 -0
  388. {homeassistant_stubs-2025.4.4.dist-info → homeassistant_stubs-2025.5.0b0.dist-info}/METADATA +3 -3
  389. {homeassistant_stubs-2025.4.4.dist-info → homeassistant_stubs-2025.5.0b0.dist-info}/RECORD +391 -334
  390. homeassistant-stubs/components/oncue/binary_sensor.pyi +0 -16
  391. homeassistant-stubs/components/oncue/const.pyi +0 -6
  392. homeassistant-stubs/components/oncue/entity.pyi +0 -20
  393. homeassistant-stubs/components/oncue/sensor.pyi +0 -21
  394. homeassistant-stubs/components/oncue/types.pyi +0 -5
  395. {homeassistant_stubs-2025.4.4.dist-info → homeassistant_stubs-2025.5.0b0.dist-info}/WHEEL +0 -0
  396. {homeassistant_stubs-2025.4.4.dist-info → homeassistant_stubs-2025.5.0b0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,63 @@
1
+ import re
2
+ from .const import DOMAIN as DOMAIN, REQUEST_TIMEOUT as REQUEST_TIMEOUT
3
+ from .models import HaZeroconf as HaZeroconf
4
+ from _typeshed import Incomplete
5
+ from collections.abc import Callable as Callable
6
+ from homeassistant import config_entries as config_entries
7
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
8
+ from homeassistant.helpers import discovery_flow as discovery_flow
9
+ from homeassistant.helpers.discovery_flow import DiscoveryKey as DiscoveryKey
10
+ from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
11
+ from homeassistant.helpers.service_info.zeroconf import ZeroconfServiceInfo as _ZeroconfServiceInfo
12
+ from homeassistant.loader import HomeKitDiscoveredIntegration as HomeKitDiscoveredIntegration, ZeroconfMatcher as ZeroconfMatcher
13
+ from homeassistant.util.hass_dict import HassKey as HassKey
14
+ from typing import Any, Final
15
+ from zeroconf import ServiceStateChange
16
+ from zeroconf.asyncio import AsyncServiceBrowser, AsyncServiceInfo
17
+
18
+ _LOGGER: Incomplete
19
+ ZEROCONF_TYPE: str
20
+ HOMEKIT_TYPES: Incomplete
21
+ _HOMEKIT_MODEL_SPLITS: Incomplete
22
+ HOMEKIT_PAIRED_STATUS_FLAG: str
23
+ HOMEKIT_MODEL_LOWER: str
24
+ HOMEKIT_MODEL_UPPER: str
25
+ ATTR_DOMAIN: Final[str]
26
+ ATTR_NAME: Final[str]
27
+ ATTR_PROPERTIES: Final[str]
28
+ DATA_DISCOVERY: HassKey[ZeroconfDiscovery]
29
+
30
+ def build_homekit_model_lookups(homekit_models: dict[str, HomeKitDiscoveredIntegration]) -> tuple[dict[str, HomeKitDiscoveredIntegration], dict[re.Pattern, HomeKitDiscoveredIntegration]]: ...
31
+ def _compile_fnmatch(pattern: str) -> re.Pattern: ...
32
+ def _memorized_fnmatch(name: str, pattern: str) -> bool: ...
33
+ def _match_against_props(matcher: dict[str, str], props: dict[str, str | None]) -> bool: ...
34
+ def is_homekit_paired(props: dict[str, Any]) -> bool: ...
35
+ def async_get_homekit_discovery(homekit_model_lookups: dict[str, HomeKitDiscoveredIntegration], homekit_model_matchers: dict[re.Pattern, HomeKitDiscoveredIntegration], props: dict[str, Any]) -> HomeKitDiscoveredIntegration | None: ...
36
+ def info_from_service(service: AsyncServiceInfo) -> _ZeroconfServiceInfo | None: ...
37
+
38
+ class ZeroconfDiscovery:
39
+ hass: Incomplete
40
+ zeroconf: Incomplete
41
+ zeroconf_types: Incomplete
42
+ homekit_model_lookups: Incomplete
43
+ homekit_model_matchers: Incomplete
44
+ async_service_browser: AsyncServiceBrowser | None
45
+ _service_update_listeners: set[Callable[[AsyncServiceInfo], None]]
46
+ _service_removed_listeners: set[Callable[[str], None]]
47
+ def __init__(self, hass: HomeAssistant, zeroconf: HaZeroconf, zeroconf_types: dict[str, list[ZeroconfMatcher]], homekit_model_lookups: dict[str, HomeKitDiscoveredIntegration], homekit_model_matchers: dict[re.Pattern, HomeKitDiscoveredIntegration]) -> None: ...
48
+ @callback
49
+ def async_register_service_update_listener(self, listener: Callable[[AsyncServiceInfo], None]) -> Callable[[], None]: ...
50
+ @callback
51
+ def async_register_service_removed_listener(self, listener: Callable[[str], None]) -> Callable[[], None]: ...
52
+ async def async_setup(self) -> None: ...
53
+ async def async_stop(self) -> None: ...
54
+ @callback
55
+ def _handle_config_entry_removed(self, entry: config_entries.ConfigEntry) -> None: ...
56
+ def _async_dismiss_discoveries(self, name: str) -> None: ...
57
+ @callback
58
+ def async_service_update(self, zeroconf: HaZeroconf, service_type: str, name: str, state_change: ServiceStateChange) -> None: ...
59
+ @callback
60
+ def _async_service_update(self, zeroconf: HaZeroconf, service_type: str, name: str) -> None: ...
61
+ async def _async_lookup_and_process_service_update(self, zeroconf: HaZeroconf, async_service_info: AsyncServiceInfo, service_type: str, name: str) -> None: ...
62
+ @callback
63
+ def _async_process_service_update(self, async_service_info: AsyncServiceInfo, service_type: str, name: str) -> None: ...
@@ -0,0 +1,40 @@
1
+ from .const import DOMAIN as DOMAIN, REQUEST_TIMEOUT as REQUEST_TIMEOUT
2
+ from .discovery import DATA_DISCOVERY as DATA_DISCOVERY, ZeroconfDiscovery as ZeroconfDiscovery
3
+ from .models import HaAsyncZeroconf as HaAsyncZeroconf
4
+ from _typeshed import Incomplete
5
+ from collections.abc import Callable as Callable
6
+ from homeassistant.components import websocket_api as websocket_api
7
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
8
+ from homeassistant.helpers.json import json_bytes as json_bytes
9
+ from typing import Any
10
+ from zeroconf import DNSPointer, Zeroconf as Zeroconf
11
+ from zeroconf.asyncio import AsyncServiceInfo
12
+
13
+ _LOGGER: Incomplete
14
+ CLASS_IN: int
15
+ TYPE_PTR: int
16
+
17
+ @callback
18
+ def async_setup(hass: HomeAssistant) -> None: ...
19
+ def serialize_service_info(service_info: AsyncServiceInfo) -> dict[str, Any]: ...
20
+
21
+ class _DiscoverySubscription:
22
+ hass: Incomplete
23
+ discovery: Incomplete
24
+ aiozc: Incomplete
25
+ ws_msg_id: Incomplete
26
+ connection: Incomplete
27
+ def __init__(self, hass: HomeAssistant, connection: websocket_api.ActiveConnection, ws_msg_id: int, aiozc: HaAsyncZeroconf, discovery: ZeroconfDiscovery) -> None: ...
28
+ @callback
29
+ def _async_unsubscribe(self, cancel_callbacks: tuple[Callable[[], None], ...]) -> None: ...
30
+ async def async_start(self) -> None: ...
31
+ async def _async_update_from_cache(self) -> None: ...
32
+ def _async_get_ptr_records(self, zc: Zeroconf) -> list[DNSPointer]: ...
33
+ async def _async_handle_service(self, info: AsyncServiceInfo) -> None: ...
34
+ def _async_event_message(self, message: dict[str, Any]) -> None: ...
35
+ def _async_on_update(self, info: AsyncServiceInfo) -> None: ...
36
+ def _async_on_remove(self, name: str) -> None: ...
37
+
38
+ @websocket_api.require_admin
39
+ @websocket_api.async_response
40
+ async def ws_subscribe_discovery(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
@@ -7,6 +7,7 @@ from homeassistant.core import Event as Event, EventStateChangedData as EventSta
7
7
  from homeassistant.helpers import collection as collection, entity_component as entity_component, event as event, service as service, storage as storage
8
8
  from homeassistant.helpers.typing import ConfigType as ConfigType, VolDictType as VolDictType
9
9
  from homeassistant.loader import bind_hass as bind_hass
10
+ from homeassistant.util.hass_dict import HassKey as HassKey
10
11
  from homeassistant.util.location import distance as distance
11
12
  from typing import Any, Self
12
13
 
@@ -28,9 +29,11 @@ STORAGE_KEY = DOMAIN
28
29
  STORAGE_VERSION: int
29
30
  ENTITY_ID_SORTER: Incomplete
30
31
  ZONE_ENTITY_IDS: str
32
+ DATA_ZONE_STORAGE_COLLECTION: HassKey[ZoneStorageCollection]
33
+ DATA_ZONE_ENTITY_IDS: HassKey[list[str]]
31
34
 
32
35
  @bind_hass
33
- def async_active_zone(hass: HomeAssistant, latitude: float, longitude: float, radius: int = 0) -> State | None: ...
36
+ def async_active_zone(hass: HomeAssistant, latitude: float, longitude: float, radius: float = 0) -> State | None: ...
34
37
  @callback
35
38
  def async_setup_track_zone_entity_ids(hass: HomeAssistant) -> None: ...
36
39
  def in_zone(zone: State, latitude: float, longitude: float, radius: float = 0) -> bool: ...
@@ -59,8 +59,8 @@ class ControllerEvents:
59
59
  def async_on_node_removed(self, event: dict) -> None: ...
60
60
  @callback
61
61
  def async_on_identify(self, event: dict) -> None: ...
62
- @callback
63
- def register_node_in_dev_reg(self, node: ZwaveNode) -> dr.DeviceEntry: ...
62
+ async def async_check_preprovisioned_device(self, node: ZwaveNode) -> None: ...
63
+ async def async_register_node_in_dev_reg(self, node: ZwaveNode) -> dr.DeviceEntry: ...
64
64
 
65
65
  class NodeEvents:
66
66
  config_entry: Incomplete
@@ -1,6 +1,6 @@
1
1
  from .config_validation import BITMASK_SCHEMA as BITMASK_SCHEMA
2
2
  from .const import ATTR_COMMAND_CLASS as ATTR_COMMAND_CLASS, ATTR_ENDPOINT as ATTR_ENDPOINT, ATTR_METHOD_NAME as ATTR_METHOD_NAME, ATTR_PARAMETERS as ATTR_PARAMETERS, ATTR_WAIT_FOR_RESULT as ATTR_WAIT_FOR_RESULT, CONF_DATA_COLLECTION_OPTED_IN as CONF_DATA_COLLECTION_OPTED_IN, CONF_INSTALLER_MODE as CONF_INSTALLER_MODE, DATA_CLIENT as DATA_CLIENT, DOMAIN as DOMAIN, EVENT_DEVICE_ADDED_TO_REGISTRY as EVENT_DEVICE_ADDED_TO_REGISTRY, USER_AGENT as USER_AGENT
3
- from .helpers import async_enable_statistics as async_enable_statistics, async_get_node_from_device_id as async_get_node_from_device_id, get_device_id as get_device_id
3
+ from .helpers import async_enable_statistics as async_enable_statistics, async_get_node_from_device_id as async_get_node_from_device_id, async_get_provisioning_entry_from_device_id as async_get_provisioning_entry_from_device_id, get_device_id as get_device_id
4
4
  from _typeshed import Incomplete
5
5
  from aiohttp import web as web
6
6
  from collections.abc import Callable as Callable, Coroutine
@@ -69,6 +69,9 @@ UUID: str
69
69
  SUPPORTED_PROTOCOLS: str
70
70
  ADDITIONAL_PROPERTIES: str
71
71
  REQUESTED_SECURITY_CLASSES: str
72
+ PROTOCOL: str
73
+ DEVICE_NAME: str
74
+ AREA_ID: str
72
75
  FEATURE: str
73
76
  STRATEGY: str
74
77
  MINIMUM_QR_STRING_LENGTH: int
@@ -97,8 +100,7 @@ async def websocket_node_status(hass: HomeAssistant, connection: ActiveConnectio
97
100
  @async_get_node
98
101
  async def websocket_node_metadata(hass: HomeAssistant, connection: ActiveConnection, msg: dict[str, Any], node: Node) -> None: ...
99
102
  @websocket_api.async_response
100
- @async_get_node
101
- async def websocket_node_alerts(hass: HomeAssistant, connection: ActiveConnection, msg: dict[str, Any], node: Node) -> None: ...
103
+ async def websocket_node_alerts(hass: HomeAssistant, connection: ActiveConnection, msg: dict[str, Any]) -> None: ...
102
104
  @websocket_api.require_admin
103
105
  @websocket_api.async_response
104
106
  @async_handle_failed_command
@@ -126,6 +128,9 @@ async def websocket_grant_security_classes(hass: HomeAssistant, connection: Acti
126
128
  async def websocket_validate_dsk_and_enter_pin(hass: HomeAssistant, connection: ActiveConnection, msg: dict[str, Any], entry: ConfigEntry, client: Client, driver: Driver) -> None: ...
127
129
  @websocket_api.require_admin
128
130
  @websocket_api.async_response
131
+ async def websocket_subscribe_new_devices(hass: HomeAssistant, connection: ActiveConnection, msg: dict[str, Any]) -> None: ...
132
+ @websocket_api.require_admin
133
+ @websocket_api.async_response
129
134
  @async_handle_failed_command
130
135
  @async_get_entry
131
136
  async def websocket_provision_smart_start_node(hass: HomeAssistant, connection: ActiveConnection, msg: dict[str, Any], entry: ConfigEntry, client: Client, driver: Driver) -> None: ...
@@ -1,16 +1,14 @@
1
- import abc
2
1
  import asyncio
3
2
  import voluptuous as vol
4
3
  from .addon import get_addon_manager as get_addon_manager
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
4
+ 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, DATA_CLIENT as DATA_CLIENT, DOMAIN as DOMAIN
6
5
  from _typeshed import Incomplete
7
- from abc import ABC, abstractmethod
8
6
  from homeassistant.components import usb as usb
9
7
  from homeassistant.components.hassio import AddonError as AddonError, AddonInfo as AddonInfo, AddonManager as AddonManager, AddonState as AddonState
10
- from homeassistant.config_entries import ConfigEntriesFlowManager as ConfigEntriesFlowManager, ConfigEntry as ConfigEntry, ConfigEntryBaseFlow as ConfigEntryBaseFlow, ConfigEntryState as ConfigEntryState, ConfigFlow as ConfigFlow, ConfigFlowContext as ConfigFlowContext, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow, OptionsFlowManager as OptionsFlowManager, SOURCE_USB as SOURCE_USB
8
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigEntryState as ConfigEntryState, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, SOURCE_USB as SOURCE_USB
11
9
  from homeassistant.const import CONF_NAME as CONF_NAME, CONF_URL as CONF_URL
12
10
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
13
- from homeassistant.data_entry_flow import AbortFlow as AbortFlow, FlowManager as FlowManager
11
+ from homeassistant.data_entry_flow import AbortFlow as AbortFlow
14
12
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
15
13
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
16
14
  from homeassistant.helpers.hassio import is_hassio as is_hassio
@@ -19,6 +17,8 @@ from homeassistant.helpers.service_info.usb import UsbServiceInfo as UsbServiceI
19
17
  from homeassistant.helpers.service_info.zeroconf import ZeroconfServiceInfo as ZeroconfServiceInfo
20
18
  from homeassistant.helpers.typing import VolDictType as VolDictType
21
19
  from typing import Any
20
+ from zwave_js_server.client import Client as Client
21
+ from zwave_js_server.model.driver import Driver as Driver
22
22
  from zwave_js_server.version import VersionInfo as VersionInfo
23
23
 
24
24
  _LOGGER: Incomplete
@@ -32,6 +32,7 @@ SERVER_VERSION_TIMEOUT: int
32
32
  ADDON_LOG_LEVELS: Incomplete
33
33
  ADDON_USER_INPUT_MAP: Incomplete
34
34
  ON_SUPERVISOR_SCHEMA: Incomplete
35
+ MIN_MIGRATION_SDK_VERSION: Incomplete
35
36
 
36
37
  def get_manual_schema(user_input: dict[str, Any]) -> vol.Schema: ...
37
38
  def get_on_supervisor_schema(user_input: dict[str, Any]) -> vol.Schema: ...
@@ -40,7 +41,9 @@ async def async_get_version_info(hass: HomeAssistant, ws_address: str) -> Versio
40
41
  def get_usb_ports() -> dict[str, str]: ...
41
42
  async def async_get_usb_ports(hass: HomeAssistant) -> dict[str, str]: ...
42
43
 
43
- class BaseZwaveJSFlow(ConfigEntryBaseFlow, ABC, metaclass=abc.ABCMeta):
44
+ class ZWaveJSConfigFlow(ConfigFlow, domain=DOMAIN):
45
+ VERSION: int
46
+ _title: str
44
47
  s0_legacy_key: str | None
45
48
  s2_access_control_key: str | None
46
49
  s2_authenticated_key: str | None
@@ -54,83 +57,62 @@ class BaseZwaveJSFlow(ConfigEntryBaseFlow, ABC, metaclass=abc.ABCMeta):
54
57
  install_task: asyncio.Task | None
55
58
  start_task: asyncio.Task | None
56
59
  version_info: VersionInfo | None
60
+ original_addon_config: dict[str, Any] | None
61
+ revert_reason: str | None
62
+ backup_task: asyncio.Task | None
63
+ restore_backup_task: asyncio.Task | None
64
+ backup_data: bytes | None
65
+ backup_filepath: str | None
66
+ use_addon: bool
67
+ _migrating: bool
68
+ _reconfigure_config_entry: ConfigEntry | None
69
+ _usb_discovery: bool
57
70
  def __init__(self) -> None: ...
58
- @property
59
- @abstractmethod
60
- def flow_manager(self) -> FlowManager[ConfigFlowContext, ConfigFlowResult]: ...
61
71
  async def async_step_install_addon(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
62
72
  async def async_step_install_failed(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
63
73
  async def async_step_start_addon(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
64
74
  async def async_step_start_failed(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
65
75
  async def _async_start_addon(self) -> None: ...
66
- @abstractmethod
67
76
  async def async_step_configure_addon(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
68
- @abstractmethod
69
77
  async def async_step_finish_addon_setup(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
70
78
  async def _async_get_addon_info(self) -> AddonInfo: ...
71
- async def _async_set_addon_config(self, config: dict) -> None: ...
79
+ async def _async_set_addon_config(self, config_updates: dict) -> None: ...
72
80
  async def _async_install_addon(self) -> None: ...
73
81
  async def _async_get_addon_discovery_info(self) -> dict: ...
74
-
75
- class ZWaveJSConfigFlow(BaseZwaveJSFlow, ConfigFlow, domain=DOMAIN):
76
- VERSION: int
77
- _title: str
78
- use_addon: bool
79
- _usb_discovery: bool
80
- def __init__(self) -> None: ...
81
- @property
82
- def flow_manager(self) -> ConfigEntriesFlowManager: ...
83
- @staticmethod
84
- @callback
85
- def async_get_options_flow(config_entry: ConfigEntry) -> OptionsFlowHandler: ...
86
82
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
87
- ws_address: Incomplete
83
+ async def async_step_reconfigure(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
88
84
  async def async_step_zeroconf(self, discovery_info: ZeroconfServiceInfo) -> ConfigFlowResult: ...
89
85
  async def async_step_zeroconf_confirm(self, user_input: dict | None = None) -> ConfigFlowResult: ...
90
- usb_path: Incomplete
91
86
  async def async_step_usb(self, discovery_info: UsbServiceInfo) -> ConfigFlowResult: ...
92
87
  async def async_step_usb_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
93
88
  async def async_step_manual(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
94
89
  async def async_step_hassio(self, discovery_info: HassioServiceInfo) -> ConfigFlowResult: ...
95
90
  async def async_step_hassio_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
96
- s0_legacy_key: Incomplete
97
- s2_access_control_key: Incomplete
98
- s2_authenticated_key: Incomplete
99
- s2_unauthenticated_key: Incomplete
100
- lr_s2_access_control_key: Incomplete
101
- lr_s2_authenticated_key: Incomplete
102
91
  async def async_step_on_supervisor(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
103
- async def async_step_configure_addon(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
104
- version_info: Incomplete
105
- async def async_step_finish_addon_setup(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
92
+ async def async_step_configure_addon_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
93
+ async def async_step_finish_addon_setup_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
106
94
  @callback
107
95
  def _async_create_entry_from_vars(self) -> ConfigFlowResult: ...
108
-
109
- class OptionsFlowHandler(BaseZwaveJSFlow, OptionsFlow):
110
- original_addon_config: dict[str, Any] | None
111
- revert_reason: str | None
112
- def __init__(self) -> None: ...
113
- @property
114
- def flow_manager(self) -> OptionsFlowManager: ...
115
96
  @callback
116
- def _async_update_entry(self, data: dict[str, Any]) -> None: ...
117
- async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
118
- async def async_step_manual(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
119
- async def async_step_on_supervisor(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
120
- s0_legacy_key: Incomplete
121
- s2_access_control_key: Incomplete
122
- s2_authenticated_key: Incomplete
123
- s2_unauthenticated_key: Incomplete
124
- lr_s2_access_control_key: Incomplete
125
- lr_s2_authenticated_key: Incomplete
126
- usb_path: Incomplete
127
- restart_addon: bool
128
- async def async_step_configure_addon(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
129
- async def async_step_start_failed(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
130
- ws_address: Incomplete
131
- version_info: Incomplete
132
- async def async_step_finish_addon_setup(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
97
+ def _async_update_entry(self, updates: dict[str, Any], *, schedule_reload: bool = True) -> None: ...
98
+ async def async_step_intent_reconfigure(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
99
+ async def async_step_intent_migrate(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
100
+ async def async_step_backup_nvm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
101
+ async def async_step_restore_nvm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
102
+ async def async_step_instruct_unplug(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
103
+ async def async_step_manual_reconfigure(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
104
+ async def async_step_on_supervisor_reconfigure(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
105
+ async def async_step_configure_addon_reconfigure(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
106
+ async def async_step_choose_serial_port(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
107
+ async def async_step_backup_failed(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
108
+ async def async_step_restore_failed(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
109
+ async def async_step_migration_done(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
110
+ async def async_step_finish_addon_setup_migrate(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
111
+ async def async_step_finish_addon_setup_reconfigure(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
133
112
  async def async_revert_addon_config(self, reason: str) -> ConfigFlowResult: ...
113
+ async def _async_backup_network(self) -> None: ...
114
+ async def _async_restore_network_backup(self) -> None: ...
115
+ def _get_driver(self) -> Driver: ...
134
116
 
135
117
  class CannotConnect(HomeAssistantError): ...
136
118
 
@@ -12,7 +12,7 @@ from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
12
12
  from homeassistant.helpers.group import expand_entity_ids as expand_entity_ids
13
13
  from homeassistant.helpers.typing import ConfigType as ConfigType, VolSchemaType as VolSchemaType
14
14
  from typing import Any
15
- from zwave_js_server.model.controller import Controller as Controller
15
+ from zwave_js_server.model.controller import Controller as Controller, ProvisioningEntry as ProvisioningEntry
16
16
  from zwave_js_server.model.driver import Driver as Driver
17
17
  from zwave_js_server.model.node import Node as ZwaveNode
18
18
  from zwave_js_server.model.value import Value as ZwaveValue, ValueDataType as ValueDataType
@@ -46,6 +46,7 @@ def get_device_id_ext(driver: Driver, node: ZwaveNode) -> tuple[str, str] | None
46
46
  def get_home_and_node_id_from_device_entry(device_entry: dr.DeviceEntry) -> tuple[str, int] | None: ...
47
47
  @callback
48
48
  def async_get_node_from_device_id(hass: HomeAssistant, device_id: str, dev_reg: dr.DeviceRegistry | None = None) -> ZwaveNode: ...
49
+ async def async_get_provisioning_entry_from_device_id(hass: HomeAssistant, device_id: str) -> ProvisioningEntry | None: ...
49
50
  @callback
50
51
  def async_get_node_from_entity_id(hass: HomeAssistant, entity_id: str, ent_reg: er.EntityRegistry | None = None, dev_reg: dr.DeviceRegistry | None = None) -> ZwaveNode: ...
51
52
  @callback
@@ -1,7 +1,6 @@
1
1
  import asyncio
2
2
  import voluptuous as vol
3
3
  from . import data_entry_flow as data_entry_flow, loader as loader
4
- from .components import persistent_notification as persistent_notification
5
4
  from .components.bluetooth import BluetoothServiceInfoBleak as BluetoothServiceInfoBleak
6
5
  from .const import CONF_NAME as CONF_NAME, EVENT_HOMEASSISTANT_STARTED as EVENT_HOMEASSISTANT_STARTED, EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP, Platform as Platform
7
6
  from .core import CALLBACK_TYPE as CALLBACK_TYPE, CoreState as CoreState, Event as Event, HassJob as HassJob, HassJobType as HassJobType, HomeAssistant as HomeAssistant, callback as callback
@@ -22,7 +21,7 @@ from .helpers.service_info.usb import UsbServiceInfo as UsbServiceInfo
22
21
  from .helpers.service_info.zeroconf import ZeroconfServiceInfo as ZeroconfServiceInfo
23
22
  from .helpers.typing import ConfigType as ConfigType, DiscoveryInfoType as DiscoveryInfoType, UNDEFINED as UNDEFINED, UndefinedType as UndefinedType
24
23
  from .loader import async_suggest_report_issue as async_suggest_report_issue
25
- from .setup import DATA_SETUP_DONE as DATA_SETUP_DONE, SetupPhases as SetupPhases, async_pause_setup as async_pause_setup, async_process_deps_reqs as async_process_deps_reqs, async_setup_component as async_setup_component, async_start_setup as async_start_setup
24
+ from .setup import SetupPhases as SetupPhases, async_pause_setup as async_pause_setup, async_process_deps_reqs as async_process_deps_reqs, async_setup_component as async_setup_component, async_start_setup as async_start_setup, async_wait_component as async_wait_component
26
25
  from .util import ulid as ulid_util
27
26
  from .util.async_ import create_eager_task as create_eager_task
28
27
  from .util.decorator import Registry as Registry
@@ -82,7 +81,6 @@ class ConfigEntryState(Enum):
82
81
  def recoverable(self) -> bool: ...
83
82
 
84
83
  DEFAULT_DISCOVERY_UNIQUE_ID: str
85
- DISCOVERY_NOTIFICATION_ID: str
86
84
  DISCOVERY_SOURCES: Incomplete
87
85
  EVENT_FLOW_DISCOVERED: str
88
86
  SIGNAL_CONFIG_ENTRY_CHANGED: Incomplete
@@ -257,25 +255,29 @@ class ConfigEntriesFlowManager(data_entry_flow.FlowManager[ConfigFlowContext, Co
257
255
  _hass_config: Incomplete
258
256
  _pending_import_flows: defaultdict[str, dict[str, asyncio.Future[None]]]
259
257
  _initialize_futures: defaultdict[str, set[asyncio.Future[None]]]
260
- _discovery_debouncer: Incomplete
258
+ _discovery_event_debouncer: Incomplete
259
+ _flow_subscriptions: list[Callable[[str, str], None]]
261
260
  def __init__(self, hass: HomeAssistant, config_entries: ConfigEntries, hass_config: ConfigType) -> None: ...
262
261
  async def async_wait_import_flow_initialized(self, handler: str) -> None: ...
263
- @callback
264
- def _async_has_other_discovery_flows(self, flow_id: str) -> bool: ...
265
262
  async def async_init(self, handler: str, *, context: ConfigFlowContext | None = None, data: Any = None) -> ConfigFlowResult: ...
266
263
  async def _async_init(self, flow_id: str, handler: str, context: ConfigFlowContext, data: Any) -> tuple[ConfigFlow, ConfigFlowResult]: ...
267
264
  def _set_pending_import_done(self, flow: ConfigFlow) -> None: ...
268
265
  @callback
269
266
  def async_shutdown(self) -> None: ...
267
+ @callback
268
+ def async_flow_removed(self, flow: data_entry_flow.FlowHandler[ConfigFlowContext, ConfigFlowResult]) -> None: ...
270
269
  async def async_finish_flow(self, flow: data_entry_flow.FlowHandler[ConfigFlowContext, ConfigFlowResult], result: ConfigFlowResult) -> ConfigFlowResult: ...
271
270
  async def async_create_flow(self, handler_key: str, *, context: ConfigFlowContext | None = None, data: Any = None) -> ConfigFlow: ...
272
- async def async_post_init(self, flow: data_entry_flow.FlowHandler[ConfigFlowContext, ConfigFlowResult], result: ConfigFlowResult) -> None: ...
273
271
  @callback
274
- def _async_discovery(self) -> None: ...
272
+ def _async_fire_discovery_event(self) -> None: ...
275
273
  @callback
276
274
  def async_has_matching_discovery_flow(self, handler: str, match_context: ConfigFlowContext, data: Any) -> bool: ...
277
275
  @callback
278
276
  def async_has_matching_flow(self, flow: ConfigFlow) -> bool: ...
277
+ @callback
278
+ def async_subscribe_flow(self, listener: Callable[[str, str], None]) -> CALLBACK_TYPE: ...
279
+ @callback
280
+ def _async_remove_flow_progress(self, flow_id: str) -> None: ...
279
281
 
280
282
  class ConfigEntryItems(UserDict[str, ConfigEntry]):
281
283
  _hass: Incomplete
@@ -388,7 +390,7 @@ class ConfigFlow(ConfigEntryBaseFlow):
388
390
  @callback
389
391
  def _abort_if_unique_id_mismatch(self, *, reason: str = 'unique_id_mismatch', description_placeholders: Mapping[str, str] | None = None) -> None: ...
390
392
  @callback
391
- def _abort_if_unique_id_configured(self, updates: dict[str, Any] | None = None, reload_on_update: bool = True, *, error: str = 'already_configured') -> None: ...
393
+ def _abort_if_unique_id_configured(self, updates: dict[str, Any] | None = None, reload_on_update: bool = True, *, error: str = 'already_configured', description_placeholders: Mapping[str, str] | None = None) -> None: ...
392
394
  async def async_set_unique_id(self, unique_id: str | None = None, *, raise_on_progress: bool = True) -> ConfigEntry | None: ...
393
395
  @callback
394
396
  def _set_confirm_only(self) -> None: ...
@@ -498,3 +500,5 @@ async def support_remove_from_device(hass: HomeAssistant, domain: str) -> bool:
498
500
  async def _support_single_config_entry_only(hass: HomeAssistant, domain: str) -> bool: ...
499
501
  async def _load_integration(hass: HomeAssistant, domain: str, hass_config: ConfigType) -> None: ...
500
502
  async def _async_get_flow_handler(hass: HomeAssistant, domain: str, hass_config: ConfigType) -> type[ConfigFlow]: ...
503
+ @callback
504
+ def _abort_reauth_flows(hass: HomeAssistant, domain: str, entry_id: str) -> None: ...
@@ -80,6 +80,7 @@ SUN_EVENT_SUNRISE: Final[str]
80
80
  CONF_ABOVE: Final[str]
81
81
  CONF_ACCESS_TOKEN: Final[str]
82
82
  CONF_ACTION: Final[str]
83
+ CONF_ACTIONS: Final[str]
83
84
  CONF_ADDRESS: Final[str]
84
85
  CONF_AFTER: Final[str]
85
86
  CONF_ALIAS: Final[str]
@@ -402,6 +403,7 @@ class UnitOfPower(StrEnum):
402
403
 
403
404
  class UnitOfReactivePower(StrEnum):
404
405
  VOLT_AMPERE_REACTIVE = 'var'
406
+ KILO_VOLT_AMPERE_REACTIVE = 'kvar'
405
407
 
406
408
  _DEPRECATED_POWER_VOLT_AMPERE_REACTIVE: Final[Incomplete]
407
409
 
@@ -501,8 +503,11 @@ class UnitOfVolume(StrEnum):
501
503
 
502
504
  class UnitOfVolumeFlowRate(StrEnum):
503
505
  CUBIC_METERS_PER_HOUR = 'm³/h'
506
+ CUBIC_METERS_PER_SECOND = 'm³/s'
504
507
  CUBIC_FEET_PER_MINUTE = 'ft³/min'
508
+ LITERS_PER_HOUR = 'L/h'
505
509
  LITERS_PER_MINUTE = 'L/min'
510
+ LITERS_PER_SECOND = 'L/s'
506
511
  GALLONS_PER_MINUTE = 'gal/min'
507
512
  MILLILITERS_PER_SECOND = 'mL/s'
508
513
 
@@ -9,7 +9,7 @@ from . import util as util
9
9
  from .auth import AuthManager as AuthManager
10
10
  from .components.http import HomeAssistantHTTP as HomeAssistantHTTP
11
11
  from .config_entries import ConfigEntries as ConfigEntries
12
- from .const import ATTR_DOMAIN as ATTR_DOMAIN, ATTR_FRIENDLY_NAME as ATTR_FRIENDLY_NAME, ATTR_SERVICE as ATTR_SERVICE, ATTR_SERVICE_DATA as ATTR_SERVICE_DATA, COMPRESSED_STATE_ATTRIBUTES as COMPRESSED_STATE_ATTRIBUTES, COMPRESSED_STATE_CONTEXT as COMPRESSED_STATE_CONTEXT, COMPRESSED_STATE_LAST_CHANGED as COMPRESSED_STATE_LAST_CHANGED, COMPRESSED_STATE_LAST_UPDATED as COMPRESSED_STATE_LAST_UPDATED, COMPRESSED_STATE_STATE as COMPRESSED_STATE_STATE, EVENT_CALL_SERVICE as EVENT_CALL_SERVICE, EVENT_CORE_CONFIG_UPDATE as EVENT_CORE_CONFIG_UPDATE, EVENT_HOMEASSISTANT_CLOSE as EVENT_HOMEASSISTANT_CLOSE, EVENT_HOMEASSISTANT_FINAL_WRITE as EVENT_HOMEASSISTANT_FINAL_WRITE, EVENT_HOMEASSISTANT_START as EVENT_HOMEASSISTANT_START, EVENT_HOMEASSISTANT_STARTED as EVENT_HOMEASSISTANT_STARTED, EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP, EVENT_LOGGING_CHANGED as EVENT_LOGGING_CHANGED, EVENT_SERVICE_REGISTERED as EVENT_SERVICE_REGISTERED, EVENT_SERVICE_REMOVED as EVENT_SERVICE_REMOVED, EVENT_STATE_CHANGED as EVENT_STATE_CHANGED, EVENT_STATE_REPORTED as EVENT_STATE_REPORTED, MATCH_ALL as MATCH_ALL, MAX_EXPECTED_ENTITY_IDS as MAX_EXPECTED_ENTITY_IDS, MAX_LENGTH_EVENT_EVENT_TYPE as MAX_LENGTH_EVENT_EVENT_TYPE, MAX_LENGTH_STATE_STATE as MAX_LENGTH_STATE_STATE, __version__ as __version__
12
+ from .const import ATTR_DOMAIN as ATTR_DOMAIN, ATTR_FRIENDLY_NAME as ATTR_FRIENDLY_NAME, ATTR_SERVICE as ATTR_SERVICE, ATTR_SERVICE_DATA as ATTR_SERVICE_DATA, COMPRESSED_STATE_ATTRIBUTES as COMPRESSED_STATE_ATTRIBUTES, COMPRESSED_STATE_CONTEXT as COMPRESSED_STATE_CONTEXT, COMPRESSED_STATE_LAST_CHANGED as COMPRESSED_STATE_LAST_CHANGED, COMPRESSED_STATE_LAST_UPDATED as COMPRESSED_STATE_LAST_UPDATED, COMPRESSED_STATE_STATE as COMPRESSED_STATE_STATE, EVENT_CALL_SERVICE as EVENT_CALL_SERVICE, EVENT_CORE_CONFIG_UPDATE as EVENT_CORE_CONFIG_UPDATE, EVENT_HOMEASSISTANT_CLOSE as EVENT_HOMEASSISTANT_CLOSE, EVENT_HOMEASSISTANT_FINAL_WRITE as EVENT_HOMEASSISTANT_FINAL_WRITE, EVENT_HOMEASSISTANT_START as EVENT_HOMEASSISTANT_START, EVENT_HOMEASSISTANT_STARTED as EVENT_HOMEASSISTANT_STARTED, EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP, EVENT_LOGGING_CHANGED as EVENT_LOGGING_CHANGED, EVENT_SERVICE_REGISTERED as EVENT_SERVICE_REGISTERED, EVENT_SERVICE_REMOVED as EVENT_SERVICE_REMOVED, EVENT_STATE_CHANGED as EVENT_STATE_CHANGED, EVENT_STATE_REPORTED as EVENT_STATE_REPORTED, MATCH_ALL as MATCH_ALL, MAX_EXPECTED_ENTITY_IDS as MAX_EXPECTED_ENTITY_IDS, MAX_LENGTH_EVENT_EVENT_TYPE as MAX_LENGTH_EVENT_EVENT_TYPE, MAX_LENGTH_STATE_STATE as MAX_LENGTH_STATE_STATE, STATE_UNKNOWN as STATE_UNKNOWN, __version__ as __version__
13
13
  from .exceptions import HomeAssistantError as HomeAssistantError, InvalidEntityFormatError as InvalidEntityFormatError, InvalidStateError as InvalidStateError, MaxLengthExceeded as MaxLengthExceeded, ServiceNotFound as ServiceNotFound, ServiceValidationError as ServiceValidationError, Unauthorized as Unauthorized
14
14
  from .helpers.deprecation import DeferredDeprecatedAlias as DeferredDeprecatedAlias, EnumWithDeprecatedMembers as EnumWithDeprecatedMembers, all_with_deprecated_constants as all_with_deprecated_constants, check_if_deprecated_constant as check_if_deprecated_constant, dir_with_deprecated_constants as dir_with_deprecated_constants
15
15
  from .helpers.entity import StateInfo as StateInfo
@@ -145,8 +145,6 @@ class HomeAssistant:
145
145
  services: Incomplete
146
146
  states: Incomplete
147
147
  config: Incomplete
148
- components: Incomplete
149
- helpers: Incomplete
150
148
  state: CoreState
151
149
  exit_code: int
152
150
  _stopped: asyncio.Event | None
@@ -79,7 +79,7 @@ class Config:
79
79
  skip_pip_packages: list[str]
80
80
  top_level_components: set[str]
81
81
  all_components: set[str]
82
- components: _ComponentSet
82
+ components: Incomplete
83
83
  api: ApiConfig | None
84
84
  config_dir: str
85
85
  allowlist_external_dirs: set[str]
@@ -25,6 +25,7 @@ class FlowResultType(StrEnum):
25
25
  MENU = 'menu'
26
26
 
27
27
  EVENT_DATA_ENTRY_FLOW_PROGRESSED: str
28
+ EVENT_DATA_ENTRY_FLOW_PROGRESS_UPDATE: str
28
29
  FLOW_NOT_COMPLETE_STEPS: Incomplete
29
30
  STEP_ID_OPTIONAL_STEPS: Incomplete
30
31
  _FlowContextT = TypeVar('_FlowContextT', bound='FlowContext', default='FlowContext')
@@ -87,9 +88,10 @@ class FlowManager(abc.ABC, Generic[_FlowContextT, _FlowResultT, _HandlerT], meta
87
88
  def __init__(self, hass: HomeAssistant) -> None: ...
88
89
  @abc.abstractmethod
89
90
  async def async_create_flow(self, handler_key: _HandlerT, *, context: _FlowContextT | None = None, data: dict[str, Any] | None = None) -> FlowHandler[_FlowContextT, _FlowResultT, _HandlerT]: ...
91
+ @callback
92
+ def async_flow_removed(self, flow: FlowHandler[_FlowContextT, _FlowResultT, _HandlerT]) -> None: ...
90
93
  @abc.abstractmethod
91
94
  async def async_finish_flow(self, flow: FlowHandler[_FlowContextT, _FlowResultT, _HandlerT], result: _FlowResultT) -> _FlowResultT: ...
92
- async def async_post_init(self, flow: FlowHandler[_FlowContextT, _FlowResultT, _HandlerT], result: _FlowResultT) -> None: ...
93
95
  @callback
94
96
  def async_get(self, flow_id: str) -> _FlowResultT: ...
95
97
  @callback
@@ -149,6 +151,8 @@ class FlowHandler(Generic[_FlowContextT, _FlowResultT, _HandlerT]):
149
151
  @callback
150
152
  def async_show_progress(self, *, step_id: str | None = None, progress_action: str, description_placeholders: Mapping[str, str] | None = None, progress_task: asyncio.Task[Any] | None = None) -> _FlowResultT: ...
151
153
  @callback
154
+ def async_update_progress(self, progress: float) -> None: ...
155
+ @callback
152
156
  def async_show_progress_done(self, *, next_step_id: str) -> _FlowResultT: ...
153
157
  @callback
154
158
  def async_show_menu(self, *, step_id: str | None = None, menu_options: Container[str], description_placeholders: Mapping[str, str] | None = None) -> _FlowResultT: ...
@@ -1,5 +1,5 @@
1
1
  from .json import json_bytes as json_bytes, json_fragment as json_fragment
2
- from .normalized_name_base_registry import NormalizedNameBaseRegistryEntry as NormalizedNameBaseRegistryEntry, NormalizedNameBaseRegistryItems as NormalizedNameBaseRegistryItems
2
+ from .normalized_name_base_registry import NormalizedNameBaseRegistryEntry as NormalizedNameBaseRegistryEntry, NormalizedNameBaseRegistryItems as NormalizedNameBaseRegistryItems, normalize_name as normalize_name
3
3
  from .registry import BaseRegistry as BaseRegistry, RegistryIndexType as RegistryIndexType
4
4
  from .singleton import singleton as singleton
5
5
  from .storage import Store as Store
@@ -61,11 +61,13 @@ class AreaRegistryStore(Store[AreasRegistryStoreData]):
61
61
  class AreaRegistryItems(NormalizedNameBaseRegistryItems[AreaEntry]):
62
62
  _labels_index: RegistryIndexType
63
63
  _floors_index: RegistryIndexType
64
+ _aliases_index: RegistryIndexType
64
65
  def __init__(self) -> None: ...
65
66
  def _index_entry(self, key: str, entry: AreaEntry) -> None: ...
66
67
  def _unindex_entry(self, key: str, replacement_entry: AreaEntry | None = None) -> None: ...
67
68
  def get_areas_for_label(self, label: str) -> list[AreaEntry]: ...
68
69
  def get_areas_for_floor(self, floor: str) -> list[AreaEntry]: ...
70
+ def get_areas_for_alias(self, alias: str) -> list[AreaEntry]: ...
69
71
 
70
72
  class AreaRegistry(BaseRegistry[AreasRegistryStoreData]):
71
73
  areas: AreaRegistryItems
@@ -78,6 +80,8 @@ class AreaRegistry(BaseRegistry[AreasRegistryStoreData]):
78
80
  @callback
79
81
  def async_get_area_by_name(self, name: str) -> AreaEntry | None: ...
80
82
  @callback
83
+ def async_get_areas_by_alias(self, alias: str) -> list[AreaEntry]: ...
84
+ @callback
81
85
  def async_list_areas(self) -> Iterable[AreaEntry]: ...
82
86
  @callback
83
87
  def async_get_or_create(self, name: str) -> AreaEntry: ...
@@ -1,5 +1,6 @@
1
1
  import abc
2
2
  import logging
3
+ from . import http as http
3
4
  from .aiohttp_client import async_get_clientsession as async_get_clientsession
4
5
  from .network import NoURLAvailableError as NoURLAvailableError
5
6
  from _typeshed import Incomplete
@@ -7,7 +8,6 @@ from abc import ABC, ABCMeta, abstractmethod
7
8
  from aiohttp import client as client, web
8
9
  from collections.abc import Awaitable, Callable as Callable
9
10
  from homeassistant import config_entries as config_entries
10
- from homeassistant.components import http as http
11
11
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
12
12
  from homeassistant.loader import async_get_application_credentials as async_get_application_credentials
13
13
  from homeassistant.util.hass_dict import HassKey as HassKey
@@ -145,6 +145,7 @@ class multi_select:
145
145
  def _deprecated_or_removed(key: str, replacement_key: str | None, default: Any | None, raise_if_present: bool, option_removed: bool) -> Callable[[dict], dict]: ...
146
146
  def deprecated(key: str, replacement_key: str | None = None, default: Any | None = None, raise_if_present: bool | None = False) -> Callable[[dict], dict]: ...
147
147
  def removed(key: str, default: Any | None = None, raise_if_present: bool | None = True) -> Callable[[dict], dict]: ...
148
+ def renamed(old_key: str, new_key: str) -> Callable[[Any], Any]: ...
148
149
  def key_value_schemas(key: str, value_schemas: dict[Hashable, VolSchemaType | Callable[[Any], dict[str, Any]]], default_schema: VolSchemaType | None = None, default_description: str | None = None) -> Callable[[Any], dict[Hashable, Any]]: ...
149
150
  def key_dependency[_KT: Hashable, _VT](key: Hashable, dependency: Hashable) -> Callable[[dict[_KT, _VT]], dict[_KT, _VT]]: ...
150
151
  def custom_serializer(schema: Any) -> Any: ...
@@ -170,7 +170,7 @@ class DeviceRegistryItems[_EntryTypeT: (DeviceEntry, DeletedDeviceEntry)](BaseRe
170
170
  def __init__(self) -> None: ...
171
171
  def _index_entry(self, key: str, entry: _EntryTypeT) -> None: ...
172
172
  def _unindex_entry(self, key: str, replacement_entry: _EntryTypeT | None = None) -> None: ...
173
- def get_entry(self, identifiers: set[tuple[str, str]] | None, connections: set[tuple[str, str]] | None) -> _EntryTypeT | None: ...
173
+ def get_entry(self, identifiers: set[tuple[str, str]] | None = None, connections: set[tuple[str, str]] | None = None) -> _EntryTypeT | None: ...
174
174
  def get_entries(self, identifiers: set[tuple[str, str]] | None, connections: set[tuple[str, str]] | None) -> Iterable[_EntryTypeT]: ...
175
175
 
176
176
  class ActiveDeviceRegistryItems(DeviceRegistryItems[DeviceEntry]):
@@ -195,8 +195,6 @@ class DeviceRegistry(BaseRegistry[dict[str, list[dict[str, Any]]]]):
195
195
  def async_get(self, device_id: str) -> DeviceEntry | None: ...
196
196
  @callback
197
197
  def async_get_device(self, identifiers: set[tuple[str, str]] | None = None, connections: set[tuple[str, str]] | None = None) -> DeviceEntry | None: ...
198
- def _async_get_deleted_device(self, identifiers: set[tuple[str, str]], connections: set[tuple[str, str]]) -> DeletedDeviceEntry | None: ...
199
- def _async_get_deleted_devices(self, identifiers: set[tuple[str, str]] | None = None, connections: set[tuple[str, str]] | None = None) -> Iterable[DeletedDeviceEntry]: ...
200
198
  def _substitute_name_placeholders(self, domain: str, name: str, translation_placeholders: Mapping[str, str]) -> str: ...
201
199
  @callback
202
200
  def async_get_or_create(self, *, config_entry_id: str, config_subentry_id: str | None | UndefinedType = ..., configuration_url: str | URL | None | UndefinedType = ..., connections: set[tuple[str, str]] | None | UndefinedType = ..., created_at: str | datetime | UndefinedType = ..., default_manufacturer: str | None | UndefinedType = ..., default_model: str | None | UndefinedType = ..., default_name: str | None | UndefinedType = ..., disabled_by: DeviceEntryDisabler | None | UndefinedType = ..., entry_type: DeviceEntryType | None | UndefinedType = ..., hw_version: str | None | UndefinedType = ..., identifiers: set[tuple[str, str]] | None | UndefinedType = ..., manufacturer: str | None | UndefinedType = ..., model: str | None | UndefinedType = ..., model_id: str | None | UndefinedType = ..., modified_at: str | datetime | UndefinedType = ..., name: str | None | UndefinedType = ..., serial_number: str | None | UndefinedType = ..., suggested_area: str | None | UndefinedType = ..., sw_version: str | None | UndefinedType = ..., translation_key: str | None = None, translation_placeholders: Mapping[str, str] | None = None, via_device: tuple[str, str] | None | UndefinedType = ...) -> DeviceEntry: ...
@@ -15,7 +15,7 @@ from enum import Enum, IntFlag
15
15
  from homeassistant.const import ATTR_ASSUMED_STATE as ATTR_ASSUMED_STATE, ATTR_ATTRIBUTION as ATTR_ATTRIBUTION, ATTR_DEVICE_CLASS as ATTR_DEVICE_CLASS, ATTR_ENTITY_PICTURE as ATTR_ENTITY_PICTURE, ATTR_FRIENDLY_NAME as ATTR_FRIENDLY_NAME, ATTR_ICON as ATTR_ICON, ATTR_SUPPORTED_FEATURES as ATTR_SUPPORTED_FEATURES, ATTR_UNIT_OF_MEASUREMENT as ATTR_UNIT_OF_MEASUREMENT, DEVICE_DEFAULT_NAME as DEVICE_DEFAULT_NAME, EntityCategory as EntityCategory, STATE_OFF as STATE_OFF, STATE_ON as STATE_ON, STATE_UNAVAILABLE as STATE_UNAVAILABLE, STATE_UNKNOWN as STATE_UNKNOWN
16
16
  from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, Context as Context, Event as Event, HassJobType as HassJobType, HomeAssistant as HomeAssistant, ReleaseChannel as ReleaseChannel, callback as callback, get_hassjob_callable_job_type as get_hassjob_callable_job_type, get_release_channel as get_release_channel
17
17
  from homeassistant.core_config import DATA_CUSTOMIZE as DATA_CUSTOMIZE
18
- from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, InvalidStateError as InvalidStateError, NoEntitySpecifiedError as NoEntitySpecifiedError
18
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, NoEntitySpecifiedError as NoEntitySpecifiedError
19
19
  from homeassistant.loader import async_suggest_report_issue as async_suggest_report_issue, bind_hass as bind_hass
20
20
  from homeassistant.util import ensure_unique_string as ensure_unique_string, slugify as slugify
21
21
  from homeassistant.util.frozen_dataclass_compat import FrozenOrThawed as FrozenOrThawed