homeassistant-stubs 2024.3.3__py3-none-any.whl → 2024.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 (871) hide show
  1. homeassistant-stubs/auth/__init__.pyi +5 -4
  2. homeassistant-stubs/auth/auth_store.pyi +3 -1
  3. homeassistant-stubs/auth/mfa_modules/__init__.pyi +1 -0
  4. homeassistant-stubs/auth/models.pyi +2 -0
  5. homeassistant-stubs/auth/providers/__init__.pyi +8 -7
  6. homeassistant-stubs/auth/providers/command_line.pyi +2 -3
  7. homeassistant-stubs/auth/providers/homeassistant.pyi +2 -3
  8. homeassistant-stubs/auth/providers/insecure_example.pyi +2 -3
  9. homeassistant-stubs/auth/providers/legacy_api_password.pyi +2 -3
  10. homeassistant-stubs/auth/providers/trusted_networks.pyi +2 -3
  11. homeassistant-stubs/bootstrap.pyi +8 -4
  12. homeassistant-stubs/components/__init__.pyi +1 -0
  13. homeassistant-stubs/components/abode/alarm_control_panel.pyi +4 -5
  14. homeassistant-stubs/components/abode/binary_sensor.pyi +2 -2
  15. homeassistant-stubs/components/abode/camera.pyi +2 -2
  16. homeassistant-stubs/components/abode/config_flow.pyi +9 -10
  17. homeassistant-stubs/components/abode/cover.pyi +2 -2
  18. homeassistant-stubs/components/abode/light.pyi +2 -2
  19. homeassistant-stubs/components/abode/lock.pyi +2 -2
  20. homeassistant-stubs/components/abode/sensor.pyi +8 -12
  21. homeassistant-stubs/components/abode/switch.pyi +2 -2
  22. homeassistant-stubs/components/accuweather/config_flow.pyi +3 -5
  23. homeassistant-stubs/components/accuweather/sensor.pyi +3 -7
  24. homeassistant-stubs/components/accuweather/weather.pyi +0 -2
  25. homeassistant-stubs/components/acmeda/config_flow.pyi +4 -5
  26. homeassistant-stubs/components/adax/config_flow.pyi +5 -6
  27. homeassistant-stubs/components/adguard/config_flow.pyi +6 -7
  28. homeassistant-stubs/components/aftership/config_flow.pyi +3 -6
  29. homeassistant-stubs/components/aftership/sensor.pyi +3 -8
  30. homeassistant-stubs/components/airly/config_flow.pyi +3 -4
  31. homeassistant-stubs/components/airnow/config_flow.pyi +4 -6
  32. homeassistant-stubs/components/airnow/sensor.pyi +3 -7
  33. homeassistant-stubs/components/airq/config_flow.pyi +3 -4
  34. homeassistant-stubs/components/airq/sensor.pyi +3 -7
  35. homeassistant-stubs/components/airthings/config_flow.pyi +3 -4
  36. homeassistant-stubs/components/airthings_ble/config_flow.pyi +4 -5
  37. homeassistant-stubs/components/airtouch5/config_flow.pyi +1 -2
  38. homeassistant-stubs/components/airvisual/config_flow.pyi +10 -12
  39. homeassistant-stubs/components/airvisual_pro/config_flow.pyi +6 -8
  40. homeassistant-stubs/components/airzone/config_flow.pyi +6 -6
  41. homeassistant-stubs/components/airzone/select.pyi +3 -7
  42. homeassistant-stubs/components/airzone_cloud/climate.pyi +10 -1
  43. homeassistant-stubs/components/airzone_cloud/config_flow.pyi +4 -5
  44. homeassistant-stubs/components/aladdin_connect/config_flow.pyi +6 -7
  45. homeassistant-stubs/components/aladdin_connect/sensor.pyi +3 -7
  46. homeassistant-stubs/components/alert/__init__.pyi +3 -3
  47. homeassistant-stubs/components/alexa/smart_home.pyi +1 -2
  48. homeassistant-stubs/components/amberelectric/config_flow.pyi +4 -5
  49. homeassistant-stubs/components/ambiclimate/config_flow.pyi +6 -7
  50. homeassistant-stubs/components/ambient_station/config_flow.pyi +4 -5
  51. homeassistant-stubs/components/amcrest/camera.pyi +1 -1
  52. homeassistant-stubs/components/analytics_insights/config_flow.pyi +3 -4
  53. homeassistant-stubs/components/android_ip_webcam/config_flow.pyi +3 -4
  54. homeassistant-stubs/components/android_ip_webcam/sensor.pyi +3 -7
  55. homeassistant-stubs/components/android_ip_webcam/switch.pyi +3 -7
  56. homeassistant-stubs/components/androidtv/config_flow.pyi +10 -11
  57. homeassistant-stubs/components/androidtv_remote/config_flow.pyi +9 -10
  58. homeassistant-stubs/components/anova/config_flow.pyi +2 -3
  59. homeassistant-stubs/components/anthemav/config_flow.pyi +2 -3
  60. homeassistant-stubs/components/apache_kafka/__init__.pyi +3 -3
  61. homeassistant-stubs/components/apcupsd/binary_sensor.pyi +3 -1
  62. homeassistant-stubs/components/apcupsd/config_flow.pyi +4 -5
  63. homeassistant-stubs/components/apcupsd/const.pyi +1 -0
  64. homeassistant-stubs/components/apcupsd/coordinator.pyi +11 -10
  65. homeassistant-stubs/components/apcupsd/diagnostics.pyi +11 -0
  66. homeassistant-stubs/components/apcupsd/sensor.pyi +3 -1
  67. homeassistant-stubs/components/api/__init__.pyi +1 -1
  68. homeassistant-stubs/components/apple_tv/__init__.pyi +3 -0
  69. homeassistant-stubs/components/apple_tv/config_flow.pyi +18 -18
  70. homeassistant-stubs/components/aranet/config_flow.pyi +6 -6
  71. homeassistant-stubs/components/arcam_fmj/config_flow.pyi +7 -8
  72. homeassistant-stubs/components/aseko_pool_live/__init__.pyi +3 -2
  73. homeassistant-stubs/components/aseko_pool_live/binary_sensor.pyi +3 -7
  74. homeassistant-stubs/components/aseko_pool_live/config_flow.pyi +10 -5
  75. homeassistant-stubs/components/asuswrt/config_flow.pyi +5 -6
  76. homeassistant-stubs/components/auth/__init__.pyi +1 -0
  77. homeassistant-stubs/components/auth/login_flow.pyi +4 -3
  78. homeassistant-stubs/components/automation/__init__.pyi +19 -2
  79. homeassistant-stubs/components/awair/config_flow.pyi +9 -10
  80. homeassistant-stubs/components/awair/sensor.pyi +3 -7
  81. homeassistant-stubs/components/axis/__init__.pyi +1 -1
  82. homeassistant-stubs/components/axis/binary_sensor.pyi +26 -14
  83. homeassistant-stubs/components/axis/camera.pyi +2 -2
  84. homeassistant-stubs/components/axis/config_flow.pyi +20 -18
  85. homeassistant-stubs/components/axis/const.pyi +0 -1
  86. homeassistant-stubs/components/axis/diagnostics.pyi +1 -1
  87. homeassistant-stubs/components/axis/entity.pyi +16 -8
  88. homeassistant-stubs/components/axis/hub/__init__.pyi +2 -0
  89. homeassistant-stubs/components/axis/hub/api.pyi +10 -0
  90. homeassistant-stubs/components/axis/hub/config.pyi +21 -0
  91. homeassistant-stubs/components/axis/hub/entity_loader.pyi +15 -0
  92. homeassistant-stubs/components/axis/hub/hub.pyi +41 -0
  93. homeassistant-stubs/components/axis/light.pyi +17 -8
  94. homeassistant-stubs/components/axis/switch.pyi +13 -5
  95. homeassistant-stubs/components/backup/http.pyi +1 -1
  96. homeassistant-stubs/components/baf/binary_sensor.pyi +3 -7
  97. homeassistant-stubs/components/baf/config_flow.pyi +5 -6
  98. homeassistant-stubs/components/baf/number.pyi +3 -7
  99. homeassistant-stubs/components/baf/sensor.pyi +3 -7
  100. homeassistant-stubs/components/baf/switch.pyi +3 -7
  101. homeassistant-stubs/components/bang_olufsen/config_flow.pyi +5 -6
  102. homeassistant-stubs/components/bang_olufsen/const.pyi +22 -22
  103. homeassistant-stubs/components/bang_olufsen/entity.pyi +1 -4
  104. homeassistant-stubs/components/bang_olufsen/media_player.pyi +4 -5
  105. homeassistant-stubs/components/bang_olufsen/websocket.pyi +1 -1
  106. homeassistant-stubs/components/bayesian/binary_sensor.pyi +2 -2
  107. homeassistant-stubs/components/blue_current/__init__.pyi +10 -12
  108. homeassistant-stubs/components/blue_current/config_flow.pyi +5 -6
  109. homeassistant-stubs/components/bluetooth/config_flow.pyi +5 -6
  110. homeassistant-stubs/components/bluetooth/passive_update_coordinator.pyi +3 -2
  111. homeassistant-stubs/components/bmw_connected_drive/binary_sensor.pyi +3 -7
  112. homeassistant-stubs/components/bmw_connected_drive/button.pyi +3 -7
  113. homeassistant-stubs/components/bmw_connected_drive/config_flow.pyi +14 -14
  114. homeassistant-stubs/components/bmw_connected_drive/number.pyi +3 -7
  115. homeassistant-stubs/components/bmw_connected_drive/select.pyi +3 -7
  116. homeassistant-stubs/components/bmw_connected_drive/switch.pyi +3 -7
  117. homeassistant-stubs/components/bond/button.pyi +4 -8
  118. homeassistant-stubs/components/bond/config_flow.pyi +7 -8
  119. homeassistant-stubs/components/bond/light.pyi +1 -1
  120. homeassistant-stubs/components/braviatv/button.pyi +3 -7
  121. homeassistant-stubs/components/braviatv/config_flow.pyi +11 -13
  122. homeassistant-stubs/components/brother/config_flow.pyi +7 -7
  123. homeassistant-stubs/components/brother/sensor.pyi +3 -7
  124. homeassistant-stubs/components/bthome/__init__.pyi +3 -2
  125. homeassistant-stubs/components/bthome/config_flow.pyi +7 -8
  126. homeassistant-stubs/components/bthome/logbook.pyi +2 -3
  127. homeassistant-stubs/components/canary/config_flow.pyi +4 -5
  128. homeassistant-stubs/components/cert_expiry/config_flow.pyi +4 -5
  129. homeassistant-stubs/components/cert_expiry/helper.pyi +1 -2
  130. homeassistant-stubs/components/climate/__init__.pyi +10 -7
  131. homeassistant-stubs/components/cloud/__init__.pyi +1 -1
  132. homeassistant-stubs/components/cloud/config_flow.pyi +2 -3
  133. homeassistant-stubs/components/cloud/http_api.pyi +3 -1
  134. homeassistant-stubs/components/cloud/prefs.pyi +1 -0
  135. homeassistant-stubs/components/cloud/repairs.pyi +1 -1
  136. homeassistant-stubs/components/cloud/tts.pyi +3 -3
  137. homeassistant-stubs/components/co2signal/config_flow.pyi +7 -9
  138. homeassistant-stubs/components/command_line/cover.pyi +3 -3
  139. homeassistant-stubs/components/command_line/sensor.pyi +2 -2
  140. homeassistant-stubs/components/command_line/switch.pyi +4 -4
  141. homeassistant-stubs/components/command_line/utils.pyi +3 -2
  142. homeassistant-stubs/components/config/__init__.pyi +3 -47
  143. homeassistant-stubs/components/config/automation.pyi +2 -1
  144. homeassistant-stubs/components/config/category_registry.pyi +12 -0
  145. homeassistant-stubs/components/config/config_entries.pyi +8 -6
  146. homeassistant-stubs/components/config/const.pyi +3 -0
  147. homeassistant-stubs/components/config/core.pyi +1 -1
  148. homeassistant-stubs/components/config/label_registry.pyi +3 -0
  149. homeassistant-stubs/components/config/scene.pyi +2 -1
  150. homeassistant-stubs/components/config/script.pyi +2 -1
  151. homeassistant-stubs/components/config/view.pyi +48 -0
  152. homeassistant-stubs/components/configurator/__init__.pyi +1 -1
  153. homeassistant-stubs/components/cpuspeed/config_flow.pyi +2 -3
  154. homeassistant-stubs/components/crownstone/config_flow.pyi +10 -11
  155. homeassistant-stubs/components/deconz/__init__.pyi +6 -7
  156. homeassistant-stubs/components/deconz/alarm_control_panel.pyi +3 -3
  157. homeassistant-stubs/components/deconz/binary_sensor.pyi +2 -4
  158. homeassistant-stubs/components/deconz/button.pyi +2 -2
  159. homeassistant-stubs/components/deconz/climate.pyi +2 -2
  160. homeassistant-stubs/components/deconz/config_flow.pyi +14 -16
  161. homeassistant-stubs/components/deconz/cover.pyi +2 -2
  162. homeassistant-stubs/components/deconz/deconz_device.pyi +5 -5
  163. homeassistant-stubs/components/deconz/deconz_event.pyi +4 -4
  164. homeassistant-stubs/components/deconz/device_trigger.pyi +1 -1
  165. homeassistant-stubs/components/deconz/diagnostics.pyi +1 -1
  166. homeassistant-stubs/components/deconz/fan.pyi +2 -2
  167. homeassistant-stubs/components/deconz/hub/__init__.pyi +2 -0
  168. homeassistant-stubs/components/deconz/hub/api.pyi +9 -0
  169. homeassistant-stubs/components/deconz/hub/config.pyi +18 -0
  170. homeassistant-stubs/components/deconz/{gateway.pyi → hub/hub.pyi} +10 -19
  171. homeassistant-stubs/components/deconz/light.pyi +3 -3
  172. homeassistant-stubs/components/deconz/lock.pyi +1 -1
  173. homeassistant-stubs/components/deconz/number.pyi +2 -4
  174. homeassistant-stubs/components/deconz/scene.pyi +1 -1
  175. homeassistant-stubs/components/deconz/select.pyi +1 -1
  176. homeassistant-stubs/components/deconz/sensor.pyi +4 -6
  177. homeassistant-stubs/components/deconz/services.pyi +5 -5
  178. homeassistant-stubs/components/deconz/siren.pyi +1 -1
  179. homeassistant-stubs/components/deconz/switch.pyi +1 -1
  180. homeassistant-stubs/components/demo/climate.pyi +3 -8
  181. homeassistant-stubs/components/demo/config_flow.pyi +10 -11
  182. homeassistant-stubs/components/demo/humidifier.pyi +1 -1
  183. homeassistant-stubs/components/derivative/sensor.pyi +2 -2
  184. homeassistant-stubs/components/device_tracker/const.pyi +2 -1
  185. homeassistant-stubs/components/device_tracker/legacy.pyi +6 -2
  186. homeassistant-stubs/components/devolo_home_control/config_flow.pyi +9 -11
  187. homeassistant-stubs/components/devolo_home_network/binary_sensor.pyi +3 -7
  188. homeassistant-stubs/components/devolo_home_network/button.pyi +3 -7
  189. homeassistant-stubs/components/devolo_home_network/config_flow.pyi +9 -9
  190. homeassistant-stubs/components/devolo_home_network/image.pyi +3 -7
  191. homeassistant-stubs/components/devolo_home_network/sensor.pyi +3 -7
  192. homeassistant-stubs/components/devolo_home_network/switch.pyi +3 -7
  193. homeassistant-stubs/components/devolo_home_network/update.pyi +3 -7
  194. homeassistant-stubs/components/dhcp/__init__.pyi +4 -8
  195. homeassistant-stubs/components/discovergy/config_flow.pyi +5 -7
  196. homeassistant-stubs/components/dlna_dmr/config_flow.pyi +13 -14
  197. homeassistant-stubs/components/dlna_dmr/media_player.pyi +4 -2
  198. homeassistant-stubs/components/dlna_dms/config_flow.pyi +7 -7
  199. homeassistant-stubs/components/dnsip/config_flow.pyi +6 -9
  200. homeassistant-stubs/components/doorbird/button.pyi +3 -7
  201. homeassistant-stubs/components/doorbird/config_flow.pyi +12 -12
  202. homeassistant-stubs/components/doorbird/view.pyi +1 -2
  203. homeassistant-stubs/components/dormakaba_dkey/binary_sensor.pyi +3 -7
  204. homeassistant-stubs/components/dormakaba_dkey/config_flow.pyi +9 -10
  205. homeassistant-stubs/components/downloader/__init__.pyi +7 -12
  206. homeassistant-stubs/components/downloader/config_flow.pyi +12 -0
  207. homeassistant-stubs/components/downloader/const.pyi +13 -0
  208. homeassistant-stubs/components/dsmr/config_flow.pyi +14 -15
  209. homeassistant-stubs/components/dunehd/config_flow.pyi +6 -6
  210. homeassistant-stubs/components/duotecno/config_flow.pyi +3 -4
  211. homeassistant-stubs/components/easyenergy/config_flow.pyi +2 -3
  212. homeassistant-stubs/components/easyenergy/sensor.pyi +3 -7
  213. homeassistant-stubs/components/ecovacs/config_flow.pyi +5 -5
  214. homeassistant-stubs/components/ecovacs/event.pyi +19 -0
  215. homeassistant-stubs/components/ecowitt/config_flow.pyi +3 -4
  216. homeassistant-stubs/components/efergy/config_flow.pyi +4 -5
  217. homeassistant-stubs/components/electrasmart/config_flow.pyi +8 -9
  218. homeassistant-stubs/components/electric_kiwi/config_flow.pyi +4 -5
  219. homeassistant-stubs/components/electric_kiwi/sensor.pyi +6 -14
  220. homeassistant-stubs/components/elgato/config_flow.pyi +6 -7
  221. homeassistant-stubs/components/elkm1/config_flow.pyi +13 -13
  222. homeassistant-stubs/components/elkm1/sensor.pyi +2 -2
  223. homeassistant-stubs/components/emulated_hue/__init__.pyi +2 -1
  224. homeassistant-stubs/components/emulated_hue/config.pyi +3 -3
  225. homeassistant-stubs/components/emulated_hue/hue_api.pyi +2 -3
  226. homeassistant-stubs/components/energy/sensor.pyi +5 -1
  227. homeassistant-stubs/components/energyzero/config_flow.pyi +2 -3
  228. homeassistant-stubs/components/energyzero/sensor.pyi +3 -7
  229. homeassistant-stubs/components/enphase_envoy/binary_sensor.pyi +6 -14
  230. homeassistant-stubs/components/enphase_envoy/config_flow.pyi +5 -6
  231. homeassistant-stubs/components/enphase_envoy/diagnostics.pyi +3 -0
  232. homeassistant-stubs/components/enphase_envoy/number.pyi +6 -14
  233. homeassistant-stubs/components/enphase_envoy/select.pyi +6 -14
  234. homeassistant-stubs/components/enphase_envoy/sensor.pyi +39 -53
  235. homeassistant-stubs/components/enphase_envoy/switch.pyi +9 -21
  236. homeassistant-stubs/components/esphome/alarm_control_panel.pyi +1 -1
  237. homeassistant-stubs/components/esphome/button.pyi +1 -1
  238. homeassistant-stubs/components/esphome/climate.pyi +1 -1
  239. homeassistant-stubs/components/esphome/config_flow.pyi +15 -16
  240. homeassistant-stubs/components/esphome/cover.pyi +1 -1
  241. homeassistant-stubs/components/esphome/date.pyi +14 -0
  242. homeassistant-stubs/components/esphome/entity.pyi +5 -3
  243. homeassistant-stubs/components/esphome/entry_data.pyi +15 -14
  244. homeassistant-stubs/components/esphome/fan.pyi +1 -1
  245. homeassistant-stubs/components/esphome/light.pyi +1 -1
  246. homeassistant-stubs/components/esphome/lock.pyi +1 -1
  247. homeassistant-stubs/components/esphome/manager.pyi +3 -3
  248. homeassistant-stubs/components/esphome/media_player.pyi +1 -1
  249. homeassistant-stubs/components/esphome/number.pyi +1 -1
  250. homeassistant-stubs/components/esphome/select.pyi +1 -1
  251. homeassistant-stubs/components/esphome/switch.pyi +1 -1
  252. homeassistant-stubs/components/esphome/text.pyi +1 -1
  253. homeassistant-stubs/components/esphome/time.pyi +14 -0
  254. homeassistant-stubs/components/esphome/update.pyi +1 -1
  255. homeassistant-stubs/components/evil_genius_labs/config_flow.pyi +3 -4
  256. homeassistant-stubs/components/faa_delays/config_flow.pyi +3 -4
  257. homeassistant-stubs/components/fastdotcom/__init__.pyi +1 -1
  258. homeassistant-stubs/components/fastdotcom/config_flow.pyi +3 -4
  259. homeassistant-stubs/components/fastdotcom/coordinator.pyi +1 -1
  260. homeassistant-stubs/components/fastdotcom/diagnostics.pyi +7 -0
  261. homeassistant-stubs/components/fastdotcom/sensor.pyi +3 -3
  262. homeassistant-stubs/components/fastdotcom/services.pyi +1 -1
  263. homeassistant-stubs/components/file_upload/__init__.pyi +1 -1
  264. homeassistant-stubs/components/filesize/__init__.pyi +0 -2
  265. homeassistant-stubs/components/filesize/config_flow.pyi +2 -3
  266. homeassistant-stubs/components/filesize/coordinator.pyi +6 -1
  267. homeassistant-stubs/components/filter/sensor.pyi +3 -3
  268. homeassistant-stubs/components/fitbit/config_flow.pyi +6 -7
  269. homeassistant-stubs/components/flexit_bacnet/config_flow.pyi +3 -4
  270. homeassistant-stubs/components/flux_led/config_flow.pyi +14 -14
  271. homeassistant-stubs/components/flux_led/discovery.pyi +1 -0
  272. homeassistant-stubs/components/flux_led/number.pyi +0 -5
  273. homeassistant-stubs/components/flux_led/select.pyi +0 -3
  274. homeassistant-stubs/components/flux_led/sensor.pyi +0 -1
  275. homeassistant-stubs/components/flux_led/switch.pyi +0 -4
  276. homeassistant-stubs/components/forecast_solar/config_flow.pyi +3 -4
  277. homeassistant-stubs/components/fritz/button.pyi +3 -7
  278. homeassistant-stubs/components/fritz/common.pyi +1 -0
  279. homeassistant-stubs/components/fritz/config_flow.pyi +11 -12
  280. homeassistant-stubs/components/fritzbox/config_flow.pyi +7 -8
  281. homeassistant-stubs/components/fritzbox_callmonitor/config_flow.pyi +9 -10
  282. homeassistant-stubs/components/fronius/config_flow.pyi +5 -6
  283. homeassistant-stubs/components/frontend/__init__.pyi +1 -1
  284. homeassistant-stubs/components/fully_kiosk/button.pyi +3 -7
  285. homeassistant-stubs/components/fully_kiosk/config_flow.pyi +7 -8
  286. homeassistant-stubs/components/fully_kiosk/switch.pyi +3 -7
  287. homeassistant-stubs/components/generic_hygrostat/humidifier.pyi +5 -5
  288. homeassistant-stubs/components/generic_thermostat/climate.pyi +3 -3
  289. homeassistant-stubs/components/geo_location/trigger.pyi +2 -2
  290. homeassistant-stubs/components/geocaching/config_flow.pyi +4 -4
  291. homeassistant-stubs/components/geocaching/sensor.pyi +3 -7
  292. homeassistant-stubs/components/gios/config_flow.pyi +3 -4
  293. homeassistant-stubs/components/glances/config_flow.pyi +6 -7
  294. homeassistant-stubs/components/glances/sensor.pyi +3 -7
  295. homeassistant-stubs/components/goalzero/config_flow.pyi +5 -6
  296. homeassistant-stubs/components/google/config_flow.pyi +11 -12
  297. homeassistant-stubs/components/google_assistant_sdk/config_flow.pyi +8 -10
  298. homeassistant-stubs/components/google_sheets/config_flow.pyi +4 -5
  299. homeassistant-stubs/components/gpsd/config_flow.pyi +4 -5
  300. homeassistant-stubs/components/group/__init__.pyi +7 -102
  301. homeassistant-stubs/components/group/binary_sensor.pyi +1 -1
  302. homeassistant-stubs/components/group/config_flow.pyi +2 -2
  303. homeassistant-stubs/components/group/const.pyi +12 -0
  304. homeassistant-stubs/components/group/cover.pyi +1 -1
  305. homeassistant-stubs/components/group/entity.pyi +81 -0
  306. homeassistant-stubs/components/group/event.pyi +3 -3
  307. homeassistant-stubs/components/group/fan.pyi +1 -1
  308. homeassistant-stubs/components/group/light.pyi +1 -1
  309. homeassistant-stubs/components/group/lock.pyi +1 -1
  310. homeassistant-stubs/components/group/media_player.pyi +3 -3
  311. homeassistant-stubs/components/group/registry.pyi +23 -0
  312. homeassistant-stubs/components/group/sensor.pyi +1 -1
  313. homeassistant-stubs/components/group/switch.pyi +1 -1
  314. homeassistant-stubs/components/guardian/config_flow.pyi +7 -8
  315. homeassistant-stubs/components/hardkernel/config_flow.pyi +2 -3
  316. homeassistant-stubs/components/here_travel_time/__init__.pyi +1 -0
  317. homeassistant-stubs/components/here_travel_time/config_flow.pyi +17 -18
  318. homeassistant-stubs/components/here_travel_time/sensor.pyi +0 -1
  319. homeassistant-stubs/components/history/__init__.pyi +1 -1
  320. homeassistant-stubs/components/history/websocket_api.pyi +2 -2
  321. homeassistant-stubs/components/history_stats/coordinator.pyi +2 -3
  322. homeassistant-stubs/components/history_stats/data.pyi +2 -3
  323. homeassistant-stubs/components/holiday/config_flow.pyi +7 -5
  324. homeassistant-stubs/components/homeassistant/trigger.pyi +2 -1
  325. homeassistant-stubs/components/homeassistant/triggers/event.pyi +5 -1
  326. homeassistant-stubs/components/homeassistant/triggers/homeassistant.pyi +1 -0
  327. homeassistant-stubs/components/homeassistant/triggers/numeric_state.pyi +2 -2
  328. homeassistant-stubs/components/homeassistant/triggers/state.pyi +2 -2
  329. homeassistant-stubs/components/homeassistant/triggers/time.pyi +2 -2
  330. homeassistant-stubs/components/homeassistant_green/config_flow.pyi +4 -5
  331. homeassistant-stubs/components/homeassistant_hardware/silabs_multiprotocol_addon.pyi +29 -29
  332. homeassistant-stubs/components/homeassistant_sky_connect/__init__.pyi +1 -1
  333. homeassistant-stubs/components/homeassistant_sky_connect/config_flow.pyi +6 -5
  334. homeassistant-stubs/components/homeassistant_sky_connect/const.pyi +18 -0
  335. homeassistant-stubs/components/homeassistant_sky_connect/hardware.pyi +1 -1
  336. homeassistant-stubs/components/homeassistant_sky_connect/util.pyi +2 -0
  337. homeassistant-stubs/components/homeassistant_yellow/config_flow.pyi +9 -10
  338. homeassistant-stubs/components/homekit/__init__.pyi +9 -6
  339. homeassistant-stubs/components/homekit/accessories.pyi +5 -6
  340. homeassistant-stubs/components/homekit/config_flow.pyi +16 -18
  341. homeassistant-stubs/components/homekit/const.pyi +3 -0
  342. homeassistant-stubs/components/homekit/type_cameras.pyi +3 -4
  343. homeassistant-stubs/components/homekit/type_covers.pyi +2 -3
  344. homeassistant-stubs/components/homekit/type_humidifiers.pyi +2 -3
  345. homeassistant-stubs/components/homekit/util.pyi +2 -3
  346. homeassistant-stubs/components/homekit_controller/__init__.pyi +1 -0
  347. homeassistant-stubs/components/homekit_controller/config_flow.pyi +13 -13
  348. homeassistant-stubs/components/homekit_controller/select.pyi +3 -7
  349. homeassistant-stubs/components/homewizard/config_flow.pyi +7 -7
  350. homeassistant-stubs/components/homewizard/coordinator.pyi +0 -1
  351. homeassistant-stubs/components/homeworks/__init__.pyi +63 -0
  352. homeassistant-stubs/components/homeworks/binary_sensor.pyi +25 -0
  353. homeassistant-stubs/components/homeworks/button.pyi +18 -0
  354. homeassistant-stubs/components/homeworks/config_flow.pyi +61 -0
  355. homeassistant-stubs/components/homeworks/const.pyi +14 -0
  356. homeassistant-stubs/components/homeworks/light.pyi +34 -0
  357. homeassistant-stubs/components/http/__init__.pyi +4 -3
  358. homeassistant-stubs/components/http/ban.pyi +4 -3
  359. homeassistant-stubs/components/http/const.pyi +1 -2
  360. homeassistant-stubs/components/http/cors.pyi +1 -0
  361. homeassistant-stubs/components/http/static.pyi +0 -1
  362. homeassistant-stubs/components/huawei_lte/config_flow.pyi +12 -13
  363. homeassistant-stubs/components/huawei_lte/select.pyi +3 -7
  364. homeassistant-stubs/components/humidifier/__init__.pyi +8 -8
  365. homeassistant-stubs/components/hydrawise/config_flow.pyi +8 -8
  366. homeassistant-stubs/components/hyperion/config_flow.pyi +12 -13
  367. homeassistant-stubs/components/hyperion/const.pyi +2 -0
  368. homeassistant-stubs/components/hyperion/sensor.pyi +39 -0
  369. homeassistant-stubs/components/ibeacon/config_flow.pyi +7 -8
  370. homeassistant-stubs/components/ibeacon/device_tracker.pyi +1 -2
  371. homeassistant-stubs/components/ibeacon/sensor.pyi +3 -7
  372. homeassistant-stubs/components/idasen_desk/button.pyi +4 -8
  373. homeassistant-stubs/components/idasen_desk/config_flow.pyi +4 -5
  374. homeassistant-stubs/components/idasen_desk/cover.pyi +3 -3
  375. homeassistant-stubs/components/idasen_desk/sensor.pyi +3 -7
  376. homeassistant-stubs/components/image/__init__.pyi +2 -2
  377. homeassistant-stubs/components/image_processing/__init__.pyi +1 -1
  378. homeassistant-stubs/components/image_upload/__init__.pyi +1 -1
  379. homeassistant-stubs/components/imap/config_flow.pyi +10 -10
  380. homeassistant-stubs/components/integration/sensor.pyi +36 -5
  381. homeassistant-stubs/components/ios/__init__.pyi +1 -1
  382. homeassistant-stubs/components/ipp/config_flow.pyi +5 -6
  383. homeassistant-stubs/components/ipp/sensor.pyi +3 -7
  384. homeassistant-stubs/components/iqvia/config_flow.pyi +3 -4
  385. homeassistant-stubs/components/islamic_prayer_times/config_flow.pyi +7 -8
  386. homeassistant-stubs/components/isy994/config_flow.pyi +18 -17
  387. homeassistant-stubs/components/jellyfin/config_flow.pyi +5 -6
  388. homeassistant-stubs/components/jellyfin/sensor.pyi +3 -7
  389. homeassistant-stubs/components/jvc_projector/config_flow.pyi +4 -5
  390. homeassistant-stubs/components/jvc_projector/sensor.pyi +20 -0
  391. homeassistant-stubs/components/kaleidescape/config_flow.pyi +4 -5
  392. homeassistant-stubs/components/kaleidescape/sensor.pyi +3 -7
  393. homeassistant-stubs/components/knx/config_flow.pyi +18 -19
  394. homeassistant-stubs/components/knx/expose.pyi +3 -3
  395. homeassistant-stubs/components/kraken/config_flow.pyi +7 -8
  396. homeassistant-stubs/components/kraken/sensor.pyi +3 -7
  397. homeassistant-stubs/components/lacrosse_view/config_flow.pyi +5 -6
  398. homeassistant-stubs/components/lacrosse_view/sensor.pyi +3 -7
  399. homeassistant-stubs/components/lamarzocco/config_flow.pyi +16 -8
  400. homeassistant-stubs/components/lamarzocco/const.pyi +1 -0
  401. homeassistant-stubs/components/lamarzocco/coordinator.pyi +7 -2
  402. homeassistant-stubs/components/lametric/config_flow.pyi +11 -11
  403. homeassistant-stubs/components/laundrify/binary_sensor.pyi +1 -1
  404. homeassistant-stubs/components/laundrify/config_flow.pyi +5 -6
  405. homeassistant-stubs/components/lcn/config_flow.pyi +4 -5
  406. homeassistant-stubs/components/ld2410_ble/config_flow.pyi +4 -5
  407. homeassistant-stubs/components/led_ble/config_flow.pyi +4 -5
  408. homeassistant-stubs/components/lidarr/config_flow.pyi +4 -5
  409. homeassistant-stubs/components/lifx/config_flow.pyi +10 -11
  410. homeassistant-stubs/components/linear_garage_door/config_flow.pyi +5 -6
  411. homeassistant-stubs/components/litejet/config_flow.pyi +7 -8
  412. homeassistant-stubs/components/litterrobot/config_flow.pyi +5 -6
  413. homeassistant-stubs/components/litterrobot/switch.pyi +2 -5
  414. homeassistant-stubs/components/local_ip/config_flow.pyi +2 -3
  415. homeassistant-stubs/components/local_ip/sensor.pyi +1 -1
  416. homeassistant-stubs/components/local_todo/config_flow.pyi +3 -4
  417. homeassistant-stubs/components/logbook/helpers.pyi +1 -2
  418. homeassistant-stubs/components/logbook/rest_api.pyi +1 -1
  419. homeassistant-stubs/components/logbook/websocket_api.pyi +1 -0
  420. homeassistant-stubs/components/lookin/config_flow.pyi +5 -6
  421. homeassistant-stubs/components/luftdaten/config_flow.pyi +4 -5
  422. homeassistant-stubs/components/map/__init__.pyi +6 -1
  423. homeassistant-stubs/components/matter/config_flow.pyi +14 -14
  424. homeassistant-stubs/components/met_eireann/config_flow.pyi +3 -4
  425. homeassistant-stubs/components/met_eireann/weather.pyi +1 -5
  426. homeassistant-stubs/components/metoffice/config_flow.pyi +7 -6
  427. homeassistant-stubs/components/metoffice/weather.pyi +2 -5
  428. homeassistant-stubs/components/mikrotik/config_flow.pyi +11 -12
  429. homeassistant-stubs/components/min_max/sensor.pyi +3 -3
  430. homeassistant-stubs/components/minecraft_server/binary_sensor.pyi +2 -9
  431. homeassistant-stubs/components/minecraft_server/config_flow.pyi +3 -4
  432. homeassistant-stubs/components/minecraft_server/sensor.pyi +3 -16
  433. homeassistant-stubs/components/mjpeg/config_flow.pyi +3 -4
  434. homeassistant-stubs/components/modbus/__init__.pyi +2 -2
  435. homeassistant-stubs/components/modbus/base_platform.pyi +1 -3
  436. homeassistant-stubs/components/modbus/const.pyi +0 -2
  437. homeassistant-stubs/components/modbus/modbus.pyi +3 -5
  438. homeassistant-stubs/components/modbus/validators.pyi +7 -2
  439. homeassistant-stubs/components/modem_callerid/button.pyi +0 -1
  440. homeassistant-stubs/components/modem_callerid/config_flow.pyi +5 -6
  441. homeassistant-stubs/components/modem_callerid/const.pyi +0 -1
  442. homeassistant-stubs/components/modem_callerid/sensor.pyi +2 -2
  443. homeassistant-stubs/components/moon/config_flow.pyi +2 -3
  444. homeassistant-stubs/components/moon/sensor.pyi +0 -2
  445. homeassistant-stubs/components/mopeka/config_flow.pyi +4 -5
  446. homeassistant-stubs/components/motionmount/config_flow.pyi +6 -7
  447. homeassistant-stubs/components/mqtt/__init__.pyi +2 -2
  448. homeassistant-stubs/components/mqtt/climate.pyi +1 -1
  449. homeassistant-stubs/components/mqtt/config_flow.pyi +8 -9
  450. homeassistant-stubs/components/mqtt/const.pyi +0 -1
  451. homeassistant-stubs/components/mqtt/discovery.pyi +6 -4
  452. homeassistant-stubs/components/mqtt/event.pyi +2 -2
  453. homeassistant-stubs/components/mqtt/humidifier.pyi +1 -1
  454. homeassistant-stubs/components/mqtt/image.pyi +2 -2
  455. homeassistant-stubs/components/mqtt/light/schema_json.pyi +5 -2
  456. homeassistant-stubs/components/mqtt/mixins.pyi +7 -7
  457. homeassistant-stubs/components/mqtt/models.pyi +9 -3
  458. homeassistant-stubs/components/mqtt/sensor.pyi +4 -1
  459. homeassistant-stubs/components/mqtt/tag.pyi +3 -2
  460. homeassistant-stubs/components/mqtt/util.pyi +5 -1
  461. homeassistant-stubs/components/mysensors/config_flow.pyi +8 -10
  462. homeassistant-stubs/components/mysensors/gateway.pyi +1 -1
  463. homeassistant-stubs/components/myuplink/config_flow.pyi +4 -5
  464. homeassistant-stubs/components/myuplink/helpers.pyi +1 -0
  465. homeassistant-stubs/components/myuplink/number.pyi +1 -1
  466. homeassistant-stubs/components/myuplink/sensor.pyi +1 -1
  467. homeassistant-stubs/components/myuplink/switch.pyi +1 -1
  468. homeassistant-stubs/components/nam/config_flow.pyi +8 -9
  469. homeassistant-stubs/components/nam/sensor.pyi +3 -7
  470. homeassistant-stubs/components/nanoleaf/config_flow.pyi +12 -13
  471. homeassistant-stubs/components/nanoleaf/light.pyi +1 -1
  472. homeassistant-stubs/components/neato/config_flow.pyi +5 -6
  473. homeassistant-stubs/components/neato/vacuum.pyi +0 -1
  474. homeassistant-stubs/components/nest/config_flow.pyi +10 -11
  475. homeassistant-stubs/components/netatmo/config_flow.pyi +12 -13
  476. homeassistant-stubs/components/netatmo/sensor.pyi +3 -7
  477. homeassistant-stubs/components/network/network.pyi +1 -0
  478. homeassistant-stubs/components/nextdns/config_flow.pyi +4 -5
  479. homeassistant-stubs/components/nfandroidtv/config_flow.pyi +3 -4
  480. homeassistant-stubs/components/nightscout/config_flow.pyi +5 -5
  481. homeassistant-stubs/components/notify/legacy.pyi +1 -1
  482. homeassistant-stubs/components/notion/__init__.pyi +4 -29
  483. homeassistant-stubs/components/notion/binary_sensor.pyi +1 -0
  484. homeassistant-stubs/components/notion/config_flow.pyi +5 -7
  485. homeassistant-stubs/components/notion/coordinator.pyi +44 -0
  486. homeassistant-stubs/components/notion/diagnostics.pyi +1 -2
  487. homeassistant-stubs/components/notion/sensor.pyi +1 -0
  488. homeassistant-stubs/components/nut/__init__.pyi +10 -9
  489. homeassistant-stubs/components/nut/config_flow.pyi +12 -12
  490. homeassistant-stubs/components/onboarding/__init__.pyi +16 -2
  491. homeassistant-stubs/components/onboarding/views.pyi +8 -6
  492. homeassistant-stubs/components/oncue/config_flow.pyi +3 -4
  493. homeassistant-stubs/components/onewire/config_flow.pyi +5 -6
  494. homeassistant-stubs/components/open_meteo/config_flow.pyi +2 -3
  495. homeassistant-stubs/components/open_meteo/weather.pyi +0 -2
  496. homeassistant-stubs/components/openexchangerates/config_flow.pyi +5 -5
  497. homeassistant-stubs/components/opensky/config_flow.pyi +3 -4
  498. homeassistant-stubs/components/opensky/sensor.pyi +1 -1
  499. homeassistant-stubs/components/openuv/config_flow.pyi +6 -8
  500. homeassistant-stubs/components/oralb/config_flow.pyi +4 -5
  501. homeassistant-stubs/components/otbr/config_flow.pyi +3 -4
  502. homeassistant-stubs/components/overkiz/alarm_control_panel.pyi +3 -7
  503. homeassistant-stubs/components/overkiz/binary_sensor.pyi +3 -7
  504. homeassistant-stubs/components/overkiz/climate.pyi +1 -0
  505. homeassistant-stubs/components/overkiz/climate_entities/atlantic_pass_apc_heating_zone.pyi +2 -2
  506. homeassistant-stubs/components/overkiz/climate_entities/atlantic_pass_apc_zone_control_zone.pyi +30 -7
  507. homeassistant-stubs/components/overkiz/climate_entities/hitachi_air_to_air_heat_pump_ovp.pyi +1 -0
  508. homeassistant-stubs/components/overkiz/config_flow.pyi +10 -12
  509. homeassistant-stubs/components/overkiz/executor.pyi +1 -1
  510. homeassistant-stubs/components/overkiz/number.pyi +3 -7
  511. homeassistant-stubs/components/overkiz/select.pyi +3 -7
  512. homeassistant-stubs/components/overkiz/switch.pyi +3 -7
  513. homeassistant-stubs/components/p1_monitor/config_flow.pyi +2 -3
  514. homeassistant-stubs/components/peco/config_flow.pyi +4 -5
  515. homeassistant-stubs/components/peco/sensor.pyi +3 -7
  516. homeassistant-stubs/components/persistent_notification/__init__.pyi +2 -1
  517. homeassistant-stubs/components/pi_hole/binary_sensor.pyi +3 -7
  518. homeassistant-stubs/components/pi_hole/config_flow.pyi +6 -7
  519. homeassistant-stubs/components/ping/binary_sensor.pyi +2 -3
  520. homeassistant-stubs/components/ping/config_flow.pyi +8 -9
  521. homeassistant-stubs/components/ping/coordinator.pyi +1 -1
  522. homeassistant-stubs/components/ping/entity.pyi +12 -0
  523. homeassistant-stubs/components/ping/sensor.pyi +29 -0
  524. homeassistant-stubs/components/plugwise/config_flow.pyi +3 -4
  525. homeassistant-stubs/components/poolsense/config_flow.pyi +3 -4
  526. homeassistant-stubs/components/powerwall/config_flow.pyi +12 -11
  527. homeassistant-stubs/components/private_ble_device/config_flow.pyi +2 -3
  528. homeassistant-stubs/components/private_ble_device/device_tracker.pyi +1 -2
  529. homeassistant-stubs/components/private_ble_device/sensor.pyi +3 -7
  530. homeassistant-stubs/components/prometheus/__init__.pyi +4 -4
  531. homeassistant-stubs/components/proximity/config_flow.pyi +4 -5
  532. homeassistant-stubs/components/proximity/coordinator.pyi +3 -3
  533. homeassistant-stubs/components/prusalink/__init__.pyi +1 -1
  534. homeassistant-stubs/components/prusalink/config_flow.pyi +6 -5
  535. homeassistant-stubs/components/pure_energie/config_flow.pyi +4 -5
  536. homeassistant-stubs/components/pure_energie/sensor.pyi +3 -7
  537. homeassistant-stubs/components/purpleair/config_flow.pyi +14 -17
  538. homeassistant-stubs/components/pushbullet/config_flow.pyi +3 -4
  539. homeassistant-stubs/components/pvoutput/config_flow.pyi +4 -5
  540. homeassistant-stubs/components/qnap_qsw/button.pyi +3 -7
  541. homeassistant-stubs/components/qnap_qsw/config_flow.pyi +6 -6
  542. homeassistant-stubs/components/rabbitair/config_flow.pyi +2 -3
  543. homeassistant-stubs/components/radarr/config_flow.pyi +4 -5
  544. homeassistant-stubs/components/rainforest_raven/config_flow.pyi +5 -6
  545. homeassistant-stubs/components/rainmachine/config_flow.pyi +8 -10
  546. homeassistant-stubs/components/raspberry_pi/config_flow.pyi +2 -3
  547. homeassistant-stubs/components/rdw/config_flow.pyi +2 -3
  548. homeassistant-stubs/components/recollect_waste/calendar.pyi +1 -1
  549. homeassistant-stubs/components/recollect_waste/config_flow.pyi +7 -8
  550. homeassistant-stubs/components/recorder/const.pyi +1 -0
  551. homeassistant-stubs/components/recorder/core.pyi +4 -3
  552. homeassistant-stubs/components/recorder/db_schema.pyi +7 -0
  553. homeassistant-stubs/components/recorder/history/modern.pyi +7 -6
  554. homeassistant-stubs/components/recorder/migration.pyi +47 -5
  555. homeassistant-stubs/components/recorder/models/legacy.pyi +10 -0
  556. homeassistant-stubs/components/recorder/models/state.pyi +4 -0
  557. homeassistant-stubs/components/recorder/queries.pyi +2 -1
  558. homeassistant-stubs/components/recorder/table_managers/states.pyi +3 -0
  559. homeassistant-stubs/components/renault/binary_sensor.pyi +3 -11
  560. homeassistant-stubs/components/renault/button.pyi +3 -7
  561. homeassistant-stubs/components/renault/config_flow.pyi +8 -9
  562. homeassistant-stubs/components/renault/select.pyi +3 -13
  563. homeassistant-stubs/components/renault/sensor.pyi +3 -12
  564. homeassistant-stubs/components/rest/__init__.pyi +1 -0
  565. homeassistant-stubs/components/rfxtrx/config_flow.pyi +12 -12
  566. homeassistant-stubs/components/rfxtrx/event.pyi +22 -0
  567. homeassistant-stubs/components/rhasspy/config_flow.pyi +3 -4
  568. homeassistant-stubs/components/ridwell/calendar.pyi +1 -1
  569. homeassistant-stubs/components/ridwell/config_flow.pyi +6 -7
  570. homeassistant-stubs/components/rituals_perfume_genie/config_flow.pyi +3 -4
  571. homeassistant-stubs/components/rituals_perfume_genie/switch.pyi +3 -7
  572. homeassistant-stubs/components/roku/binary_sensor.pyi +3 -7
  573. homeassistant-stubs/components/roku/config_flow.pyi +6 -7
  574. homeassistant-stubs/components/roku/select.pyi +6 -10
  575. homeassistant-stubs/components/roku/sensor.pyi +3 -7
  576. homeassistant-stubs/components/romy/config_flow.pyi +5 -6
  577. homeassistant-stubs/components/romy/entity.pyi +11 -0
  578. homeassistant-stubs/components/romy/vacuum.pyi +4 -11
  579. homeassistant-stubs/components/rpi_power/config_flow.pyi +2 -2
  580. homeassistant-stubs/components/rtsp_to_webrtc/config_flow.pyi +9 -10
  581. homeassistant-stubs/components/ruuvi_gateway/config_flow.pyi +5 -6
  582. homeassistant-stubs/components/ruuvitag_ble/config_flow.pyi +4 -5
  583. homeassistant-stubs/components/samsungtv/config_flow.pyi +17 -17
  584. homeassistant-stubs/components/samsungtv/media_player.pyi +1 -0
  585. homeassistant-stubs/components/scrape/config_flow.pyi +1 -0
  586. homeassistant-stubs/components/search/__init__.pyi +41 -20
  587. homeassistant-stubs/components/sensibo/binary_sensor.pyi +6 -14
  588. homeassistant-stubs/components/sensibo/button.pyi +3 -7
  589. homeassistant-stubs/components/sensibo/config_flow.pyi +6 -7
  590. homeassistant-stubs/components/sensibo/number.pyi +3 -7
  591. homeassistant-stubs/components/sensibo/select.pyi +3 -7
  592. homeassistant-stubs/components/sensibo/sensor.pyi +6 -14
  593. homeassistant-stubs/components/sensibo/switch.pyi +3 -7
  594. homeassistant-stubs/components/sensibo/update.pyi +3 -7
  595. homeassistant-stubs/components/sensirion_ble/config_flow.pyi +4 -5
  596. homeassistant-stubs/components/sfr_box/binary_sensor.pyi +3 -7
  597. homeassistant-stubs/components/sfr_box/button.pyi +3 -7
  598. homeassistant-stubs/components/sfr_box/config_flow.pyi +6 -7
  599. homeassistant-stubs/components/sfr_box/sensor.pyi +3 -7
  600. homeassistant-stubs/components/shelly/__init__.pyi +2 -2
  601. homeassistant-stubs/components/shelly/binary_sensor.pyi +4 -4
  602. homeassistant-stubs/components/shelly/button.pyi +3 -7
  603. homeassistant-stubs/components/shelly/config_flow.pyi +15 -14
  604. homeassistant-stubs/components/shelly/const.pyi +3 -2
  605. homeassistant-stubs/components/shelly/coordinator.pyi +3 -1
  606. homeassistant-stubs/components/shelly/entity.pyi +4 -8
  607. homeassistant-stubs/components/shelly/event.pyi +2 -2
  608. homeassistant-stubs/components/shelly/light.pyi +30 -14
  609. homeassistant-stubs/components/shelly/number.pyi +1 -1
  610. homeassistant-stubs/components/shelly/sensor.pyi +4 -4
  611. homeassistant-stubs/components/shelly/switch.pyi +1 -1
  612. homeassistant-stubs/components/shelly/update.pyi +8 -15
  613. homeassistant-stubs/components/shelly/utils.pyi +9 -4
  614. homeassistant-stubs/components/shopping_list/config_flow.pyi +3 -4
  615. homeassistant-stubs/components/shopping_list/todo.pyi +0 -1
  616. homeassistant-stubs/components/simplepush/config_flow.pyi +3 -4
  617. homeassistant-stubs/components/simplisafe/config_flow.pyi +6 -8
  618. homeassistant-stubs/components/skybell/config_flow.pyi +5 -6
  619. homeassistant-stubs/components/skybell/sensor.pyi +3 -7
  620. homeassistant-stubs/components/slack/config_flow.pyi +3 -4
  621. homeassistant-stubs/components/sleepiq/button.pyi +3 -7
  622. homeassistant-stubs/components/sleepiq/config_flow.pyi +5 -6
  623. homeassistant-stubs/components/sleepiq/number.pyi +3 -7
  624. homeassistant-stubs/components/smhi/config_flow.pyi +6 -4
  625. homeassistant-stubs/components/smhi/weather.pyi +0 -2
  626. homeassistant-stubs/components/snooz/config_flow.pyi +8 -9
  627. homeassistant-stubs/components/sonarr/config_flow.pyi +6 -7
  628. homeassistant-stubs/components/speedtestdotnet/__init__.pyi +4 -2
  629. homeassistant-stubs/components/speedtestdotnet/config_flow.pyi +7 -8
  630. homeassistant-stubs/components/speedtestdotnet/const.pyi +0 -1
  631. homeassistant-stubs/components/speedtestdotnet/sensor.pyi +1 -2
  632. homeassistant-stubs/components/sql/config_flow.pyi +6 -7
  633. homeassistant-stubs/components/ssdp/__init__.pyi +9 -7
  634. homeassistant-stubs/components/starlink/binary_sensor.pyi +3 -7
  635. homeassistant-stubs/components/starlink/button.pyi +3 -7
  636. homeassistant-stubs/components/starlink/config_flow.pyi +2 -3
  637. homeassistant-stubs/components/starlink/coordinator.pyi +6 -1
  638. homeassistant-stubs/components/starlink/device_tracker.pyi +3 -7
  639. homeassistant-stubs/components/starlink/sensor.pyi +3 -7
  640. homeassistant-stubs/components/starlink/switch.pyi +3 -7
  641. homeassistant-stubs/components/starlink/time.pyi +34 -0
  642. homeassistant-stubs/components/statistics/sensor.pyi +2 -2
  643. homeassistant-stubs/components/steamist/config_flow.pyi +9 -10
  644. homeassistant-stubs/components/steamist/sensor.pyi +3 -7
  645. homeassistant-stubs/components/stookalert/config_flow.pyi +2 -3
  646. homeassistant-stubs/components/stream/__init__.pyi +1 -0
  647. homeassistant-stubs/components/stream/core.pyi +1 -1
  648. homeassistant-stubs/components/streamlabswater/config_flow.pyi +3 -4
  649. homeassistant-stubs/components/stt/legacy.pyi +1 -1
  650. homeassistant-stubs/components/suez_water/config_flow.pyi +3 -4
  651. homeassistant-stubs/components/sun/__init__.pyi +4 -64
  652. homeassistant-stubs/components/sun/config_flow.pyi +3 -4
  653. homeassistant-stubs/components/sun/const.pyi +11 -0
  654. homeassistant-stubs/components/sun/entity.pyi +64 -0
  655. homeassistant-stubs/components/sun/sensor.pyi +1 -1
  656. homeassistant-stubs/components/surepetcare/config_flow.pyi +5 -6
  657. homeassistant-stubs/components/switch/light.pyi +2 -2
  658. homeassistant-stubs/components/switchbee/config_flow.pyi +3 -4
  659. homeassistant-stubs/components/switchbot_cloud/config_flow.pyi +3 -4
  660. homeassistant-stubs/components/switcher_kis/button.pyi +3 -7
  661. homeassistant-stubs/components/switcher_kis/config_flow.pyi +5 -6
  662. homeassistant-stubs/components/switcher_kis/cover.pyi +1 -1
  663. homeassistant-stubs/components/switcher_kis/switch.pyi +2 -0
  664. homeassistant-stubs/components/synology_dsm/binary_sensor.pyi +2 -2
  665. homeassistant-stubs/components/synology_dsm/button.pyi +3 -7
  666. homeassistant-stubs/components/synology_dsm/camera.pyi +2 -2
  667. homeassistant-stubs/components/synology_dsm/config_flow.pyi +14 -15
  668. homeassistant-stubs/components/synology_dsm/entity.pyi +3 -7
  669. homeassistant-stubs/components/synology_dsm/sensor.pyi +2 -2
  670. homeassistant-stubs/components/synology_dsm/switch.pyi +2 -2
  671. homeassistant-stubs/components/synology_dsm/update.pyi +2 -2
  672. homeassistant-stubs/components/system_log/__init__.pyi +3 -2
  673. homeassistant-stubs/components/systemmonitor/__init__.pyi +3 -1
  674. homeassistant-stubs/components/systemmonitor/binary_sensor.pyi +14 -12
  675. homeassistant-stubs/components/systemmonitor/config_flow.pyi +2 -2
  676. homeassistant-stubs/components/systemmonitor/const.pyi +1 -1
  677. homeassistant-stubs/components/systemmonitor/coordinator.pyi +29 -46
  678. homeassistant-stubs/components/systemmonitor/diagnostics.pyi +2 -2
  679. homeassistant-stubs/components/systemmonitor/sensor.pyi +23 -20
  680. homeassistant-stubs/components/systemmonitor/util.pyi +1 -1
  681. homeassistant-stubs/components/tailscale/config_flow.pyi +4 -5
  682. homeassistant-stubs/components/tailwind/config_flow.pyi +9 -9
  683. homeassistant-stubs/components/tami4/config_flow.pyi +4 -5
  684. homeassistant-stubs/components/tautulli/config_flow.pyi +4 -5
  685. homeassistant-stubs/components/tautulli/sensor.pyi +6 -14
  686. homeassistant-stubs/components/technove/config_flow.pyi +4 -5
  687. homeassistant-stubs/components/tedee/config_flow.pyi +7 -5
  688. homeassistant-stubs/components/threshold/binary_sensor.pyi +2 -2
  689. homeassistant-stubs/components/tibber/config_flow.pyi +3 -4
  690. homeassistant-stubs/components/tile/config_flow.pyi +7 -8
  691. homeassistant-stubs/components/tile/device_tracker.pyi +1 -2
  692. homeassistant-stubs/components/tilt_ble/config_flow.pyi +4 -5
  693. homeassistant-stubs/components/tolo/__init__.pyi +3 -3
  694. homeassistant-stubs/components/tolo/binary_sensor.pyi +0 -2
  695. homeassistant-stubs/components/tolo/button.pyi +0 -1
  696. homeassistant-stubs/components/tolo/climate.pyi +6 -5
  697. homeassistant-stubs/components/tolo/config_flow.pyi +5 -6
  698. homeassistant-stubs/components/tolo/const.pyi +11 -7
  699. homeassistant-stubs/components/tolo/number.pyi +6 -11
  700. homeassistant-stubs/components/tolo/select.pyi +19 -7
  701. homeassistant-stubs/components/tolo/sensor.pyi +6 -10
  702. homeassistant-stubs/components/tolo/switch.pyi +30 -0
  703. homeassistant-stubs/components/tplink/config_flow.pyi +14 -16
  704. homeassistant-stubs/components/tplink/switch.pyi +0 -1
  705. homeassistant-stubs/components/tplink_omada/binary_sensor.pyi +17 -20
  706. homeassistant-stubs/components/tplink_omada/config_flow.pyi +6 -7
  707. homeassistant-stubs/components/tplink_omada/entity.pyi +3 -3
  708. homeassistant-stubs/components/tplink_omada/switch.pyi +54 -17
  709. homeassistant-stubs/components/tplink_omada/update.pyi +1 -1
  710. homeassistant-stubs/components/tractive/__init__.pyi +1 -2
  711. homeassistant-stubs/components/tractive/config_flow.pyi +5 -6
  712. homeassistant-stubs/components/tractive/const.pyi +0 -1
  713. homeassistant-stubs/components/tractive/sensor.pyi +4 -8
  714. homeassistant-stubs/components/tractive/switch.pyi +3 -7
  715. homeassistant-stubs/components/tradfri/config_flow.pyi +6 -7
  716. homeassistant-stubs/components/tradfri/sensor.pyi +3 -7
  717. homeassistant-stubs/components/trafikverket_camera/binary_sensor.pyi +3 -7
  718. homeassistant-stubs/components/trafikverket_camera/config_flow.pyi +7 -8
  719. homeassistant-stubs/components/trafikverket_camera/sensor.pyi +3 -7
  720. homeassistant-stubs/components/trafikverket_ferry/config_flow.pyi +6 -7
  721. homeassistant-stubs/components/trafikverket_ferry/sensor.pyi +3 -8
  722. homeassistant-stubs/components/trafikverket_train/config_flow.pyi +9 -10
  723. homeassistant-stubs/components/trafikverket_train/sensor.pyi +3 -7
  724. homeassistant-stubs/components/trafikverket_weatherstation/config_flow.pyi +6 -7
  725. homeassistant-stubs/components/trafikverket_weatherstation/sensor.pyi +3 -7
  726. homeassistant-stubs/components/transmission/__init__.pyi +3 -2
  727. homeassistant-stubs/components/transmission/config_flow.pyi +13 -13
  728. homeassistant-stubs/components/transmission/const.pyi +2 -0
  729. homeassistant-stubs/components/transmission/switch.pyi +3 -7
  730. homeassistant-stubs/components/trend/binary_sensor.pyi +2 -2
  731. homeassistant-stubs/components/tts/__init__.pyi +1 -0
  732. homeassistant-stubs/components/tts/legacy.pyi +1 -1
  733. homeassistant-stubs/components/twentemilieu/calendar.pyi +1 -1
  734. homeassistant-stubs/components/twentemilieu/config_flow.pyi +3 -4
  735. homeassistant-stubs/components/unifi/button.pyi +4 -8
  736. homeassistant-stubs/components/unifi/config_flow.pyi +16 -17
  737. homeassistant-stubs/components/unifi/device_tracker.pyi +4 -8
  738. homeassistant-stubs/components/unifi/entity.pyi +12 -15
  739. homeassistant-stubs/components/unifi/hub/config.pyi +31 -0
  740. homeassistant-stubs/components/unifi/hub/entity_loader.pyi +26 -0
  741. homeassistant-stubs/components/unifi/hub/hub.pyi +8 -28
  742. homeassistant-stubs/components/unifi/image.pyi +3 -8
  743. homeassistant-stubs/components/unifi/sensor.pyi +4 -10
  744. homeassistant-stubs/components/unifi/switch.pyi +6 -11
  745. homeassistant-stubs/components/unifi/update.pyi +4 -8
  746. homeassistant-stubs/components/unifiprotect/camera.pyi +5 -2
  747. homeassistant-stubs/components/unifiprotect/config_flow.pyi +16 -17
  748. homeassistant-stubs/components/unifiprotect/migrate.pyi +18 -4
  749. homeassistant-stubs/components/unifiprotect/repairs.pyi +17 -6
  750. homeassistant-stubs/components/unifiprotect/select.pyi +1 -0
  751. homeassistant-stubs/components/unifiprotect/services.pyi +8 -2
  752. homeassistant-stubs/components/unifiprotect/utils.pyi +2 -1
  753. homeassistant-stubs/components/upcloud/config_flow.pyi +8 -9
  754. homeassistant-stubs/components/uptime/config_flow.pyi +2 -3
  755. homeassistant-stubs/components/uptimerobot/config_flow.pyi +5 -6
  756. homeassistant-stubs/components/uptimerobot/sensor.pyi +0 -7
  757. homeassistant-stubs/components/uptimerobot/switch.pyi +1 -1
  758. homeassistant-stubs/components/usb/__init__.pyi +2 -1
  759. homeassistant-stubs/components/vacuum/__init__.pyi +1 -4
  760. homeassistant-stubs/components/vacuum/const.pyi +7 -0
  761. homeassistant-stubs/components/vacuum/group.pyi +1 -1
  762. homeassistant-stubs/components/vallox/binary_sensor.pyi +3 -7
  763. homeassistant-stubs/components/vallox/config_flow.pyi +3 -4
  764. homeassistant-stubs/components/vallox/date.pyi +22 -0
  765. homeassistant-stubs/components/vallox/number.pyi +3 -7
  766. homeassistant-stubs/components/vallox/switch.pyi +3 -7
  767. homeassistant-stubs/components/velbus/config_flow.pyi +6 -7
  768. homeassistant-stubs/components/vlc_telnet/config_flow.pyi +11 -11
  769. homeassistant-stubs/components/wallbox/config_flow.pyi +6 -6
  770. homeassistant-stubs/components/wallbox/number.pyi +3 -7
  771. homeassistant-stubs/components/waqi/__init__.pyi +0 -1
  772. homeassistant-stubs/components/waqi/config_flow.pyi +7 -11
  773. homeassistant-stubs/components/waqi/sensor.pyi +7 -22
  774. homeassistant-stubs/components/water_heater/const.pyi +6 -0
  775. homeassistant-stubs/components/water_heater/group.pyi +1 -1
  776. homeassistant-stubs/components/watttime/config_flow.pyi +10 -12
  777. homeassistant-stubs/components/weather/__init__.pyi +0 -13
  778. homeassistant-stubs/components/webhook/__init__.pyi +1 -2
  779. homeassistant-stubs/components/webostv/config_flow.pyi +8 -8
  780. homeassistant-stubs/components/websocket_api/commands.pyi +2 -3
  781. homeassistant-stubs/components/websocket_api/http.pyi +1 -1
  782. homeassistant-stubs/components/websocket_api/messages.pyi +4 -3
  783. homeassistant-stubs/components/wemo/__init__.pyi +3 -1
  784. homeassistant-stubs/components/wemo/config_flow.pyi +2 -3
  785. homeassistant-stubs/components/wemo/wemo_device.pyi +2 -1
  786. homeassistant-stubs/components/whois/config_flow.pyi +2 -3
  787. homeassistant-stubs/components/withings/__init__.pyi +13 -0
  788. homeassistant-stubs/components/withings/config_flow.pyi +4 -5
  789. homeassistant-stubs/components/wiz/config_flow.pyi +8 -8
  790. homeassistant-stubs/components/wled/config_flow.pyi +6 -10
  791. homeassistant-stubs/components/xiaomi_ble/config_flow.pyi +9 -10
  792. homeassistant-stubs/components/xiaomi_ble/const.pyi +9 -2
  793. homeassistant-stubs/components/xiaomi_ble/device_trigger.pyi +1 -1
  794. homeassistant-stubs/components/xiaomi_ble/event.pyi +1 -1
  795. homeassistant-stubs/components/yale_smart_alarm/config_flow.pyi +5 -6
  796. homeassistant-stubs/components/yalexs_ble/config_flow.pyi +14 -14
  797. homeassistant-stubs/components/yalexs_ble/sensor.pyi +3 -7
  798. homeassistant-stubs/components/youtube/config_flow.pyi +6 -7
  799. homeassistant-stubs/components/youtube/sensor.pyi +3 -7
  800. homeassistant-stubs/components/zeroconf/__init__.pyi +1 -1
  801. homeassistant-stubs/components/zodiac/config_flow.pyi +2 -3
  802. homeassistant-stubs/components/zodiac/sensor.pyi +0 -2
  803. homeassistant-stubs/components/zone/__init__.pyi +2 -2
  804. homeassistant-stubs/components/zone/config_flow.pyi +2 -2
  805. homeassistant-stubs/components/zone/trigger.pyi +2 -2
  806. homeassistant-stubs/components/zwave_js/api.pyi +1 -2
  807. homeassistant-stubs/components/zwave_js/binary_sensor.pyi +3 -7
  808. homeassistant-stubs/components/zwave_js/config_flow.pyi +39 -38
  809. homeassistant-stubs/components/zwave_js/humidifier.pyi +3 -7
  810. homeassistant-stubs/config.pyi +18 -3
  811. homeassistant-stubs/config_entries.pyi +52 -33
  812. homeassistant-stubs/const.pyi +11 -6
  813. homeassistant-stubs/core.pyi +62 -38
  814. homeassistant-stubs/data_entry_flow.pyi +38 -37
  815. homeassistant-stubs/exceptions.pyi +12 -5
  816. homeassistant-stubs/helpers/area_registry.pyi +7 -19
  817. homeassistant-stubs/helpers/category_registry.pyi +43 -0
  818. homeassistant-stubs/helpers/check_config.pyi +1 -1
  819. homeassistant-stubs/helpers/config_entry_flow.pyi +11 -12
  820. homeassistant-stubs/helpers/config_entry_oauth2_flow.pyi +6 -7
  821. homeassistant-stubs/helpers/config_validation.pyi +8 -1
  822. homeassistant-stubs/helpers/data_entry_flow.pyi +9 -5
  823. homeassistant-stubs/helpers/debounce.pyi +2 -1
  824. homeassistant-stubs/helpers/device_registry.pyi +9 -5
  825. homeassistant-stubs/helpers/discovery.pyi +2 -1
  826. homeassistant-stubs/helpers/discovery_flow.pyi +2 -2
  827. homeassistant-stubs/helpers/dispatcher.pyi +2 -10
  828. homeassistant-stubs/helpers/entity.pyi +9 -7
  829. homeassistant-stubs/helpers/entity_component.pyi +2 -1
  830. homeassistant-stubs/helpers/entity_platform.pyi +2 -2
  831. homeassistant-stubs/helpers/entity_registry.pyi +14 -9
  832. homeassistant-stubs/helpers/event.pyi +30 -30
  833. homeassistant-stubs/helpers/floor_registry.pyi +12 -24
  834. homeassistant-stubs/helpers/frame.pyi +11 -3
  835. homeassistant-stubs/helpers/http.pyi +6 -3
  836. homeassistant-stubs/helpers/importlib.pyi +11 -0
  837. homeassistant-stubs/helpers/integration_platform.pyi +8 -6
  838. homeassistant-stubs/helpers/intent.pyi +6 -4
  839. homeassistant-stubs/helpers/issue_registry.pyi +2 -3
  840. homeassistant-stubs/helpers/label_registry.pyi +11 -23
  841. homeassistant-stubs/helpers/normalized_name_base_registry.pyi +22 -0
  842. homeassistant-stubs/helpers/ratelimit.pyi +2 -3
  843. homeassistant-stubs/helpers/registry.pyi +15 -0
  844. homeassistant-stubs/helpers/schema_config_entry_flow.pyi +15 -15
  845. homeassistant-stubs/helpers/script.pyi +22 -8
  846. homeassistant-stubs/helpers/selector.pyi +20 -0
  847. homeassistant-stubs/helpers/service.pyi +9 -4
  848. homeassistant-stubs/helpers/storage.pyi +28 -4
  849. homeassistant-stubs/helpers/system_info.pyi +1 -0
  850. homeassistant-stubs/helpers/template.pyi +18 -3
  851. homeassistant-stubs/helpers/translation.pyi +2 -1
  852. homeassistant-stubs/helpers/trigger.pyi +1 -0
  853. homeassistant-stubs/helpers/typing.pyi +2 -5
  854. homeassistant-stubs/helpers/update_coordinator.pyi +5 -5
  855. homeassistant-stubs/loader.pyi +24 -5
  856. homeassistant-stubs/setup.pyi +21 -4
  857. homeassistant-stubs/util/async_.pyi +2 -2
  858. homeassistant-stubs/util/percentage.pyi +1 -1
  859. homeassistant-stubs/util/signal_type.pyi +20 -0
  860. homeassistant-stubs/util/unit_conversion.pyi +10 -0
  861. {homeassistant_stubs-2024.3.3.dist-info → homeassistant_stubs-2024.4.0.dist-info}/METADATA +4 -5
  862. {homeassistant_stubs-2024.3.3.dist-info → homeassistant_stubs-2024.4.0.dist-info}/RECORD +864 -825
  863. homeassistant-stubs/components/axis/device.pyi +0 -64
  864. homeassistant-stubs/components/binary_sensor/group.pyi +0 -5
  865. homeassistant-stubs/components/fan/group.pyi +0 -5
  866. homeassistant-stubs/components/humidifier/group.pyi +0 -5
  867. homeassistant-stubs/components/light/group.pyi +0 -5
  868. homeassistant-stubs/components/remote/group.pyi +0 -5
  869. homeassistant-stubs/components/switch/group.pyi +0 -5
  870. {homeassistant_stubs-2024.3.3.dist-info → homeassistant_stubs-2024.4.0.dist-info}/LICENSE +0 -0
  871. {homeassistant_stubs-2024.3.3.dist-info → homeassistant_stubs-2024.4.0.dist-info}/WHEEL +0 -0
