homeassistant-stubs 2025.1.3__py3-none-any.whl → 2025.2.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (732) hide show
  1. homeassistant-stubs/auth/mfa_modules/__init__.pyi +2 -4
  2. homeassistant-stubs/auth/models.pyi +1 -1
  3. homeassistant-stubs/auth/permissions/__init__.pyi +1 -1
  4. homeassistant-stubs/auth/providers/__init__.pyi +2 -4
  5. homeassistant-stubs/backup_restore.pyi +2 -0
  6. homeassistant-stubs/components/airgradient/button.pyi +4 -1
  7. homeassistant-stubs/components/airgradient/config_flow.pyi +5 -3
  8. homeassistant-stubs/components/airgradient/entity.pyi +5 -0
  9. homeassistant-stubs/components/airgradient/number.pyi +4 -1
  10. homeassistant-stubs/components/airgradient/select.pyi +4 -1
  11. homeassistant-stubs/components/airgradient/sensor.pyi +2 -0
  12. homeassistant-stubs/components/airgradient/switch.pyi +5 -1
  13. homeassistant-stubs/components/airgradient/update.pyi +2 -1
  14. homeassistant-stubs/components/airnow/coordinator.pyi +1 -1
  15. homeassistant-stubs/components/airzone/__init__.pyi +2 -0
  16. homeassistant-stubs/components/airzone/config_flow.pyi +3 -2
  17. homeassistant-stubs/components/alarm_control_panel/__init__.pyi +1 -1
  18. homeassistant-stubs/components/androidtv_remote/config_flow.pyi +2 -2
  19. homeassistant-stubs/components/api/__init__.pyi +1 -1
  20. homeassistant-stubs/components/apple_tv/config_flow.pyi +2 -1
  21. homeassistant-stubs/components/apsystems/coordinator.pyi +1 -0
  22. homeassistant-stubs/components/aranet/sensor.pyi +1 -1
  23. homeassistant-stubs/components/arcam_fmj/config_flow.pyi +2 -2
  24. homeassistant-stubs/components/assist_pipeline/__init__.pyi +2 -2
  25. homeassistant-stubs/components/assist_pipeline/pipeline.pyi +4 -1
  26. homeassistant-stubs/components/assist_pipeline/select.pyi +2 -2
  27. homeassistant-stubs/components/assist_pipeline/websocket_api.pyi +2 -2
  28. homeassistant-stubs/components/assist_satellite/__init__.pyi +1 -1
  29. homeassistant-stubs/components/assist_satellite/const.pyi +1 -0
  30. homeassistant-stubs/components/assist_satellite/entity.pyi +7 -1
  31. homeassistant-stubs/components/assist_satellite/intent.pyi +13 -0
  32. homeassistant-stubs/components/assist_satellite/websocket_api.pyi +0 -2
  33. homeassistant-stubs/components/automation/__init__.pyi +1 -1
  34. homeassistant-stubs/components/awair/config_flow.pyi +3 -2
  35. homeassistant-stubs/components/axis/config_flow.pyi +6 -4
  36. homeassistant-stubs/components/backup/__init__.pyi +8 -3
  37. homeassistant-stubs/components/backup/agent.pyi +6 -5
  38. homeassistant-stubs/components/backup/backup.pyi +6 -4
  39. homeassistant-stubs/components/backup/config.pyi +45 -3
  40. homeassistant-stubs/components/backup/http.pyi +8 -0
  41. homeassistant-stubs/components/backup/manager.pyi +42 -22
  42. homeassistant-stubs/components/backup/models.pyi +18 -3
  43. homeassistant-stubs/components/backup/store.pyi +7 -2
  44. homeassistant-stubs/components/backup/util.pyi +94 -0
  45. homeassistant-stubs/components/backup/websocket.pyi +6 -3
  46. homeassistant-stubs/components/baf/config_flow.pyi +2 -2
  47. homeassistant-stubs/components/bang_olufsen/config_flow.pyi +1 -1
  48. homeassistant-stubs/components/bang_olufsen/const.pyi +6 -0
  49. homeassistant-stubs/components/bang_olufsen/event.pyi +23 -0
  50. homeassistant-stubs/components/bang_olufsen/websocket.pyi +3 -2
  51. homeassistant-stubs/components/binary_sensor/__init__.pyi +1 -1
  52. homeassistant-stubs/components/blueprint/importer.pyi +0 -1
  53. homeassistant-stubs/components/blueprint/models.pyi +0 -1
  54. homeassistant-stubs/components/blueprint/websocket_api.pyi +0 -1
  55. homeassistant-stubs/components/bluesound/__init__.pyi +2 -0
  56. homeassistant-stubs/components/bluesound/config_flow.pyi +2 -3
  57. homeassistant-stubs/components/bluesound/coordinator.pyi +30 -0
  58. homeassistant-stubs/components/bluesound/media_player.pyi +10 -25
  59. homeassistant-stubs/components/bluetooth/__init__.pyi +2 -2
  60. homeassistant-stubs/components/bluetooth/api.pyi +3 -1
  61. homeassistant-stubs/components/bluetooth/config_flow.pyi +10 -3
  62. homeassistant-stubs/components/bluetooth/const.pyi +5 -0
  63. homeassistant-stubs/components/bluetooth/manager.pyi +5 -1
  64. homeassistant-stubs/components/bluetooth/passive_update_coordinator.pyi +1 -4
  65. homeassistant-stubs/components/bluetooth/storage.pyi +2 -0
  66. homeassistant-stubs/components/bluetooth/util.pyi +6 -1
  67. homeassistant-stubs/components/bluetooth/websocket_api.pyi +46 -0
  68. homeassistant-stubs/components/bond/config_flow.pyi +2 -2
  69. homeassistant-stubs/components/braviatv/config_flow.pyi +2 -2
  70. homeassistant-stubs/components/brother/config_flow.pyi +2 -2
  71. homeassistant-stubs/components/button/__init__.pyi +1 -1
  72. homeassistant-stubs/components/cambridge_audio/config_flow.pyi +2 -2
  73. homeassistant-stubs/components/camera/__init__.pyi +1 -1
  74. homeassistant-stubs/components/canary/__init__.pyi +7 -7
  75. homeassistant-stubs/components/canary/alarm_control_panel.pyi +2 -4
  76. homeassistant-stubs/components/canary/camera.pyi +3 -4
  77. homeassistant-stubs/components/canary/const.pyi +0 -2
  78. homeassistant-stubs/components/canary/coordinator.pyi +3 -1
  79. homeassistant-stubs/components/canary/sensor.pyi +3 -4
  80. homeassistant-stubs/components/climate/__init__.pyi +2 -2
  81. homeassistant-stubs/components/climate/const.pyi +1 -0
  82. homeassistant-stubs/components/climate/intent.pyi +9 -1
  83. homeassistant-stubs/components/cloud/__init__.pyi +1 -1
  84. homeassistant-stubs/components/cloud/backup.pyi +3 -9
  85. homeassistant-stubs/components/cloud/const.pyi +0 -1
  86. homeassistant-stubs/components/cloud/http_api.pyi +7 -1
  87. homeassistant-stubs/components/config/core.pyi +1 -1
  88. homeassistant-stubs/components/cookidoo/__init__.pyi +6 -2
  89. homeassistant-stubs/components/cookidoo/button.pyi +27 -0
  90. homeassistant-stubs/components/cookidoo/config_flow.pyi +4 -1
  91. homeassistant-stubs/components/cookidoo/const.pyi +3 -0
  92. homeassistant-stubs/components/cookidoo/coordinator.pyi +3 -1
  93. homeassistant-stubs/components/cookidoo/diagnostics.pyi +10 -0
  94. homeassistant-stubs/components/cookidoo/helpers.pyi +9 -0
  95. homeassistant-stubs/components/cookidoo/sensor.pyi +34 -0
  96. homeassistant-stubs/components/cover/__init__.pyi +1 -1
  97. homeassistant-stubs/components/crownstone/__init__.pyi +6 -5
  98. homeassistant-stubs/components/crownstone/config_flow.pyi +6 -4
  99. homeassistant-stubs/components/crownstone/entry_manager.pyi +6 -6
  100. homeassistant-stubs/components/crownstone/helpers.pyi +2 -1
  101. homeassistant-stubs/components/crownstone/light.pyi +3 -4
  102. homeassistant-stubs/components/date/__init__.pyi +1 -1
  103. homeassistant-stubs/components/datetime/__init__.pyi +1 -1
  104. homeassistant-stubs/components/deconz/__init__.pyi +5 -4
  105. homeassistant-stubs/components/deconz/alarm_control_panel.pyi +2 -2
  106. homeassistant-stubs/components/deconz/binary_sensor.pyi +2 -2
  107. homeassistant-stubs/components/deconz/button.pyi +2 -2
  108. homeassistant-stubs/components/deconz/climate.pyi +2 -2
  109. homeassistant-stubs/components/deconz/config_flow.pyi +3 -6
  110. homeassistant-stubs/components/deconz/cover.pyi +2 -2
  111. homeassistant-stubs/components/deconz/device_trigger.pyi +1 -2
  112. homeassistant-stubs/components/deconz/diagnostics.pyi +2 -3
  113. homeassistant-stubs/components/deconz/fan.pyi +2 -2
  114. homeassistant-stubs/components/deconz/hub/api.pyi +2 -2
  115. homeassistant-stubs/components/deconz/hub/config.pyi +3 -3
  116. homeassistant-stubs/components/deconz/hub/hub.pyi +4 -6
  117. homeassistant-stubs/components/deconz/light.pyi +2 -2
  118. homeassistant-stubs/components/deconz/lock.pyi +2 -3
  119. homeassistant-stubs/components/deconz/number.pyi +2 -2
  120. homeassistant-stubs/components/deconz/scene.pyi +2 -3
  121. homeassistant-stubs/components/deconz/select.pyi +2 -3
  122. homeassistant-stubs/components/deconz/sensor.pyi +2 -2
  123. homeassistant-stubs/components/deconz/services.pyi +2 -1
  124. homeassistant-stubs/components/deconz/siren.pyi +2 -3
  125. homeassistant-stubs/components/deconz/switch.pyi +2 -3
  126. homeassistant-stubs/components/deconz/util.pyi +7 -0
  127. homeassistant-stubs/components/device_tracker/config_entry.pyi +1 -1
  128. homeassistant-stubs/components/device_tracker/legacy.pyi +1 -1
  129. homeassistant-stubs/components/devolo_home_control/config_flow.pyi +2 -2
  130. homeassistant-stubs/components/devolo_home_network/config_flow.pyi +2 -1
  131. homeassistant-stubs/components/dhcp/__init__.pyi +6 -7
  132. homeassistant-stubs/components/discovergy/sensor.pyi +2 -0
  133. homeassistant-stubs/components/dlna_dmr/config_flow.pyi +7 -6
  134. homeassistant-stubs/components/dlna_dmr/media_player.pyi +2 -1
  135. homeassistant-stubs/components/dlna_dms/config_flow.pyi +5 -4
  136. homeassistant-stubs/components/dlna_dms/dms.pyi +3 -2
  137. homeassistant-stubs/components/doorbird/config_flow.pyi +2 -2
  138. homeassistant-stubs/components/doorbird/device.pyi +1 -1
  139. homeassistant-stubs/components/dormakaba_dkey/__init__.pyi +5 -9
  140. homeassistant-stubs/components/dormakaba_dkey/binary_sensor.pyi +3 -7
  141. homeassistant-stubs/components/dormakaba_dkey/coordinator.pyi +15 -0
  142. homeassistant-stubs/components/dormakaba_dkey/entity.pyi +4 -5
  143. homeassistant-stubs/components/dormakaba_dkey/lock.pyi +3 -7
  144. homeassistant-stubs/components/dormakaba_dkey/sensor.pyi +3 -7
  145. homeassistant-stubs/components/dunehd/__init__.pyi +4 -3
  146. homeassistant-stubs/components/dunehd/media_player.pyi +2 -2
  147. homeassistant-stubs/components/duotecno/__init__.pyi +4 -3
  148. homeassistant-stubs/components/duotecno/binary_sensor.pyi +2 -4
  149. homeassistant-stubs/components/duotecno/climate.pyi +2 -4
  150. homeassistant-stubs/components/duotecno/cover.pyi +2 -4
  151. homeassistant-stubs/components/duotecno/light.pyi +2 -4
  152. homeassistant-stubs/components/duotecno/switch.pyi +2 -4
  153. homeassistant-stubs/components/eheimdigital/climate.pyi +40 -0
  154. homeassistant-stubs/components/eheimdigital/config_flow.pyi +1 -1
  155. homeassistant-stubs/components/eheimdigital/const.pyi +4 -0
  156. homeassistant-stubs/components/eheimdigital/coordinator.pyi +2 -3
  157. homeassistant-stubs/components/eheimdigital/light.pyi +1 -0
  158. homeassistant-stubs/components/electrasmart/__init__.pyi +6 -4
  159. homeassistant-stubs/components/electrasmart/climate.pyi +2 -2
  160. homeassistant-stubs/components/electric_kiwi/__init__.pyi +3 -5
  161. homeassistant-stubs/components/electric_kiwi/const.pyi +0 -2
  162. homeassistant-stubs/components/electric_kiwi/coordinator.pyi +10 -2
  163. homeassistant-stubs/components/electric_kiwi/select.pyi +3 -4
  164. homeassistant-stubs/components/electric_kiwi/sensor.pyi +3 -4
  165. homeassistant-stubs/components/elevenlabs/const.pyi +1 -0
  166. homeassistant-stubs/components/elevenlabs/tts.pyi +1 -1
  167. homeassistant-stubs/components/elgato/config_flow.pyi +3 -2
  168. homeassistant-stubs/components/elkm1/binary_sensor.pyi +1 -1
  169. homeassistant-stubs/components/elkm1/config_flow.pyi +2 -2
  170. homeassistant-stubs/components/elkm1/sensor.pyi +5 -5
  171. homeassistant-stubs/components/energenie_power_sockets/__init__.pyi +5 -4
  172. homeassistant-stubs/components/energenie_power_sockets/switch.pyi +2 -2
  173. homeassistant-stubs/components/enphase_envoy/config_flow.pyi +5 -5
  174. homeassistant-stubs/components/enphase_envoy/coordinator.pyi +7 -0
  175. homeassistant-stubs/components/enphase_envoy/select.pyi +2 -2
  176. homeassistant-stubs/components/enphase_envoy/sensor.pyi +1 -4
  177. homeassistant-stubs/components/esphome/__init__.pyi +1 -0
  178. homeassistant-stubs/components/esphome/bluetooth.pyi +2 -1
  179. homeassistant-stubs/components/esphome/config_flow.pyi +5 -3
  180. homeassistant-stubs/components/esphome/dashboard.pyi +2 -1
  181. homeassistant-stubs/components/esphome/manager.pyi +1 -1
  182. homeassistant-stubs/components/event/__init__.pyi +2 -2
  183. homeassistant-stubs/components/evil_genius_labs/__init__.pyi +3 -5
  184. homeassistant-stubs/components/evil_genius_labs/coordinator.pyi +4 -1
  185. homeassistant-stubs/components/evil_genius_labs/diagnostics.pyi +2 -4
  186. homeassistant-stubs/components/evil_genius_labs/light.pyi +2 -4
  187. homeassistant-stubs/components/fan/__init__.pyi +1 -1
  188. homeassistant-stubs/components/feedreader/__init__.pyi +3 -5
  189. homeassistant-stubs/components/feedreader/coordinator.pyi +5 -3
  190. homeassistant-stubs/components/filter/__init__.pyi +6 -4
  191. homeassistant-stubs/components/filter/config_flow.pyi +28 -0
  192. homeassistant-stubs/components/filter/const.pyi +29 -0
  193. homeassistant-stubs/components/filter/sensor.pyi +3 -24
  194. homeassistant-stubs/components/flux_led/config_flow.pyi +2 -2
  195. homeassistant-stubs/components/fritz/__init__.pyi +9 -7
  196. homeassistant-stubs/components/fritz/binary_sensor.pyi +2 -4
  197. homeassistant-stubs/components/fritz/button.pyi +3 -4
  198. homeassistant-stubs/components/fritz/config_flow.pyi +6 -5
  199. homeassistant-stubs/components/fritz/const.pyi +0 -3
  200. homeassistant-stubs/components/fritz/coordinator.pyi +12 -10
  201. homeassistant-stubs/components/fritz/device_tracker.pyi +2 -4
  202. homeassistant-stubs/components/fritz/diagnostics.pyi +2 -4
  203. homeassistant-stubs/components/fritz/image.pyi +2 -4
  204. homeassistant-stubs/components/fritz/sensor.pyi +3 -4
  205. homeassistant-stubs/components/fritz/services.pyi +5 -8
  206. homeassistant-stubs/components/fritz/switch.pyi +3 -4
  207. homeassistant-stubs/components/fritz/update.pyi +2 -4
  208. homeassistant-stubs/components/fritzbox/config_flow.pyi +2 -2
  209. homeassistant-stubs/components/fritzbox/coordinator.pyi +1 -1
  210. homeassistant-stubs/components/fronius/config_flow.pyi +1 -1
  211. homeassistant-stubs/components/frontend/__init__.pyi +1 -1
  212. homeassistant-stubs/components/fujitsu_fglair/climate.pyi +2 -8
  213. homeassistant-stubs/components/fujitsu_fglair/entity.pyi +15 -0
  214. homeassistant-stubs/components/fujitsu_fglair/sensor.pyi +21 -0
  215. homeassistant-stubs/components/fully_kiosk/config_flow.pyi +1 -1
  216. homeassistant-stubs/components/fyta/binary_sensor.pyi +23 -0
  217. homeassistant-stubs/components/fyta/entity.pyi +2 -2
  218. homeassistant-stubs/components/fyta/image.pyi +18 -0
  219. homeassistant-stubs/components/generic_thermostat/climate.pyi +1 -0
  220. homeassistant-stubs/components/geo_location/__init__.pyi +1 -1
  221. homeassistant-stubs/components/goalzero/config_flow.pyi +2 -2
  222. homeassistant-stubs/components/google_drive/__init__.pyi +17 -0
  223. homeassistant-stubs/components/google_drive/api.pyi +35 -0
  224. homeassistant-stubs/components/google_drive/application_credentials.pyi +6 -0
  225. homeassistant-stubs/components/google_drive/backup.pyi +28 -0
  226. homeassistant-stubs/components/google_drive/config_flow.pyi +24 -0
  227. homeassistant-stubs/components/google_drive/const.pyi +1 -0
  228. homeassistant-stubs/components/guardian/config_flow.pyi +4 -3
  229. homeassistant-stubs/components/habitica/__init__.pyi +16 -0
  230. homeassistant-stubs/components/habitica/binary_sensor.pyi +33 -0
  231. homeassistant-stubs/components/habitica/button.pyi +53 -0
  232. homeassistant-stubs/components/habitica/calendar.pyi +56 -0
  233. homeassistant-stubs/components/habitica/config_flow.pyi +27 -0
  234. homeassistant-stubs/components/habitica/const.pyi +44 -0
  235. homeassistant-stubs/components/habitica/coordinator.pyi +29 -0
  236. homeassistant-stubs/components/habitica/diagnostics.pyi +7 -0
  237. homeassistant-stubs/components/habitica/entity.pyi +14 -0
  238. homeassistant-stubs/components/habitica/image.pyi +26 -0
  239. homeassistant-stubs/components/habitica/sensor.pyi +81 -0
  240. homeassistant-stubs/components/habitica/services.pyi +24 -0
  241. homeassistant-stubs/components/habitica/switch.pyi +32 -0
  242. homeassistant-stubs/components/habitica/todo.pyi +43 -0
  243. homeassistant-stubs/components/habitica/types.pyi +10 -0
  244. homeassistant-stubs/components/habitica/util.pyi +15 -0
  245. homeassistant-stubs/components/heos/__init__.pyi +15 -0
  246. homeassistant-stubs/components/heos/config_flow.pyi +32 -0
  247. homeassistant-stubs/components/heos/const.pyi +5 -0
  248. homeassistant-stubs/components/heos/coordinator.pyi +44 -0
  249. homeassistant-stubs/components/heos/diagnostics.pyi +14 -0
  250. homeassistant-stubs/components/heos/media_player.pyi +95 -0
  251. homeassistant-stubs/components/heos/services.pyi +16 -0
  252. homeassistant-stubs/components/holiday/config_flow.pyi +3 -1
  253. homeassistant-stubs/components/homeassistant_hardware/firmware_config_flow.pyi +1 -3
  254. homeassistant-stubs/components/homeassistant_hardware/util.pyi +13 -1
  255. homeassistant-stubs/components/homeassistant_sky_connect/config_flow.pyi +4 -2
  256. homeassistant-stubs/components/homeassistant_sky_connect/util.pyi +2 -2
  257. homeassistant-stubs/components/homeassistant_yellow/config_flow.pyi +1 -0
  258. homeassistant-stubs/components/homee/__init__.pyi +14 -0
  259. homeassistant-stubs/components/homee/config_flow.pyi +14 -0
  260. homeassistant-stubs/components/homee/const.pyi +9 -0
  261. homeassistant-stubs/components/homee/cover.pyi +43 -0
  262. homeassistant-stubs/components/homee/entity.pyi +43 -0
  263. homeassistant-stubs/components/homee/helpers.pyi +6 -0
  264. homeassistant-stubs/components/homee/sensor.pyi +49 -0
  265. homeassistant-stubs/components/homekit/util.pyi +1 -1
  266. homeassistant-stubs/components/homekit_controller/config_flow.pyi +3 -2
  267. homeassistant-stubs/components/homewizard/__init__.pyi +5 -0
  268. homeassistant-stubs/components/homewizard/config_flow.pyi +19 -19
  269. homeassistant-stubs/components/homewizard/const.pyi +0 -11
  270. homeassistant-stubs/components/homewizard/coordinator.pyi +6 -12
  271. homeassistant-stubs/components/homewizard/number.pyi +0 -1
  272. homeassistant-stubs/components/homewizard/repairs.pyi +17 -0
  273. homeassistant-stubs/components/homewizard/sensor.pyi +8 -5
  274. homeassistant-stubs/components/homewizard/switch.pyi +4 -4
  275. homeassistant-stubs/components/http/ban.pyi +0 -1
  276. homeassistant-stubs/components/huawei_lte/config_flow.pyi +2 -2
  277. homeassistant-stubs/components/humidifier/__init__.pyi +1 -1
  278. homeassistant-stubs/components/husqvarna_automower/__init__.pyi +0 -3
  279. homeassistant-stubs/components/husqvarna_automower/coordinator.pyi +14 -0
  280. homeassistant-stubs/components/husqvarna_automower/number.pyi +1 -1
  281. homeassistant-stubs/components/hydrawise/__init__.pyi +3 -1
  282. homeassistant-stubs/components/hydrawise/config_flow.pyi +13 -5
  283. homeassistant-stubs/components/hydrawise/coordinator.pyi +4 -4
  284. homeassistant-stubs/components/hydrawise/switch.pyi +3 -3
  285. homeassistant-stubs/components/hyperion/config_flow.pyi +2 -2
  286. homeassistant-stubs/components/image/__init__.pyi +1 -1
  287. homeassistant-stubs/components/imgw_pib/__init__.pyi +1 -1
  288. homeassistant-stubs/components/imgw_pib/sensor.pyi +2 -1
  289. homeassistant-stubs/components/incomfort/__init__.pyi +18 -0
  290. homeassistant-stubs/components/incomfort/binary_sensor.pyi +33 -0
  291. homeassistant-stubs/components/incomfort/climate.pyi +42 -0
  292. homeassistant-stubs/components/incomfort/config_flow.pyi +37 -0
  293. homeassistant-stubs/components/incomfort/const.pyi +2 -0
  294. homeassistant-stubs/components/incomfort/coordinator.pyi +25 -0
  295. homeassistant-stubs/components/incomfort/diagnostics.pyi +12 -0
  296. homeassistant-stubs/components/incomfort/entity.pyi +14 -0
  297. homeassistant-stubs/components/incomfort/errors.pyi +18 -0
  298. homeassistant-stubs/components/incomfort/sensor.pyi +33 -0
  299. homeassistant-stubs/components/incomfort/water_heater.pyi +32 -0
  300. homeassistant-stubs/components/intent/__init__.pyi +1 -1
  301. homeassistant-stubs/components/intent/timers.pyi +1 -2
  302. homeassistant-stubs/components/ipp/config_flow.pyi +2 -2
  303. homeassistant-stubs/components/iron_os/button.pyi +31 -0
  304. homeassistant-stubs/components/iron_os/coordinator.pyi +4 -1
  305. homeassistant-stubs/components/iron_os/diagnostics.pyi +6 -0
  306. homeassistant-stubs/components/iron_os/number.pyi +1 -2
  307. homeassistant-stubs/components/iron_os/select.pyi +2 -4
  308. homeassistant-stubs/components/iron_os/switch.pyi +43 -0
  309. homeassistant-stubs/components/isy994/__init__.pyi +1 -2
  310. homeassistant-stubs/components/isy994/config_flow.pyi +4 -3
  311. homeassistant-stubs/components/kaleidescape/config_flow.pyi +2 -2
  312. homeassistant-stubs/components/knx/binary_sensor.pyi +18 -10
  313. homeassistant-stubs/components/knx/climate.pyi +10 -2
  314. homeassistant-stubs/components/knx/const.pyi +2 -0
  315. homeassistant-stubs/components/knx/entity.pyi +1 -1
  316. homeassistant-stubs/components/knx/light.pyi +1 -1
  317. homeassistant-stubs/components/knx/schema.pyi +5 -7
  318. homeassistant-stubs/components/knx/sensor.pyi +1 -1
  319. homeassistant-stubs/components/knx/storage/const.pyi +1 -0
  320. homeassistant-stubs/components/knx/storage/entity_store_schema.pyi +4 -2
  321. homeassistant-stubs/components/lamarzocco/config_flow.pyi +2 -2
  322. homeassistant-stubs/components/lametric/config_flow.pyi +2 -2
  323. homeassistant-stubs/components/lawn_mower/__init__.pyi +1 -1
  324. homeassistant-stubs/components/lcn/__init__.pyi +2 -2
  325. homeassistant-stubs/components/lcn/climate.pyi +2 -1
  326. homeassistant-stubs/components/lcn/const.pyi +1 -0
  327. homeassistant-stubs/components/lcn/schemas.pyi +1 -1
  328. homeassistant-stubs/components/lektrico/config_flow.pyi +1 -1
  329. homeassistant-stubs/components/letpot/__init__.pyi +13 -0
  330. homeassistant-stubs/components/letpot/config_flow.pyi +19 -0
  331. homeassistant-stubs/components/letpot/const.pyi +6 -0
  332. homeassistant-stubs/components/letpot/coordinator.pyi +20 -0
  333. homeassistant-stubs/components/letpot/entity.pyi +10 -0
  334. homeassistant-stubs/components/letpot/time.pyi +33 -0
  335. homeassistant-stubs/components/lifx/config_flow.pyi +3 -3
  336. homeassistant-stubs/components/lifx/coordinator.pyi +1 -1
  337. homeassistant-stubs/components/lifx/manager.pyi +16 -1
  338. homeassistant-stubs/components/light/__init__.pyi +1 -1
  339. homeassistant-stubs/components/linkplay/config_flow.pyi +2 -2
  340. homeassistant-stubs/components/litterrobot/__init__.pyi +2 -6
  341. homeassistant-stubs/components/litterrobot/binary_sensor.pyi +6 -9
  342. homeassistant-stubs/components/litterrobot/button.pyi +6 -10
  343. homeassistant-stubs/components/litterrobot/{hub.pyi → coordinator.pyi} +11 -10
  344. homeassistant-stubs/components/litterrobot/entity.pyi +5 -7
  345. homeassistant-stubs/components/litterrobot/select.pyi +5 -14
  346. homeassistant-stubs/components/litterrobot/sensor.pyi +7 -7
  347. homeassistant-stubs/components/litterrobot/switch.pyi +7 -9
  348. homeassistant-stubs/components/litterrobot/time.pyi +3 -6
  349. homeassistant-stubs/components/litterrobot/update.pyi +1 -1
  350. homeassistant-stubs/components/litterrobot/vacuum.pyi +1 -5
  351. homeassistant-stubs/components/lock/__init__.pyi +1 -1
  352. homeassistant-stubs/components/logbook/models.pyi +1 -1
  353. homeassistant-stubs/components/lookin/config_flow.pyi +2 -2
  354. homeassistant-stubs/components/lovelace/__init__.pyi +39 -0
  355. homeassistant-stubs/components/lovelace/cast.pyi +18 -0
  356. homeassistant-stubs/components/lovelace/const.pyi +33 -0
  357. homeassistant-stubs/components/lovelace/dashboard.pyi +83 -0
  358. homeassistant-stubs/components/lovelace/resources.pyi +42 -0
  359. homeassistant-stubs/components/lovelace/system_health.pyi +9 -0
  360. homeassistant-stubs/components/lovelace/websocket.pyi +26 -0
  361. homeassistant-stubs/components/mastodon/config_flow.pyi +2 -3
  362. homeassistant-stubs/components/mastodon/notify.pyi +1 -3
  363. homeassistant-stubs/components/matter/config_flow.pyi +1 -1
  364. homeassistant-stubs/components/matter/cover.pyi +0 -1
  365. homeassistant-stubs/components/matter/discovery.pyi +2 -2
  366. homeassistant-stubs/components/matter/entity.pyi +11 -4
  367. homeassistant-stubs/components/matter/light.pyi +0 -1
  368. homeassistant-stubs/components/matter/lock.pyi +0 -2
  369. homeassistant-stubs/components/matter/models.pyi +10 -1
  370. homeassistant-stubs/components/matter/number.pyi +1 -1
  371. homeassistant-stubs/components/matter/select.pyi +32 -2
  372. homeassistant-stubs/components/matter/sensor.pyi +24 -0
  373. homeassistant-stubs/components/matter/switch.pyi +15 -2
  374. homeassistant-stubs/components/matter/vacuum.pyi +0 -1
  375. homeassistant-stubs/components/matter/valve.pyi +0 -2
  376. homeassistant-stubs/components/mcp/__init__.pyi +16 -0
  377. homeassistant-stubs/components/mcp/config_flow.pyi +23 -0
  378. homeassistant-stubs/components/mcp/const.pyi +1 -0
  379. homeassistant-stubs/components/mcp/coordinator.pyi +40 -0
  380. homeassistant-stubs/components/mcp/types.pyi +4 -0
  381. homeassistant-stubs/components/mcp_server/__init__.pyi +13 -0
  382. homeassistant-stubs/components/mcp_server/config_flow.pyi +14 -0
  383. homeassistant-stubs/components/mcp_server/const.pyi +4 -0
  384. homeassistant-stubs/components/mcp_server/http.pyi +31 -0
  385. homeassistant-stubs/components/mcp_server/llm_api.pyi +15 -0
  386. homeassistant-stubs/components/mcp_server/server.pyi +13 -0
  387. homeassistant-stubs/components/mcp_server/session.pyi +20 -0
  388. homeassistant-stubs/components/mcp_server/types.pyi +4 -0
  389. homeassistant-stubs/components/media_player/__init__.pyi +1 -1
  390. homeassistant-stubs/components/media_source/__init__.pyi +1 -1
  391. homeassistant-stubs/components/media_source/models.pyi +1 -2
  392. homeassistant-stubs/components/minecraft_server/__init__.pyi +1 -1
  393. homeassistant-stubs/components/modbus/__init__.pyi +2 -2
  394. homeassistant-stubs/components/modbus/binary_sensor.pyi +1 -3
  395. homeassistant-stubs/components/modbus/climate.pyi +4 -3
  396. homeassistant-stubs/components/modbus/const.pyi +4 -0
  397. homeassistant-stubs/components/modbus/cover.pyi +1 -2
  398. homeassistant-stubs/components/modbus/entity.pyi +15 -8
  399. homeassistant-stubs/components/modbus/light.pyi +0 -1
  400. homeassistant-stubs/components/modbus/modbus.pyi +4 -0
  401. homeassistant-stubs/components/modbus/sensor.pyi +1 -2
  402. homeassistant-stubs/components/modbus/switch.pyi +0 -1
  403. homeassistant-stubs/components/modem_callerid/config_flow.pyi +2 -1
  404. homeassistant-stubs/components/motionmount/__init__.pyi +2 -2
  405. homeassistant-stubs/components/motionmount/config_flow.pyi +16 -6
  406. homeassistant-stubs/components/motionmount/entity.pyi +3 -2
  407. homeassistant-stubs/components/motionmount/select.pyi +2 -0
  408. homeassistant-stubs/components/mqtt/__init__.pyi +11 -34
  409. homeassistant-stubs/components/mqtt/alarm_control_panel.pyi +1 -1
  410. homeassistant-stubs/components/mqtt/config_flow.pyi +3 -5
  411. homeassistant-stubs/components/mqtt/const.pyi +7 -1
  412. homeassistant-stubs/components/mqtt/diagnostics.pyi +0 -1
  413. homeassistant-stubs/components/mqtt/light/schema_basic.pyi +2 -1
  414. homeassistant-stubs/components/mqtt/light/schema_json.pyi +2 -1
  415. homeassistant-stubs/components/mqtt/light/schema_template.pyi +2 -1
  416. homeassistant-stubs/components/music_assistant/config_flow.pyi +2 -2
  417. homeassistant-stubs/components/myuplink/sensor.pyi +1 -1
  418. homeassistant-stubs/components/nam/config_flow.pyi +2 -2
  419. homeassistant-stubs/components/nanoleaf/config_flow.pyi +6 -5
  420. homeassistant-stubs/components/nest/__init__.pyi +3 -4
  421. homeassistant-stubs/components/nest/api.pyi +2 -2
  422. homeassistant-stubs/components/nest/climate.pyi +2 -0
  423. homeassistant-stubs/components/nest/config_flow.pyi +6 -2
  424. homeassistant-stubs/components/netatmo/button.pyi +25 -0
  425. homeassistant-stubs/components/netatmo/const.pyi +1 -0
  426. homeassistant-stubs/components/netatmo/data_handler.pyi +1 -1
  427. homeassistant-stubs/components/network/system_health.pyi +11 -0
  428. homeassistant-stubs/components/notify/__init__.pyi +1 -1
  429. homeassistant-stubs/components/number/__init__.pyi +2 -2
  430. homeassistant-stubs/components/nut/config_flow.pyi +2 -2
  431. homeassistant-stubs/components/onboarding/views.pyi +30 -2
  432. homeassistant-stubs/components/onedrive/__init__.pyi +26 -0
  433. homeassistant-stubs/components/onedrive/application_credentials.pyi +5 -0
  434. homeassistant-stubs/components/onedrive/backup.pyi +41 -0
  435. homeassistant-stubs/components/onedrive/config_flow.pyi +18 -0
  436. homeassistant-stubs/components/onedrive/const.pyi +10 -0
  437. homeassistant-stubs/components/onewire/__init__.pyi +4 -4
  438. homeassistant-stubs/components/onewire/binary_sensor.pyi +8 -4
  439. homeassistant-stubs/components/onewire/config_flow.pyi +12 -7
  440. homeassistant-stubs/components/onewire/const.pyi +0 -2
  441. homeassistant-stubs/components/onewire/diagnostics.pyi +1 -1
  442. homeassistant-stubs/components/onewire/onewirehub.pyi +22 -14
  443. homeassistant-stubs/components/onewire/select.pyi +27 -0
  444. homeassistant-stubs/components/onewire/sensor.pyi +7 -4
  445. homeassistant-stubs/components/onewire/switch.pyi +8 -4
  446. homeassistant-stubs/components/onkyo/config_flow.pyi +9 -4
  447. homeassistant-stubs/components/open_meteo/__init__.pyi +4 -8
  448. homeassistant-stubs/components/open_meteo/coordinator.pyi +15 -0
  449. homeassistant-stubs/components/open_meteo/diagnostics.pyi +2 -5
  450. homeassistant-stubs/components/open_meteo/weather.pyi +3 -3
  451. homeassistant-stubs/components/openai_conversation/conversation.pyi +6 -6
  452. homeassistant-stubs/components/overkiz/__init__.pyi +1 -1
  453. homeassistant-stubs/components/overkiz/climate/__init__.pyi +1 -0
  454. homeassistant-stubs/components/overkiz/climate/atlantic_pass_apc_zone_control_zone.pyi +1 -1
  455. homeassistant-stubs/components/overkiz/climate/evo_home_controller.pyi +24 -0
  456. homeassistant-stubs/components/overkiz/config_flow.pyi +4 -3
  457. homeassistant-stubs/components/overkiz/const.pyi +1 -0
  458. homeassistant-stubs/components/overkiz/coordinator.pyi +5 -3
  459. homeassistant-stubs/components/overseerr/__init__.pyi +37 -0
  460. homeassistant-stubs/components/overseerr/config_flow.pyi +14 -0
  461. homeassistant-stubs/components/overseerr/const.pyi +12 -0
  462. homeassistant-stubs/components/overseerr/coordinator.pyi +18 -0
  463. homeassistant-stubs/components/overseerr/diagnostics.pyi +6 -0
  464. homeassistant-stubs/components/overseerr/entity.pyi +11 -0
  465. homeassistant-stubs/components/overseerr/event.pyi +35 -0
  466. homeassistant-stubs/components/overseerr/sensor.pyi +27 -0
  467. homeassistant-stubs/components/overseerr/services.pyi +16 -0
  468. homeassistant-stubs/components/pandora/__init__.pyi +0 -0
  469. homeassistant-stubs/components/pandora/media_player.pyi +51 -0
  470. homeassistant-stubs/components/peblar/config_flow.pyi +3 -3
  471. homeassistant-stubs/components/person/__init__.pyi +103 -0
  472. homeassistant-stubs/components/person/const.pyi +1 -0
  473. homeassistant-stubs/components/person/significant_change.pyi +5 -0
  474. homeassistant-stubs/components/plugwise/config_flow.pyi +1 -1
  475. homeassistant-stubs/components/powerfox/sensor.pyi +3 -2
  476. homeassistant-stubs/components/powerwall/__init__.pyi +8 -3
  477. homeassistant-stubs/components/powerwall/config_flow.pyi +3 -3
  478. homeassistant-stubs/components/powerwall/const.pyi +2 -0
  479. homeassistant-stubs/components/proximity/__init__.pyi +2 -3
  480. homeassistant-stubs/components/proximity/coordinator.pyi +1 -2
  481. homeassistant-stubs/components/pure_energie/config_flow.pyi +2 -2
  482. homeassistant-stubs/components/python_script/__init__.pyi +48 -0
  483. homeassistant-stubs/components/qbus/__init__.pyi +15 -0
  484. homeassistant-stubs/components/qbus/config_flow.pyi +26 -0
  485. homeassistant-stubs/components/qbus/const.pyi +7 -0
  486. homeassistant-stubs/components/qbus/coordinator.pyi +48 -0
  487. homeassistant-stubs/components/qbus/entity.pyi +29 -0
  488. homeassistant-stubs/components/qbus/switch.pyi +21 -0
  489. homeassistant-stubs/components/qnap_qsw/config_flow.pyi +2 -2
  490. homeassistant-stubs/components/qnap_qsw/sensor.pyi +1 -4
  491. homeassistant-stubs/components/rabbitair/config_flow.pyi +2 -1
  492. homeassistant-stubs/components/rainforest_raven/config_flow.pyi +3 -2
  493. homeassistant-stubs/components/rainmachine/config_flow.pyi +4 -4
  494. homeassistant-stubs/components/recorder/auto_repairs/statistics/duplicates.pyi +1 -1
  495. homeassistant-stubs/components/recorder/const.pyi +0 -2
  496. homeassistant-stubs/components/recorder/core.pyi +2 -2
  497. homeassistant-stubs/components/recorder/db_schema.pyi +5 -2
  498. homeassistant-stubs/components/recorder/migration.pyi +1 -1
  499. homeassistant-stubs/components/recorder/models/state.pyi +1 -1
  500. homeassistant-stubs/components/recorder/util.pyi +1 -7
  501. homeassistant-stubs/components/remote/__init__.pyi +1 -1
  502. homeassistant-stubs/components/reolink/__init__.pyi +4 -2
  503. homeassistant-stubs/components/reolink/config_flow.pyi +7 -3
  504. homeassistant-stubs/components/reolink/const.pyi +1 -0
  505. homeassistant-stubs/components/reolink/entity.pyi +1 -1
  506. homeassistant-stubs/components/reolink/host.pyi +9 -2
  507. homeassistant-stubs/components/reolink/switch.pyi +5 -1
  508. homeassistant-stubs/components/reolink/util.pyi +6 -5
  509. homeassistant-stubs/components/repairs/__init__.pyi +1 -1
  510. homeassistant-stubs/components/ring/__init__.pyi +4 -15
  511. homeassistant-stubs/components/ring/binary_sensor.pyi +2 -0
  512. homeassistant-stubs/components/ring/button.pyi +1 -0
  513. homeassistant-stubs/components/ring/camera.pyi +1 -0
  514. homeassistant-stubs/components/ring/config_flow.pyi +2 -2
  515. homeassistant-stubs/components/ring/coordinator.pyi +14 -4
  516. homeassistant-stubs/components/ring/entity.pyi +1 -2
  517. homeassistant-stubs/components/ring/event.pyi +2 -0
  518. homeassistant-stubs/components/ring/light.pyi +1 -0
  519. homeassistant-stubs/components/ring/number.pyi +2 -0
  520. homeassistant-stubs/components/ring/sensor.pyi +2 -0
  521. homeassistant-stubs/components/ring/siren.pyi +1 -0
  522. homeassistant-stubs/components/ring/switch.pyi +1 -0
  523. homeassistant-stubs/components/roborock/__init__.pyi +3 -1
  524. homeassistant-stubs/components/roborock/const.pyi +4 -0
  525. homeassistant-stubs/components/roborock/coordinator.pyi +10 -6
  526. homeassistant-stubs/components/roborock/image.pyi +10 -11
  527. homeassistant-stubs/components/roborock/roborock_storage.pyi +23 -0
  528. homeassistant-stubs/components/roborock/sensor.pyi +1 -1
  529. homeassistant-stubs/components/roborock/vacuum.pyi +5 -1
  530. homeassistant-stubs/components/roku/config_flow.pyi +4 -3
  531. homeassistant-stubs/components/romy/config_flow.pyi +2 -2
  532. homeassistant-stubs/components/russound_rio/config_flow.pyi +6 -2
  533. homeassistant-stubs/components/russound_rio/const.pyi +0 -2
  534. homeassistant-stubs/components/russound_rio/media_player.pyi +13 -6
  535. homeassistant-stubs/components/ruuvi_gateway/config_flow.pyi +2 -2
  536. homeassistant-stubs/components/samsungtv/config_flow.pyi +6 -4
  537. homeassistant-stubs/components/scrape/sensor.pyi +2 -0
  538. homeassistant-stubs/components/script/__init__.pyi +1 -1
  539. homeassistant-stubs/components/select/__init__.pyi +2 -2
  540. homeassistant-stubs/components/sensibo/__init__.pyi +3 -3
  541. homeassistant-stubs/components/sensibo/binary_sensor.pyi +1 -0
  542. homeassistant-stubs/components/sensibo/climate.pyi +13 -7
  543. homeassistant-stubs/components/sensibo/config_flow.pyi +1 -1
  544. homeassistant-stubs/components/sensibo/coordinator.pyi +2 -0
  545. homeassistant-stubs/components/sensibo/entity.pyi +5 -1
  546. homeassistant-stubs/components/sensibo/select.pyi +6 -1
  547. homeassistant-stubs/components/sensibo/sensor.pyi +2 -0
  548. homeassistant-stubs/components/sensor/__init__.pyi +2 -2
  549. homeassistant-stubs/components/shelly/__init__.pyi +2 -0
  550. homeassistant-stubs/components/shelly/binary_sensor.pyi +11 -6
  551. homeassistant-stubs/components/shelly/bluetooth/__init__.pyi +1 -1
  552. homeassistant-stubs/components/shelly/climate.pyi +25 -2
  553. homeassistant-stubs/components/shelly/config_flow.pyi +1 -1
  554. homeassistant-stubs/components/shelly/const.pyi +3 -0
  555. homeassistant-stubs/components/shelly/coordinator.pyi +3 -2
  556. homeassistant-stubs/components/shelly/entity.pyi +4 -1
  557. homeassistant-stubs/components/shelly/number.pyi +21 -13
  558. homeassistant-stubs/components/shelly/sensor.pyi +12 -7
  559. homeassistant-stubs/components/shelly/utils.pyi +1 -1
  560. homeassistant-stubs/components/siren/__init__.pyi +1 -1
  561. homeassistant-stubs/components/slack/config_flow.pyi +2 -1
  562. homeassistant-stubs/components/slack/entity.pyi +3 -5
  563. homeassistant-stubs/components/slack/notify.pyi +4 -2
  564. homeassistant-stubs/components/slack/sensor.pyi +2 -2
  565. homeassistant-stubs/components/slack/utils.pyi +6 -0
  566. homeassistant-stubs/components/smhi/config_flow.pyi +1 -1
  567. homeassistant-stubs/components/smhi/weather.pyi +3 -3
  568. homeassistant-stubs/components/smlight/config_flow.pyi +7 -5
  569. homeassistant-stubs/components/spotify/__init__.pyi +1 -1
  570. homeassistant-stubs/components/spotify/browse_media.pyi +1 -1
  571. homeassistant-stubs/components/spotify/coordinator.pyi +2 -0
  572. homeassistant-stubs/components/squeezebox/config_flow.pyi +2 -2
  573. homeassistant-stubs/components/ssdp/__init__.pyi +34 -44
  574. homeassistant-stubs/components/starlink/coordinator.pyi +1 -0
  575. homeassistant-stubs/components/steamist/config_flow.pyi +2 -2
  576. homeassistant-stubs/components/stream/__init__.pyi +3 -15
  577. homeassistant-stubs/components/stream/const.pyi +9 -1
  578. homeassistant-stubs/components/stream/exceptions.pyi +13 -0
  579. homeassistant-stubs/components/stream/worker.pyi +4 -5
  580. homeassistant-stubs/components/stt/__init__.pyi +1 -1
  581. homeassistant-stubs/components/suez_water/__init__.pyi +4 -0
  582. homeassistant-stubs/components/switch/__init__.pyi +1 -1
  583. homeassistant-stubs/components/switchbot_cloud/__init__.pyi +5 -5
  584. homeassistant-stubs/components/switchbot_cloud/button.pyi +17 -0
  585. homeassistant-stubs/components/switchbot_cloud/entity.pyi +5 -0
  586. homeassistant-stubs/components/switchbot_cloud/lock.pyi +2 -3
  587. homeassistant-stubs/components/switchbot_cloud/sensor.pyi +5 -5
  588. homeassistant-stubs/components/switchbot_cloud/switch.pyi +3 -6
  589. homeassistant-stubs/components/switchbot_cloud/vacuum.pyi +1 -2
  590. homeassistant-stubs/components/switcher_kis/switch.pyi +29 -0
  591. homeassistant-stubs/components/synology_dsm/__init__.pyi +5 -2
  592. homeassistant-stubs/components/synology_dsm/backup.pyi +36 -0
  593. homeassistant-stubs/components/synology_dsm/common.pyi +5 -2
  594. homeassistant-stubs/components/synology_dsm/config_flow.pyi +11 -4
  595. homeassistant-stubs/components/synology_dsm/const.pyi +6 -0
  596. homeassistant-stubs/components/synology_dsm/coordinator.pyi +1 -1
  597. homeassistant-stubs/components/system_health/__init__.pyi +3 -1
  598. homeassistant-stubs/components/systemmonitor/__init__.pyi +3 -3
  599. homeassistant-stubs/components/systemmonitor/config_flow.pyi +0 -4
  600. homeassistant-stubs/components/systemmonitor/coordinator.pyi +2 -1
  601. homeassistant-stubs/components/tailwind/config_flow.pyi +3 -3
  602. homeassistant-stubs/components/technove/binary_sensor.pyi +0 -4
  603. homeassistant-stubs/components/technove/config_flow.pyi +3 -2
  604. homeassistant-stubs/components/tedee/coordinator.pyi +1 -1
  605. homeassistant-stubs/components/text/__init__.pyi +1 -1
  606. homeassistant-stubs/components/tile/__init__.pyi +4 -15
  607. homeassistant-stubs/components/tile/binary_sensor.pyi +24 -0
  608. homeassistant-stubs/components/tile/config_flow.pyi +0 -1
  609. homeassistant-stubs/components/tile/coordinator.pyi +18 -0
  610. homeassistant-stubs/components/tile/device_tracker.pyi +6 -20
  611. homeassistant-stubs/components/tile/diagnostics.pyi +2 -4
  612. homeassistant-stubs/components/tile/entity.pyi +13 -0
  613. homeassistant-stubs/components/time/__init__.pyi +1 -1
  614. homeassistant-stubs/components/todo/__init__.pyi +1 -1
  615. homeassistant-stubs/components/tolo/config_flow.pyi +2 -2
  616. homeassistant-stubs/components/tplink/__init__.pyi +3 -6
  617. homeassistant-stubs/components/tplink/binary_sensor.pyi +1 -0
  618. homeassistant-stubs/components/tplink/button.pyi +2 -1
  619. homeassistant-stubs/components/tplink/camera.pyi +9 -9
  620. homeassistant-stubs/components/tplink/climate.pyi +18 -12
  621. homeassistant-stubs/components/tplink/config_flow.pyi +3 -2
  622. homeassistant-stubs/components/tplink/const.pyi +1 -1
  623. homeassistant-stubs/components/tplink/coordinator.pyi +20 -4
  624. homeassistant-stubs/components/tplink/deprecate.pyi +5 -3
  625. homeassistant-stubs/components/tplink/entity.pyi +30 -11
  626. homeassistant-stubs/components/tplink/fan.pyi +15 -7
  627. homeassistant-stubs/components/tplink/light.pyi +22 -11
  628. homeassistant-stubs/components/tplink/number.pyi +1 -0
  629. homeassistant-stubs/components/tplink/select.pyi +1 -0
  630. homeassistant-stubs/components/tplink/sensor.pyi +7 -2
  631. homeassistant-stubs/components/tplink/siren.pyi +22 -7
  632. homeassistant-stubs/components/tplink/switch.pyi +1 -0
  633. homeassistant-stubs/components/tplink/vacuum.pyi +43 -0
  634. homeassistant-stubs/components/tradfri/config_flow.pyi +2 -2
  635. homeassistant-stubs/components/trafikverket_camera/__init__.pyi +2 -2
  636. homeassistant-stubs/components/trafikverket_camera/camera.pyi +2 -0
  637. homeassistant-stubs/components/trafikverket_ferry/__init__.pyi +1 -1
  638. homeassistant-stubs/components/trafikverket_ferry/coordinator.pyi +1 -1
  639. homeassistant-stubs/components/trafikverket_ferry/sensor.pyi +1 -0
  640. homeassistant-stubs/components/trafikverket_train/__init__.pyi +6 -3
  641. homeassistant-stubs/components/trafikverket_train/config_flow.pyi +10 -4
  642. homeassistant-stubs/components/trafikverket_train/coordinator.pyi +2 -2
  643. homeassistant-stubs/components/trafikverket_train/sensor.pyi +1 -0
  644. homeassistant-stubs/components/trafikverket_weatherstation/__init__.pyi +1 -1
  645. homeassistant-stubs/components/trafikverket_weatherstation/coordinator.pyi +1 -1
  646. homeassistant-stubs/components/trafikverket_weatherstation/diagnostics.pyi +5 -0
  647. homeassistant-stubs/components/trafikverket_weatherstation/sensor.pyi +1 -0
  648. homeassistant-stubs/components/tts/__init__.pyi +2 -2
  649. homeassistant-stubs/components/unifi/config_flow.pyi +2 -2
  650. homeassistant-stubs/components/unifi/device_tracker.pyi +1 -1
  651. homeassistant-stubs/components/unifi/switch.pyi +1 -0
  652. homeassistant-stubs/components/unifiprotect/__init__.pyi +1 -1
  653. homeassistant-stubs/components/unifiprotect/config_flow.pyi +4 -3
  654. homeassistant-stubs/components/unifiprotect/light.pyi +1 -1
  655. homeassistant-stubs/components/unifiprotect/views.pyi +8 -0
  656. homeassistant-stubs/components/upcloud/__init__.pyi +6 -12
  657. homeassistant-stubs/components/upcloud/binary_sensor.pyi +2 -4
  658. homeassistant-stubs/components/upcloud/config_flow.pyi +3 -2
  659. homeassistant-stubs/components/upcloud/const.pyi +0 -1
  660. homeassistant-stubs/components/upcloud/coordinator.pyi +3 -2
  661. homeassistant-stubs/components/upcloud/entity.pyi +3 -3
  662. homeassistant-stubs/components/upcloud/switch.pyi +3 -4
  663. homeassistant-stubs/components/update/__init__.pyi +2 -2
  664. homeassistant-stubs/components/usb/__init__.pyi +21 -18
  665. homeassistant-stubs/components/usb/models.pyi +1 -1
  666. homeassistant-stubs/components/vacuum/__init__.pyi +1 -1
  667. homeassistant-stubs/components/velbus/config_flow.pyi +2 -2
  668. homeassistant-stubs/components/velbus/const.pyi +1 -0
  669. homeassistant-stubs/components/velbus/diagnostics.pyi +1 -3
  670. homeassistant-stubs/components/velbus/entity.pyi +4 -0
  671. homeassistant-stubs/components/velbus/services.pyi +5 -1
  672. homeassistant-stubs/components/wake_word/__init__.pyi +1 -1
  673. homeassistant-stubs/components/water_heater/__init__.pyi +7 -3
  674. homeassistant-stubs/components/weather/__init__.pyi +2 -3
  675. homeassistant-stubs/components/webhook/__init__.pyi +0 -1
  676. homeassistant-stubs/components/webostv/__init__.pyi +8 -24
  677. homeassistant-stubs/components/webostv/config_flow.pyi +14 -13
  678. homeassistant-stubs/components/webostv/const.pyi +0 -1
  679. homeassistant-stubs/components/webostv/device_trigger.pyi +1 -2
  680. homeassistant-stubs/components/webostv/diagnostics.pyi +2 -3
  681. homeassistant-stubs/components/webostv/helpers.pyi +11 -4
  682. homeassistant-stubs/components/webostv/media_player.pyi +17 -13
  683. homeassistant-stubs/components/webostv/notify.pyi +6 -4
  684. homeassistant-stubs/components/webostv/trigger.pyi +2 -0
  685. homeassistant-stubs/components/wiz/config_flow.pyi +3 -2
  686. homeassistant-stubs/components/wled/config_flow.pyi +3 -2
  687. homeassistant-stubs/components/worldclock/sensor.pyi +2 -7
  688. homeassistant-stubs/components/zeroconf/__init__.pyi +12 -20
  689. homeassistant-stubs/components/zwave_js/api.pyi +1 -1
  690. homeassistant-stubs/components/zwave_js/config_flow.pyi +3 -2
  691. homeassistant-stubs/config_entries.pyi +7 -9
  692. homeassistant-stubs/const.pyi +2 -0
  693. homeassistant-stubs/core.pyi +2 -3
  694. homeassistant-stubs/core_config.pyi +3 -3
  695. homeassistant-stubs/data_entry_flow.pyi +1 -2
  696. homeassistant-stubs/helpers/aiohttp_client.pyi +12 -1
  697. homeassistant-stubs/helpers/area_registry.pyi +11 -4
  698. homeassistant-stubs/helpers/collection.pyi +5 -7
  699. homeassistant-stubs/helpers/config_entry_flow.pyi +3 -3
  700. homeassistant-stubs/helpers/config_entry_oauth2_flow.pyi +3 -0
  701. homeassistant-stubs/helpers/data_entry_flow.pyi +1 -2
  702. homeassistant-stubs/helpers/deprecation.pyi +2 -2
  703. homeassistant-stubs/helpers/device_registry.pyi +1 -1
  704. homeassistant-stubs/helpers/entity.pyi +1 -1
  705. homeassistant-stubs/helpers/entity_component.pyi +2 -4
  706. homeassistant-stubs/helpers/entity_registry.pyi +2 -2
  707. homeassistant-stubs/helpers/frame.pyi +1 -1
  708. homeassistant-stubs/helpers/httpx_client.pyi +2 -1
  709. homeassistant-stubs/helpers/intent.pyi +4 -2
  710. homeassistant-stubs/helpers/llm.pyi +23 -8
  711. homeassistant-stubs/helpers/script.pyi +1 -1
  712. homeassistant-stubs/helpers/service_info/dhcp.pyi +8 -0
  713. homeassistant-stubs/helpers/service_info/ssdp.pyi +34 -0
  714. homeassistant-stubs/helpers/service_info/usb.pyi +11 -0
  715. homeassistant-stubs/helpers/service_info/zeroconf.pyi +20 -0
  716. homeassistant-stubs/helpers/singleton.pyi +6 -2
  717. homeassistant-stubs/helpers/storage.pyi +1 -1
  718. homeassistant-stubs/helpers/template.pyi +4 -4
  719. homeassistant-stubs/helpers/update_coordinator.pyi +7 -6
  720. homeassistant-stubs/loader.pyi +1 -1
  721. homeassistant-stubs/scripts/benchmark/__init__.pyi +8 -8
  722. homeassistant-stubs/util/event_type.pyi +1 -2
  723. homeassistant-stubs/util/ulid.pyi +1 -1
  724. homeassistant-stubs/util/yaml/__init__.pyi +1 -1
  725. homeassistant-stubs/util/yaml/loader.pyi +1 -1
  726. {homeassistant_stubs-2025.1.3.dist-info → homeassistant_stubs-2025.2.0.dist-info}/METADATA +4 -4
  727. {homeassistant_stubs-2025.1.3.dist-info → homeassistant_stubs-2025.2.0.dist-info}/RECORD +729 -594
  728. homeassistant-stubs/components/dormakaba_dkey/models.pyi +0 -8
  729. homeassistant-stubs/components/imgw_pib/binary_sensor.pyi +0 -27
  730. homeassistant-stubs/components/tplink/models.pyi +0 -10
  731. {homeassistant_stubs-2025.1.3.dist-info → homeassistant_stubs-2025.2.0.dist-info}/WHEEL +0 -0
  732. {homeassistant_stubs-2025.1.3.dist-info → homeassistant_stubs-2025.2.0.dist-info}/licenses/LICENSE +0 -0
