homeassistant-stubs 2024.3.3__py3-none-any.whl → 2024.4.0b0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (863) 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 +7 -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/config_flow.pyi +11 -12
  279. homeassistant-stubs/components/fritzbox/config_flow.pyi +7 -8
  280. homeassistant-stubs/components/fritzbox_callmonitor/config_flow.pyi +9 -10
  281. homeassistant-stubs/components/fronius/config_flow.pyi +5 -6
  282. homeassistant-stubs/components/frontend/__init__.pyi +1 -1
  283. homeassistant-stubs/components/fully_kiosk/button.pyi +3 -7
  284. homeassistant-stubs/components/fully_kiosk/config_flow.pyi +7 -8
  285. homeassistant-stubs/components/fully_kiosk/switch.pyi +3 -7
  286. homeassistant-stubs/components/generic_hygrostat/humidifier.pyi +5 -5
  287. homeassistant-stubs/components/generic_thermostat/climate.pyi +3 -3
  288. homeassistant-stubs/components/geo_location/trigger.pyi +2 -2
  289. homeassistant-stubs/components/geocaching/config_flow.pyi +4 -4
  290. homeassistant-stubs/components/geocaching/sensor.pyi +3 -7
  291. homeassistant-stubs/components/gios/config_flow.pyi +3 -4
  292. homeassistant-stubs/components/glances/config_flow.pyi +6 -7
  293. homeassistant-stubs/components/glances/sensor.pyi +3 -7
  294. homeassistant-stubs/components/goalzero/config_flow.pyi +5 -6
  295. homeassistant-stubs/components/google/config_flow.pyi +11 -12
  296. homeassistant-stubs/components/google_assistant_sdk/config_flow.pyi +8 -10
  297. homeassistant-stubs/components/google_sheets/config_flow.pyi +4 -5
  298. homeassistant-stubs/components/gpsd/config_flow.pyi +4 -5
  299. homeassistant-stubs/components/group/__init__.pyi +7 -102
  300. homeassistant-stubs/components/group/binary_sensor.pyi +1 -1
  301. homeassistant-stubs/components/group/config_flow.pyi +2 -2
  302. homeassistant-stubs/components/group/const.pyi +12 -0
  303. homeassistant-stubs/components/group/cover.pyi +1 -1
  304. homeassistant-stubs/components/group/entity.pyi +81 -0
  305. homeassistant-stubs/components/group/event.pyi +3 -3
  306. homeassistant-stubs/components/group/fan.pyi +1 -1
  307. homeassistant-stubs/components/group/light.pyi +1 -1
  308. homeassistant-stubs/components/group/lock.pyi +1 -1
  309. homeassistant-stubs/components/group/media_player.pyi +3 -3
  310. homeassistant-stubs/components/group/registry.pyi +23 -0
  311. homeassistant-stubs/components/group/sensor.pyi +1 -1
  312. homeassistant-stubs/components/group/switch.pyi +1 -1
  313. homeassistant-stubs/components/guardian/config_flow.pyi +7 -8
  314. homeassistant-stubs/components/hardkernel/config_flow.pyi +2 -3
  315. homeassistant-stubs/components/here_travel_time/__init__.pyi +1 -0
  316. homeassistant-stubs/components/here_travel_time/config_flow.pyi +17 -18
  317. homeassistant-stubs/components/here_travel_time/sensor.pyi +0 -1
  318. homeassistant-stubs/components/history/__init__.pyi +1 -1
  319. homeassistant-stubs/components/history/websocket_api.pyi +2 -2
  320. homeassistant-stubs/components/history_stats/coordinator.pyi +2 -3
  321. homeassistant-stubs/components/history_stats/data.pyi +2 -3
  322. homeassistant-stubs/components/holiday/config_flow.pyi +7 -5
  323. homeassistant-stubs/components/homeassistant/trigger.pyi +2 -1
  324. homeassistant-stubs/components/homeassistant/triggers/event.pyi +5 -1
  325. homeassistant-stubs/components/homeassistant/triggers/homeassistant.pyi +1 -0
  326. homeassistant-stubs/components/homeassistant/triggers/numeric_state.pyi +2 -2
  327. homeassistant-stubs/components/homeassistant/triggers/state.pyi +2 -2
  328. homeassistant-stubs/components/homeassistant/triggers/time.pyi +2 -2
  329. homeassistant-stubs/components/homeassistant_green/config_flow.pyi +4 -5
  330. homeassistant-stubs/components/homeassistant_hardware/silabs_multiprotocol_addon.pyi +29 -29
  331. homeassistant-stubs/components/homeassistant_sky_connect/__init__.pyi +1 -1
  332. homeassistant-stubs/components/homeassistant_sky_connect/config_flow.pyi +6 -5
  333. homeassistant-stubs/components/homeassistant_sky_connect/const.pyi +18 -0
  334. homeassistant-stubs/components/homeassistant_sky_connect/hardware.pyi +1 -1
  335. homeassistant-stubs/components/homeassistant_sky_connect/util.pyi +2 -0
  336. homeassistant-stubs/components/homeassistant_yellow/config_flow.pyi +9 -10
  337. homeassistant-stubs/components/homekit/__init__.pyi +9 -6
  338. homeassistant-stubs/components/homekit/accessories.pyi +5 -6
  339. homeassistant-stubs/components/homekit/config_flow.pyi +16 -18
  340. homeassistant-stubs/components/homekit/const.pyi +3 -0
  341. homeassistant-stubs/components/homekit/type_cameras.pyi +3 -4
  342. homeassistant-stubs/components/homekit/type_covers.pyi +2 -3
  343. homeassistant-stubs/components/homekit/type_humidifiers.pyi +2 -3
  344. homeassistant-stubs/components/homekit/util.pyi +2 -3
  345. homeassistant-stubs/components/homekit_controller/__init__.pyi +1 -0
  346. homeassistant-stubs/components/homekit_controller/config_flow.pyi +13 -13
  347. homeassistant-stubs/components/homekit_controller/select.pyi +3 -7
  348. homeassistant-stubs/components/homewizard/config_flow.pyi +7 -7
  349. homeassistant-stubs/components/homewizard/coordinator.pyi +0 -1
  350. homeassistant-stubs/components/homeworks/__init__.pyi +63 -0
  351. homeassistant-stubs/components/homeworks/binary_sensor.pyi +25 -0
  352. homeassistant-stubs/components/homeworks/button.pyi +18 -0
  353. homeassistant-stubs/components/homeworks/config_flow.pyi +61 -0
  354. homeassistant-stubs/components/homeworks/const.pyi +14 -0
  355. homeassistant-stubs/components/homeworks/light.pyi +34 -0
  356. homeassistant-stubs/components/http/__init__.pyi +4 -3
  357. homeassistant-stubs/components/http/ban.pyi +4 -3
  358. homeassistant-stubs/components/http/const.pyi +1 -2
  359. homeassistant-stubs/components/http/cors.pyi +1 -0
  360. homeassistant-stubs/components/http/static.pyi +0 -1
  361. homeassistant-stubs/components/huawei_lte/config_flow.pyi +12 -13
  362. homeassistant-stubs/components/huawei_lte/select.pyi +3 -7
  363. homeassistant-stubs/components/humidifier/__init__.pyi +8 -8
  364. homeassistant-stubs/components/hydrawise/config_flow.pyi +8 -8
  365. homeassistant-stubs/components/hyperion/config_flow.pyi +12 -13
  366. homeassistant-stubs/components/hyperion/const.pyi +2 -0
  367. homeassistant-stubs/components/hyperion/sensor.pyi +39 -0
  368. homeassistant-stubs/components/ibeacon/config_flow.pyi +7 -8
  369. homeassistant-stubs/components/ibeacon/device_tracker.pyi +1 -2
  370. homeassistant-stubs/components/ibeacon/sensor.pyi +3 -7
  371. homeassistant-stubs/components/idasen_desk/button.pyi +4 -8
  372. homeassistant-stubs/components/idasen_desk/config_flow.pyi +4 -5
  373. homeassistant-stubs/components/idasen_desk/cover.pyi +3 -3
  374. homeassistant-stubs/components/idasen_desk/sensor.pyi +3 -7
  375. homeassistant-stubs/components/image/__init__.pyi +2 -2
  376. homeassistant-stubs/components/image_processing/__init__.pyi +1 -1
  377. homeassistant-stubs/components/image_upload/__init__.pyi +1 -1
  378. homeassistant-stubs/components/imap/config_flow.pyi +10 -10
  379. homeassistant-stubs/components/integration/sensor.pyi +36 -5
  380. homeassistant-stubs/components/ios/__init__.pyi +1 -1
  381. homeassistant-stubs/components/ipp/config_flow.pyi +5 -6
  382. homeassistant-stubs/components/ipp/sensor.pyi +3 -7
  383. homeassistant-stubs/components/iqvia/config_flow.pyi +3 -4
  384. homeassistant-stubs/components/islamic_prayer_times/config_flow.pyi +7 -8
  385. homeassistant-stubs/components/isy994/config_flow.pyi +18 -17
  386. homeassistant-stubs/components/jellyfin/config_flow.pyi +5 -6
  387. homeassistant-stubs/components/jellyfin/sensor.pyi +3 -7
  388. homeassistant-stubs/components/jvc_projector/config_flow.pyi +4 -5
  389. homeassistant-stubs/components/jvc_projector/sensor.pyi +20 -0
  390. homeassistant-stubs/components/kaleidescape/config_flow.pyi +4 -5
  391. homeassistant-stubs/components/kaleidescape/sensor.pyi +3 -7
  392. homeassistant-stubs/components/knx/config_flow.pyi +18 -19
  393. homeassistant-stubs/components/knx/expose.pyi +3 -3
  394. homeassistant-stubs/components/kraken/config_flow.pyi +7 -8
  395. homeassistant-stubs/components/kraken/sensor.pyi +3 -7
  396. homeassistant-stubs/components/lacrosse_view/config_flow.pyi +5 -6
  397. homeassistant-stubs/components/lacrosse_view/sensor.pyi +3 -7
  398. homeassistant-stubs/components/lamarzocco/config_flow.pyi +16 -8
  399. homeassistant-stubs/components/lamarzocco/const.pyi +1 -0
  400. homeassistant-stubs/components/lamarzocco/coordinator.pyi +7 -2
  401. homeassistant-stubs/components/lametric/config_flow.pyi +11 -11
  402. homeassistant-stubs/components/laundrify/binary_sensor.pyi +1 -1
  403. homeassistant-stubs/components/laundrify/config_flow.pyi +5 -6
  404. homeassistant-stubs/components/lcn/config_flow.pyi +4 -5
  405. homeassistant-stubs/components/ld2410_ble/config_flow.pyi +4 -5
  406. homeassistant-stubs/components/led_ble/config_flow.pyi +4 -5
  407. homeassistant-stubs/components/lidarr/config_flow.pyi +4 -5
  408. homeassistant-stubs/components/lifx/config_flow.pyi +10 -11
  409. homeassistant-stubs/components/linear_garage_door/config_flow.pyi +5 -6
  410. homeassistant-stubs/components/litejet/config_flow.pyi +7 -8
  411. homeassistant-stubs/components/litterrobot/config_flow.pyi +5 -6
  412. homeassistant-stubs/components/litterrobot/switch.pyi +2 -5
  413. homeassistant-stubs/components/local_ip/config_flow.pyi +2 -3
  414. homeassistant-stubs/components/local_ip/sensor.pyi +1 -1
  415. homeassistant-stubs/components/local_todo/config_flow.pyi +3 -4
  416. homeassistant-stubs/components/logbook/helpers.pyi +1 -2
  417. homeassistant-stubs/components/logbook/rest_api.pyi +1 -1
  418. homeassistant-stubs/components/logbook/websocket_api.pyi +1 -0
  419. homeassistant-stubs/components/lookin/config_flow.pyi +5 -6
  420. homeassistant-stubs/components/luftdaten/config_flow.pyi +4 -5
  421. homeassistant-stubs/components/map/__init__.pyi +6 -1
  422. homeassistant-stubs/components/matter/config_flow.pyi +14 -14
  423. homeassistant-stubs/components/met_eireann/config_flow.pyi +3 -4
  424. homeassistant-stubs/components/met_eireann/weather.pyi +1 -5
  425. homeassistant-stubs/components/metoffice/config_flow.pyi +7 -6
  426. homeassistant-stubs/components/metoffice/weather.pyi +2 -5
  427. homeassistant-stubs/components/mikrotik/config_flow.pyi +11 -12
  428. homeassistant-stubs/components/min_max/sensor.pyi +3 -3
  429. homeassistant-stubs/components/minecraft_server/binary_sensor.pyi +2 -9
  430. homeassistant-stubs/components/minecraft_server/config_flow.pyi +3 -4
  431. homeassistant-stubs/components/minecraft_server/sensor.pyi +3 -16
  432. homeassistant-stubs/components/mjpeg/config_flow.pyi +3 -4
  433. homeassistant-stubs/components/modbus/__init__.pyi +2 -2
  434. homeassistant-stubs/components/modbus/base_platform.pyi +1 -3
  435. homeassistant-stubs/components/modbus/const.pyi +0 -2
  436. homeassistant-stubs/components/modbus/modbus.pyi +3 -5
  437. homeassistant-stubs/components/modbus/validators.pyi +7 -2
  438. homeassistant-stubs/components/modem_callerid/button.pyi +0 -1
  439. homeassistant-stubs/components/modem_callerid/config_flow.pyi +5 -6
  440. homeassistant-stubs/components/modem_callerid/const.pyi +0 -1
  441. homeassistant-stubs/components/modem_callerid/sensor.pyi +2 -2
  442. homeassistant-stubs/components/moon/config_flow.pyi +2 -3
  443. homeassistant-stubs/components/moon/sensor.pyi +0 -2
  444. homeassistant-stubs/components/mopeka/config_flow.pyi +4 -5
  445. homeassistant-stubs/components/motionmount/config_flow.pyi +6 -7
  446. homeassistant-stubs/components/mqtt/__init__.pyi +2 -2
  447. homeassistant-stubs/components/mqtt/climate.pyi +1 -1
  448. homeassistant-stubs/components/mqtt/config_flow.pyi +8 -9
  449. homeassistant-stubs/components/mqtt/const.pyi +0 -1
  450. homeassistant-stubs/components/mqtt/discovery.pyi +6 -4
  451. homeassistant-stubs/components/mqtt/event.pyi +2 -2
  452. homeassistant-stubs/components/mqtt/humidifier.pyi +1 -1
  453. homeassistant-stubs/components/mqtt/image.pyi +2 -2
  454. homeassistant-stubs/components/mqtt/light/schema_json.pyi +5 -2
  455. homeassistant-stubs/components/mqtt/mixins.pyi +7 -7
  456. homeassistant-stubs/components/mqtt/models.pyi +9 -3
  457. homeassistant-stubs/components/mqtt/sensor.pyi +4 -1
  458. homeassistant-stubs/components/mqtt/tag.pyi +3 -2
  459. homeassistant-stubs/components/mqtt/util.pyi +5 -1
  460. homeassistant-stubs/components/mysensors/config_flow.pyi +8 -10
  461. homeassistant-stubs/components/mysensors/gateway.pyi +1 -1
  462. homeassistant-stubs/components/myuplink/config_flow.pyi +4 -5
  463. homeassistant-stubs/components/myuplink/helpers.pyi +1 -0
  464. homeassistant-stubs/components/myuplink/number.pyi +1 -1
  465. homeassistant-stubs/components/myuplink/sensor.pyi +1 -1
  466. homeassistant-stubs/components/myuplink/switch.pyi +1 -1
  467. homeassistant-stubs/components/nam/config_flow.pyi +8 -9
  468. homeassistant-stubs/components/nam/sensor.pyi +3 -7
  469. homeassistant-stubs/components/nanoleaf/config_flow.pyi +12 -13
  470. homeassistant-stubs/components/nanoleaf/light.pyi +1 -1
  471. homeassistant-stubs/components/neato/config_flow.pyi +5 -6
  472. homeassistant-stubs/components/neato/vacuum.pyi +0 -1
  473. homeassistant-stubs/components/nest/config_flow.pyi +10 -11
  474. homeassistant-stubs/components/netatmo/config_flow.pyi +12 -13
  475. homeassistant-stubs/components/netatmo/sensor.pyi +3 -7
  476. homeassistant-stubs/components/network/network.pyi +1 -0
  477. homeassistant-stubs/components/nextdns/config_flow.pyi +4 -5
  478. homeassistant-stubs/components/nfandroidtv/config_flow.pyi +3 -4
  479. homeassistant-stubs/components/nightscout/config_flow.pyi +5 -5
  480. homeassistant-stubs/components/notify/legacy.pyi +1 -1
  481. homeassistant-stubs/components/notion/__init__.pyi +4 -29
  482. homeassistant-stubs/components/notion/binary_sensor.pyi +1 -0
  483. homeassistant-stubs/components/notion/config_flow.pyi +5 -7
  484. homeassistant-stubs/components/notion/coordinator.pyi +44 -0
  485. homeassistant-stubs/components/notion/diagnostics.pyi +1 -2
  486. homeassistant-stubs/components/notion/sensor.pyi +1 -0
  487. homeassistant-stubs/components/nut/__init__.pyi +10 -9
  488. homeassistant-stubs/components/nut/config_flow.pyi +12 -12
  489. homeassistant-stubs/components/onboarding/__init__.pyi +16 -2
  490. homeassistant-stubs/components/onboarding/views.pyi +8 -6
  491. homeassistant-stubs/components/oncue/config_flow.pyi +3 -4
  492. homeassistant-stubs/components/onewire/config_flow.pyi +5 -6
  493. homeassistant-stubs/components/open_meteo/config_flow.pyi +2 -3
  494. homeassistant-stubs/components/open_meteo/weather.pyi +0 -2
  495. homeassistant-stubs/components/openexchangerates/config_flow.pyi +5 -5
  496. homeassistant-stubs/components/opensky/config_flow.pyi +3 -4
  497. homeassistant-stubs/components/opensky/sensor.pyi +1 -1
  498. homeassistant-stubs/components/openuv/config_flow.pyi +6 -8
  499. homeassistant-stubs/components/oralb/config_flow.pyi +4 -5
  500. homeassistant-stubs/components/otbr/config_flow.pyi +3 -4
  501. homeassistant-stubs/components/overkiz/alarm_control_panel.pyi +3 -7
  502. homeassistant-stubs/components/overkiz/binary_sensor.pyi +3 -7
  503. homeassistant-stubs/components/overkiz/climate_entities/hitachi_air_to_air_heat_pump_ovp.pyi +1 -0
  504. homeassistant-stubs/components/overkiz/config_flow.pyi +10 -12
  505. homeassistant-stubs/components/overkiz/executor.pyi +1 -1
  506. homeassistant-stubs/components/overkiz/number.pyi +3 -7
  507. homeassistant-stubs/components/overkiz/select.pyi +3 -7
  508. homeassistant-stubs/components/overkiz/switch.pyi +3 -7
  509. homeassistant-stubs/components/p1_monitor/config_flow.pyi +2 -3
  510. homeassistant-stubs/components/peco/config_flow.pyi +4 -5
  511. homeassistant-stubs/components/peco/sensor.pyi +3 -7
  512. homeassistant-stubs/components/persistent_notification/__init__.pyi +2 -1
  513. homeassistant-stubs/components/pi_hole/binary_sensor.pyi +3 -7
  514. homeassistant-stubs/components/pi_hole/config_flow.pyi +6 -7
  515. homeassistant-stubs/components/ping/binary_sensor.pyi +2 -3
  516. homeassistant-stubs/components/ping/config_flow.pyi +8 -9
  517. homeassistant-stubs/components/ping/coordinator.pyi +1 -1
  518. homeassistant-stubs/components/ping/entity.pyi +12 -0
  519. homeassistant-stubs/components/ping/sensor.pyi +29 -0
  520. homeassistant-stubs/components/plugwise/config_flow.pyi +3 -4
  521. homeassistant-stubs/components/poolsense/config_flow.pyi +3 -4
  522. homeassistant-stubs/components/powerwall/config_flow.pyi +12 -11
  523. homeassistant-stubs/components/private_ble_device/config_flow.pyi +2 -3
  524. homeassistant-stubs/components/private_ble_device/device_tracker.pyi +1 -2
  525. homeassistant-stubs/components/private_ble_device/sensor.pyi +3 -7
  526. homeassistant-stubs/components/prometheus/__init__.pyi +4 -4
  527. homeassistant-stubs/components/proximity/config_flow.pyi +4 -5
  528. homeassistant-stubs/components/proximity/coordinator.pyi +3 -3
  529. homeassistant-stubs/components/prusalink/__init__.pyi +1 -1
  530. homeassistant-stubs/components/prusalink/config_flow.pyi +6 -5
  531. homeassistant-stubs/components/pure_energie/config_flow.pyi +4 -5
  532. homeassistant-stubs/components/pure_energie/sensor.pyi +3 -7
  533. homeassistant-stubs/components/purpleair/config_flow.pyi +14 -17
  534. homeassistant-stubs/components/pushbullet/config_flow.pyi +3 -4
  535. homeassistant-stubs/components/pvoutput/config_flow.pyi +4 -5
  536. homeassistant-stubs/components/qnap_qsw/button.pyi +3 -7
  537. homeassistant-stubs/components/qnap_qsw/config_flow.pyi +6 -6
  538. homeassistant-stubs/components/rabbitair/config_flow.pyi +2 -3
  539. homeassistant-stubs/components/radarr/config_flow.pyi +4 -5
  540. homeassistant-stubs/components/rainforest_raven/config_flow.pyi +5 -6
  541. homeassistant-stubs/components/rainmachine/config_flow.pyi +8 -10
  542. homeassistant-stubs/components/raspberry_pi/config_flow.pyi +2 -3
  543. homeassistant-stubs/components/rdw/config_flow.pyi +2 -3
  544. homeassistant-stubs/components/recollect_waste/calendar.pyi +1 -1
  545. homeassistant-stubs/components/recollect_waste/config_flow.pyi +7 -8
  546. homeassistant-stubs/components/recorder/core.pyi +4 -3
  547. homeassistant-stubs/components/recorder/db_schema.pyi +7 -0
  548. homeassistant-stubs/components/recorder/history/modern.pyi +4 -4
  549. homeassistant-stubs/components/recorder/migration.pyi +47 -5
  550. homeassistant-stubs/components/recorder/models/legacy.pyi +10 -0
  551. homeassistant-stubs/components/recorder/models/state.pyi +4 -0
  552. homeassistant-stubs/components/recorder/queries.pyi +2 -1
  553. homeassistant-stubs/components/recorder/table_managers/states.pyi +3 -0
  554. homeassistant-stubs/components/renault/binary_sensor.pyi +3 -11
  555. homeassistant-stubs/components/renault/button.pyi +3 -7
  556. homeassistant-stubs/components/renault/config_flow.pyi +8 -9
  557. homeassistant-stubs/components/renault/select.pyi +3 -13
  558. homeassistant-stubs/components/renault/sensor.pyi +3 -12
  559. homeassistant-stubs/components/rest/__init__.pyi +1 -0
  560. homeassistant-stubs/components/rfxtrx/config_flow.pyi +12 -12
  561. homeassistant-stubs/components/rfxtrx/event.pyi +22 -0
  562. homeassistant-stubs/components/rhasspy/config_flow.pyi +3 -4
  563. homeassistant-stubs/components/ridwell/calendar.pyi +1 -1
  564. homeassistant-stubs/components/ridwell/config_flow.pyi +6 -7
  565. homeassistant-stubs/components/rituals_perfume_genie/config_flow.pyi +3 -4
  566. homeassistant-stubs/components/rituals_perfume_genie/switch.pyi +3 -7
  567. homeassistant-stubs/components/roku/binary_sensor.pyi +3 -7
  568. homeassistant-stubs/components/roku/config_flow.pyi +6 -7
  569. homeassistant-stubs/components/roku/select.pyi +6 -10
  570. homeassistant-stubs/components/roku/sensor.pyi +3 -7
  571. homeassistant-stubs/components/romy/config_flow.pyi +5 -6
  572. homeassistant-stubs/components/romy/entity.pyi +11 -0
  573. homeassistant-stubs/components/romy/vacuum.pyi +4 -11
  574. homeassistant-stubs/components/rpi_power/config_flow.pyi +2 -2
  575. homeassistant-stubs/components/rtsp_to_webrtc/config_flow.pyi +9 -10
  576. homeassistant-stubs/components/ruuvi_gateway/config_flow.pyi +5 -6
  577. homeassistant-stubs/components/ruuvitag_ble/config_flow.pyi +4 -5
  578. homeassistant-stubs/components/samsungtv/config_flow.pyi +17 -17
  579. homeassistant-stubs/components/samsungtv/media_player.pyi +1 -0
  580. homeassistant-stubs/components/scrape/config_flow.pyi +1 -0
  581. homeassistant-stubs/components/search/__init__.pyi +41 -20
  582. homeassistant-stubs/components/sensibo/binary_sensor.pyi +6 -14
  583. homeassistant-stubs/components/sensibo/button.pyi +3 -7
  584. homeassistant-stubs/components/sensibo/config_flow.pyi +6 -7
  585. homeassistant-stubs/components/sensibo/number.pyi +3 -7
  586. homeassistant-stubs/components/sensibo/select.pyi +3 -7
  587. homeassistant-stubs/components/sensibo/sensor.pyi +6 -14
  588. homeassistant-stubs/components/sensibo/switch.pyi +3 -7
  589. homeassistant-stubs/components/sensibo/update.pyi +3 -7
  590. homeassistant-stubs/components/sensirion_ble/config_flow.pyi +4 -5
  591. homeassistant-stubs/components/sfr_box/binary_sensor.pyi +3 -7
  592. homeassistant-stubs/components/sfr_box/button.pyi +3 -7
  593. homeassistant-stubs/components/sfr_box/config_flow.pyi +6 -7
  594. homeassistant-stubs/components/sfr_box/sensor.pyi +3 -7
  595. homeassistant-stubs/components/shelly/__init__.pyi +2 -2
  596. homeassistant-stubs/components/shelly/binary_sensor.pyi +4 -4
  597. homeassistant-stubs/components/shelly/button.pyi +3 -7
  598. homeassistant-stubs/components/shelly/config_flow.pyi +15 -14
  599. homeassistant-stubs/components/shelly/const.pyi +2 -2
  600. homeassistant-stubs/components/shelly/coordinator.pyi +3 -1
  601. homeassistant-stubs/components/shelly/entity.pyi +4 -8
  602. homeassistant-stubs/components/shelly/event.pyi +2 -2
  603. homeassistant-stubs/components/shelly/light.pyi +29 -13
  604. homeassistant-stubs/components/shelly/number.pyi +1 -1
  605. homeassistant-stubs/components/shelly/sensor.pyi +4 -4
  606. homeassistant-stubs/components/shelly/switch.pyi +1 -1
  607. homeassistant-stubs/components/shelly/update.pyi +6 -14
  608. homeassistant-stubs/components/shelly/utils.pyi +8 -4
  609. homeassistant-stubs/components/shopping_list/config_flow.pyi +3 -4
  610. homeassistant-stubs/components/shopping_list/todo.pyi +0 -1
  611. homeassistant-stubs/components/simplepush/config_flow.pyi +3 -4
  612. homeassistant-stubs/components/simplisafe/config_flow.pyi +6 -8
  613. homeassistant-stubs/components/skybell/config_flow.pyi +5 -6
  614. homeassistant-stubs/components/skybell/sensor.pyi +3 -7
  615. homeassistant-stubs/components/slack/config_flow.pyi +3 -4
  616. homeassistant-stubs/components/sleepiq/button.pyi +3 -7
  617. homeassistant-stubs/components/sleepiq/config_flow.pyi +5 -6
  618. homeassistant-stubs/components/sleepiq/number.pyi +3 -7
  619. homeassistant-stubs/components/smhi/config_flow.pyi +6 -4
  620. homeassistant-stubs/components/smhi/weather.pyi +0 -2
  621. homeassistant-stubs/components/snooz/config_flow.pyi +8 -9
  622. homeassistant-stubs/components/sonarr/config_flow.pyi +6 -7
  623. homeassistant-stubs/components/speedtestdotnet/__init__.pyi +4 -2
  624. homeassistant-stubs/components/speedtestdotnet/config_flow.pyi +7 -8
  625. homeassistant-stubs/components/speedtestdotnet/const.pyi +0 -1
  626. homeassistant-stubs/components/speedtestdotnet/sensor.pyi +1 -2
  627. homeassistant-stubs/components/sql/config_flow.pyi +6 -7
  628. homeassistant-stubs/components/ssdp/__init__.pyi +9 -7
  629. homeassistant-stubs/components/starlink/binary_sensor.pyi +3 -7
  630. homeassistant-stubs/components/starlink/button.pyi +3 -7
  631. homeassistant-stubs/components/starlink/config_flow.pyi +2 -3
  632. homeassistant-stubs/components/starlink/coordinator.pyi +6 -1
  633. homeassistant-stubs/components/starlink/device_tracker.pyi +3 -7
  634. homeassistant-stubs/components/starlink/sensor.pyi +3 -7
  635. homeassistant-stubs/components/starlink/switch.pyi +3 -7
  636. homeassistant-stubs/components/starlink/time.pyi +33 -0
  637. homeassistant-stubs/components/statistics/sensor.pyi +2 -2
  638. homeassistant-stubs/components/steamist/config_flow.pyi +9 -10
  639. homeassistant-stubs/components/steamist/sensor.pyi +3 -7
  640. homeassistant-stubs/components/stookalert/config_flow.pyi +2 -3
  641. homeassistant-stubs/components/stream/__init__.pyi +1 -0
  642. homeassistant-stubs/components/stream/core.pyi +1 -1
  643. homeassistant-stubs/components/streamlabswater/config_flow.pyi +3 -4
  644. homeassistant-stubs/components/stt/legacy.pyi +1 -1
  645. homeassistant-stubs/components/suez_water/config_flow.pyi +3 -4
  646. homeassistant-stubs/components/sun/__init__.pyi +4 -64
  647. homeassistant-stubs/components/sun/config_flow.pyi +3 -4
  648. homeassistant-stubs/components/sun/const.pyi +11 -0
  649. homeassistant-stubs/components/sun/entity.pyi +64 -0
  650. homeassistant-stubs/components/sun/sensor.pyi +1 -1
  651. homeassistant-stubs/components/surepetcare/config_flow.pyi +5 -6
  652. homeassistant-stubs/components/switch/light.pyi +2 -2
  653. homeassistant-stubs/components/switchbee/config_flow.pyi +3 -4
  654. homeassistant-stubs/components/switchbot_cloud/config_flow.pyi +3 -4
  655. homeassistant-stubs/components/switcher_kis/button.pyi +3 -7
  656. homeassistant-stubs/components/switcher_kis/config_flow.pyi +5 -6
  657. homeassistant-stubs/components/switcher_kis/cover.pyi +1 -1
  658. homeassistant-stubs/components/switcher_kis/switch.pyi +2 -0
  659. homeassistant-stubs/components/synology_dsm/binary_sensor.pyi +2 -2
  660. homeassistant-stubs/components/synology_dsm/button.pyi +3 -7
  661. homeassistant-stubs/components/synology_dsm/camera.pyi +2 -2
  662. homeassistant-stubs/components/synology_dsm/config_flow.pyi +14 -15
  663. homeassistant-stubs/components/synology_dsm/entity.pyi +3 -7
  664. homeassistant-stubs/components/synology_dsm/sensor.pyi +2 -2
  665. homeassistant-stubs/components/synology_dsm/switch.pyi +2 -2
  666. homeassistant-stubs/components/synology_dsm/update.pyi +2 -2
  667. homeassistant-stubs/components/system_log/__init__.pyi +4 -2
  668. homeassistant-stubs/components/systemmonitor/__init__.pyi +3 -1
  669. homeassistant-stubs/components/systemmonitor/binary_sensor.pyi +14 -12
  670. homeassistant-stubs/components/systemmonitor/config_flow.pyi +2 -2
  671. homeassistant-stubs/components/systemmonitor/const.pyi +1 -1
  672. homeassistant-stubs/components/systemmonitor/coordinator.pyi +29 -46
  673. homeassistant-stubs/components/systemmonitor/diagnostics.pyi +2 -2
  674. homeassistant-stubs/components/systemmonitor/sensor.pyi +23 -20
  675. homeassistant-stubs/components/systemmonitor/util.pyi +1 -1
  676. homeassistant-stubs/components/tailscale/config_flow.pyi +4 -5
  677. homeassistant-stubs/components/tailwind/config_flow.pyi +9 -9
  678. homeassistant-stubs/components/tami4/config_flow.pyi +4 -5
  679. homeassistant-stubs/components/tautulli/config_flow.pyi +4 -5
  680. homeassistant-stubs/components/tautulli/sensor.pyi +6 -14
  681. homeassistant-stubs/components/technove/config_flow.pyi +4 -5
  682. homeassistant-stubs/components/tedee/config_flow.pyi +7 -5
  683. homeassistant-stubs/components/threshold/binary_sensor.pyi +2 -2
  684. homeassistant-stubs/components/tibber/config_flow.pyi +3 -4
  685. homeassistant-stubs/components/tile/config_flow.pyi +7 -8
  686. homeassistant-stubs/components/tile/device_tracker.pyi +1 -2
  687. homeassistant-stubs/components/tilt_ble/config_flow.pyi +4 -5
  688. homeassistant-stubs/components/tolo/__init__.pyi +3 -3
  689. homeassistant-stubs/components/tolo/binary_sensor.pyi +0 -2
  690. homeassistant-stubs/components/tolo/button.pyi +0 -1
  691. homeassistant-stubs/components/tolo/climate.pyi +6 -5
  692. homeassistant-stubs/components/tolo/config_flow.pyi +5 -6
  693. homeassistant-stubs/components/tolo/const.pyi +11 -7
  694. homeassistant-stubs/components/tolo/number.pyi +6 -11
  695. homeassistant-stubs/components/tolo/select.pyi +19 -7
  696. homeassistant-stubs/components/tolo/sensor.pyi +6 -10
  697. homeassistant-stubs/components/tolo/switch.pyi +30 -0
  698. homeassistant-stubs/components/tplink/config_flow.pyi +14 -16
  699. homeassistant-stubs/components/tplink/switch.pyi +0 -1
  700. homeassistant-stubs/components/tplink_omada/binary_sensor.pyi +17 -20
  701. homeassistant-stubs/components/tplink_omada/config_flow.pyi +6 -7
  702. homeassistant-stubs/components/tplink_omada/entity.pyi +3 -3
  703. homeassistant-stubs/components/tplink_omada/switch.pyi +54 -17
  704. homeassistant-stubs/components/tplink_omada/update.pyi +1 -1
  705. homeassistant-stubs/components/tractive/config_flow.pyi +5 -6
  706. homeassistant-stubs/components/tractive/sensor.pyi +3 -7
  707. homeassistant-stubs/components/tractive/switch.pyi +3 -7
  708. homeassistant-stubs/components/tradfri/config_flow.pyi +6 -7
  709. homeassistant-stubs/components/tradfri/sensor.pyi +3 -7
  710. homeassistant-stubs/components/trafikverket_camera/binary_sensor.pyi +3 -7
  711. homeassistant-stubs/components/trafikverket_camera/config_flow.pyi +7 -8
  712. homeassistant-stubs/components/trafikverket_camera/sensor.pyi +3 -7
  713. homeassistant-stubs/components/trafikverket_ferry/config_flow.pyi +6 -7
  714. homeassistant-stubs/components/trafikverket_ferry/sensor.pyi +3 -8
  715. homeassistant-stubs/components/trafikverket_train/config_flow.pyi +9 -10
  716. homeassistant-stubs/components/trafikverket_train/sensor.pyi +3 -7
  717. homeassistant-stubs/components/trafikverket_weatherstation/config_flow.pyi +6 -7
  718. homeassistant-stubs/components/trafikverket_weatherstation/sensor.pyi +3 -7
  719. homeassistant-stubs/components/transmission/__init__.pyi +3 -2
  720. homeassistant-stubs/components/transmission/config_flow.pyi +13 -13
  721. homeassistant-stubs/components/transmission/const.pyi +2 -0
  722. homeassistant-stubs/components/transmission/switch.pyi +3 -7
  723. homeassistant-stubs/components/trend/binary_sensor.pyi +2 -2
  724. homeassistant-stubs/components/tts/__init__.pyi +1 -0
  725. homeassistant-stubs/components/tts/legacy.pyi +1 -1
  726. homeassistant-stubs/components/twentemilieu/calendar.pyi +1 -1
  727. homeassistant-stubs/components/twentemilieu/config_flow.pyi +3 -4
  728. homeassistant-stubs/components/unifi/button.pyi +4 -8
  729. homeassistant-stubs/components/unifi/config_flow.pyi +16 -17
  730. homeassistant-stubs/components/unifi/device_tracker.pyi +4 -8
  731. homeassistant-stubs/components/unifi/entity.pyi +12 -15
  732. homeassistant-stubs/components/unifi/hub/config.pyi +31 -0
  733. homeassistant-stubs/components/unifi/hub/entity_loader.pyi +26 -0
  734. homeassistant-stubs/components/unifi/hub/hub.pyi +8 -28
  735. homeassistant-stubs/components/unifi/image.pyi +3 -8
  736. homeassistant-stubs/components/unifi/sensor.pyi +4 -10
  737. homeassistant-stubs/components/unifi/switch.pyi +6 -11
  738. homeassistant-stubs/components/unifi/update.pyi +4 -8
  739. homeassistant-stubs/components/unifiprotect/camera.pyi +5 -2
  740. homeassistant-stubs/components/unifiprotect/config_flow.pyi +16 -17
  741. homeassistant-stubs/components/unifiprotect/migrate.pyi +18 -4
  742. homeassistant-stubs/components/unifiprotect/repairs.pyi +17 -6
  743. homeassistant-stubs/components/unifiprotect/select.pyi +1 -0
  744. homeassistant-stubs/components/unifiprotect/services.pyi +8 -2
  745. homeassistant-stubs/components/unifiprotect/utils.pyi +2 -1
  746. homeassistant-stubs/components/upcloud/config_flow.pyi +8 -9
  747. homeassistant-stubs/components/uptime/config_flow.pyi +2 -3
  748. homeassistant-stubs/components/uptimerobot/config_flow.pyi +5 -6
  749. homeassistant-stubs/components/uptimerobot/sensor.pyi +0 -7
  750. homeassistant-stubs/components/uptimerobot/switch.pyi +1 -1
  751. homeassistant-stubs/components/usb/__init__.pyi +2 -1
  752. homeassistant-stubs/components/vacuum/__init__.pyi +1 -4
  753. homeassistant-stubs/components/vacuum/const.pyi +7 -0
  754. homeassistant-stubs/components/vacuum/group.pyi +1 -1
  755. homeassistant-stubs/components/vallox/binary_sensor.pyi +3 -7
  756. homeassistant-stubs/components/vallox/config_flow.pyi +3 -4
  757. homeassistant-stubs/components/vallox/date.pyi +22 -0
  758. homeassistant-stubs/components/vallox/number.pyi +3 -7
  759. homeassistant-stubs/components/vallox/switch.pyi +3 -7
  760. homeassistant-stubs/components/velbus/config_flow.pyi +6 -7
  761. homeassistant-stubs/components/vlc_telnet/config_flow.pyi +11 -11
  762. homeassistant-stubs/components/wallbox/config_flow.pyi +6 -6
  763. homeassistant-stubs/components/wallbox/number.pyi +3 -7
  764. homeassistant-stubs/components/waqi/__init__.pyi +0 -1
  765. homeassistant-stubs/components/waqi/config_flow.pyi +7 -11
  766. homeassistant-stubs/components/waqi/sensor.pyi +7 -22
  767. homeassistant-stubs/components/water_heater/const.pyi +6 -0
  768. homeassistant-stubs/components/water_heater/group.pyi +1 -1
  769. homeassistant-stubs/components/watttime/config_flow.pyi +10 -12
  770. homeassistant-stubs/components/weather/__init__.pyi +0 -13
  771. homeassistant-stubs/components/webhook/__init__.pyi +1 -2
  772. homeassistant-stubs/components/webostv/config_flow.pyi +8 -8
  773. homeassistant-stubs/components/websocket_api/commands.pyi +2 -3
  774. homeassistant-stubs/components/websocket_api/http.pyi +1 -1
  775. homeassistant-stubs/components/websocket_api/messages.pyi +4 -3
  776. homeassistant-stubs/components/wemo/__init__.pyi +3 -1
  777. homeassistant-stubs/components/wemo/config_flow.pyi +2 -3
  778. homeassistant-stubs/components/wemo/wemo_device.pyi +2 -1
  779. homeassistant-stubs/components/whois/config_flow.pyi +2 -3
  780. homeassistant-stubs/components/withings/__init__.pyi +13 -0
  781. homeassistant-stubs/components/withings/config_flow.pyi +4 -5
  782. homeassistant-stubs/components/wiz/config_flow.pyi +8 -8
  783. homeassistant-stubs/components/wled/config_flow.pyi +6 -10
  784. homeassistant-stubs/components/xiaomi_ble/config_flow.pyi +9 -10
  785. homeassistant-stubs/components/xiaomi_ble/const.pyi +9 -2
  786. homeassistant-stubs/components/xiaomi_ble/device_trigger.pyi +1 -1
  787. homeassistant-stubs/components/xiaomi_ble/event.pyi +1 -1
  788. homeassistant-stubs/components/yale_smart_alarm/config_flow.pyi +5 -6
  789. homeassistant-stubs/components/yalexs_ble/config_flow.pyi +14 -14
  790. homeassistant-stubs/components/yalexs_ble/sensor.pyi +3 -7
  791. homeassistant-stubs/components/youtube/config_flow.pyi +6 -7
  792. homeassistant-stubs/components/youtube/sensor.pyi +3 -7
  793. homeassistant-stubs/components/zeroconf/__init__.pyi +1 -1
  794. homeassistant-stubs/components/zodiac/config_flow.pyi +2 -3
  795. homeassistant-stubs/components/zodiac/sensor.pyi +0 -2
  796. homeassistant-stubs/components/zone/__init__.pyi +2 -2
  797. homeassistant-stubs/components/zone/config_flow.pyi +2 -2
  798. homeassistant-stubs/components/zone/trigger.pyi +2 -2
  799. homeassistant-stubs/components/zwave_js/api.pyi +1 -2
  800. homeassistant-stubs/components/zwave_js/binary_sensor.pyi +3 -7
  801. homeassistant-stubs/components/zwave_js/config_flow.pyi +39 -38
  802. homeassistant-stubs/components/zwave_js/humidifier.pyi +3 -7
  803. homeassistant-stubs/config.pyi +18 -3
  804. homeassistant-stubs/config_entries.pyi +52 -33
  805. homeassistant-stubs/const.pyi +11 -6
  806. homeassistant-stubs/core.pyi +62 -38
  807. homeassistant-stubs/data_entry_flow.pyi +38 -37
  808. homeassistant-stubs/exceptions.pyi +12 -5
  809. homeassistant-stubs/helpers/area_registry.pyi +7 -19
  810. homeassistant-stubs/helpers/category_registry.pyi +43 -0
  811. homeassistant-stubs/helpers/check_config.pyi +1 -1
  812. homeassistant-stubs/helpers/config_entry_flow.pyi +11 -12
  813. homeassistant-stubs/helpers/config_entry_oauth2_flow.pyi +6 -7
  814. homeassistant-stubs/helpers/config_validation.pyi +8 -1
  815. homeassistant-stubs/helpers/data_entry_flow.pyi +9 -5
  816. homeassistant-stubs/helpers/debounce.pyi +2 -1
  817. homeassistant-stubs/helpers/device_registry.pyi +9 -5
  818. homeassistant-stubs/helpers/discovery.pyi +2 -1
  819. homeassistant-stubs/helpers/discovery_flow.pyi +2 -2
  820. homeassistant-stubs/helpers/dispatcher.pyi +2 -10
  821. homeassistant-stubs/helpers/entity.pyi +9 -7
  822. homeassistant-stubs/helpers/entity_component.pyi +2 -1
  823. homeassistant-stubs/helpers/entity_platform.pyi +2 -2
  824. homeassistant-stubs/helpers/entity_registry.pyi +14 -9
  825. homeassistant-stubs/helpers/event.pyi +30 -30
  826. homeassistant-stubs/helpers/floor_registry.pyi +12 -24
  827. homeassistant-stubs/helpers/frame.pyi +11 -3
  828. homeassistant-stubs/helpers/http.pyi +6 -3
  829. homeassistant-stubs/helpers/importlib.pyi +11 -0
  830. homeassistant-stubs/helpers/integration_platform.pyi +8 -6
  831. homeassistant-stubs/helpers/issue_registry.pyi +2 -3
  832. homeassistant-stubs/helpers/label_registry.pyi +11 -23
  833. homeassistant-stubs/helpers/normalized_name_base_registry.pyi +22 -0
  834. homeassistant-stubs/helpers/ratelimit.pyi +2 -3
  835. homeassistant-stubs/helpers/registry.pyi +15 -0
  836. homeassistant-stubs/helpers/schema_config_entry_flow.pyi +15 -15
  837. homeassistant-stubs/helpers/script.pyi +22 -8
  838. homeassistant-stubs/helpers/selector.pyi +9 -0
  839. homeassistant-stubs/helpers/service.pyi +9 -4
  840. homeassistant-stubs/helpers/storage.pyi +28 -4
  841. homeassistant-stubs/helpers/system_info.pyi +1 -0
  842. homeassistant-stubs/helpers/template.pyi +18 -3
  843. homeassistant-stubs/helpers/translation.pyi +2 -1
  844. homeassistant-stubs/helpers/trigger.pyi +1 -0
  845. homeassistant-stubs/helpers/typing.pyi +2 -5
  846. homeassistant-stubs/helpers/update_coordinator.pyi +5 -5
  847. homeassistant-stubs/loader.pyi +24 -5
  848. homeassistant-stubs/setup.pyi +21 -4
  849. homeassistant-stubs/util/async_.pyi +2 -2
  850. homeassistant-stubs/util/percentage.pyi +1 -1
  851. homeassistant-stubs/util/signal_type.pyi +20 -0
  852. homeassistant-stubs/util/unit_conversion.pyi +10 -0
  853. {homeassistant_stubs-2024.3.3.dist-info → homeassistant_stubs-2024.4.0b0.dist-info}/METADATA +4 -5
  854. {homeassistant_stubs-2024.3.3.dist-info → homeassistant_stubs-2024.4.0b0.dist-info}/RECORD +856 -817
  855. homeassistant-stubs/components/axis/device.pyi +0 -64
  856. homeassistant-stubs/components/binary_sensor/group.pyi +0 -5
  857. homeassistant-stubs/components/fan/group.pyi +0 -5
  858. homeassistant-stubs/components/humidifier/group.pyi +0 -5
  859. homeassistant-stubs/components/light/group.pyi +0 -5
  860. homeassistant-stubs/components/remote/group.pyi +0 -5
  861. homeassistant-stubs/components/switch/group.pyi +0 -5
  862. {homeassistant_stubs-2024.3.3.dist-info → homeassistant_stubs-2024.4.0b0.dist-info}/LICENSE +0 -0
  863. {homeassistant_stubs-2024.3.3.dist-info → homeassistant_stubs-2024.4.0b0.dist-info}/WHEEL +0 -0