@@ -10,7 +10,8 @@ from _typeshed import Incomplete
10
10
  from collections.abc import Callable as Callable, Iterable, Mapping
11
11
  from dataclasses import dataclass
12
12
  from enum import StrEnum
13
- from typing import Any, Required, TypedDict
13
+ from typing import Any, Generic, Required, TypedDict
14
+ from typing_extensions import TypeVar
14
15
 
15
16
  _LOGGER: Incomplete
16
17
 
@@ -35,6 +36,8 @@ _DEPRECATED_RESULT_TYPE_MENU: Incomplete
35
36
  EVENT_DATA_ENTRY_FLOW_PROGRESSED: str
36
37
  FLOW_NOT_COMPLETE_STEPS: Incomplete
37
38
  STEP_ID_OPTIONAL_STEPS: Incomplete
39
+ _FlowResultT = TypeVar('_FlowResultT', bound='FlowResult[Any]', default='FlowResult')
40
+ _HandlerT = TypeVar('_HandlerT', default=str)
38
41
 
39
42
  @dataclass(slots=True)
40
43
  class BaseServiceInfo: ...
@@ -52,7 +55,7 @@ class AbortFlow(FlowError):
52
55
  description_placeholders: Incomplete
53
56
  def __init__(self, reason: str, description_placeholders: Mapping[str, str] | None = None) -> None: ...