@@ -9,14 +9,12 @@ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
9
9
  from homeassistant.helpers.importlib import async_import_module as async_import_module
10
10
  from homeassistant.util.decorator import Registry as Registry
11
11
  from homeassistant.util.hass_dict import HassKey as HassKey
12
- from typing import Any, Generic
13
- from typing_extensions import TypeVar
12
+ from typing import Any
14
13
 
15
14
  MULTI_FACTOR_AUTH_MODULES: Registry[str, type[MultiFactorAuthModule]]
16
15
  MULTI_FACTOR_AUTH_MODULE_SCHEMA: Incomplete
17
16
  DATA_REQS: HassKey[set[str]]
18
17
  _LOGGER: Incomplete
19
- _MultiFactorAuthModuleT = TypeVar('_MultiFactorAuthModuleT', bound='MultiFactorAuthModule', default='MultiFactorAuthModule')
20
18
 
21
19
  class MultiFactorAuthModule:
22
20
  DEFAULT_TITLE: str
@@ -38,7 +36,7 @@ class MultiFactorAuthModule:
38
36
  async def async_is_user_setup(self, user_id: str) -> bool: ...
39
37
  async def async_validate(self, user_id: str, user_input: dict[str, Any]) -> bool: ...
40
38
 
41
- class SetupFlow(data_entry_flow.FlowHandler, Generic[_MultiFactorAuthModuleT]):
39
+ class SetupFlow[_MultiFactorAuthModuleT: MultiFactorAuthModule = MultiFactorAuthModule](data_entry_flow.FlowHandler):
42
40
  _auth_module: Incomplete