@@ -0,0 +1,22 @@
1
+ from _typeshed import Incomplete
2
+ from collections import UserDict
3
+ from collections.abc import ValuesView
4
+ from dataclasses import dataclass
5
+ from typing import TypeVar
6
+
7
+ @dataclass(slots=True, frozen=True, kw_only=True)
8
+ class NormalizedNameBaseRegistryEntry:
9
+ name: str
10
+ normalized_name: str
11
+ def __init__(self, *, name, normalized_name) -> None: ...
12
+ _VT = TypeVar('_VT', bound=NormalizedNameBaseRegistryEntry)
13
+
14
+ def normalize_name(name: str) -> str: ...
15
+
16
+ class NormalizedNameBaseRegistryItems(UserDict[str, _VT]):
17
+ _normalized_names: Incomplete
18
+ def __init__(self) -> None: ...
19
+ def values(self) -> ValuesView[_VT]: ...
20
+ def __setitem__(self, key: str, entry: _VT) -> None: ...
21
+ def __delitem__(self, key: str) -> None: ...
22
+ def get_by_name(self, name: str) -> _VT | None: ...
@@ -1,6 +1,5 @@
1
1
  from _typeshed import Incomplete
2
2
  from collections.abc import Callable as Callable, Hashable
3
- from datetime import datetime, timedelta
4
3
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
5
4
  from typing import TypeVarTuple