54
57
 
55
- class FlowResult(TypedDict, total=False):
58
+ class FlowResult(TypedDict, Generic[_HandlerT], total=False):
56
59
  context: dict[str, Any]
57
60
  data_schema: vol.Schema | None
58
61
  data: Mapping[str, Any]
@@ -61,10 +64,9 @@ class FlowResult(TypedDict, total=False):
61
64
  errors: dict[str, str] | None
62
65
  extra: str
63
66
  flow_id: Required[str]
64
- handler: Required[str]
67
+ handler: Required[_HandlerT]
65
68
  last_step: bool | None
66
69
  menu_options: list[str] | dict[str, str]
67
- minor_version: int
68
70
  options: Mapping[str, Any]
69
71
  preview: str | None
70
72
  progress_action: str
@@ -77,12 +79,11 @@ class FlowResult(TypedDict, total=False):
77
79
  translation_domain: str
78
80
  type: FlowResultType
79
81
  url: str
80
- version: int
81
82
 
82
- def _async_flow_handler_to_flow_result(flows: Iterable[FlowHandler], include_uninitialized: bool) -> list[FlowResult]: ...
83
83
  def _map_error_to_schema_errors(schema_errors: dict[str, Any], error: vol.Invalid, data_schema: vol.Schema) -> None: ...