43
41
  _setup_schema: Incomplete
44
42
  _user_id: Incomplete
@@ -5,7 +5,7 @@ from datetime import datetime, timedelta
5
5
  from homeassistant.const import __version__ as __version__
6
6
  from homeassistant.data_entry_flow import FlowContext as FlowContext, FlowResult as FlowResult
7
7
  from ipaddress import IPv4Address, IPv6Address
8
- from propcache import cached_property
8
+ from propcache.api import cached_property
9
9
  from typing import Any, NamedTuple
10
10
 
11
11
  TOKEN_TYPE_NORMAL: str
@@ -4,7 +4,7 @@ from .types import PolicyType as PolicyType
4
4
  from _typeshed import Incomplete
5
5
  from collections.abc import Callable
6
6
 
7
- __all__ = ['POLICY_SCHEMA', 'merge_policies', 'PermissionLookup', 'PolicyType', 'AbstractPermissions', 'PolicyPermissions', 'OwnerPermissions']
7
+ __all__ = ['POLICY_SCHEMA', 'AbstractPermissions', 'OwnerPermissions', 'PermissionLookup', 'PolicyPermissions', 'PolicyType', 'merge_policies']
8
8
 
9
9
  POLICY_SCHEMA: Incomplete
10
10
 
@@ -12,14 +12,12 @@ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
12
12
  from homeassistant.helpers.importlib import async_import_module as async_import_module