6
5
 
@@ -13,7 +12,7 @@ class KeyedRateLimit:
13
12
  _rate_limit_timers: Incomplete
14
13
  def __init__(self, hass: HomeAssistant) -> None: ...
15
14
  def async_has_timer(self, key: Hashable) -> bool: ...
16
- def async_triggered(self, key: Hashable, now: datetime | None = None) -> None: ...
15
+ def async_triggered(self, key: Hashable, now: float | None = None) -> None: ...
17
16
  def async_cancel_timer(self, key: Hashable) -> None: ...
18
17
  def async_remove(self) -> None: ...
19
- def async_schedule_action(self, key: Hashable, rate_limit: timedelta | None, now: datetime, action: Callable[[Unpack[_Ts]], None], *args: Unpack[_Ts]) -> datetime | None: ...
18
+ def async_schedule_action(self, key: Hashable, rate_limit: float | None, now: float, action: Callable[[Unpack[_Ts]], None], *args: Unpack[_Ts]) -> float | None: ...
@@ -0,0 +1,15 @@
1
+ import abc
2
+ from .storage import Store as Store
3
+ from abc import ABC, abstractmethod
4
+ from homeassistant.core import CoreState as CoreState, HomeAssistant as HomeAssistant, callback as callback
5
+ from typing import Any
6
+
7
+ SAVE_DELAY: int
8
+ SAVE_DELAY_LONG: int
9
+
10
+ class BaseRegistry(ABC, metaclass=abc.ABCMeta):
11
+ hass: HomeAssistant
12
+ _store: Store
13
+ def async_schedule_save(self) -> None: ...
14
+ @abstractmethod
15
+ def _data_to_save(self) -> dict[str, Any]: ...
@@ -6,9 +6,9 @@ from _typeshed import Incomplete
6
6
  from abc import ABC, abstractmethod