84
84
 
85
- class FlowManager(abc.ABC, metaclass=abc.ABCMeta):
85
+ class FlowManager(abc.ABC, Generic[_FlowResultT, _HandlerT], metaclass=abc.ABCMeta):
86
+ _flow_result: type[_FlowResultT]
86
87
  hass: Incomplete
87
88
  _preview: Incomplete
88
89
  _progress: Incomplete
@@ -90,32 +91,34 @@ class FlowManager(abc.ABC, metaclass=abc.ABCMeta):
90
91
  _init_data_process_index: Incomplete
91
92
  def __init__(self, hass: HomeAssistant) -> None: ...
92
93
  @abc.abstractmethod
93
- async def async_create_flow(self, handler_key: str, *, context: dict[str, Any] | None = None, data: dict[str, Any] | None = None) -> FlowHandler: ...
94
+ async def async_create_flow(self, handler_key: _HandlerT, *, context: dict[str, Any] | None = None, data: dict[str, Any] | None = None) -> FlowHandler[_FlowResultT, _HandlerT]: ...
94
95
  @abc.abstractmethod
95
- async def async_finish_flow(self, flow: FlowHandler, result: FlowResult) -> FlowResult: ...
96
- async def async_post_init(self, flow: FlowHandler, result: FlowResult) -> None: ...
97
- def async_has_matching_flow(self, handler: str, match_context: dict[str, Any], data: Any) -> bool: ...
98
- def async_get(self, flow_id: str) -> FlowResult: ...
99
- def async_progress(self, include_uninitialized: bool = False) -> list[FlowResult]: ...
100
- def async_progress_by_handler(self, handler: str, include_uninitialized: bool = False, match_context: dict[str, Any] | None = None) -> list[FlowResult]: ...
101
- def async_progress_by_init_data_type(self, init_data_type: type, matcher: Callable[[Any], bool], include_uninitialized: bool = False) -> list[FlowResult]: ...
102
- def _async_progress_by_handler(self, handler: str, match_context: dict[str, Any] | None) -> list[FlowHandler]: ...
103
- async def async_init(self, handler: str, *, context: dict[str, Any] | None = None, data: Any = None) -> FlowResult: ...
104
- async def async_configure(self, flow_id: str, user_input: dict | None = None) -> FlowResult: ...
105
- async def _async_configure(self, flow_id: str, user_input: dict | None = None) -> FlowResult: ...
96
+ async def async_finish_flow(self, flow: FlowHandler[_FlowResultT, _HandlerT], result: _FlowResultT) -> _FlowResultT: ...
97
+ async def async_post_init(self, flow: FlowHandler[_FlowResultT, _HandlerT], result: _FlowResultT) -> None: ...
98
+ def async_has_matching_flow(self, handler: _HandlerT, match_context: dict[str, Any], data: Any) -> bool: ...
99
+ def async_get(self, flow_id: str) -> _FlowResultT: ...
100
+ def async_progress(self, include_uninitialized: bool = False) -> list[_FlowResultT]: ...
101
+ def async_progress_by_handler(self, handler: _HandlerT, include_uninitialized: bool = False, match_context: dict[str, Any] | None = None) -> list[_FlowResultT]: ...
102
+ def async_progress_by_init_data_type(self, init_data_type: type, matcher: Callable[[Any], bool], include_uninitialized: bool = False) -> list[_FlowResultT]: ...
103
+ def _async_progress_by_handler(self, handler: _HandlerT, match_context: dict[str, Any] | None) -> list[FlowHandler[_FlowResultT, _HandlerT]]: ...
104
+ async def async_init(self, handler: _HandlerT, *, context: dict[str, Any] | None = None, data: Any = None) -> _FlowResultT: ...
105
+ async def async_configure(self, flow_id: str, user_input: dict | None = None) -> _FlowResultT: ...
106
+ async def _async_configure(self, flow_id: str, user_input: dict | None = None) -> _FlowResultT: ...
106
107
  def async_abort(self, flow_id: str) -> None: ...