13
13
  from homeassistant.util.decorator import Registry as Registry
14
14
  from homeassistant.util.hass_dict import HassKey as HassKey
15
- from typing import Any, Generic
16
- from typing_extensions import TypeVar
15
+ from typing import Any
17
16
 
18
17
  _LOGGER: Incomplete
19
18
  DATA_REQS: HassKey[set[str]]
20
19
  AUTH_PROVIDERS: Registry[str, type[AuthProvider]]
21
20
  AUTH_PROVIDER_SCHEMA: Incomplete
22
- _AuthProviderT = TypeVar('_AuthProviderT', bound='AuthProvider', default='AuthProvider')
23
21
 
24
22
  class AuthProvider:
25
23
  DEFAULT_TITLE: str
@@ -48,7 +46,7 @@ class AuthProvider:
48
46
  async def auth_provider_from_config(hass: HomeAssistant, store: AuthStore, config: dict[str, Any]) -> AuthProvider: ...
49
47
  async def load_auth_provider_module(hass: HomeAssistant, provider: str) -> types.ModuleType: ...
50
48
 
51
- class LoginFlow(FlowHandler[AuthFlowContext, AuthFlowResult, tuple[str, str]], Generic[_AuthProviderT]):
49
+ class LoginFlow[_AuthProviderT: AuthProvider = AuthProvider](FlowHandler[AuthFlowContext, AuthFlowResult, tuple[str, str]]):
52
50
  _flow_result = AuthFlowResult