7
7
  from collections.abc import Callable as Callable, Coroutine, Mapping
8
8
  from dataclasses import dataclass
9
- from homeassistant import config_entries as config_entries
9
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow, OptionsFlowWithConfigEntry as OptionsFlowWithConfigEntry
10
10
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback, split_entity_id as split_entity_id
11
- from homeassistant.data_entry_flow import FlowResult as FlowResult, UnknownHandler as UnknownHandler
11
+ from homeassistant.data_entry_flow import UnknownHandler as UnknownHandler
12
12
  from typing import Any
13
13
 
14
14
  class SchemaFlowError(Exception): ...
@@ -41,15 +41,15 @@ class SchemaCommonFlowHandler:
41
41
  def options(self) -> dict[str, Any]: ...
42
42
  @property
43
43
  def flow_state(self) -> dict[str, Any]: ...
44
- async def async_step(self, step_id: str, user_input: dict[str, Any] | None = None) -> FlowResult: ...
44
+ async def async_step(self, step_id: str, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
45
45
  async def _get_schema(self, form_step: SchemaFlowFormStep) -> vol.Schema | None: ...
46
- async def _async_form_step(self, step_id: str, user_input: dict[str, Any] | None = None) -> FlowResult: ...
46
+ async def _async_form_step(self, step_id: str, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
47
47
  def _update_and_remove_omitted_optional_keys(self, values: dict[str, Any], user_input: dict[str, Any], data_schema: vol.Schema | None) -> None: ...
48
- async def _show_next_step_or_create_entry(self, form_step: SchemaFlowFormStep) -> FlowResult: ...
49
- async def _show_next_step(self, next_step_id: str, error: SchemaFlowError | None = None, user_input: dict[str, Any] | None = None) -> FlowResult: ...
50
- async def _async_menu_step(self, step_id: str, user_input: dict[str, Any] | None = None) -> FlowResult: ...
48
+ async def _show_next_step_or_create_entry(self, form_step: SchemaFlowFormStep) -> ConfigFlowResult: ...
49
+ async def _show_next_step(self, next_step_id: str, error: SchemaFlowError | None = None, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
50
+ async def _async_menu_step(self, step_id: str, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
51
51
 
52
- class SchemaConfigFlowHandler(config_entries.ConfigFlow, ABC, metaclass=abc.ABCMeta):
52
+ class SchemaConfigFlowHandler(ConfigFlow, ABC, metaclass=abc.ABCMeta):
53
53
  config_flow: Mapping[str, SchemaFlowStep]
54
54
  options_flow: Mapping[str, SchemaFlowStep] | None
55
55
  VERSION: int
@@ -59,23 +59,23 @@ class SchemaConfigFlowHandler(config_entries.ConfigFlow, ABC, metaclass=abc.ABCM
59
59
  @staticmethod
60
60
  async def async_setup_preview(hass: HomeAssistant) -> None: ...
61
61
  @classmethod
62
- def async_supports_options_flow(cls, config_entry: config_entries.ConfigEntry) -> bool: ...
62
+ def async_supports_options_flow(cls, config_entry: ConfigEntry) -> bool: ...
63
63
  @staticmethod
64
- def _async_step(step_id: str) -> Callable[[SchemaConfigFlowHandler, dict[str, Any] | None], Coroutine[Any, Any, FlowResult]]: ...
64
+ def _async_step(step_id: str) -> Callable[[SchemaConfigFlowHandler, dict[str, Any] | None], Coroutine[Any, Any, ConfigFlowResult]]: ...
65
65
  @abstractmethod
66
66
  def async_config_entry_title(self, options: Mapping[str, Any]) -> str: ...
67
67
  def async_config_flow_finished(self, options: Mapping[str, Any]) -> None: ...
68
68
  @staticmethod
69
69
  def async_options_flow_finished(hass: HomeAssistant, options: Mapping[str, Any]) -> None: ...
70
- def async_create_entry(self, data: Mapping[str, Any], **kwargs: Any) -> FlowResult: ...
70
+ def async_create_entry(self, data: Mapping[str, Any], **kwargs: Any) -> ConfigFlowResult: ...
71
71
 
72
- class SchemaOptionsFlowHandler(config_entries.OptionsFlowWithConfigEntry):
72
+ class SchemaOptionsFlowHandler(OptionsFlowWithConfigEntry):
73
73
  _common_handler: Incomplete
74
74
  _async_options_flow_finished: Incomplete
75
- def __init__(self, config_entry: config_entries.ConfigEntry, options_flow: Mapping[str, SchemaFlowStep], async_options_flow_finished: Callable[[HomeAssistant, Mapping[str, Any]], None] | None = None, async_setup_preview: Callable[[HomeAssistant], Coroutine[Any, Any, None]] | None = None) -> None: ...
75
+ def __init__(self, config_entry: ConfigEntry, options_flow: Mapping[str, SchemaFlowStep], async_options_flow_finished: Callable[[HomeAssistant, Mapping[str, Any]], None] | None = None, async_setup_preview: Callable[[HomeAssistant], Coroutine[Any, Any, None]] | None = None) -> None: ...
76
76
  @staticmethod
77
- def _async_step(step_id: str) -> Callable[[SchemaConfigFlowHandler, dict[str, Any] | None], Coroutine[Any, Any, FlowResult]]: ...
78
- def async_create_entry(self, data: Mapping[str, Any], **kwargs: Any) -> FlowResult: ...
77
+ def _async_step(step_id: str) -> Callable[[SchemaConfigFlowHandler, dict[str, Any] | None], Coroutine[Any, Any, ConfigFlowResult]]: ...
78
+ def async_create_entry(self, data: Mapping[str, Any], **kwargs: Any) -> ConfigFlowResult: ...
79
79
 
80
80
  def wrapped_entity_config_entry_title(hass: HomeAssistant, entity_id_or_uuid: str) -> str: ...
81
81
  def entity_selector_without_own_entities(handler: SchemaOptionsFlowHandler, entity_selector_config: selector.EntitySelectorConfig) -> vol.Schema: ...
@@ -3,7 +3,7 @@ import logging
3
3
  import voluptuous as vol
4
4
  from . import condition as condition, service as service, template as template
5
5
  from .condition import ConditionCheckerType as ConditionCheckerType, trace_condition_function as trace_condition_function
6
- from .dispatcher import SignalType as SignalType, async_dispatcher_connect as async_dispatcher_connect, async_dispatcher_send as async_dispatcher_send
6
+ from .dispatcher import async_dispatcher_connect as async_dispatcher_connect, async_dispatcher_send as async_dispatcher_send
7
7
  from .event import async_call_later as async_call_later, async_track_template as async_track_template
8
8
  from .script_variables import ScriptVariables as ScriptVariables
9
9
  from .trace import TraceElement as TraceElement, async_trace_path as async_trace_path, script_execution_set as script_execution_set, trace_append_element as trace_append_element, trace_id_get as trace_id_get, trace_path as trace_path, trace_path_get as trace_path_get, trace_path_stack_cv as trace_path_stack_cv, trace_set_result as trace_set_result, trace_stack_cv as trace_stack_cv, trace_stack_pop as trace_stack_pop, trace_stack_push as trace_stack_push, trace_stack_top as trace_stack_top, trace_update_result as trace_update_result
@@ -13,16 +13,18 @@ from _typeshed import Incomplete
13
13
  from collections.abc import AsyncGenerator, Callable as Callable, Mapping, Sequence
14
14
  from contextvars import ContextVar
15
15
  from dataclasses import dataclass
16
- from datetime import datetime
16
+ from datetime import datetime, timedelta
17
17
  from functools import cached_property as cached_property
18
18
  from homeassistant import exceptions as exceptions
19
19
  from homeassistant.components import scene as scene
20
20
  from homeassistant.components.logger import LOGSEVERITY as LOGSEVERITY
21
- 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_ALIAS as CONF_ALIAS, 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_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_EACH as CONF_FOR_EACH, CONF_IF as CONF_IF, CONF_MODE as CONF_MODE, CONF_PARALLEL as CONF_PARALLEL, CONF_REPEAT as CONF_REPEAT, CONF_RESPONSE_VARIABLE as CONF_RESPONSE_VARIABLE, 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_SET_CONVERSATION_RESPONSE as CONF_SET_CONVERSATION_RESPONSE, 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_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, EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP, SERVICE_TURN_ON as SERVICE_TURN_ON
21
+ 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_ALIAS as CONF_ALIAS, 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_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_EACH as CONF_FOR_EACH, CONF_IF as CONF_IF, CONF_MODE as CONF_MODE, CONF_PARALLEL as CONF_PARALLEL, CONF_REPEAT as CONF_REPEAT, CONF_RESPONSE_VARIABLE as CONF_RESPONSE_VARIABLE, 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_SET_CONVERSATION_RESPONSE as CONF_SET_CONVERSATION_RESPONSE, 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_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, EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP, SERVICE_TURN_ON as SERVICE_TURN_ON
22
22
  from homeassistant.core import Context as Context, Event as Event, HassJob as HassJob, HomeAssistant as HomeAssistant, ServiceResponse as ServiceResponse, SupportsResponse as SupportsResponse, callback as callback
23
23
  from homeassistant.util import slugify as slugify
24
+ from homeassistant.util.async_ import create_eager_task as create_eager_task
24
25
  from homeassistant.util.dt import utcnow as utcnow
25
- from typing import Any, TypeVar, TypedDict
26
+ from homeassistant.util.signal_type import SignalType as SignalType, SignalTypeFormat as SignalTypeFormat
27
+ from typing import Any, Literal, TypeVar, TypedDict
26
28
 
27
29
  _T = TypeVar('_T')
28
30
  SCRIPT_MODE_PARALLEL: str
@@ -49,12 +51,15 @@ _TIMEOUT_MSG: str
49
51
  _SHUTDOWN_MAX_WAIT: int
50
52
  ACTION_TRACE_NODE_MAX_LEN: int
51
53
  SCRIPT_BREAKPOINT_HIT: Incomplete
52
- SCRIPT_DEBUG_CONTINUE_STOP: str
54
+ SCRIPT_DEBUG_CONTINUE_STOP: SignalTypeFormat[Literal['continue', 'stop']]
53
55
  SCRIPT_DEBUG_CONTINUE_ALL: str
54
56
  script_stack_cv: ContextVar[list[int] | None]
55
57
 
58
+ class ScriptStoppedError(Exception): ...
59
+
60
+ def _set_result_unless_done(future: asyncio.Future[None]) -> None: ...
56
61
  def action_trace_append(variables, path): ...
57
- async def trace_action(hass: HomeAssistant, script_run: _ScriptRun, stop: asyncio.Event, variables: dict[str, Any]) -> AsyncGenerator[TraceElement, None]: ...
62
+ async def trace_action(hass: HomeAssistant, script_run: _ScriptRun, stop: asyncio.Future[None], variables: dict[str, Any]) -> AsyncGenerator[TraceElement, None]: ...
58
63
  def make_script_schema(schema: Mapping[Any, Any], default_script_mode: str, extra: int = ...) -> vol.Schema: ...
59
64
 
60
65
  STATIC_VALIDATION_ACTION_TYPES: Incomplete
@@ -78,6 +83,7 @@ class _ScriptRun:
78
83
  _context: Incomplete
79
84
  _log_exceptions: Incomplete
80
85
  _step: int
86
+ _started: bool
81
87
  _stop: Incomplete
82
88
  _stopped: Incomplete
83
89
  _conversation_response: Incomplete
@@ -92,9 +98,11 @@ class _ScriptRun:
92
98
  async def async_stop(self) -> None: ...
93
99
  def _handle_exception(self, exception: Exception, continue_on_error: bool, log_exceptions: bool) -> None: ...
94
100
  def _log_exception(self, exception) -> None: ...
95
- def _get_pos_time_period_template(self, key): ...
101
+ def _get_pos_time_period_template(self, key: str) -> timedelta: ...
96
102
  async def _async_delay_step(self) -> None: ...
103
+ def _get_timeout_seconds_from_action(self) -> float | None: ...
97
104
  async def _async_wait_template_step(self) -> None: ...
105
+ def _async_set_remaining_time_var(self, timeout_handle: asyncio.TimerHandle | None) -> None: ...
98
106
  async def _async_run_long_action(self, long_task: asyncio.Task[_T]) -> _T | None: ...
99
107
  async def _async_call_service_step(self) -> None: ...
100
108
  async def _async_device_step(self) -> None: ...
@@ -105,7 +113,9 @@ class _ScriptRun:
105
113
  async def _async_repeat_step(self) -> None: ...
106
114
  async def _async_choose_step(self) -> None: ...
107
115
  async def _async_if_step(self) -> None: ...
116
+ def _async_futures_with_timeout(self, timeout: float | None) -> tuple[list[asyncio.Future[None]], asyncio.TimerHandle | None, asyncio.Future[None] | None]: ...
108
117
  async def _async_wait_for_trigger_step(self) -> None: ...
118
+ async def _async_wait_with_optional_timeout(self, futures: list[asyncio.Future[None]], timeout_handle: asyncio.TimerHandle | None, timeout_future: asyncio.Future[None] | None, unsub: Callable[[], None]) -> None: ...
109
119
  async def _async_variables_step(self) -> None: ...
110
120
  async def _async_set_conversation_response_step(self) -> None: ...
111
121
  async def _async_stop_step(self) -> None: ...
@@ -183,9 +193,13 @@ class Script:
183
193
  @property
184
194
  def supports_max(self) -> bool: ...
185
195
  @cached_property
196
+ def referenced_labels(self) -> set[str]: ...
197
+ @cached_property
198
+ def referenced_floors(self) -> set[str]: ...
199
+ @cached_property
186
200
  def referenced_areas(self) -> set[str]: ...
187
201
  @staticmethod
188
- def _find_referenced_areas(referenced: set[str], sequence: Sequence[dict[str, Any]]) -> None: ...
202
+ def _find_referenced_target(target: Literal['area_id', 'floor_id', 'label_id'], referenced: set[str], sequence: Sequence[dict[str, Any]]) -> None: ...
189
203
  @cached_property
190
204
  def referenced_devices(self) -> set[str]: ...
191
205
  @staticmethod
@@ -250,6 +250,15 @@ class IconSelector(Selector[IconSelectorConfig]):
250
250
  def __init__(self, config: IconSelectorConfig | None = None) -> None: ...
251
251
  def __call__(self, data: Any) -> str: ...
252
252
 
253
+ class LabelSelectorConfig(TypedDict, total=False):
254
+ multiple: bool
255
+
256
+ class LabelSelector(Selector[LabelSelectorConfig]):
257
+ selector_type: str
258
+ CONFIG_SCHEMA: Incomplete
259
+ def __init__(self, config: LabelSelectorConfig | None = None) -> None: ...
260
+ def __call__(self, data: Any) -> str | list[str]: ...
261
+
253
262
  class LanguageSelectorConfig(TypedDict, total=False):
254
263
  languages: list[str]
255
264
  native_name: bool
@@ -1,6 +1,6 @@
1
1
  import dataclasses
2
2
  import voluptuous as vol
3
- from . import area_registry as area_registry, device_registry as device_registry, entity_registry as entity_registry, template as template, translation as translation
3
+ from . import area_registry as area_registry, device_registry as device_registry, entity_registry as entity_registry, floor_registry as floor_registry, label_registry as label_registry, template as template, translation as translation
4
4
  from .entity import Entity as Entity
5
5
  from .group import expand_entity_ids as expand_entity_ids
6
6
  from .selector import TargetSelector as TargetSelector
@@ -8,7 +8,7 @@ from .typing import ConfigType as ConfigType, TemplateVarsType as TemplateVarsTy
8
8
  from _typeshed import Incomplete
9
9
  from collections.abc import Awaitable, Callable as Callable, Iterable
10
10
  from homeassistant.auth.permissions.const import CAT_ENTITIES as CAT_ENTITIES, POLICY_CONTROL as POLICY_CONTROL
11
- 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_ENTITY_ID as CONF_ENTITY_ID, 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_TARGET as CONF_TARGET, ENTITY_MATCH_ALL as ENTITY_MATCH_ALL, ENTITY_MATCH_NONE as ENTITY_MATCH_NONE
11
+ 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_ENTITY_ID as CONF_ENTITY_ID, 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_TARGET as CONF_TARGET, ENTITY_MATCH_ALL as ENTITY_MATCH_ALL, ENTITY_MATCH_NONE as ENTITY_MATCH_NONE
12
12
  from homeassistant.core import Context as Context, EntityServiceResponse as EntityServiceResponse, HassJob as HassJob, HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, ServiceResponse as ServiceResponse, SupportsResponse as SupportsResponse, callback as callback
13
13
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, TemplateError as TemplateError, Unauthorized as Unauthorized, UnknownUser as UnknownUser
14
14
  from homeassistant.loader import Integration as Integration, async_get_integrations as async_get_integrations, bind_hass as bind_hass
@@ -44,6 +44,8 @@ class ServiceTargetSelector:
44
44
  entity_ids: Incomplete
45
45
  device_ids: Incomplete
46
46
  area_ids: Incomplete
47
+ floor_ids: Incomplete
48
+ label_ids: Incomplete
47
49
  def __init__(self, service_call: ServiceCall) -> None: ...
48
50
  @property
49
51
  def has_any_selector(self) -> bool: ...
@@ -54,9 +56,12 @@ class SelectedEntities:
54
56
  indirectly_referenced: set[str] = ...
55
57
  missing_devices: set[str] = ...
56
58
  missing_areas: set[str] = ...
59
+ missing_floors: set[str] = ...
60
+ missing_labels: set[str] = ...
57
61
  referenced_devices: set[str] = ...
62
+ referenced_areas: set[str] = ...
58
63
  def log_missing(self, missing_entities: set[str]) -> None: ...
59
- def __init__(self, referenced, indirectly_referenced, missing_devices, missing_areas, referenced_devices) -> None: ...
64
+ def __init__(self, referenced, indirectly_referenced, missing_devices, missing_areas, missing_floors, missing_labels, referenced_devices, referenced_areas) -> None: ...
60
65
 
61
66
  def call_from_config(hass: HomeAssistant, config: ConfigType, blocking: bool = False, variables: TemplateVarsType = None, validate_config: bool = True) -> None: ...
62
67
  async def async_call_from_config(hass: HomeAssistant, config: ConfigType, blocking: bool = False, variables: TemplateVarsType = None, validate_config: bool = True, context: Context | None = None) -> None: ...
@@ -75,7 +80,7 @@ def async_set_service_schema(hass: HomeAssistant, domain: str, service: str, sch
75
80
  def _get_permissible_entity_candidates(call: ServiceCall, entities: dict[str, Entity], entity_perms: None | Callable[[str, str], bool], target_all_entities: bool, all_referenced: set[str] | None) -> list[Entity]: ...
76
81
  async def entity_service_call(hass: HomeAssistant, registered_entities: dict[str, Entity], func: str | HassJob, call: ServiceCall, required_features: Iterable[int] | None = None) -> EntityServiceResponse | None: ...
77
82
  async def _handle_entity_call(hass: HomeAssistant, entity: Entity, func: str | HassJob, data: dict | ServiceCall, context: Context) -> ServiceResponse: ...
78
- async def _async_admin_handler(hass: HomeAssistant, service_job: HassJob[[None], Callable[[ServiceCall], Awaitable[None] | None]], call: ServiceCall) -> None: ...
83
+ async def _async_admin_handler(hass: HomeAssistant, service_job: HassJob[[ServiceCall], Awaitable[None] | None], call: ServiceCall) -> None: ...
79
84
  def async_register_admin_service(hass: HomeAssistant, domain: str, service: str, service_func: Callable[[ServiceCall], Awaitable[None] | None], schema: vol.Schema = ...) -> None: ...
80
85
  def verify_domain_control(hass: HomeAssistant, domain: str) -> Callable[[Callable[[ServiceCall], Any]], Callable[[ServiceCall], Any]]: ...
81
86
 
@@ -1,20 +1,43 @@
1
1
  from _typeshed import Incomplete
2
- from collections.abc import Callable as Callable, Mapping, Sequence
2
+ from collections.abc import Callable as Callable, Iterable, Mapping, Sequence
3
3
  from functools import cached_property as cached_property
4
- from homeassistant.const import EVENT_HOMEASSISTANT_FINAL_WRITE as EVENT_HOMEASSISTANT_FINAL_WRITE
4
+ from homeassistant.const import EVENT_HOMEASSISTANT_FINAL_WRITE as EVENT_HOMEASSISTANT_FINAL_WRITE, EVENT_HOMEASSISTANT_STARTED as EVENT_HOMEASSISTANT_STARTED, EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP
5
5
  from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, CoreState as CoreState, Event as Event, HomeAssistant as HomeAssistant, callback as callback
6
6
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
7
- from homeassistant.loader import MAX_LOAD_CONCURRENTLY as MAX_LOAD_CONCURRENTLY, bind_hass as bind_hass
7
+ from homeassistant.loader import bind_hass as bind_hass
8
+ from homeassistant.util import json as json_util
8
9
  from homeassistant.util.file import WriteError as WriteError
9
10
  from json import JSONEncoder
10
11
  from typing import Any, Generic, TypeVar
11
12
 
13
+ MAX_LOAD_CONCURRENTLY: int
12
14
  STORAGE_DIR: str
13
15
  _LOGGER: Incomplete
14
16
  STORAGE_SEMAPHORE: str
17
+ STORAGE_MANAGER: str
18
+ MANAGER_CLEANUP_DELAY: int
15
19
  _T = TypeVar('_T', bound=Mapping[str, Any] | Sequence[Any])
16
20
 
17
21
  async def async_migrator(hass: HomeAssistant, old_path: str, store: Store[_T], *, old_conf_load_func: Callable | None = None, old_conf_migrate_func: Callable | None = None) -> _T | None: ...
22
+ def get_internal_store_manager(hass: HomeAssistant, config_dir: str | None = None) -> _StoreManager: ...
23
+
24
+ class _StoreManager:
25
+ _hass: Incomplete
26
+ _invalidated: Incomplete
27
+ _files: Incomplete
28
+ _data_preload: Incomplete
29
+ _storage_path: Incomplete
30
+ _cancel_cleanup: Incomplete
31
+ def __init__(self, hass: HomeAssistant, config_dir: str) -> None: ...
32
+ async def async_initialize(self) -> None: ...
33
+ def async_invalidate(self, key: str) -> None: ...
34
+ def async_fetch(self, key: str) -> tuple[bool, json_util.JsonValueType | None] | None: ...
35
+ def _async_schedule_cleanup(self, _event: Event) -> None: ...
36
+ def _async_cancel_and_cleanup(self, _event: Event) -> None: ...
37
+ def _async_cleanup(self) -> None: ...
38
+ async def async_preload(self, keys: Iterable[str]) -> None: ...
39
+ def _preload(self, keys: Iterable[str]) -> None: ...
40
+ def _initialize_files(self) -> None: ...
18
41
 
19
42
  class Store(Generic[_T]):
20
43
  version: Incomplete
@@ -31,7 +54,8 @@ class Store(Generic[_T]):
31
54
  _atomic_writes: Incomplete
32
55
  _read_only: Incomplete
33
56
  _next_write_time: float
34
- def __init__(self, hass: HomeAssistant, version: int, key: str, private: bool = False, *, atomic_writes: bool = False, encoder: type[JSONEncoder] | None = None, minor_version: int = 1, read_only: bool = False) -> None: ...
57
+ _manager: Incomplete
58
+ def __init__(self, hass: HomeAssistant, version: int, key: str, private: bool = False, *, atomic_writes: bool = False, encoder: type[JSONEncoder] | None = None, minor_version: int = 1, read_only: bool = False, config_dir: str | None = None) -> None: ...
35
59
  @cached_property
36
60
  def path(self): ...
37
61
  async def async_load(self) -> _T | None: ...
@@ -1,3 +1,4 @@
1
+ from .importlib import async_import_module as async_import_module
1
2
  from _typeshed import Incomplete
2
3
  from homeassistant.core import HomeAssistant as HomeAssistant
3
4
  from homeassistant.loader import bind_hass as bind_hass
@@ -1,5 +1,5 @@
1
1
  import jinja2
2
- from . import area_registry as area_registry, device_registry as device_registry, entity_registry as entity_registry
2
+ from . import area_registry as area_registry, device_registry as device_registry, entity_registry as entity_registry, issue_registry as issue_registry, label_registry as label_registry
3
3
  from .singleton import singleton as singleton
4
4
  from .translation import async_translate_state as async_translate_state
5
5
  from .typing import TemplateVarsType as TemplateVarsType
@@ -38,8 +38,8 @@ _COLLECTABLE_STATE_ATTRIBUTES: Incomplete
38
38
  _T = TypeVar('_T')
39
39
  _R = TypeVar('_R')
40
40
  _P = ParamSpec('_P')
41
- ALL_STATES_RATE_LIMIT: Incomplete
42
- DOMAIN_STATES_RATE_LIMIT: Incomplete
41
+ ALL_STATES_RATE_LIMIT: int
42
+ DOMAIN_STATES_RATE_LIMIT: int
43
43
  _render_info: ContextVar[RenderInfo | None]
44
44
  template_cv: ContextVar[tuple[str, str] | None]
45
45
  CACHED_TEMPLATE_STATES: int
@@ -189,6 +189,8 @@ class TemplateStateBase(State):
189
189
  @property
190
190
  def last_changed(self) -> datetime: ...
191
191
  @property
192
+ def last_reported(self) -> datetime: ...
193
+ @property
192
194
  def last_updated(self) -> datetime: ...
193
195
  @property
194
196
  def context(self) -> Context: ...
@@ -235,12 +237,25 @@ def config_entry_id(hass: HomeAssistant, entity_id: str) -> str | None: ...
235
237
  def device_id(hass: HomeAssistant, entity_id_or_device_name: str) -> str | None: ...
236
238
  def device_attr(hass: HomeAssistant, device_or_entity_id: str, attr_name: str) -> Any: ...
237
239
  def is_device_attr(hass: HomeAssistant, device_or_entity_id: str, attr_name: str, attr_value: Any) -> bool: ...
240
+ def issues(hass: HomeAssistant) -> dict[tuple[str, str], dict[str, Any]]: ...
241
+ def issue(hass: HomeAssistant, domain: str, issue_id: str) -> dict[str, Any] | None: ...
242
+ def floors(hass: HomeAssistant) -> Iterable[str | None]: ...
243
+ def floor_id(hass: HomeAssistant, lookup_value: Any) -> str | None: ...
244
+ def floor_name(hass: HomeAssistant, lookup_value: str) -> str | None: ...
245
+ def floor_areas(hass: HomeAssistant, floor_id_or_name: str) -> Iterable[str]: ...
238
246
  def areas(hass: HomeAssistant) -> Iterable[str | None]: ...
239
247
  def area_id(hass: HomeAssistant, lookup_value: str) -> str | None: ...
240
248
  def _get_area_name(area_reg: area_registry.AreaRegistry, valid_area_id: str) -> str: ...
241
249
  def area_name(hass: HomeAssistant, lookup_value: str) -> str | None: ...
242
250
  def area_entities(hass: HomeAssistant, area_id_or_name: str) -> Iterable[str]: ...
243
251
  def area_devices(hass: HomeAssistant, area_id_or_name: str) -> Iterable[str]: ...
252
+ def labels(hass: HomeAssistant, lookup_value: Any = None) -> Iterable[str | None]: ...
253
+ def label_id(hass: HomeAssistant, lookup_value: Any) -> str | None: ...
254
+ def label_name(hass: HomeAssistant, lookup_value: str) -> str | None: ...
255
+ def _label_id_or_name(hass: HomeAssistant, label_id_or_name: str) -> str | None: ...
256
+ def label_areas(hass: HomeAssistant, label_id_or_name: str) -> Iterable[str]: ...
257
+ def label_devices(hass: HomeAssistant, label_id_or_name: str) -> Iterable[str]: ...
258
+ def label_entities(hass: HomeAssistant, label_id_or_name: str) -> Iterable[str]: ...
244
259
  def closest(hass, *args): ...
245
260
  def closest_filter(hass, *args): ...
246
261
  def distance(hass, *args): ...
@@ -1,7 +1,7 @@
1
1
  from _typeshed import Incomplete
2
2
  from collections.abc import Iterable
3
3
  from homeassistant.const import EVENT_CORE_CONFIG_UPDATE as EVENT_CORE_CONFIG_UPDATE, STATE_UNAVAILABLE as STATE_UNAVAILABLE, STATE_UNKNOWN as STATE_UNKNOWN
4
- from homeassistant.core import Event as Event, HomeAssistant as HomeAssistant, callback as callback
4
+ from homeassistant.core import Event as Event, HomeAssistant as HomeAssistant, async_get_hass as async_get_hass, callback as callback
5
5
  from homeassistant.loader import Integration as Integration, async_get_config_flows as async_get_config_flows, async_get_integrations as async_get_integrations, bind_hass as bind_hass
6
6
  from homeassistant.util.json import load_json as load_json
7
7
  from typing import Any
@@ -42,4 +42,5 @@ def _async_get_components(hass: HomeAssistant, category: str) -> set[str]: ...
42
42
  def async_setup(hass: HomeAssistant) -> None: ...
43
43
  async def async_load_integrations(hass: HomeAssistant, integrations: set[str]) -> None: ...
44
44
  def async_translations_loaded(hass: HomeAssistant, components: set[str]) -> bool: ...
45
+ def async_get_exception_message(translation_domain: str, translation_key: str, translation_placeholders: dict[str, str] | None = None) -> str: ...
45
46
  def async_translate_state(hass: HomeAssistant, state: str, domain: str, platform: str | None, translation_key: str | None, device_class: str | None) -> str: ...
@@ -7,6 +7,7 @@ from homeassistant.const import CONF_ALIAS as CONF_ALIAS, CONF_ENABLED as CONF_E
7
7
  from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, Context as Context, HassJob as HassJob, HomeAssistant as HomeAssistant, callback as callback, is_callback as is_callback
8
8
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
9
9
  from homeassistant.loader import IntegrationNotFound as IntegrationNotFound, async_get_integration as async_get_integration
10
+ from homeassistant.util.async_ import create_eager_task as create_eager_task
10
11
  from typing import Any, Protocol, TypedDict
11
12
 
12
13
  _PLATFORM_ALIASES: Incomplete
@@ -1,8 +1,7 @@
1
1
  import homeassistant
2
- import homeassistant.core
3
2
  from _typeshed import Incomplete
4
3
  from enum import Enum
5
- from typing import Any, Generic, TypeVar
4
+ from typing import Any, TypeVar
6
5
 
7
6
  _DataT = TypeVar('_DataT')
8
7
  GPSType = tuple[float, float]
@@ -18,8 +17,6 @@ class UndefinedType(Enum):
18
17
  _singleton: int
19
18
 
20
19
  UNDEFINED: Incomplete
20
+ EventType = homeassistant.core.Event
21
21
  HomeAssistantType = homeassistant.core.HomeAssistant
22
22
  ServiceCallType = homeassistant.core.ServiceCall
23
-
24
- class EventType(homeassistant.core.Event, Generic[_DataT]):
25
- data: _DataT
@@ -8,16 +8,17 @@ from collections.abc import Awaitable, Callable as Callable, Coroutine, Generato
8
8
  from datetime import datetime, timedelta
9
9
  from homeassistant import config_entries as config_entries
10
10
  from homeassistant.const import EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP
11
- from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, Event as Event, HassJob as HassJob, HassJobType as HassJobType, HomeAssistant as HomeAssistant, callback as callback
11
+ from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, Event as Event, HomeAssistant as HomeAssistant, callback as callback
12
12
  from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryError as ConfigEntryError, ConfigEntryNotReady as ConfigEntryNotReady
13
13
  from homeassistant.util.dt import utcnow as utcnow
14
- from typing import Any, Generic, Protocol, TypeVar
14
+ from typing import Any, Generic, Protocol
15
+ from typing_extensions import TypeVar
15
16
 
16
17
  REQUEST_REFRESH_DEFAULT_COOLDOWN: int
17
18
  REQUEST_REFRESH_DEFAULT_IMMEDIATE: bool
18
- _DataT = TypeVar('_DataT')
19
+ _DataT = TypeVar('_DataT', default=dict[str, Any])
19
20
  _BaseDataUpdateCoordinatorT = TypeVar('_BaseDataUpdateCoordinatorT', bound='BaseDataUpdateCoordinatorProtocol')
20
- _DataUpdateCoordinatorT = TypeVar('_DataUpdateCoordinatorT', bound='DataUpdateCoordinator[Any]')
21
+ _DataUpdateCoordinatorT = TypeVar('_DataUpdateCoordinatorT', bound='DataUpdateCoordinator[Any]', default='DataUpdateCoordinator[dict[str, Any]]')
21
22
 
22
23
  class UpdateFailed(Exception): ...
23
24
 
@@ -36,7 +37,6 @@ class DataUpdateCoordinator(BaseDataUpdateCoordinatorProtocol, Generic[_DataT]):
36
37
  data: Incomplete
37
38
  _microsecond: Incomplete
38
39
  _listeners: Incomplete
39
- _job: Incomplete
40
40
  _unsub_refresh: Incomplete
41
41
  _unsub_shutdown: Incomplete
42
42
  _request_refresh_task: Incomplete
@@ -2,6 +2,7 @@ import pathlib
2
2
  import voluptuous as vol
3
3
  from . import generated as generated
4
4
  from .config_entries import ConfigEntry as ConfigEntry
5
+ from .const import Platform as Platform
5
6
  from .core import HomeAssistant as HomeAssistant, callback as callback
6
7
  from .generated.application_credentials import APPLICATION_CREDENTIALS as APPLICATION_CREDENTIALS
7
8
  from .generated.bluetooth import BLUETOOTH as BLUETOOTH
@@ -24,6 +25,7 @@ from typing import Any, Literal, Protocol, TypeVar, TypedDict
24
25
 
25
26
  _CallableT = TypeVar('_CallableT', bound=Callable[..., Any])
26
27
  _LOGGER: Incomplete
28
+ BASE_PRELOAD_PLATFORMS: Incomplete
27
29
 
28
30
  @dataclass
29
31
  class BlockedIntegration:
@@ -36,11 +38,12 @@ DATA_COMPONENTS: str
36
38
  DATA_INTEGRATIONS: str
37
39
  DATA_MISSING_PLATFORMS: str
38
40
  DATA_CUSTOM_COMPONENTS: str
41
+ DATA_PRELOAD_PLATFORMS: str
39
42
  PACKAGE_CUSTOM_COMPONENTS: str
40
43
  PACKAGE_BUILTIN: str
41
44
  CUSTOM_WARNING: str
45
+ IMPORT_EVENT_LOOP_WARNING: str
42
46
  _UNDEF: Incomplete
43
- MAX_LOAD_CONCURRENTLY: int
44
47
  MOVED_ZEROCONF_PROPS: Incomplete
45
48
 
46
49
  class DHCPMatcherRequired(TypedDict, total=True):
@@ -93,7 +96,7 @@ class Manifest(TypedDict, total=False):
93
96
  name: str
94
97
  disabled: str
95
98
  domain: str
96
- integration_type: Literal['entity', 'device', 'hardware', 'helper', 'hub', 'service', 'system']
99
+ integration_type: Literal['entity', 'device', 'hardware', 'helper', 'hub', 'service', 'system', 'virtual']
97
100
  dependencies: list[str]
98
101
  after_dependencies: list[str]
99
102
  requirements: list[str]
@@ -145,6 +148,7 @@ def homekit_always_discover(iot_class: str | None) -> bool: ...
145
148
  async def async_get_homekit(hass: HomeAssistant) -> dict[str, HomeKitDiscoveredIntegration]: ...
146
149
  async def async_get_ssdp(hass: HomeAssistant) -> dict[str, list[dict[str, str]]]: ...
147
150
  async def async_get_mqtt(hass: HomeAssistant) -> dict[str, list[str]]: ...
151
+ def async_register_preload_platform(hass: HomeAssistant, platform_name: str) -> None: ...
148
152
 
149
153
  class Integration:
150
154
  @classmethod
@@ -155,8 +159,13 @@ class Integration:
155
159
  manifest: Incomplete
156
160
  _all_dependencies_resolved: Incomplete
157
161
  _all_dependencies: Incomplete
162
+ _platforms_to_preload: Incomplete
163
+ _component_future: Incomplete
158
164
  _import_futures: Incomplete
159
- def __init__(self, hass: HomeAssistant, pkg_path: str, file_path: pathlib.Path, manifest: Manifest) -> None: ...
165
+ _cache: Incomplete
166
+ _missing_platforms_cache: Incomplete
167
+ _top_level_files: Incomplete
168
+ def __init__(self, hass: HomeAssistant, pkg_path: str, file_path: pathlib.Path, manifest: Manifest, top_level_files: set[str] | None = None) -> None: ...
160
169
  @cached_property
161
170
  def name(self) -> str: ...
162
171
  @cached_property
@@ -182,9 +191,13 @@ class Integration:
182
191
  @cached_property
183
192
  def iot_class(self) -> str | None: ...
184
193
  @cached_property
185
- def integration_type(self) -> Literal['entity', 'device', 'hardware', 'helper', 'hub', 'service', 'system']: ...
194
+ def integration_type(self) -> Literal['entity', 'device', 'hardware', 'helper', 'hub', 'service', 'system', 'virtual']: ...
186
195
  @cached_property
187
196
  def import_executor(self) -> bool: ...
197
+ @cached_property
198
+ def has_translations(self) -> bool: ...
199
+ @cached_property
200
+ def has_services(self) -> bool: ...
188
201
  @property
189
202
  def mqtt(self) -> list[str] | None: ...
190
203
  @property
@@ -212,9 +225,15 @@ class Integration:
212
225
  async def resolve_dependencies(self) -> bool: ...
213
226
  async def async_get_component(self) -> ComponentProtocol: ...
214
227
  def get_component(self) -> ComponentProtocol: ...
228
+ def _get_component(self, preload_platforms: bool = False) -> ComponentProtocol: ...
229
+ def _load_platforms(self, platform_names: Iterable[str]) -> dict[str, ModuleType]: ...
215
230
  async def async_get_platform(self, platform_name: str) -> ModuleType: ...
216
- def _get_platform_cached(self, full_name: str) -> ModuleType | None: ...
231
+ async def async_get_platforms(self, platform_names: Iterable[Platform | str]) -> dict[str, ModuleType]: ...
232
+ def _get_platform_cached_or_raise(self, full_name: str) -> ModuleType | None: ...
233
+ def platforms_are_loaded(self, platform_names: Iterable[str]) -> bool: ...
234
+ def get_platform_cached(self, platform_name: str) -> ModuleType | None: ...
217
235
  def get_platform(self, platform_name: str) -> ModuleType: ...
236
+ def platforms_exists(self, platform_names: Iterable[str]) -> list[str]: ...
218
237
  def _load_platform(self, platform_name: str) -> ModuleType: ...
219
238
  def _import_platform(self, platform_name: str) -> ModuleType: ...
220
239
  def __repr__(self) -> str: ...
@@ -1,17 +1,20 @@
1
+ import contextvars
1
2
  from . import core as core, loader as loader, requirements as requirements
2
3
  from .const import EVENT_COMPONENT_LOADED as EVENT_COMPONENT_LOADED, EVENT_HOMEASSISTANT_START as EVENT_HOMEASSISTANT_START, PLATFORM_FORMAT as PLATFORM_FORMAT, Platform as Platform
3
4
  from .core import CALLBACK_TYPE as CALLBACK_TYPE, Event as Event, HomeAssistant as HomeAssistant, callback as callback
4
5
  from .exceptions import DependencyError as DependencyError, HomeAssistantError as HomeAssistantError
5
6
  from .helpers import translation as translation
6
7
  from .helpers.issue_registry import IssueSeverity as IssueSeverity, async_create_issue as async_create_issue
7
- from .helpers.typing import ConfigType as ConfigType, EventType as EventType
8
- from .util import ensure_unique_string as ensure_unique_string
8
+ from .helpers.typing import ConfigType as ConfigType
9
9
  from .util.async_ import create_eager_task as create_eager_task
10
10
  from _typeshed import Incomplete
11
- from collections.abc import Awaitable, Callable as Callable, Generator, Iterable
11
+ from collections import defaultdict
12
+ from collections.abc import Awaitable, Callable as Callable, Generator
13
+ from enum import StrEnum
12
14
  from types import ModuleType
13
15
  from typing import Final, TypedDict
14
16
 
17
+ current_setup_group: contextvars.ContextVar[tuple[str, str | None] | None]
15
18
  _LOGGER: Incomplete
16
19
  ATTR_COMPONENT: Final[str]
17
20
  BASE_PLATFORMS: Incomplete
@@ -40,4 +43,18 @@ def async_when_setup(hass: core.HomeAssistant, component: str, when_setup_cb: Ca
40
43
  def async_when_setup_or_start(hass: core.HomeAssistant, component: str, when_setup_cb: Callable[[core.HomeAssistant, str], Awaitable[None]]) -> None: ...
41
44
  def _async_when_setup(hass: core.HomeAssistant, component: str, when_setup_cb: Callable[[core.HomeAssistant, str], Awaitable[None]], start_event: bool) -> None: ...
42
45
  def async_get_loaded_integrations(hass: core.HomeAssistant) -> set[str]: ...
43
- def async_start_setup(hass: core.HomeAssistant, components: Iterable[str]) -> Generator[None, None, None]: ...
46
+
47
+ class SetupPhases(StrEnum):
48
+ SETUP: str
49
+ CONFIG_ENTRY_SETUP: str
50
+ PLATFORM_SETUP: str
51
+ CONFIG_ENTRY_PLATFORM_SETUP: str
52
+ WAIT_BASE_PLATFORM_SETUP: str
53
+ WAIT_IMPORT_PLATFORMS: str
54
+ WAIT_IMPORT_PACKAGES: str
55
+
56
+ def _setup_started(hass: core.HomeAssistant) -> dict[tuple[str, str | None], float]: ...
57
+ def async_pause_setup(hass: core.HomeAssistant, phase: SetupPhases) -> Generator[None, None, None]: ...
58
+ def _setup_times(hass: core.HomeAssistant) -> defaultdict[str, defaultdict[str | None, defaultdict[SetupPhases, float]]]: ...
59
+ def async_start_setup(hass: core.HomeAssistant, integration: str, phase: SetupPhases, group: str | None = None) -> Generator[None, None, None]: ...
60
+ def async_get_setup_timings(hass: core.HomeAssistant) -> dict[str, float]: ...
@@ -1,7 +1,7 @@
1
1
  import concurrent.futures
2
2
  from _typeshed import Incomplete
3
3
  from asyncio import AbstractEventLoop, Future, Task
4
- from collections.abc import Awaitable, Callable as Callable
4
+ from collections.abc import Callable as Callable, Coroutine
5
5
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
6
6
  from typing import Any, ParamSpec, TypeVar, TypeVarTuple
7
7
 
@@ -12,7 +12,7 @@ _R = TypeVar('_R')
12
12
  _P = ParamSpec('_P')
13
13
  _Ts = TypeVarTuple('_Ts')
14
14
 
15
- def create_eager_task(coro: Awaitable[_T], *, name: str | None = None, loop: AbstractEventLoop | None = None) -> Task[_T]: ...
15
+ def create_eager_task(coro: Coroutine[Any, Any, _T], *, name: str | None = None, loop: AbstractEventLoop | None = None) -> Task[_T]: ...
16
16
  def cancelling(task: Future[Any]) -> bool: ...
17
17
  def run_callback_threadsafe(loop: AbstractEventLoop, callback: Callable[[Unpack[_Ts]], _T], *args: Unpack[_Ts]) -> concurrent.futures.Future[_T]: ...
18
18
  def check_loop(func: Callable[..., Any], strict: bool = True, advise_msg: str | None = None) -> None: ...