107
- def _async_add_flow_progress(self, flow: FlowHandler) -> None: ...
108
- def _async_remove_flow_from_index(self, flow: FlowHandler) -> None: ...
108
+ def _async_add_flow_progress(self, flow: FlowHandler[_FlowResultT, _HandlerT]) -> None: ...
109
+ def _async_remove_flow_from_index(self, flow: FlowHandler[_FlowResultT, _HandlerT]) -> None: ...
109
110
  def _async_remove_flow_progress(self, flow_id: str) -> None: ...
110
- async def _async_handle_step(self, flow: FlowHandler, step_id: str, user_input: dict | BaseServiceInfo | None) -> FlowResult: ...
111
- def _raise_if_step_does_not_exist(self, flow: FlowHandler, step_id: str) -> None: ...
112
- async def _async_setup_preview(self, flow: FlowHandler) -> None: ...
111
+ async def _async_handle_step(self, flow: FlowHandler[_FlowResultT, _HandlerT], step_id: str, user_input: dict | BaseServiceInfo | None) -> _FlowResultT: ...
112
+ def _raise_if_step_does_not_exist(self, flow: FlowHandler[_FlowResultT, _HandlerT], step_id: str) -> None: ...
113
+ async def _async_setup_preview(self, flow: FlowHandler[_FlowResultT, _HandlerT]) -> None: ...
114
+ def _async_flow_handler_to_flow_result(self, flows: Iterable[FlowHandler[_FlowResultT, _HandlerT]], include_uninitialized: bool) -> list[_FlowResultT]: ...
113
115
 