53
51
  _auth_provider: Incomplete
54
52
  _auth_module_id: str | None
@@ -4,6 +4,7 @@ from dataclasses import dataclass
4
4
  from pathlib import Path
5
5
 
6
6
  RESTORE_BACKUP_FILE: str
7
+ RESTORE_BACKUP_RESULT_FILE: str
7
8
  KEEP_BACKUPS: Incomplete
8
9
  KEEP_DATABASE: Incomplete
9
10
  _LOGGER: Incomplete
@@ -20,4 +21,5 @@ def password_to_key(password: str) -> bytes: ...
20
21
  def restore_backup_file_content(config_dir: Path) -> RestoreBackupFileContent | None: ...
21
22
  def _clear_configuration_directory(config_dir: Path, keep: Iterable[str]) -> None: ...
22
23
  def _extract_backup(config_dir: Path, restore_content: RestoreBackupFileContent) -> None: ...
24
+ def _write_restore_result_file(config_dir: Path, success: bool, error: Exception | None) -> None: ...
23
25
  def restore_backup(config_dir_path: str) -> bool: ...
@@ -1,7 +1,7 @@
1
1
  from . import AirGradientConfigEntry as AirGradientConfigEntry
2
2
  from .const import DOMAIN as DOMAIN
3
3
  from .coordinator import AirGradientCoordinator as AirGradientCoordinator
4
- from .entity import AirGradientEntity as AirGradientEntity
4
+ from .entity import AirGradientEntity as AirGradientEntity, exception_handler as exception_handler
5
5
  from _typeshed import Incomplete
6
6
  from airgradient import AirGradientClient as AirGradientClient
7
7
  from collections.abc import Awaitable, Callable as Callable
@@ -11,6 +11,8 @@ from homeassistant.const import EntityCategory as EntityCategory
11
11
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
12
12
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
13
13
 
14
+ PARALLEL_UPDATES: int
15
+
14
16
  @dataclass(frozen=True, kw_only=True)
15
17
  class AirGradientButtonEntityDescription(ButtonEntityDescription):
16
18
  press_fn: Callable[[AirGradientClient], Awaitable[None]]
@@ -24,4 +26,5 @@ class AirGradientButton(AirGradientEntity, ButtonEntity):
24
26
  entity_description: AirGradientButtonEntityDescription
25
27
  _attr_unique_id: Incomplete
26
28
  def __init__(self, coordinator: AirGradientCoordinator, description: AirGradientButtonEntityDescription) -> None: ...
29
+ @exception_handler
27
30
  async def async_press(self) -> None: ...
@@ -1,10 +1,11 @@
1
1
  from .const import DOMAIN as DOMAIN
2
2
  from _typeshed import Incomplete
3
3
  from airgradient import AirGradientClient
4
- from homeassistant.components import zeroconf as zeroconf
5
- from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
4
+ from collections.abc import Mapping
5
+ from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, SOURCE_RECONFIGURE as SOURCE_RECONFIGURE, SOURCE_USER as SOURCE_USER
6
6
  from homeassistant.const import CONF_HOST as CONF_HOST, CONF_MODEL as CONF_MODEL
7
7
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
8
+ from homeassistant.helpers.service_info.zeroconf import ZeroconfServiceInfo as ZeroconfServiceInfo
8
9
  from typing import Any