114
- class FlowHandler:
115
- cur_step: FlowResult | None
116
+ class FlowHandler(Generic[_FlowResultT, _HandlerT]):
117
+ _flow_result: type[_FlowResultT]
118
+ cur_step: _FlowResultT | None
116
119
  flow_id: str
117
120
  hass: HomeAssistant
118
- handler: str
121
+ handler: _HandlerT
119
122
  context: dict[str, Any]
120
123
  init_step: str
121
124
  init_data: Any
@@ -129,14 +132,14 @@ class FlowHandler:
129
132
  @property
130
133
  def show_advanced_options(self) -> bool: ...
131
134
  def add_suggested_values_to_schema(self, data_schema: vol.Schema, suggested_values: Mapping[str, Any] | None) -> vol.Schema: ...
132
- def async_show_form(self, *, step_id: str | None = None, data_schema: vol.Schema | None = None, errors: dict[str, str] | None = None, description_placeholders: Mapping[str, str | None] | None = None, last_step: bool | None = None, preview: str | None = None) -> FlowResult: ...
133
- def async_create_entry(self, *, title: str | None = None, data: Mapping[str, Any], description: str | None = None, description_placeholders: Mapping[str, str] | None = None) -> FlowResult: ...
134
- def async_abort(self, *, reason: str, description_placeholders: Mapping[str, str] | None = None) -> FlowResult: ...
135
- def async_external_step(self, *, step_id: str | None = None, url: str, description_placeholders: Mapping[str, str] | None = None) -> FlowResult: ...
136
- def async_external_step_done(self, *, next_step_id: str) -> FlowResult: ...
137
- 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) -> FlowResult: ...
138
- def async_show_progress_done(self, *, next_step_id: str) -> FlowResult: ...
139
- def async_show_menu(self, *, step_id: str | None = None, menu_options: list[str] | dict[str, str], description_placeholders: Mapping[str, str] | None = None) -> FlowResult: ...
135
+ def async_show_form(self, *, step_id: str | None = None, data_schema: vol.Schema | None = None, errors: dict[str, str] | None = None, description_placeholders: Mapping[str, str | None] | None = None, last_step: bool | None = None, preview: str | None = None) -> _FlowResultT: ...
136
+ def async_create_entry(self, *, title: str | None = None, data: Mapping[str, Any], description: str | None = None, description_placeholders: Mapping[str, str] | None = None) -> _FlowResultT: ...
137
+ def async_abort(self, *, reason: str, description_placeholders: Mapping[str, str] | None = None) -> _FlowResultT: ...
138
+ def async_external_step(self, *, step_id: str | None = None, url: str, description_placeholders: Mapping[str, str] | None = None) -> _FlowResultT: ...
139
+ def async_external_step_done(self, *, next_step_id: str) -> _FlowResultT: ...
140
+ 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: ...
141
+ def async_show_progress_done(self, *, next_step_id: str) -> _FlowResultT: ...
142
+ def async_show_menu(self, *, step_id: str | None = None, menu_options: list[str] | dict[str, str], description_placeholders: Mapping[str, str] | None = None) -> _FlowResultT: ...
140
143
  def async_remove(self) -> None: ...
141
144
  @staticmethod
142
145
  async def async_setup_preview(hass: HomeAssistant) -> None: ...
@@ -144,8 +147,6 @@ class FlowHandler:
144
147
  def async_get_progress_task(self) -> asyncio.Task[Any] | None: ...
145
148
  def async_set_progress_task(self, progress_task: asyncio.Task[Any]) -> None: ...
146
149
 
147
- def _create_abort_data(flow_id: str, handler: str, reason: str, description_placeholders: Mapping[str, str] | None = None) -> FlowResult: ...
148
-
149
150
  __getattr__: Incomplete
150
151
  __dir__: Incomplete
151
152
  __all__: Incomplete
@@ -1,18 +1,24 @@
1
1
  from .core import Context as Context
2
2
  from _typeshed import Incomplete
3
- from collections.abc import Generator, Sequence
3
+ from collections.abc import Callable as Callable, Generator, Sequence
4
4
  from dataclasses import dataclass
5
5
 
6
+ _function_cache: dict[str, Callable[[str, str, dict[str, str] | None], str]]
7
+
8
+ def import_async_get_exception_message() -> Callable[[str, str, dict[str, str] | None], str]: ...
9
+
6
10
  class HomeAssistantError(Exception):
11
+ _message: str | None
12
+ generate_message: bool
7
13
  translation_domain: Incomplete
8
14
  translation_key: Incomplete
9
15
  translation_placeholders: Incomplete
10
16
  def __init__(self, *args: object, translation_domain: str | None = None, translation_key: str | None = None, translation_placeholders: dict[str, str] | None = None) -> None: ...
17
+ def __str__(self) -> str: ...
11
18
 
12
19
  class ConfigValidationError(HomeAssistantError, ExceptionGroup[Exception]):
13
- _message: Incomplete
14
- def __init__(self, message: str, exceptions: list[Exception], translation_domain: str | None = None, translation_key: str | None = None, translation_placeholders: dict[str, str] | None = None) -> None: ...
15
- def __str__(self) -> str: ...
20
+ generate_message: bool
21
+ def __init__(self, message_translation_key: str, exceptions: list[Exception], translation_domain: str | None = None, translation_placeholders: dict[str, str] | None = None) -> None: ...
16
22
 
17
23
  class ServiceValidationError(HomeAssistantError): ...
18
24
  class InvalidEntityFormatError(HomeAssistantError): ...
@@ -73,13 +79,14 @@ class UnknownUser(Unauthorized): ...
73
79
  class ServiceNotFound(HomeAssistantError):
74
80
  domain: Incomplete
75
81
  service: Incomplete
82
+ generate_message: bool
76
83
  def __init__(self, domain: str, service: str) -> None: ...
77
- def __str__(self) -> str: ...
78
84
 
79
85
  class MaxLengthExceeded(HomeAssistantError):
80
86
  value: Incomplete
81
87
  property_name: Incomplete
82
88
  max_length: Incomplete
89
+ generate_message: bool
83
90
  def __init__(self, value: str, property_name: str, max_length: int) -> None: ...
84
91
 
85
92
  class DependencyError(HomeAssistantError):
@@ -1,9 +1,10 @@
1
1
  import dataclasses
2
+ from .normalized_name_base_registry import NormalizedNameBaseRegistryEntry as NormalizedNameBaseRegistryEntry, NormalizedNameBaseRegistryItems as NormalizedNameBaseRegistryItems, normalize_name as normalize_name
3
+ from .registry import BaseRegistry as BaseRegistry
2
4
  from .storage import Store as Store
3
5
  from .typing import UNDEFINED as UNDEFINED, UndefinedType as UndefinedType
4
6
  from _typeshed import Incomplete
5
- from collections import UserDict
6
- from collections.abc import Iterable, ValuesView
7
+ from collections.abc import Iterable
7
8
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
8
9
  from homeassistant.util import slugify as slugify
9
10
  from typing import Any, Literal, TypedDict
@@ -13,37 +14,26 @@ EVENT_AREA_REGISTRY_UPDATED: str
13
14
  STORAGE_KEY: str
14
15
  STORAGE_VERSION_MAJOR: int
15
16
  STORAGE_VERSION_MINOR: int
16
- SAVE_DELAY: int
17
17
 
18
18
  class EventAreaRegistryUpdatedData(TypedDict):
19
19
  action: Literal['create', 'remove', 'update']
20
20
  area_id: str
21
21
 
22
22
  @dataclasses.dataclass(frozen=True, kw_only=True, slots=True)
23
- class AreaEntry:
23
+ class AreaEntry(NormalizedNameBaseRegistryEntry):
24
24
  aliases: set[str]
25
25
  floor_id: str | None
26
26
  icon: str | None
27
27
  id: str
28
28
  labels: set[str] = ...
29
- name: str
30
- normalized_name: str
31
29
  picture: str | None
32
- def __init__(self, *, aliases, floor_id, icon, id, labels, name, normalized_name, picture) -> None: ...
33
-
34
- class AreaRegistryItems(UserDict[str, AreaEntry]):
35
- _normalized_names: Incomplete
36
- def __init__(self) -> None: ...
37
- def values(self) -> ValuesView[AreaEntry]: ...
38
- def __setitem__(self, key: str, entry: AreaEntry) -> None: ...
39
- def __delitem__(self, key: str) -> None: ...
40
- def get_area_by_name(self, name: str) -> AreaEntry | None: ...
30
+ def __init__(self, *, name, normalized_name, aliases, floor_id, icon, id, labels, picture) -> None: ...
41
31
 
42
32
  class AreaRegistryStore(Store[dict[str, list[dict[str, Any]]]]):
43
33
  async def _async_migrate_func(self, old_major_version: int, old_minor_version: int, old_data: dict[str, list[dict[str, Any]]]) -> dict[str, Any]: ...
44
34
 
45
- class AreaRegistry:
46
- areas: AreaRegistryItems
35
+ class AreaRegistry(BaseRegistry):
36
+ areas: NormalizedNameBaseRegistryItems[AreaEntry]
47
37
  _area_data: dict[str, AreaEntry]
48
38
  hass: Incomplete
49
39
  _store: Incomplete
@@ -57,7 +47,6 @@ class AreaRegistry:
57
47
  def async_update(self, area_id: str, *, aliases: set[str] | UndefinedType = ..., floor_id: str | None | UndefinedType = ..., icon: str | None | UndefinedType = ..., labels: set[str] | UndefinedType = ..., name: str | UndefinedType = ..., picture: str | None | UndefinedType = ...) -> AreaEntry: ...
58
48
  def _async_update(self, area_id: str, *, aliases: set[str] | UndefinedType = ..., floor_id: str | None | UndefinedType = ..., icon: str | None | UndefinedType = ..., labels: set[str] | UndefinedType = ..., name: str | UndefinedType = ..., picture: str | None | UndefinedType = ...) -> AreaEntry: ...
59
49
  async def async_load(self) -> None: ...
60
- def async_schedule_save(self) -> None: ...
61
50
  def _data_to_save(self) -> dict[str, list[dict[str, Any]]]: ...
62
51
  def _generate_area_id(self, name: str) -> str: ...
63
52
  def _async_setup_cleanup(self) -> None: ...
@@ -66,4 +55,3 @@ def async_get(hass: HomeAssistant) -> AreaRegistry: ...
66
55
  async def async_load(hass: HomeAssistant) -> None: ...
67
56
  def async_entries_for_floor(registry: AreaRegistry, floor_id: str) -> list[AreaEntry]: ...
68
57
  def async_entries_for_label(registry: AreaRegistry, label_id: str) -> list[AreaEntry]: ...
69
- def normalize_area_name(area_name: str) -> str: ...
@@ -0,0 +1,43 @@
1
+ from .registry import BaseRegistry as BaseRegistry
2
+ from .typing import EventType as EventType, UNDEFINED as UNDEFINED, UndefinedType as UndefinedType
3
+ from _typeshed import Incomplete
4
+ from collections.abc import Iterable
5
+ from dataclasses import dataclass
6
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
7
+ from homeassistant.util.ulid import ulid_now as ulid_now
8
+ from typing import Literal, TypedDict
9
+
10
+ DATA_REGISTRY: str
11
+ EVENT_CATEGORY_REGISTRY_UPDATED: str
12
+ STORAGE_KEY: str
13
+ STORAGE_VERSION_MAJOR: int
14
+
15
+ class EventCategoryRegistryUpdatedData(TypedDict):
16
+ action: Literal['create', 'remove', 'update']
17
+ scope: str
18
+ category_id: str
19
+ EventCategoryRegistryUpdated = EventType[EventCategoryRegistryUpdatedData]
20
+
21
+ @dataclass(slots=True, kw_only=True, frozen=True)
22
+ class CategoryEntry:
23
+ category_id: str = ...
24
+ icon: str | None = ...
25
+ name: str
26
+ def __init__(self, *, category_id, icon, name) -> None: ...
27
+
28
+ class CategoryRegistry(BaseRegistry):
29
+ hass: Incomplete
30
+ categories: Incomplete
31
+ _store: Incomplete
32
+ def __init__(self, hass: HomeAssistant) -> None: ...
33
+ def async_get_category(self, *, scope: str, category_id: str) -> CategoryEntry | None: ...
34
+ def async_list_categories(self, *, scope: str) -> Iterable[CategoryEntry]: ...
35
+ def async_create(self, *, name: str, scope: str, icon: str | None = None) -> CategoryEntry: ...
36
+ def async_delete(self, *, scope: str, category_id: str) -> None: ...
37
+ def async_update(self, *, scope: str, category_id: str, icon: str | None | UndefinedType = ..., name: str | UndefinedType = ...) -> CategoryEntry: ...
38
+ async def async_load(self) -> None: ...
39
+ def _data_to_save(self) -> dict[str, dict[str, list[dict[str, str | None]]]]: ...
40
+ def _async_ensure_name_is_available(self, scope: str, name: str, category_id: str | None = None) -> None: ...
41
+
42
+ def async_get(hass: HomeAssistant) -> CategoryRegistry: ...
43
+ async def async_load(hass: HomeAssistant) -> None: ...
@@ -2,7 +2,7 @@ from .typing import ConfigType as ConfigType
2
2
  from _typeshed import Incomplete
3
3
  from collections import OrderedDict
4
4
  from homeassistant import loader as loader
5
- from homeassistant.config import CONF_CORE as CONF_CORE, CONF_PACKAGES as CONF_PACKAGES, CORE_CONFIG_SCHEMA as CORE_CONFIG_SCHEMA, YAML_CONFIG_FILE as YAML_CONFIG_FILE, config_per_platform as config_per_platform, extract_domain_configs as extract_domain_configs, format_homeassistant_error as format_homeassistant_error, format_schema_error as format_schema_error, load_yaml_config_file as load_yaml_config_file, merge_packages_config as merge_packages_config
5
+ from homeassistant.config import CONF_PACKAGES as CONF_PACKAGES, CORE_CONFIG_SCHEMA as CORE_CONFIG_SCHEMA, YAML_CONFIG_FILE as YAML_CONFIG_FILE, config_per_platform as config_per_platform, extract_domain_configs as extract_domain_configs, format_homeassistant_error as format_homeassistant_error, format_schema_error as format_schema_error, load_yaml_config_file as load_yaml_config_file, merge_packages_config as merge_packages_config
6
6
  from homeassistant.core import HomeAssistant as HomeAssistant
7
7
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
8
8
  from homeassistant.requirements import RequirementsNotFound as RequirementsNotFound, async_clear_install_history as async_clear_install_history, async_get_integration_with_requirements as async_get_integration_with_requirements
@@ -9,7 +9,6 @@ from homeassistant.components.dhcp import DhcpServiceInfo as DhcpServiceInfo
9
9
  from homeassistant.components.ssdp import SsdpServiceInfo as SsdpServiceInfo
10
10
  from homeassistant.components.zeroconf import ZeroconfServiceInfo as ZeroconfServiceInfo
11
11
  from homeassistant.core import HomeAssistant as HomeAssistant
12
- from homeassistant.data_entry_flow import FlowResult as FlowResult
13
12
  from typing import Any, Generic, TypeVar
14
13
 
15
14
  _R = TypeVar('_R', bound='Awaitable[bool] | bool')
@@ -22,16 +21,16 @@ class DiscoveryFlowHandler(config_entries.ConfigFlow, Generic[_R]):
22
21
  _title: Incomplete
23
22
  _discovery_function: Incomplete
24
23
  def __init__(self, domain: str, title: str, discovery_function: DiscoveryFunctionType[_R]) -> None: ...
25
- async def async_step_user(self, user_input: dict[str, Any] | None = None) -> FlowResult: ...
26
- async def async_step_confirm(self, user_input: dict[str, Any] | None = None) -> FlowResult: ...
27
- async def async_step_discovery(self, discovery_info: DiscoveryInfoType) -> FlowResult: ...
28
- async def async_step_bluetooth(self, discovery_info: BluetoothServiceInfoBleak) -> FlowResult: ...
29
- async def async_step_dhcp(self, discovery_info: DhcpServiceInfo) -> FlowResult: ...
30
- async def async_step_homekit(self, discovery_info: ZeroconfServiceInfo) -> FlowResult: ...
31
- async def async_step_mqtt(self, discovery_info: MqttServiceInfo) -> FlowResult: ...
32
- async def async_step_zeroconf(self, discovery_info: ZeroconfServiceInfo) -> FlowResult: ...
33
- async def async_step_ssdp(self, discovery_info: SsdpServiceInfo) -> FlowResult: ...
34
- async def async_step_import(self, _: dict[str, Any] | None) -> FlowResult: ...
24
+ async def async_step_user(self, user_input: dict[str, Any] | None = None) -> config_entries.ConfigFlowResult: ...
25
+ async def async_step_confirm(self, user_input: dict[str, Any] | None = None) -> config_entries.ConfigFlowResult: ...
26
+ async def async_step_discovery(self, discovery_info: DiscoveryInfoType) -> config_entries.ConfigFlowResult: ...
27
+ async def async_step_bluetooth(self, discovery_info: BluetoothServiceInfoBleak) -> config_entries.ConfigFlowResult: ...
28
+ async def async_step_dhcp(self, discovery_info: DhcpServiceInfo) -> config_entries.ConfigFlowResult: ...
29
+ async def async_step_homekit(self, discovery_info: ZeroconfServiceInfo) -> config_entries.ConfigFlowResult: ...
30
+ async def async_step_mqtt(self, discovery_info: MqttServiceInfo) -> config_entries.ConfigFlowResult: ...
31
+ async def async_step_zeroconf(self, discovery_info: ZeroconfServiceInfo) -> config_entries.ConfigFlowResult: ...
32
+ async def async_step_ssdp(self, discovery_info: SsdpServiceInfo) -> config_entries.ConfigFlowResult: ...
33
+ async def async_step_import(self, _: dict[str, Any] | None) -> config_entries.ConfigFlowResult: ...
35
34
 
36
35
  def register_discovery_flow(domain: str, title: str, discovery_function: DiscoveryFunctionType[Awaitable[bool] | bool]) -> None: ...
37
36
 
@@ -42,7 +41,7 @@ class WebhookFlowHandler(config_entries.ConfigFlow):
42
41
  _description_placeholder: Incomplete
43
42
  _allow_multiple: Incomplete
44
43
  def __init__(self, domain: str, title: str, description_placeholder: dict, allow_multiple: bool) -> None: ...
45
- async def async_step_user(self, user_input: dict[str, Any] | None = None) -> FlowResult: ...
44
+ async def async_step_user(self, user_input: dict[str, Any] | None = None) -> config_entries.ConfigFlowResult: ...
46
45
 
47
46
  def register_webhook_flow(domain: str, title: str, description_placeholder: dict, allow_multiple: bool = False) -> None: ...
48
47
  async def webhook_async_remove_entry(hass: HomeAssistant, entry: config_entries.ConfigEntry) -> None: ...
@@ -9,7 +9,6 @@ from collections.abc import Awaitable, Callable as Callable
9
9
  from homeassistant import config_entries as config_entries
10
10
  from homeassistant.components import http as http
11
11
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
12
- from homeassistant.data_entry_flow import FlowResult as FlowResult
13
12
  from homeassistant.loader import async_get_application_credentials as async_get_application_credentials
14
13
  from typing import Any
15
14
 
@@ -72,12 +71,12 @@ class AbstractOAuth2FlowHandler(config_entries.ConfigFlow, metaclass=ABCMeta):
72
71
  @property
73
72
  def extra_authorize_data(self) -> dict: ...
74
73
  async def async_generate_authorize_url(self) -> str: ...
75
- async def async_step_pick_implementation(self, user_input: dict | None = None) -> FlowResult: ...
76
- async def async_step_auth(self, user_input: dict[str, Any] | None = None) -> FlowResult: ...
77
- async def async_step_creation(self, user_input: dict[str, Any] | None = None) -> FlowResult: ...
78
- async def async_step_authorize_rejected(self, data: None = None) -> FlowResult: ...
79
- async def async_oauth_create_entry(self, data: dict) -> FlowResult: ...
80
- async def async_step_user(self, user_input: dict[str, Any] | None = None) -> FlowResult: ...
74
+ async def async_step_pick_implementation(self, user_input: dict | None = None) -> config_entries.ConfigFlowResult: ...
75
+ async def async_step_auth(self, user_input: dict[str, Any] | None = None) -> config_entries.ConfigFlowResult: ...
76
+ async def async_step_creation(self, user_input: dict[str, Any] | None = None) -> config_entries.ConfigFlowResult: ...
77
+ async def async_step_authorize_rejected(self, data: None = None) -> config_entries.ConfigFlowResult: ...
78
+ async def async_oauth_create_entry(self, data: dict) -> config_entries.ConfigFlowResult: ...
79
+ async def async_step_user(self, user_input: dict[str, Any] | None = None) -> config_entries.ConfigFlowResult: ...
81
80
  @classmethod
82
81
  def async_register_implementation(cls, hass: HomeAssistant, local_impl: LocalOAuth2Implementation) -> None: ...
83
82
 
@@ -6,7 +6,7 @@ from _typeshed import Incomplete
6
6
  from collections.abc import Callable as Callable, Hashable
7
7
  from datetime import date as date_sys, datetime as datetime_sys, time as time_sys, timedelta
8
8
  from enum import Enum, StrEnum
9
- from homeassistant.const import ATTR_AREA_ID as ATTR_AREA_ID, ATTR_DEVICE_ID as ATTR_DEVICE_ID, ATTR_ENTITY_ID as ATTR_ENTITY_ID, CONF_ABOVE as CONF_ABOVE, CONF_ALIAS as CONF_ALIAS, CONF_ATTRIBUTE as CONF_ATTRIBUTE, CONF_BELOW as CONF_BELOW, CONF_CHOOSE as CONF_CHOOSE, CONF_CONDITION as CONF_CONDITION, CONF_CONDITIONS as CONF_CONDITIONS, CONF_CONTINUE_ON_ERROR as CONF_CONTINUE_ON_ERROR, CONF_CONTINUE_ON_TIMEOUT as CONF_CONTINUE_ON_TIMEOUT, CONF_COUNT as CONF_COUNT, CONF_DEFAULT as CONF_DEFAULT, CONF_DELAY as CONF_DELAY, CONF_DEVICE_ID as CONF_DEVICE_ID, CONF_DOMAIN as CONF_DOMAIN, CONF_ELSE as CONF_ELSE, CONF_ENABLED as CONF_ENABLED, CONF_ENTITY_ID as CONF_ENTITY_ID, CONF_ENTITY_NAMESPACE as CONF_ENTITY_NAMESPACE, CONF_ERROR as CONF_ERROR, CONF_EVENT as CONF_EVENT, CONF_EVENT_DATA as CONF_EVENT_DATA, CONF_EVENT_DATA_TEMPLATE as CONF_EVENT_DATA_TEMPLATE, CONF_FOR as CONF_FOR, CONF_FOR_EACH as CONF_FOR_EACH, CONF_ID as CONF_ID, CONF_IF as CONF_IF, CONF_MATCH as CONF_MATCH, CONF_PARALLEL as CONF_PARALLEL, CONF_PLATFORM as CONF_PLATFORM, CONF_REPEAT as CONF_REPEAT, CONF_RESPONSE_VARIABLE as CONF_RESPONSE_VARIABLE, CONF_SCAN_INTERVAL as CONF_SCAN_INTERVAL, CONF_SCENE as CONF_SCENE, CONF_SEQUENCE as CONF_SEQUENCE, CONF_SERVICE as CONF_SERVICE, CONF_SERVICE_DATA as CONF_SERVICE_DATA, CONF_SERVICE_DATA_TEMPLATE as CONF_SERVICE_DATA_TEMPLATE, CONF_SERVICE_TEMPLATE as CONF_SERVICE_TEMPLATE, CONF_SET_CONVERSATION_RESPONSE as CONF_SET_CONVERSATION_RESPONSE, CONF_STATE as CONF_STATE, CONF_STOP as CONF_STOP, CONF_TARGET as CONF_TARGET, CONF_THEN as CONF_THEN, CONF_TIMEOUT as CONF_TIMEOUT, CONF_UNTIL as CONF_UNTIL, CONF_VALUE_TEMPLATE as CONF_VALUE_TEMPLATE, CONF_VARIABLES as CONF_VARIABLES, CONF_WAIT_FOR_TRIGGER as CONF_WAIT_FOR_TRIGGER, CONF_WAIT_TEMPLATE as CONF_WAIT_TEMPLATE, CONF_WHILE as CONF_WHILE, ENTITY_MATCH_ALL as ENTITY_MATCH_ALL, ENTITY_MATCH_ANY as ENTITY_MATCH_ANY, ENTITY_MATCH_NONE as ENTITY_MATCH_NONE, SUN_EVENT_SUNRISE as SUN_EVENT_SUNRISE, SUN_EVENT_SUNSET as SUN_EVENT_SUNSET, UnitOfTemperature as UnitOfTemperature, WEEKDAYS as WEEKDAYS
9
+ from homeassistant.const import ATTR_AREA_ID as ATTR_AREA_ID, ATTR_DEVICE_ID as ATTR_DEVICE_ID, ATTR_ENTITY_ID as ATTR_ENTITY_ID, ATTR_FLOOR_ID as ATTR_FLOOR_ID, ATTR_LABEL_ID as ATTR_LABEL_ID, CONF_ABOVE as CONF_ABOVE, CONF_ALIAS as CONF_ALIAS, CONF_ATTRIBUTE as CONF_ATTRIBUTE, CONF_BELOW as CONF_BELOW, CONF_CHOOSE as CONF_CHOOSE, CONF_CONDITION as CONF_CONDITION, CONF_CONDITIONS as CONF_CONDITIONS, CONF_CONTINUE_ON_ERROR as CONF_CONTINUE_ON_ERROR, CONF_CONTINUE_ON_TIMEOUT as CONF_CONTINUE_ON_TIMEOUT, CONF_COUNT as CONF_COUNT, CONF_DEFAULT as CONF_DEFAULT, CONF_DELAY as CONF_DELAY, CONF_DEVICE_ID as CONF_DEVICE_ID, CONF_DOMAIN as CONF_DOMAIN, CONF_ELSE as CONF_ELSE, CONF_ENABLED as CONF_ENABLED, CONF_ENTITY_ID as CONF_ENTITY_ID, CONF_ENTITY_NAMESPACE as CONF_ENTITY_NAMESPACE, CONF_ERROR as CONF_ERROR, CONF_EVENT as CONF_EVENT, CONF_EVENT_DATA as CONF_EVENT_DATA, CONF_EVENT_DATA_TEMPLATE as CONF_EVENT_DATA_TEMPLATE, CONF_FOR as CONF_FOR, CONF_FOR_EACH as CONF_FOR_EACH, CONF_ID as CONF_ID, CONF_IF as CONF_IF, CONF_MATCH as CONF_MATCH, CONF_PARALLEL as CONF_PARALLEL, CONF_PLATFORM as CONF_PLATFORM, CONF_REPEAT as CONF_REPEAT, CONF_RESPONSE_VARIABLE as CONF_RESPONSE_VARIABLE, CONF_SCAN_INTERVAL as CONF_SCAN_INTERVAL, CONF_SCENE as CONF_SCENE, CONF_SEQUENCE as CONF_SEQUENCE, CONF_SERVICE as CONF_SERVICE, CONF_SERVICE_DATA as CONF_SERVICE_DATA, CONF_SERVICE_DATA_TEMPLATE as CONF_SERVICE_DATA_TEMPLATE, CONF_SERVICE_TEMPLATE as CONF_SERVICE_TEMPLATE, CONF_SET_CONVERSATION_RESPONSE as CONF_SET_CONVERSATION_RESPONSE, CONF_STATE as CONF_STATE, CONF_STOP as CONF_STOP, CONF_TARGET as CONF_TARGET, CONF_THEN as CONF_THEN, CONF_TIMEOUT as CONF_TIMEOUT, CONF_UNTIL as CONF_UNTIL, CONF_VALUE_TEMPLATE as CONF_VALUE_TEMPLATE, CONF_VARIABLES as CONF_VARIABLES, CONF_WAIT_FOR_TRIGGER as CONF_WAIT_FOR_TRIGGER, CONF_WAIT_TEMPLATE as CONF_WAIT_TEMPLATE, CONF_WHILE as CONF_WHILE, ENTITY_MATCH_ALL as ENTITY_MATCH_ALL, ENTITY_MATCH_ANY as ENTITY_MATCH_ANY, ENTITY_MATCH_NONE as ENTITY_MATCH_NONE, SUN_EVENT_SUNRISE as SUN_EVENT_SUNRISE, SUN_EVENT_SUNSET as SUN_EVENT_SUNSET, UnitOfTemperature as UnitOfTemperature, WEEKDAYS as WEEKDAYS
10
10
  from homeassistant.core import HomeAssistant as HomeAssistant, async_get_hass as async_get_hass, split_entity_id as split_entity_id, valid_entity_id as valid_entity_id