9
10
 
10
11
  MIN_VERSION: Incomplete
@@ -14,6 +15,7 @@ class AirGradientConfigFlow(ConfigFlow, domain=DOMAIN):
14
15
  client: AirGradientClient | None
15
16
  def __init__(self) -> None: ...
16
17
  async def set_configuration_source(self) -> None: ...
17
- async def async_step_zeroconf(self, discovery_info: zeroconf.ZeroconfServiceInfo) -> ConfigFlowResult: ...
18
+ async def async_step_zeroconf(self, discovery_info: ZeroconfServiceInfo) -> ConfigFlowResult: ...
18
19
  async def async_step_discovery_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
19
20
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
21
+ async def async_step_reconfigure(self, user_input: Mapping[str, Any]) -> ConfigFlowResult: ...
@@ -1,10 +1,15 @@
1
1
  from .const import DOMAIN as DOMAIN
2
2
  from .coordinator import AirGradientCoordinator as AirGradientCoordinator
3
3
  from _typeshed import Incomplete
4
+ from collections.abc import Callable as Callable, Coroutine
5
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
4
6
  from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
5
7
  from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
8
+ from typing import Any, Concatenate
6
9
 
7
10
  class AirGradientEntity(CoordinatorEntity[AirGradientCoordinator]):
8
11
  _attr_has_entity_name: bool
9
12
  _attr_device_info: Incomplete
10
13
  def __init__(self, coordinator: AirGradientCoordinator) -> None: ...
14
+
15
+ def exception_handler[_EntityT: AirGradientEntity, **_P](func: Callable[Concatenate[_EntityT, _P], Coroutine[Any, Any, Any]]) -> Callable[Concatenate[_EntityT, _P], Coroutine[Any, Any, None]]: ...
@@ -1,7 +1,7 @@
1
1
  from . import AirGradientConfigEntry as AirGradientConfigEntry
2
2
  from .const import DOMAIN as DOMAIN
3
3
  from .coordinator import AirGradientCoordinator as AirGradientCoordinator
4
- from .entity import AirGradientEntity as AirGradientEntity
4
+ from .entity import AirGradientEntity as AirGradientEntity, exception_handler as exception_handler
5
5
  from _typeshed import Incomplete
6
6
  from airgradient import AirGradientClient as AirGradientClient, Config as Config
7
7
  from collections.abc import Awaitable, Callable as Callable
@@ -11,6 +11,8 @@ from homeassistant.const import EntityCategory as EntityCategory, PERCENTAGE as
11
11
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
12
12
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
13
13
 
14
+ PARALLEL_UPDATES: int
15
+
14
16
  @dataclass(frozen=True, kw_only=True)
15
17
  class AirGradientNumberEntityDescription(NumberEntityDescription):
16
18
  value_fn: Callable[[Config], int]
@@ -27,4 +29,5 @@ class AirGradientNumber(AirGradientEntity, NumberEntity):
27
29
  def __init__(self, coordinator: AirGradientCoordinator, description: AirGradientNumberEntityDescription) -> None: ...
28
30
  @property
29
31
  def native_value(self) -> int | None: ...
32
+ @exception_handler
30
33
  async def async_set_native_value(self, value: float) -> None: ...
@@ -1,7 +1,7 @@
1
1
  from . import AirGradientConfigEntry as AirGradientConfigEntry
2
2
  from .const import DOMAIN as DOMAIN, PM_STANDARD as PM_STANDARD, PM_STANDARD_REVERSE as PM_STANDARD_REVERSE
3
3
  from .coordinator import AirGradientCoordinator as AirGradientCoordinator
4
- from .entity import AirGradientEntity as AirGradientEntity
4
+ from .entity import AirGradientEntity as AirGradientEntity, exception_handler as exception_handler
5
5
  from _typeshed import Incomplete
6
6
  from airgradient import AirGradientClient as AirGradientClient, Config as Config
7
7
  from collections.abc import Awaitable, Callable as Callable
@@ -11,6 +11,8 @@ from homeassistant.const import EntityCategory as EntityCategory
11
11
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
12
12
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
13
13
 
14
+ PARALLEL_UPDATES: int
15
+
14
16
  @dataclass(frozen=True, kw_only=True)
15
17
  class AirGradientSelectEntityDescription(SelectEntityDescription):
16
18
  value_fn: Callable[[Config], str | None]
@@ -34,4 +36,5 @@ class AirGradientSelect(AirGradientEntity, SelectEntity):
34
36
  def __init__(self, coordinator: AirGradientCoordinator, description: AirGradientSelectEntityDescription) -> None: ...
35
37
  @property
36
38
  def current_option(self) -> str | None: ...
39
+ @exception_handler
37
40
  async def async_select_option(self, option: str) -> None: ...
@@ -13,6 +13,8 @@ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callb
13
13
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
14
14
  from homeassistant.helpers.typing import StateType as StateType
15
15
 
16
+ PARALLEL_UPDATES: int
17
+
16
18
  @dataclass(frozen=True, kw_only=True)
17
19
  class AirGradientMeasurementSensorEntityDescription(SensorEntityDescription):
18
20
  value_fn: Callable[[Measures], StateType]
@@ -1,7 +1,7 @@
1
1
  from . import AirGradientConfigEntry as AirGradientConfigEntry
2
2
  from .const import DOMAIN as DOMAIN
3
3
  from .coordinator import AirGradientCoordinator as AirGradientCoordinator
4
- from .entity import AirGradientEntity as AirGradientEntity
4
+ from .entity import AirGradientEntity as AirGradientEntity, exception_handler as exception_handler
5
5
  from _typeshed import Incomplete
6
6
  from airgradient import AirGradientClient as AirGradientClient, Config as Config
7
7
  from collections.abc import Awaitable, Callable as Callable
@@ -12,6 +12,8 @@ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callb
12
12
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
13
13
  from typing import Any
14
14
 
15
+ PARALLEL_UPDATES: int
16
+
15
17
  @dataclass(frozen=True, kw_only=True)
16
18
  class AirGradientSwitchEntityDescription(SwitchEntityDescription):
17
19
  value_fn: Callable[[Config], bool]
@@ -27,5 +29,7 @@ class AirGradientSwitch(AirGradientEntity, SwitchEntity):
27
29
  def __init__(self, coordinator: AirGradientCoordinator, description: AirGradientSwitchEntityDescription) -> None: ...
28
30
  @property
29
31
  def is_on(self) -> bool: ...
32
+ @exception_handler
30
33
  async def async_turn_on(self, **kwargs: Any) -> None: ...
34
+ @exception_handler
31
35
  async def async_turn_off(self, **kwargs: Any) -> None: ...
@@ -4,8 +4,9 @@ from _typeshed import Incomplete
4
4
  from homeassistant.components.update import UpdateDeviceClass as UpdateDeviceClass, UpdateEntity as UpdateEntity
5
5
  from homeassistant.core import HomeAssistant as HomeAssistant
6
6
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
7
- from propcache import cached_property
7
+ from propcache.api import cached_property
8
8
 
9
+ PARALLEL_UPDATES: int
9
10
  SCAN_INTERVAL: Incomplete
10
11
 