11
11
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, TemplateError as TemplateError
12
12
  from homeassistant.generated import currencies as currencies
@@ -140,6 +140,11 @@ PLATFORM_SCHEMA: Incomplete
140
140
  PLATFORM_SCHEMA_BASE: Incomplete
141
141
  ENTITY_SERVICE_FIELDS: Incomplete
142
142
  TARGET_SERVICE_FIELDS: Incomplete
143
+ _HAS_ENTITY_SERVICE_FIELD: Incomplete
144
+
145
+ def _make_entity_service_schema(schema: dict, extra: int) -> vol.Schema: ...
146
+
147
+ BASE_ENTITY_SCHEMA: Incomplete
143
148
 
144
149
  def make_entity_service_schema(schema: dict, *, extra: int = ...) -> vol.Schema: ...
145
150
 
@@ -215,6 +220,8 @@ SCRIPT_ACTION_STOP: str
215
220
  SCRIPT_ACTION_VARIABLES: str
216
221
  SCRIPT_ACTION_WAIT_FOR_TRIGGER: str
217
222
  SCRIPT_ACTION_WAIT_TEMPLATE: str
223
+ ACTIONS_MAP: Incomplete
224
+ ACTIONS_SET: Incomplete
218
225
 
219
226
  def determine_script_action(action: dict[str, Any]) -> str: ...
220
227
 
@@ -3,18 +3,22 @@ from aiohttp import web as web
3
3
  from homeassistant import data_entry_flow as data_entry_flow
4
4
  from homeassistant.components.http import HomeAssistantView as HomeAssistantView
5
5
  from homeassistant.components.http.data_validator import RequestDataValidator as RequestDataValidator
6
- from typing import Any
6
+ from typing import Any, Generic
7
+ from typing_extensions import TypeVar
7
8
 
8
- class _BaseFlowManagerView(HomeAssistantView):
9
+ _FlowManagerT = TypeVar('_FlowManagerT', bound='data_entry_flow.FlowManager[Any]', default=data_entry_flow.FlowManager)
10
+
11
+ class _BaseFlowManagerView(HomeAssistantView, Generic[_FlowManagerT]):
9
12
  _flow_mgr: Incomplete
10
- def __init__(self, flow_mgr: data_entry_flow.FlowManager) -> None: ...
13
+ def __init__(self, flow_mgr: _FlowManagerT) -> None: ...
11
14
  def _prepare_result_json(self, result: data_entry_flow.FlowResult) -> data_entry_flow.FlowResult: ...
12
15
 
13
- class FlowManagerIndexView(_BaseFlowManagerView):
16
+ class FlowManagerIndexView(_BaseFlowManagerView[_FlowManagerT]):
14
17
  async def post(self, request: web.Request, data: dict[str, Any]) -> web.Response: ...
18
+ async def _post_impl(self, request: web.Request, data: dict[str, Any]) -> web.Response: ...
15
19
  def get_context(self, data: dict[str, Any]) -> dict[str, Any]: ...
16
20
 
17
- class FlowManagerResourceView(_BaseFlowManagerView):
21
+ class FlowManagerResourceView(_BaseFlowManagerView[_FlowManagerT]):
18
22
  async def get(self, request: web.Request, flow_id: str) -> web.Response: ...
19
23
  async def post(self, request: web.Request, data: dict[str, Any], flow_id: str) -> web.Response: ...
20
24
  async def delete(self, request: web.Request, flow_id: str) -> web.Response: ...
@@ -15,9 +15,10 @@ class Debouncer(Generic[_R_co]):
15
15
  _timer_task: Incomplete
16
16
  _execute_at_end_of_timer: bool
17
17
  _execute_lock: Incomplete
18
+ _background: Incomplete
18
19
  _job: Incomplete
19
20
  _shutdown_requested: bool
20
- def __init__(self, hass: HomeAssistant, logger: Logger, *, cooldown: float, immediate: bool, function: Callable[[], _R_co] | None = None) -> None: ...
21
+ def __init__(self, hass: HomeAssistant, logger: Logger, *, cooldown: float, immediate: bool, function: Callable[[], _R_co] | None = None, background: bool = False) -> None: ...
21
22
  @property
22
23
  def function(self) -> Callable[[], _R_co] | None: ...
23
24
  @function.setter
@@ -2,7 +2,8 @@ from . import entity_registry as entity_registry, storage as storage, translatio
2
2
  from .debounce import Debouncer as Debouncer
3
3
  from .deprecation import DeprecatedConstantEnum as DeprecatedConstantEnum, 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
4
4
  from .frame import report as report
5
- from .json import JSON_DUMP as JSON_DUMP, find_paths_unserializable_data as find_paths_unserializable_data, json_bytes as json_bytes
5
+ from .json import JSON_DUMP as JSON_DUMP, find_paths_unserializable_data as find_paths_unserializable_data, json_bytes as json_bytes, json_fragment as json_fragment
6
+ from .registry import BaseRegistry as BaseRegistry
6
7
  from .typing import UNDEFINED as UNDEFINED, UndefinedType as UndefinedType
7
8
  from _typeshed import Incomplete
8
9
  from collections import UserDict
@@ -24,7 +25,6 @@ EVENT_DEVICE_REGISTRY_UPDATED: str
24
25
  STORAGE_KEY: str
25
26
  STORAGE_VERSION_MAJOR: int
26
27
  STORAGE_VERSION_MINOR: int
27
- SAVE_DELAY: int
28
28
  CLEANUP_DELAY: int
29
29
  CONNECTION_BLUETOOTH: str
30
30
  CONNECTION_NETWORK_MAC: str
@@ -85,6 +85,9 @@ class DeviceInfoError(HomeAssistantError):
85
85
  def __init__(self, domain: str, device_info: DeviceInfo, message: str) -> None: ...
86
86
 
87
87
  def _validate_device_info(config_entry: ConfigEntry, device_info: DeviceInfo) -> str: ...
88
+
89
+ _cached_parse_url: Incomplete
90
+
88
91
  def _validate_configuration_url(value: Any) -> str | None: ...
89
92
 
90
93
  class DeviceEntry:
@@ -112,6 +115,7 @@ class DeviceEntry:
112
115
  @property
113
116
  def dict_repr(self) -> dict[str, Any]: ...
114
117
  def json_repr(self) -> bytes | None: ...
118
+ def as_storage_fragment(self) -> json_fragment: ...
115
119
  def __init__(self, area_id, config_entries, configuration_url, connections, disabled_by, entry_type, hw_version, id, identifiers, labels, manufacturer, model, name_by_user, name, serial_number, suggested_area, sw_version, via_device_id, is_new) -> None: ...
116
120
  def __lt__(self, other): ...
117
121
  def __le__(self, other): ...
@@ -125,6 +129,7 @@ class DeletedDeviceEntry:
125
129
  id: str
126
130
  orphaned_timestamp: float | None
127
131
  def to_device_entry(self, config_entry_id: str, connections: set[tuple[str, str]], identifiers: set[tuple[str, str]]) -> DeviceEntry: ...
132
+ def as_storage_fragment(self) -> json_fragment: ...
128
133
  def __init__(self, config_entries, connections, identifiers, id, orphaned_timestamp) -> None: ...
129
134
  def __lt__(self, other): ...
130
135
  def __le__(self, other): ...
@@ -146,7 +151,7 @@ class DeviceRegistryItems(UserDict[str, _EntryTypeT]):
146
151
  def __delitem__(self, key: str) -> None: ...
147
152
  def get_entry(self, identifiers: set[tuple[str, str]] | None, connections: set[tuple[str, str]] | None) -> _EntryTypeT | None: ...
148
153
 
149
- class DeviceRegistry:
154
+ class DeviceRegistry(BaseRegistry):
150
155
  devices: DeviceRegistryItems[DeviceEntry]
151
156
  deleted_devices: DeviceRegistryItems[DeletedDeviceEntry]
152
157
  _device_data: dict[str, DeviceEntry]
@@ -161,8 +166,7 @@ class DeviceRegistry:
161
166
  def async_update_device(self, device_id: str, *, add_config_entry_id: str | UndefinedType = ..., area_id: str | None | UndefinedType = ..., configuration_url: str | URL | None | UndefinedType = ..., disabled_by: DeviceEntryDisabler | None | UndefinedType = ..., entry_type: DeviceEntryType | None | UndefinedType = ..., hw_version: str | None | UndefinedType = ..., labels: set[str] | UndefinedType = ..., manufacturer: str | None | UndefinedType = ..., merge_connections: set[tuple[str, str]] | UndefinedType = ..., merge_identifiers: set[tuple[str, str]] | UndefinedType = ..., model: str | None | UndefinedType = ..., name_by_user: str | None | UndefinedType = ..., name: str | None | UndefinedType = ..., new_identifiers: set[tuple[str, str]] | UndefinedType = ..., remove_config_entry_id: str | UndefinedType = ..., serial_number: str | None | UndefinedType = ..., suggested_area: str | None | UndefinedType = ..., sw_version: str | None | UndefinedType = ..., via_device_id: str | None | UndefinedType = ...) -> DeviceEntry | None: ...
162
167
  def async_remove_device(self, device_id: str) -> None: ...
163
168
  async def async_load(self) -> None: ...
164
- def async_schedule_save(self) -> None: ...
165
- def _data_to_save(self) -> dict[str, list[dict[str, Any]]]: ...
169
+ def _data_to_save(self) -> dict[str, Any]: ...
166
170
  def async_clear_config_entry(self, config_entry_id: str) -> None: ...
167
171
  def async_purge_expired_orphaned_devices(self) -> None: ...
168
172
  def async_clear_area_id(self, area_id: str) -> None: ...
@@ -1,3 +1,4 @@
1
+ from ..util.signal_type import SignalTypeFormat as SignalTypeFormat
1
2
  from .dispatcher import async_dispatcher_connect as async_dispatcher_connect, async_dispatcher_send as async_dispatcher_send
2
3
  from .typing import ConfigType as ConfigType, DiscoveryInfoType as DiscoveryInfoType
3
4
  from collections.abc import Callable as Callable, Coroutine
@@ -6,7 +7,7 @@ from homeassistant.const import Platform as Platform
6
7
  from homeassistant.loader import bind_hass as bind_hass
7
8
  from typing import Any, TypedDict
8
9
 
9
- SIGNAL_PLATFORM_DISCOVERED: str
10
+ SIGNAL_PLATFORM_DISCOVERED: SignalTypeFormat[DiscoveryDict]
10
11
  EVENT_LOAD_PLATFORM: str
11
12
  ATTR_PLATFORM: str
12
13
  ATTR_DISCOVERED: str
@@ -1,8 +1,8 @@
1
1
  from _typeshed import Incomplete
2
2
  from collections.abc import Coroutine
3
+ from homeassistant.config_entries import ConfigFlowResult as ConfigFlowResult
3
4
  from homeassistant.const import EVENT_HOMEASSISTANT_STARTED as EVENT_HOMEASSISTANT_STARTED
4
5
  from homeassistant.core import CoreState as CoreState, Event as Event, HomeAssistant as HomeAssistant, callback as callback
5
- from homeassistant.data_entry_flow import FlowResult as FlowResult
6
6
  from homeassistant.loader import bind_hass as bind_hass
7
7
  from homeassistant.util.async_ import gather_with_limited_concurrency as gather_with_limited_concurrency
8
8
  from typing import Any, NamedTuple
@@ -11,7 +11,7 @@ FLOW_INIT_LIMIT: int
11
11
  DISCOVERY_FLOW_DISPATCHER: str
12
12
 
13
13
  def async_create_flow(hass: HomeAssistant, domain: str, context: dict[str, Any], data: Any) -> None: ...
14
- def _async_init_flow(hass: HomeAssistant, domain: str, context: dict[str, Any], data: Any) -> Coroutine[None, None, FlowResult] | None: ...
14
+ def _async_init_flow(hass: HomeAssistant, domain: str, context: dict[str, Any], data: Any) -> Coroutine[None, None, ConfigFlowResult] | None: ...
15
15
 
16
16
  class PendingFlowKey(NamedTuple):
17
17
  domain: str
@@ -1,23 +1,15 @@
1
1
  from _typeshed import Incomplete
2
2
  from collections.abc import Callable, Coroutine
3
- from dataclasses import dataclass
4
3
  from homeassistant.core import HassJob as HassJob, HomeAssistant as HomeAssistant, callback as callback
5
4
  from homeassistant.loader import bind_hass as bind_hass
6
5
  from homeassistant.util.async_ import run_callback_threadsafe as run_callback_threadsafe
7
6
  from homeassistant.util.logging import catch_log_exception as catch_log_exception
8
- from typing import Any, Generic, TypeVarTuple, overload
7
+ from homeassistant.util.signal_type import SignalType as SignalType
8
+ from typing import Any, TypeVarTuple, overload
9
9
 
10
10
  _Ts = TypeVarTuple('_Ts')
11
11
  _LOGGER: Incomplete
12
12
  DATA_DISPATCHER: str
13
-
14
- @dataclass(frozen=True)
15
- class SignalType(Generic[*_Ts]):
16
- name: str
17
- def __hash__(self) -> int: ...
18
- def __eq__(self, other: Any) -> bool: ...
19
- def __init__(self, name) -> None: ...
20
-
21
13
  _DispatcherDataType: Incomplete
22
14
 
23
15
  @overload