11
12
  async def async_setup_entry(hass: HomeAssistant, config_entry: AirGradientConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
@@ -1,4 +1,4 @@
1
- from .const import ATTR_API_AQI as ATTR_API_AQI, ATTR_API_AQI_DESCRIPTION as ATTR_API_AQI_DESCRIPTION, ATTR_API_AQI_LEVEL as ATTR_API_AQI_LEVEL, ATTR_API_AQI_PARAM as ATTR_API_AQI_PARAM, ATTR_API_CATEGORY as ATTR_API_CATEGORY, ATTR_API_CAT_DESCRIPTION as ATTR_API_CAT_DESCRIPTION, ATTR_API_CAT_LEVEL as ATTR_API_CAT_LEVEL, ATTR_API_PM25 as ATTR_API_PM25, ATTR_API_POLLUTANT as ATTR_API_POLLUTANT, ATTR_API_REPORT_DATE as ATTR_API_REPORT_DATE, ATTR_API_REPORT_HOUR as ATTR_API_REPORT_HOUR, ATTR_API_REPORT_TZ as ATTR_API_REPORT_TZ, ATTR_API_STATE as ATTR_API_STATE, ATTR_API_STATION as ATTR_API_STATION, ATTR_API_STATION_LATITUDE as ATTR_API_STATION_LATITUDE, ATTR_API_STATION_LONGITUDE as ATTR_API_STATION_LONGITUDE, DOMAIN as DOMAIN
1
+ from .const import ATTR_API_AQI as ATTR_API_AQI, ATTR_API_AQI_DESCRIPTION as ATTR_API_AQI_DESCRIPTION, ATTR_API_AQI_LEVEL as ATTR_API_AQI_LEVEL, ATTR_API_AQI_PARAM as ATTR_API_AQI_PARAM, ATTR_API_CATEGORY as ATTR_API_CATEGORY, ATTR_API_CAT_DESCRIPTION as ATTR_API_CAT_DESCRIPTION, ATTR_API_CAT_LEVEL as ATTR_API_CAT_LEVEL, ATTR_API_POLLUTANT as ATTR_API_POLLUTANT, ATTR_API_REPORT_DATE as ATTR_API_REPORT_DATE, ATTR_API_REPORT_HOUR as ATTR_API_REPORT_HOUR, ATTR_API_REPORT_TZ as ATTR_API_REPORT_TZ, ATTR_API_STATE as ATTR_API_STATE, ATTR_API_STATION as ATTR_API_STATION, ATTR_API_STATION_LATITUDE as ATTR_API_STATION_LATITUDE, ATTR_API_STATION_LONGITUDE as ATTR_API_STATION_LONGITUDE, DOMAIN as DOMAIN
2
2
  from _typeshed import Incomplete
3
3
  from aiohttp import ClientSession as ClientSession
4
4
  from datetime import timedelta
@@ -1,3 +1,4 @@
1
+ from .const import DOMAIN as DOMAIN, MANUFACTURER as MANUFACTURER
1
2
  from .coordinator import AirzoneUpdateCoordinator as AirzoneUpdateCoordinator
2
3
  from _typeshed import Incomplete
3
4
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
@@ -12,3 +13,4 @@ type AirzoneConfigEntry = ConfigEntry[AirzoneUpdateCoordinator]
12
13
  async def _async_migrate_unique_ids(hass: HomeAssistant, entry: AirzoneConfigEntry, coordinator: AirzoneUpdateCoordinator) -> None: ...
13
14
  async def async_setup_entry(hass: HomeAssistant, entry: AirzoneConfigEntry) -> bool: ...
14
15
  async def async_unload_entry(hass: HomeAssistant, entry: AirzoneConfigEntry) -> bool: ...
16
+ async def async_migrate_entry(hass: HomeAssistant, entry: AirzoneConfigEntry) -> bool: ...
@@ -1,11 +1,11 @@
1
1
  from .const import DOMAIN as DOMAIN
2
2
  from _typeshed import Incomplete
3
- from homeassistant.components import dhcp as dhcp
4
3
  from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
5
4
  from homeassistant.const import CONF_HOST as CONF_HOST, CONF_ID as CONF_ID, CONF_PORT as CONF_PORT
6
5
  from homeassistant.data_entry_flow import AbortFlow as AbortFlow
7
6
  from homeassistant.helpers import aiohttp_client as aiohttp_client
8
7
  from homeassistant.helpers.device_registry import format_mac as format_mac
8
+ from homeassistant.helpers.service_info.dhcp import DhcpServiceInfo as DhcpServiceInfo
9
9
  from typing import Any
10
10
 
11
11
  _LOGGER: Incomplete
@@ -17,6 +17,7 @@ def short_mac(addr: str) -> str: ...
17
17
  class AirZoneConfigFlow(ConfigFlow, domain=DOMAIN):
18
18
  _discovered_ip: str | None
19
19
  _discovered_mac: str | None
20
+ MINOR_VERSION: int
20
21
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
21
- async def async_step_dhcp(self, discovery_info: dhcp.DhcpServiceInfo) -> ConfigFlowResult: ...
22
+ async def async_step_dhcp(self, discovery_info: DhcpServiceInfo) -> ConfigFlowResult: ...
22
23
  async def async_step_discovered_connection(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -12,7 +12,7 @@ from homeassistant.helpers.entity_platform import EntityPlatform as EntityPlatfo
12
12
  from homeassistant.helpers.frame import ReportBehavior as ReportBehavior, report_usage as report_usage
13
13
  from homeassistant.helpers.typing import ConfigType as ConfigType
14
14
  from homeassistant.util.hass_dict import HassKey as HassKey
15
- from propcache import cached_property
15
+ from propcache.api import cached_property
16
16
  from typing import Any, Final, final
17
17
 
18
18
  _LOGGER: Final[Incomplete]
@@ -3,12 +3,12 @@ from .helpers import create_api as create_api, get_enable_ime as get_enable_ime
3
3
  from _typeshed import Incomplete
4
4
  from androidtvremote2 import AndroidTVRemote as AndroidTVRemote
5
5
  from collections.abc import Mapping
6
- from homeassistant.components import zeroconf as zeroconf
7
6
  from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow, SOURCE_REAUTH as SOURCE_REAUTH
8
7
  from homeassistant.const import CONF_HOST as CONF_HOST, CONF_MAC as CONF_MAC, CONF_NAME as CONF_NAME
9
8
  from homeassistant.core import callback as callback
10
9
  from homeassistant.helpers.device_registry import format_mac as format_mac
11
10
  from homeassistant.helpers.selector import SelectOptionDict as SelectOptionDict, SelectSelector as SelectSelector, SelectSelectorConfig as SelectSelectorConfig, SelectSelectorMode as SelectSelectorMode
11
+ from homeassistant.helpers.service_info.zeroconf import ZeroconfServiceInfo as ZeroconfServiceInfo
12
12
  from typing import Any
13
13
 
14
14
  _LOGGER: Incomplete
@@ -27,7 +27,7 @@ class AndroidTVRemoteConfigFlow(ConfigFlow, domain=DOMAIN):
27
27
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
28
28
  async def _async_start_pair(self) -> ConfigFlowResult: ...
29
29
  async def async_step_pair(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
30
- async def async_step_zeroconf(self, discovery_info: zeroconf.ZeroconfServiceInfo) -> ConfigFlowResult: ...
30
+ async def async_step_zeroconf(self, discovery_info: ZeroconfServiceInfo) -> ConfigFlowResult: ...
31
31
  async def async_step_zeroconf_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
32
32
  async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> ConfigFlowResult: ...
33
33
  async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -1,7 +1,7 @@
1
- import homeassistant.core as ha
2
1
  from _typeshed import Incomplete
3
2
  from aiohttp import web
4
3
  from functools import lru_cache
4
+ from homeassistant import core as ha
5
5
  from homeassistant.auth.models import User as User
6
6
  from homeassistant.auth.permissions.const import POLICY_READ as POLICY_READ
7
7
  from homeassistant.components.http import HomeAssistantView as HomeAssistantView, KEY_HASS as KEY_HASS, KEY_HASS_USER as KEY_HASS_USER, require_admin as require_admin
@@ -11,6 +11,7 @@ from homeassistant.data_entry_flow import AbortFlow as AbortFlow
11
11
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
12
12
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
13
13
  from homeassistant.helpers.schema_config_entry_flow import SchemaFlowFormStep as SchemaFlowFormStep, SchemaOptionsFlowHandler as SchemaOptionsFlowHandler
14
+ from homeassistant.helpers.service_info.zeroconf import ZeroconfServiceInfo as ZeroconfServiceInfo
14
15
  from pyatv.const import Protocol
15
16
  from pyatv.interface import BaseConfig as BaseConfig, PairingHandler as PairingHandler
16
17
  from typing import Any, Self
@@ -48,7 +49,7 @@ class AppleTVConfigFlow(ConfigFlow, domain=DOMAIN):
48
49
  async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> ConfigFlowResult: ...
49
50
  async def async_step_restore_device(self, user_input: dict[str, str] | None = None) -> ConfigFlowResult: ...
50
51
  async def async_step_user(self, user_input: dict[str, str] | None = None) -> ConfigFlowResult: ...
51
- async def async_step_zeroconf(self, discovery_info: zeroconf.ZeroconfServiceInfo) -> ConfigFlowResult: ...
52
+ async def async_step_zeroconf(self, discovery_info: ZeroconfServiceInfo) -> ConfigFlowResult: ...
52
53
  async def _async_aggregate_discoveries(self, host: str, unique_id: str) -> None: ...
53
54
  @callback
54
55
  def _async_check_and_update_in_progress(self, host: str, unique_id: str) -> None: ...
@@ -11,6 +11,7 @@ class ApSystemsSensorData:
11
11
  alarm_info: ReturnAlarmInfo
12
12
 
13
13
  class ApSystemsDataCoordinator(DataUpdateCoordinator[ApSystemsSensorData]):
14
+ device_version: str
14
15
  api: Incomplete
15
16
  def __init__(self, hass: HomeAssistant, api: APsystemsEZ1M) -> None: ...
16
17
  async def _async_setup(self) -> None: ...
@@ -6,7 +6,7 @@ from bleak.backends.device import BLEDevice as BLEDevice
6
6
  from dataclasses import dataclass
7
7
  from homeassistant.components.bluetooth.passive_update_processor import PassiveBluetoothDataProcessor as PassiveBluetoothDataProcessor, PassiveBluetoothDataUpdate as PassiveBluetoothDataUpdate, PassiveBluetoothEntityKey as PassiveBluetoothEntityKey, PassiveBluetoothProcessorEntity as PassiveBluetoothProcessorEntity
8
8
  from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
9
- from homeassistant.const import ATTR_MANUFACTURER as ATTR_MANUFACTURER, ATTR_NAME as ATTR_NAME, ATTR_SW_VERSION as ATTR_SW_VERSION, CONCENTRATION_PARTS_PER_MILLION as CONCENTRATION_PARTS_PER_MILLION, EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE, UnitOfPressure as UnitOfPressure, UnitOfTemperature as UnitOfTemperature, UnitOfTime as UnitOfTime
9
+ from homeassistant.const import ATTR_MANUFACTURER as ATTR_MANUFACTURER, ATTR_MODEL as ATTR_MODEL, ATTR_NAME as ATTR_NAME, ATTR_SW_VERSION as ATTR_SW_VERSION, CONCENTRATION_PARTS_PER_MILLION as CONCENTRATION_PARTS_PER_MILLION, EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE, UnitOfPressure as UnitOfPressure, UnitOfTemperature as UnitOfTemperature, UnitOfTime as UnitOfTime
10
10
  from homeassistant.core import HomeAssistant as HomeAssistant
11
11
  from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
12
12
  from homeassistant.helpers.entity import EntityDescription as EntityDescription
@@ -1,8 +1,8 @@
1
1
  from .const import DEFAULT_NAME as DEFAULT_NAME, DEFAULT_PORT as DEFAULT_PORT, DOMAIN as DOMAIN
2
- from homeassistant.components import ssdp as ssdp
3
2
  from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
4
3
  from homeassistant.const import CONF_HOST as CONF_HOST, CONF_PORT as CONF_PORT
5
4
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
5
+ from homeassistant.helpers.service_info.ssdp import ATTR_UPNP_UDN as ATTR_UPNP_UDN, SsdpServiceInfo as SsdpServiceInfo
6
6
  from typing import Any
7
7
 
8
8
  class ArcamFmjFlowHandler(ConfigFlow, domain=DOMAIN):
@@ -13,4 +13,4 @@ class ArcamFmjFlowHandler(ConfigFlow, domain=DOMAIN):
13
13
  async def _async_check_and_create(self, host: str, port: int) -> ConfigFlowResult: ...
14
14
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
15
15
  async def async_step_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
16
- async def async_step_ssdp(self, discovery_info: ssdp.SsdpServiceInfo) -> ConfigFlowResult: ...
16
+ async def async_step_ssdp(self, discovery_info: SsdpServiceInfo) -> ConfigFlowResult: ...
@@ -7,7 +7,7 @@ from homeassistant.core import Context, HomeAssistant
7
7
  from homeassistant.helpers.typing import ConfigType
8
8
  from typing import Any
9
9
 
10
- __all__ = ['DOMAIN', 'async_create_default_pipeline', 'async_get_pipelines', 'async_migrate_engine', 'async_setup', 'async_pipeline_from_audio_stream', 'async_update_pipeline', 'AudioSettings', 'Pipeline', 'PipelineEvent', 'PipelineEventType', 'PipelineNotFound', 'WakeWordSettings', 'EVENT_RECORDING', 'OPTION_PREFERRED', 'SAMPLES_PER_CHUNK', 'SAMPLE_RATE', 'SAMPLE_WIDTH', 'SAMPLE_CHANNELS']
10
+ __all__ = ['DOMAIN', 'EVENT_RECORDING', 'OPTION_PREFERRED', 'SAMPLES_PER_CHUNK', 'SAMPLE_CHANNELS', 'SAMPLE_RATE', 'SAMPLE_WIDTH', 'AudioSettings', 'Pipeline', 'PipelineEvent', 'PipelineEventType', 'PipelineNotFound', 'WakeWordSettings', 'async_create_default_pipeline', 'async_get_pipelines', 'async_migrate_engine', 'async_pipeline_from_audio_stream', 'async_setup', 'async_update_pipeline']
11
11
 
12
12
  async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
13
- async def async_pipeline_from_audio_stream(hass: HomeAssistant, *, context: Context, event_callback: PipelineEventCallback, stt_metadata: stt.SpeechMetadata, stt_stream: AsyncIterable[bytes], wake_word_phrase: str | None = None, pipeline_id: str | None = None, conversation_id: str | None = None, tts_audio_output: str | dict[str, Any] | None = None, wake_word_settings: WakeWordSettings | None = None, audio_settings: AudioSettings | None = None, device_id: str | None = None, start_stage: PipelineStage = ..., end_stage: PipelineStage = ...) -> None: ...
13
+ async def async_pipeline_from_audio_stream(hass: HomeAssistant, *, context: Context, event_callback: PipelineEventCallback, stt_metadata: stt.SpeechMetadata, stt_stream: AsyncIterable[bytes], wake_word_phrase: str | None = None, pipeline_id: str | None = None, conversation_id: str | None = None, tts_audio_output: str | dict[str, Any] | None = None, wake_word_settings: WakeWordSettings | None = None, audio_settings: AudioSettings | None = None, device_id: str | None = None, start_stage: PipelineStage = ..., end_stage: PipelineStage = ..., conversation_extra_system_prompt: str | None = None) -> None: ...
@@ -18,6 +18,7 @@ from homeassistant.helpers.singleton import singleton as singleton
18
18
  from homeassistant.helpers.storage import Store as Store
19
19
  from homeassistant.helpers.typing import UNDEFINED as UNDEFINED, UndefinedType as UndefinedType, VolDictType as VolDictType
20
20
  from homeassistant.util import ulid as ulid_util
21
+ from homeassistant.util.hass_dict import HassKey as HassKey
21
22
  from homeassistant.util.limited_size_dict import LimitedSizeDict as LimitedSizeDict
22
23
  from pathlib import Path
23
24
  from queue import Queue
@@ -29,6 +30,7 @@ STORAGE_KEY: Incomplete
29
30
  STORAGE_VERSION: int
30
31
  STORAGE_VERSION_MINOR: int
31
32
  ENGINE_LANGUAGE_PAIRS: Incomplete
33
+ KEY_ASSIST_PIPELINE: HassKey[PipelineData]
32
34
 
33
35
  def validate_language(data: dict[str, Any]) -> Any: ...
34
36
 
@@ -158,7 +160,7 @@ class PipelineRun:
158
160
  async def speech_to_text(self, metadata: stt.SpeechMetadata, stream: AsyncIterable[EnhancedAudioChunk]) -> str: ...
159
161
  async def _speech_to_text_stream(self, audio_stream: AsyncIterable[EnhancedAudioChunk], stt_vad: VoiceCommandSegmenter | None, sample_rate: int = ..., sample_width: int = ...) -> AsyncGenerator[bytes]: ...
160
162
  async def prepare_recognize_intent(self) -> None: ...
161
- async def recognize_intent(self, intent_input: str, conversation_id: str | None, device_id: str | None) -> str: ...
163
+ async def recognize_intent(self, intent_input: str, conversation_id: str | None, device_id: str | None, conversation_extra_system_prompt: str | None) -> str: ...
162
164
  async def prepare_text_to_speech(self) -> None: ...
163
165
  async def text_to_speech(self, tts_input: str) -> None: ...
164
166
  def _capture_chunk(self, audio_bytes: bytes | None) -> None: ...
@@ -179,6 +181,7 @@ class PipelineInput:
179
181
  intent_input: str | None = ...
180
182
  tts_input: str | None = ...
181
183
  conversation_id: str | None = ...
184
+ conversation_extra_system_prompt: str | None = ...
182
185
  device_id: str | None = ...
183
186
  async def execute(self) -> None: ...
184
187
  async def validate(self) -> None: ...
@@ -1,5 +1,5 @@
1
- from .const import DOMAIN as DOMAIN, OPTION_PREFERRED as OPTION_PREFERRED
2
- from .pipeline import AssistDevice as AssistDevice, PipelineData as PipelineData, PipelineStorageCollection as PipelineStorageCollection
1
+ from .const import OPTION_PREFERRED as OPTION_PREFERRED
2
+ from .pipeline import AssistDevice as AssistDevice, KEY_ASSIST_PIPELINE as KEY_ASSIST_PIPELINE
3
3
  from .vad import VadSensitivity as VadSensitivity
4
4
  from _typeshed import Incomplete
5
5
  from collections.abc import Iterable
@@ -1,6 +1,6 @@
1
- from .const import DEFAULT_PIPELINE_TIMEOUT as DEFAULT_PIPELINE_TIMEOUT, DEFAULT_WAKE_WORD_TIMEOUT as DEFAULT_WAKE_WORD_TIMEOUT, DOMAIN as DOMAIN, EVENT_RECORDING as EVENT_RECORDING, SAMPLE_CHANNELS as SAMPLE_CHANNELS, SAMPLE_RATE as SAMPLE_RATE, SAMPLE_WIDTH as SAMPLE_WIDTH
1
+ from .const import DEFAULT_PIPELINE_TIMEOUT as DEFAULT_PIPELINE_TIMEOUT, DEFAULT_WAKE_WORD_TIMEOUT as DEFAULT_WAKE_WORD_TIMEOUT, EVENT_RECORDING as EVENT_RECORDING, SAMPLE_CHANNELS as SAMPLE_CHANNELS, SAMPLE_RATE as SAMPLE_RATE, SAMPLE_WIDTH as SAMPLE_WIDTH
2
2
  from .error import PipelineNotFound as PipelineNotFound
3
- from .pipeline import AudioSettings as AudioSettings, DeviceAudioQueue as DeviceAudioQueue, PipelineData as PipelineData, PipelineError as PipelineError, PipelineEvent as PipelineEvent, PipelineEventType as PipelineEventType, PipelineInput as PipelineInput, PipelineRun as PipelineRun, PipelineStage as PipelineStage, WakeWordSettings as WakeWordSettings, async_get_pipeline as async_get_pipeline
3
+ from .pipeline import AudioSettings as AudioSettings, DeviceAudioQueue as DeviceAudioQueue, KEY_ASSIST_PIPELINE as KEY_ASSIST_PIPELINE, PipelineError as PipelineError, PipelineEvent as PipelineEvent, PipelineEventType as PipelineEventType, PipelineInput as PipelineInput, PipelineRun as PipelineRun, PipelineStage as PipelineStage, WakeWordSettings as WakeWordSettings, async_get_pipeline as async_get_pipeline
4
4
  from _typeshed import Incomplete
5
5
  from collections.abc import Callable as Callable
6
6
  from homeassistant.components import conversation as conversation, stt as stt, tts as tts, websocket_api as websocket_api
@@ -2,4 +2,4 @@ from .const import AssistSatelliteEntityFeature as AssistSatelliteEntityFeature,
2
2
  from .entity import AssistSatelliteAnnouncement as AssistSatelliteAnnouncement, AssistSatelliteConfiguration as AssistSatelliteConfiguration, AssistSatelliteEntity as AssistSatelliteEntity, AssistSatelliteEntityDescription as AssistSatelliteEntityDescription, AssistSatelliteWakeWord as AssistSatelliteWakeWord
3
3
  from .errors import SatelliteBusyError as SatelliteBusyError
4
4
 
5
- __all__ = ['DOMAIN', 'AssistSatelliteAnnouncement', 'AssistSatelliteEntity', 'AssistSatelliteConfiguration', 'AssistSatelliteEntityDescription', 'AssistSatelliteEntityFeature', 'AssistSatelliteWakeWord', 'SatelliteBusyError']
5
+ __all__ = ['DOMAIN', 'AssistSatelliteAnnouncement', 'AssistSatelliteConfiguration', 'AssistSatelliteEntity', 'AssistSatelliteEntityDescription', 'AssistSatelliteEntityFeature', 'AssistSatelliteWakeWord', 'SatelliteBusyError']
@@ -10,3 +10,4 @@ CONNECTION_TEST_DATA: HassKey[dict[str, asyncio.Event]]
10
10
 
11
11
  class AssistSatelliteEntityFeature(IntFlag):
12
12
  ANNOUNCE = 1
13
+ START_CONVERSATION = 2
@@ -7,10 +7,11 @@ from abc import abstractmethod
7
7
  from collections.abc import AsyncIterable
8
8
  from dataclasses import dataclass
9
9
  from enum import StrEnum
10
- from homeassistant.components import media_source as media_source, stt as stt, tts as tts
10
+ from homeassistant.components import conversation as conversation, media_source as media_source, stt as stt, tts as tts
11
11
  from homeassistant.components.assist_pipeline import AudioSettings as AudioSettings, OPTION_PREFERRED as OPTION_PREFERRED, PipelineEvent as PipelineEvent, PipelineEventType as PipelineEventType, PipelineStage as PipelineStage, async_get_pipeline as async_get_pipeline, async_get_pipelines as async_get_pipelines, async_pipeline_from_audio_stream as async_pipeline_from_audio_stream, vad as vad
12
12
  from homeassistant.components.media_player import async_process_play_media_url as async_process_play_media_url
13
13
  from homeassistant.core import Context as Context, callback as callback
14
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
14
15
  from homeassistant.helpers import entity as entity
15
16
  from homeassistant.helpers.entity import EntityDescription as EntityDescription
16
17
  from typing import Any, Final, Literal, final
@@ -42,6 +43,7 @@ class AssistSatelliteConfiguration:
42
43
  class AssistSatelliteAnnouncement:
43
44
  message: str
44
45
  media_id: str
46
+ original_media_id: str
45
47
  media_id_source: Literal['url', 'media_id', 'tts']
46
48
 
47
49
  class AssistSatelliteEntity(entity.Entity, metaclass=abc.ABCMeta):
@@ -54,6 +56,7 @@ class AssistSatelliteEntity(entity.Entity, metaclass=abc.ABCMeta):
54
56
  _conversation_id_time: float | None
55
57
  _run_has_tts: bool
56
58
  _is_announcing: bool
59
+ _extra_system_prompt: str | None
57
60
  _wake_word_intercept_future: asyncio.Future[str | None] | None
58
61
  _attr_tts_options: dict[str, Any] | None
59
62
  _pipeline_task: asyncio.Task | None
@@ -75,6 +78,8 @@ class AssistSatelliteEntity(entity.Entity, metaclass=abc.ABCMeta):
75
78
  async def async_intercept_wake_word(self) -> str | None: ...
76
79
  async def async_internal_announce(self, message: str | None = None, media_id: str | None = None) -> None: ...
77
80
  async def async_announce(self, announcement: AssistSatelliteAnnouncement) -> None: ...
81
+ async def async_internal_start_conversation(self, start_message: str | None = None, start_media_id: str | None = None, extra_system_prompt: str | None = None) -> None: ...
82
+ async def async_start_conversation(self, start_announcement: AssistSatelliteAnnouncement) -> None: ...
78
83
  async def async_accept_pipeline_from_satellite(self, audio_stream: AsyncIterable[bytes], start_stage: PipelineStage = ..., end_stage: PipelineStage = ..., wake_word_phrase: str | None = None) -> None: ...
79
84
  async def _cancel_running_pipeline(self) -> None: ...
80
85
  @abstractmethod
@@ -89,3 +94,4 @@ class AssistSatelliteEntity(entity.Entity, metaclass=abc.ABCMeta):
89
94
  def _resolve_pipeline(self) -> str | None: ...
90
95
  @callback
91
96
  def _resolve_vad_sensitivity(self) -> float: ...
97
+ async def _resolve_announcement_media_id(self, message: str, media_id: str | None) -> AssistSatelliteAnnouncement: ...
@@ -0,0 +1,13 @@
1
+ from .const import AssistSatelliteEntityFeature as AssistSatelliteEntityFeature, DOMAIN as DOMAIN
2
+ from _typeshed import Incomplete
3
+ from homeassistant.core import HomeAssistant as HomeAssistant
4
+ from homeassistant.helpers import intent as intent
5
+
6
+ async def async_setup_intents(hass: HomeAssistant) -> None: ...
7
+
8
+ class BroadcastIntentHandler(intent.IntentHandler):
9
+ intent_type: Incomplete
10
+ description: str
11
+ @property
12
+ def slot_schema(self) -> dict | None: ...
13
+ async def async_handle(self, intent_obj: intent.Intent) -> intent.IntentResponse: ...
@@ -1,10 +1,8 @@
1
1
  from .connection_test import CONNECTION_TEST_URL_BASE as CONNECTION_TEST_URL_BASE
2
2
  from .const import AssistSatelliteEntityFeature as AssistSatelliteEntityFeature, CONNECTION_TEST_DATA as CONNECTION_TEST_DATA, DATA_COMPONENT as DATA_COMPONENT, DOMAIN as DOMAIN
3
- from .entity import AssistSatelliteEntity as AssistSatelliteEntity
4
3
  from homeassistant.components import websocket_api as websocket_api
5
4
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
6
5
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
7
- from homeassistant.helpers.entity_component import EntityComponent as EntityComponent
8
6
  from typing import Any
9
7
 
10
8
  CONNECTION_TEST_TIMEOUT: int
@@ -26,7 +26,7 @@ from homeassistant.helpers.typing import ConfigType as ConfigType
26
26
  from homeassistant.loader import bind_hass as bind_hass
27
27
  from homeassistant.util.dt import parse_datetime as parse_datetime
28
28
  from homeassistant.util.hass_dict import HassKey as HassKey
29
- from propcache import cached_property
29
+ from propcache.api import cached_property
30
30
  from typing import Any, Protocol
31
31
 
32
32
  DATA_COMPONENT: HassKey[EntityComponent[BaseAutomationEntity]]
@@ -1,10 +1,11 @@
1
1
  from .const import DOMAIN as DOMAIN, LOGGER as LOGGER
2
2
  from collections.abc import Mapping
3
- from homeassistant.components import onboarding as onboarding, zeroconf as zeroconf
3
+ from homeassistant.components import onboarding as onboarding
4
4
  from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, SOURCE_ZEROCONF as SOURCE_ZEROCONF
5
5
  from homeassistant.const import CONF_ACCESS_TOKEN as CONF_ACCESS_TOKEN, CONF_DEVICE as CONF_DEVICE, CONF_HOST as CONF_HOST
6
6
  from homeassistant.core import callback as callback
7
7
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
8
+ from homeassistant.helpers.service_info.zeroconf import ZeroconfServiceInfo as ZeroconfServiceInfo
8
9
  from python_awair import AwairLocalDevice as AwairLocalDevice
9
10
  from python_awair.user import AwairUser as AwairUser
10
11
  from typing import Any
@@ -13,7 +14,7 @@ class AwairFlowHandler(ConfigFlow, domain=DOMAIN):
13
14
  VERSION: int
14
15
  _device: AwairLocalDevice
15
16
  host: str
16
- async def async_step_zeroconf(self, discovery_info: zeroconf.ZeroconfServiceInfo) -> ConfigFlowResult: ...
17
+ async def async_step_zeroconf(self, discovery_info: ZeroconfServiceInfo) -> ConfigFlowResult: ...
17
18
  async def async_step_discovery_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
18
19
  async def async_step_user(self, user_input: dict[str, str] | None = None) -> ConfigFlowResult: ...
19
20
  async def async_step_cloud(self, user_input: Mapping[str, Any]) -> ConfigFlowResult: ...
@@ -4,11 +4,13 @@ from .errors import AuthenticationRequired as AuthenticationRequired, CannotConn
4
4
  from .hub import AxisHub as AxisHub, get_axis_api as get_axis_api
5
5
  from _typeshed import Incomplete
6
6
  from collections.abc import Mapping
7
- from homeassistant.components import dhcp as dhcp, ssdp as ssdp, zeroconf as zeroconf
8
7
  from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow, SOURCE_IGNORE as SOURCE_IGNORE, SOURCE_REAUTH as SOURCE_REAUTH, SOURCE_RECONFIGURE as SOURCE_RECONFIGURE
9
8
  from homeassistant.const import CONF_HOST as CONF_HOST, CONF_MAC as CONF_MAC, CONF_MODEL as CONF_MODEL, CONF_NAME as CONF_NAME, CONF_PASSWORD as CONF_PASSWORD, CONF_PORT as CONF_PORT, CONF_PROTOCOL as CONF_PROTOCOL, CONF_USERNAME as CONF_USERNAME
10
9
  from homeassistant.core import callback as callback
11
10
  from homeassistant.helpers.device_registry import format_mac as format_mac
11
+ from homeassistant.helpers.service_info.dhcp import DhcpServiceInfo as DhcpServiceInfo
12
+ from homeassistant.helpers.service_info.ssdp import ATTR_UPNP_FRIENDLY_NAME as ATTR_UPNP_FRIENDLY_NAME, ATTR_UPNP_PRESENTATION_URL as ATTR_UPNP_PRESENTATION_URL, ATTR_UPNP_SERIAL as ATTR_UPNP_SERIAL, SsdpServiceInfo as SsdpServiceInfo
13
+ from homeassistant.helpers.service_info.zeroconf import ZeroconfServiceInfo as ZeroconfServiceInfo
12
14
  from homeassistant.helpers.typing import VolDictType as VolDictType
13
15
  from homeassistant.util.network import is_link_local as is_link_local
14
16
  from typing import Any
@@ -31,9 +33,9 @@ class AxisFlowHandler(ConfigFlow, domain=AXIS_DOMAIN):
31
33
  async def async_step_reconfigure(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
32
34
  async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> ConfigFlowResult: ...
33
35
  async def _redo_configuration(self, entry_data: Mapping[str, Any], keep_password: bool) -> ConfigFlowResult: ...
34
- async def async_step_dhcp(self, discovery_info: dhcp.DhcpServiceInfo) -> ConfigFlowResult: ...
35
- async def async_step_ssdp(self, discovery_info: ssdp.SsdpServiceInfo) -> ConfigFlowResult: ...
36
- async def async_step_zeroconf(self, discovery_info: zeroconf.ZeroconfServiceInfo) -> ConfigFlowResult: ...
36
+ async def async_step_dhcp(self, discovery_info: DhcpServiceInfo) -> ConfigFlowResult: ...
37
+ async def async_step_ssdp(self, discovery_info: SsdpServiceInfo) -> ConfigFlowResult: ...
38
+ async def async_step_zeroconf(self, discovery_info: ZeroconfServiceInfo) -> ConfigFlowResult: ...
37
39
  async def _process_discovered_device(self, discovery_info: dict[str, Any]) -> ConfigFlowResult: ...
38
40
 
39
41
  class AxisOptionsFlowHandler(OptionsFlow):