homeassistant-stubs 2024.11.2__py3-none-any.whl → 2024.12.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 (393) hide show
  1. homeassistant-stubs/__main__.pyi +1 -0
  2. homeassistant-stubs/auth/mfa_modules/totp.pyi +4 -4
  3. homeassistant-stubs/backup_restore.pyi +17 -0
  4. homeassistant-stubs/components/airnow/config_flow.pyi +3 -3
  5. homeassistant-stubs/components/alarm_control_panel/__init__.pyi +2 -2
  6. homeassistant-stubs/components/amberelectric/config_flow.pyi +1 -1
  7. homeassistant-stubs/components/amberelectric/coordinator.pyi +7 -7
  8. homeassistant-stubs/components/amberelectric/sensor.pyi +3 -4
  9. homeassistant-stubs/components/analytics_insights/config_flow.pyi +3 -3
  10. homeassistant-stubs/components/androidtv/config_flow.pyi +2 -2
  11. homeassistant-stubs/components/androidtv_remote/config_flow.pyi +2 -2
  12. homeassistant-stubs/components/apsystems/coordinator.pyi +1 -1
  13. homeassistant-stubs/components/assist_pipeline/audio_enhancer.pyi +2 -3
  14. homeassistant-stubs/components/assist_pipeline/pipeline.pyi +4 -2
  15. homeassistant-stubs/components/assist_pipeline/vad.pyi +7 -4
  16. homeassistant-stubs/components/axis/config_flow.pyi +2 -2
  17. homeassistant-stubs/components/backup/http.pyi +7 -3
  18. homeassistant-stubs/components/backup/manager.pyi +8 -0
  19. homeassistant-stubs/components/backup/websocket.pyi +1 -0
  20. homeassistant-stubs/components/bang_olufsen/const.pyi +1 -6
  21. homeassistant-stubs/components/bang_olufsen/diagnostics.pyi +6 -0
  22. homeassistant-stubs/components/bang_olufsen/media_player.pyi +11 -5
  23. homeassistant-stubs/components/bang_olufsen/websocket.pyi +2 -2
  24. homeassistant-stubs/components/bmw_connected_drive/config_flow.pyi +7 -3
  25. homeassistant-stubs/components/bmw_connected_drive/const.pyi +3 -0
  26. homeassistant-stubs/components/brother/sensor.pyi +0 -1
  27. homeassistant-stubs/components/cambridge_audio/__init__.pyi +1 -0
  28. homeassistant-stubs/components/cambridge_audio/config_flow.pyi +1 -0
  29. homeassistant-stubs/components/cambridge_audio/media_player.pyi +1 -0
  30. homeassistant-stubs/components/cambridge_audio/select.pyi +3 -1
  31. homeassistant-stubs/components/cambridge_audio/switch.pyi +3 -1
  32. homeassistant-stubs/components/camera/__init__.pyi +5 -3
  33. homeassistant-stubs/components/camera/webrtc.pyi +10 -6
  34. homeassistant-stubs/components/canary/config_flow.pyi +0 -2
  35. homeassistant-stubs/components/climate/__init__.pyi +10 -3
  36. homeassistant-stubs/components/climate/const.pyi +6 -0
  37. homeassistant-stubs/components/climate/reproduce_state.pyi +1 -1
  38. homeassistant-stubs/components/climate/significant_change.pyi +1 -1
  39. homeassistant-stubs/components/cloud/prefs.pyi +1 -1
  40. homeassistant-stubs/components/crownstone/config_flow.pyi +1 -2
  41. homeassistant-stubs/components/deconz/config_flow.pyi +1 -5
  42. homeassistant-stubs/components/demo/climate.pyi +8 -1
  43. homeassistant-stubs/components/demo/config_flow.pyi +0 -1
  44. homeassistant-stubs/components/discovergy/config_flow.pyi +2 -5
  45. homeassistant-stubs/components/dlna_dmr/config_flow.pyi +0 -2
  46. homeassistant-stubs/components/dnsip/config_flow.pyi +2 -2
  47. homeassistant-stubs/components/doorbird/config_flow.pyi +0 -2
  48. homeassistant-stubs/components/dsmr/config_flow.pyi +0 -2
  49. homeassistant-stubs/components/ecovacs/sensor.pyi +1 -1
  50. homeassistant-stubs/components/elevenlabs/config_flow.pyi +2 -2
  51. homeassistant-stubs/components/enphase_envoy/config_flow.pyi +2 -2
  52. homeassistant-stubs/components/eq3btsmart/__init__.pyi +7 -6
  53. homeassistant-stubs/components/eq3btsmart/binary_sensor.pyi +26 -0
  54. homeassistant-stubs/components/eq3btsmart/climate.pyi +4 -15
  55. homeassistant-stubs/components/eq3btsmart/const.pyi +14 -0
  56. homeassistant-stubs/components/eq3btsmart/entity.pyi +17 -3
  57. homeassistant-stubs/components/eq3btsmart/models.pyi +1 -3
  58. homeassistant-stubs/components/eq3btsmart/number.pyi +33 -0
  59. homeassistant-stubs/components/eq3btsmart/sensor.pyi +28 -0
  60. homeassistant-stubs/components/eq3btsmart/switch.pyi +30 -0
  61. homeassistant-stubs/components/esphome/assist_satellite.pyi +1 -0
  62. homeassistant-stubs/components/esphome/config_flow.pyi +0 -2
  63. homeassistant-stubs/components/esphome/entry_data.pyi +8 -1
  64. homeassistant-stubs/components/esphome/ffmpeg_proxy.pyi +1 -0
  65. homeassistant-stubs/components/esphome/media_player.pyi +2 -1
  66. homeassistant-stubs/components/esphome/select.pyi +18 -1
  67. homeassistant-stubs/components/fan/__init__.pyi +1 -1
  68. homeassistant-stubs/components/feedreader/config_flow.pyi +2 -2
  69. homeassistant-stubs/components/filesize/config_flow.pyi +2 -5
  70. homeassistant-stubs/components/fitbit/config_flow.pyi +0 -1
  71. homeassistant-stubs/components/fitbit/sensor.pyi +12 -15
  72. homeassistant-stubs/components/flux_led/config_flow.pyi +1 -3
  73. homeassistant-stubs/components/forecast_solar/config_flow.pyi +0 -2
  74. homeassistant-stubs/components/fritz/config_flow.pyi +4 -4
  75. homeassistant-stubs/components/fritzbox/config_flow.pyi +1 -1
  76. homeassistant-stubs/components/fritzbox_callmonitor/config_flow.pyi +0 -2
  77. homeassistant-stubs/components/fully_kiosk/__init__.pyi +3 -2
  78. homeassistant-stubs/components/fully_kiosk/binary_sensor.pyi +2 -3
  79. homeassistant-stubs/components/fully_kiosk/button.pyi +2 -3
  80. homeassistant-stubs/components/fully_kiosk/camera.pyi +2 -3
  81. homeassistant-stubs/components/fully_kiosk/diagnostics.pyi +2 -3
  82. homeassistant-stubs/components/fully_kiosk/image.pyi +2 -3
  83. homeassistant-stubs/components/fully_kiosk/media_player.pyi +3 -3
  84. homeassistant-stubs/components/fully_kiosk/notify.pyi +2 -3
  85. homeassistant-stubs/components/fully_kiosk/number.pyi +2 -3
  86. homeassistant-stubs/components/fully_kiosk/sensor.pyi +2 -3
  87. homeassistant-stubs/components/fully_kiosk/switch.pyi +2 -3
  88. homeassistant-stubs/components/fyta/__init__.pyi +1 -0
  89. homeassistant-stubs/components/glances/__init__.pyi +0 -2
  90. homeassistant-stubs/components/go2rtc/__init__.pyi +2 -2
  91. homeassistant-stubs/components/google/config_flow.pyi +0 -2
  92. homeassistant-stubs/components/google_assistant_sdk/config_flow.pyi +0 -2
  93. homeassistant-stubs/components/google_cloud/config_flow.pyi +2 -2
  94. homeassistant-stubs/components/google_cloud/helpers.pyi +1 -1
  95. homeassistant-stubs/components/here_travel_time/config_flow.pyi +1 -2
  96. homeassistant-stubs/components/history/__init__.pyi +1 -1
  97. homeassistant-stubs/components/history/helpers.pyi +1 -2
  98. homeassistant-stubs/components/history/websocket_api.pyi +1 -1
  99. homeassistant-stubs/components/history_stats/data.pyi +1 -0
  100. homeassistant-stubs/components/homeassistant_hardware/firmware_config_flow.pyi +4 -3
  101. homeassistant-stubs/components/homeassistant_hardware/silabs_multiprotocol_addon.pyi +0 -1
  102. homeassistant-stubs/components/homekit/config_flow.pyi +1 -2
  103. homeassistant-stubs/components/homewizard/button.pyi +2 -0
  104. homeassistant-stubs/components/homewizard/config_flow.pyi +5 -1
  105. homeassistant-stubs/components/homewizard/const.pyi +1 -1
  106. homeassistant-stubs/components/homewizard/coordinator.pyi +3 -3
  107. homeassistant-stubs/components/homewizard/number.pyi +2 -0
  108. homeassistant-stubs/components/homewizard/sensor.pyi +1 -1
  109. homeassistant-stubs/components/homewizard/switch.pyi +4 -2
  110. homeassistant-stubs/components/huawei_lte/config_flow.pyi +0 -2
  111. homeassistant-stubs/components/husqvarna_automower/api.pyi +6 -0
  112. homeassistant-stubs/components/husqvarna_automower/binary_sensor.pyi +7 -0
  113. homeassistant-stubs/components/husqvarna_automower/button.pyi +1 -0
  114. homeassistant-stubs/components/husqvarna_automower/config_flow.pyi +2 -1
  115. homeassistant-stubs/components/husqvarna_automower/lawn_mower.pyi +2 -1
  116. homeassistant-stubs/components/husqvarna_automower/number.pyi +1 -0
  117. homeassistant-stubs/components/husqvarna_automower/select.pyi +1 -0
  118. homeassistant-stubs/components/husqvarna_automower/switch.pyi +1 -0
  119. homeassistant-stubs/components/hydrawise/sensor.pyi +2 -9
  120. homeassistant-stubs/components/hyperion/config_flow.pyi +0 -2
  121. homeassistant-stubs/components/ibeacon/config_flow.pyi +0 -3
  122. homeassistant-stubs/components/imap/config_flow.pyi +3 -3
  123. homeassistant-stubs/components/imap/sensor.pyi +1 -1
  124. homeassistant-stubs/components/intent/timers.pyi +6 -0
  125. homeassistant-stubs/components/islamic_prayer_times/config_flow.pyi +0 -3
  126. homeassistant-stubs/components/isy994/config_flow.pyi +0 -2
  127. homeassistant-stubs/components/jellyfin/config_flow.pyi +3 -3
  128. homeassistant-stubs/components/jewish_calendar/__init__.pyi +6 -17
  129. homeassistant-stubs/components/jewish_calendar/binary_sensor.pyi +2 -4
  130. homeassistant-stubs/components/jewish_calendar/config_flow.pyi +3 -4
  131. homeassistant-stubs/components/jewish_calendar/entity.pyi +15 -4
  132. homeassistant-stubs/components/jewish_calendar/sensor.pyi +3 -5
  133. homeassistant-stubs/components/knx/__init__.pyi +1 -1
  134. homeassistant-stubs/components/knx/config_flow.pyi +0 -1
  135. homeassistant-stubs/components/knx/light.pyi +3 -3
  136. homeassistant-stubs/components/knx/telegrams.pyi +1 -0
  137. homeassistant-stubs/components/knx/websocket.pyi +1 -0
  138. homeassistant-stubs/components/kraken/config_flow.pyi +0 -3
  139. homeassistant-stubs/components/lamarzocco/__init__.pyi +1 -1
  140. homeassistant-stubs/components/lamarzocco/binary_sensor.pyi +1 -1
  141. homeassistant-stubs/components/lamarzocco/button.pyi +7 -3
  142. homeassistant-stubs/components/lamarzocco/calendar.pyi +1 -1
  143. homeassistant-stubs/components/lamarzocco/config_flow.pyi +10 -6
  144. homeassistant-stubs/components/lamarzocco/coordinator.pyi +3 -3
  145. homeassistant-stubs/components/lamarzocco/diagnostics.pyi +1 -1
  146. homeassistant-stubs/components/lamarzocco/entity.pyi +3 -2
  147. homeassistant-stubs/components/lamarzocco/number.pyi +5 -3
  148. homeassistant-stubs/components/lamarzocco/select.pyi +3 -2
  149. homeassistant-stubs/components/lamarzocco/sensor.pyi +1 -1
  150. homeassistant-stubs/components/lamarzocco/switch.pyi +4 -2
  151. homeassistant-stubs/components/lamarzocco/update.pyi +3 -1
  152. homeassistant-stubs/components/lcn/__init__.pyi +4 -4
  153. homeassistant-stubs/components/lcn/config_flow.pyi +0 -4
  154. homeassistant-stubs/components/lcn/helpers.pyi +2 -4
  155. homeassistant-stubs/components/lcn/schemas.pyi +2 -13
  156. homeassistant-stubs/components/lcn/services.pyi +2 -0
  157. homeassistant-stubs/components/lektrico/binary_sensor.pyi +27 -0
  158. homeassistant-stubs/components/linkplay/button.pyi +28 -0
  159. homeassistant-stubs/components/linkplay/diagnostics.pyi +5 -0
  160. homeassistant-stubs/components/linkplay/entity.pyi +16 -0
  161. homeassistant-stubs/components/linkplay/media_player.pyi +3 -8
  162. homeassistant-stubs/components/linkplay/utils.pyi +12 -0
  163. homeassistant-stubs/components/litejet/config_flow.pyi +0 -3
  164. homeassistant-stubs/components/matter/adapter.pyi +1 -0
  165. homeassistant-stubs/components/matter/const.pyi +1 -0
  166. homeassistant-stubs/components/matter/discovery.pyi +1 -0
  167. homeassistant-stubs/components/matter/entity.pyi +2 -1
  168. homeassistant-stubs/components/matter/models.pyi +4 -2
  169. homeassistant-stubs/components/media_extractor/__init__.pyi +1 -2
  170. homeassistant-stubs/components/media_extractor/config_flow.pyi +0 -1
  171. homeassistant-stubs/components/mikrotik/config_flow.pyi +0 -3
  172. homeassistant-stubs/components/mjpeg/config_flow.pyi +0 -3
  173. homeassistant-stubs/components/mold_indicator/sensor.pyi +3 -5
  174. homeassistant-stubs/components/monzo/coordinator.pyi +1 -1
  175. homeassistant-stubs/components/mopeka/config_flow.pyi +0 -2
  176. homeassistant-stubs/components/mqtt/__init__.pyi +1 -0
  177. homeassistant-stubs/components/mqtt/alarm_control_panel.pyi +1 -0
  178. homeassistant-stubs/components/mqtt/binary_sensor.pyi +1 -0
  179. homeassistant-stubs/components/mqtt/button.pyi +1 -0
  180. homeassistant-stubs/components/mqtt/camera.pyi +1 -0
  181. homeassistant-stubs/components/mqtt/climate.pyi +1 -0
  182. homeassistant-stubs/components/mqtt/config_flow.pyi +3 -4
  183. homeassistant-stubs/components/mqtt/cover.pyi +1 -0
  184. homeassistant-stubs/components/mqtt/device_tracker.pyi +1 -0
  185. homeassistant-stubs/components/mqtt/entity.pyi +1 -0
  186. homeassistant-stubs/components/mqtt/event.pyi +1 -0
  187. homeassistant-stubs/components/mqtt/fan.pyi +1 -0
  188. homeassistant-stubs/components/mqtt/humidifier.pyi +1 -0
  189. homeassistant-stubs/components/mqtt/image.pyi +1 -0
  190. homeassistant-stubs/components/mqtt/lawn_mower.pyi +1 -0
  191. homeassistant-stubs/components/mqtt/light/__init__.pyi +2 -0
  192. homeassistant-stubs/components/mqtt/lock.pyi +1 -0
  193. homeassistant-stubs/components/mqtt/notify.pyi +1 -0
  194. homeassistant-stubs/components/mqtt/number.pyi +1 -0
  195. homeassistant-stubs/components/mqtt/scene.pyi +1 -0
  196. homeassistant-stubs/components/mqtt/select.pyi +1 -0
  197. homeassistant-stubs/components/mqtt/sensor.pyi +1 -0
  198. homeassistant-stubs/components/mqtt/siren.pyi +1 -0
  199. homeassistant-stubs/components/mqtt/subscription.pyi +1 -1
  200. homeassistant-stubs/components/mqtt/switch.pyi +1 -0
  201. homeassistant-stubs/components/mqtt/text.pyi +1 -0
  202. homeassistant-stubs/components/mqtt/update.pyi +1 -0
  203. homeassistant-stubs/components/mqtt/vacuum.pyi +1 -0
  204. homeassistant-stubs/components/mqtt/valve.pyi +1 -0
  205. homeassistant-stubs/components/mqtt/water_heater.pyi +1 -0
  206. homeassistant-stubs/components/music_assistant/__init__.pyi +27 -0
  207. homeassistant-stubs/components/music_assistant/config_flow.pyi +24 -0
  208. homeassistant-stubs/components/music_assistant/const.pyi +12 -0
  209. homeassistant-stubs/components/music_assistant/entity.pyi +24 -0
  210. homeassistant-stubs/components/music_assistant/media_browser.pyi +33 -0
  211. homeassistant-stubs/components/music_assistant/media_player.pyi +96 -0
  212. homeassistant-stubs/components/nasweb/__init__.pyi +19 -0
  213. homeassistant-stubs/components/nasweb/config_flow.pyi +27 -0
  214. homeassistant-stubs/components/nasweb/const.pyi +5 -0
  215. homeassistant-stubs/components/nasweb/coordinator.pyi +42 -0
  216. homeassistant-stubs/components/nasweb/nasweb_data.pyi +20 -0
  217. homeassistant-stubs/components/nasweb/switch.pyi +35 -0
  218. homeassistant-stubs/components/nest/camera.pyi +3 -5
  219. homeassistant-stubs/components/netatmo/config_flow.pyi +0 -1
  220. homeassistant-stubs/components/nightscout/sensor.pyi +4 -3
  221. homeassistant-stubs/components/nordpool/__init__.pyi +9 -0
  222. homeassistant-stubs/components/nordpool/config_flow.pyi +19 -0
  223. homeassistant-stubs/components/nordpool/const.pyi +9 -0
  224. homeassistant-stubs/components/nordpool/coordinator.pyi +20 -0
  225. homeassistant-stubs/components/nordpool/diagnostics.pyi +5 -0
  226. homeassistant-stubs/components/nordpool/entity.pyi +14 -0
  227. homeassistant-stubs/components/nordpool/sensor.pyi +69 -0
  228. homeassistant-stubs/components/number/const.pyi +3 -1
  229. homeassistant-stubs/components/nut/__init__.pyi +4 -1
  230. homeassistant-stubs/components/nut/config_flow.pyi +0 -2
  231. homeassistant-stubs/components/nut/sensor.pyi +1 -1
  232. homeassistant-stubs/components/onewire/config_flow.pyi +4 -2
  233. homeassistant-stubs/components/onkyo/config_flow.pyi +3 -2
  234. homeassistant-stubs/components/openai_conversation/config_flow.pyi +0 -1
  235. homeassistant-stubs/components/opensky/config_flow.pyi +3 -3
  236. homeassistant-stubs/components/p1_monitor/__init__.pyi +3 -3
  237. homeassistant-stubs/components/p1_monitor/diagnostics.pyi +1 -2
  238. homeassistant-stubs/components/p1_monitor/sensor.pyi +1 -1
  239. homeassistant-stubs/components/ping/__init__.pyi +2 -6
  240. homeassistant-stubs/components/ping/config_flow.pyi +2 -2
  241. homeassistant-stubs/components/plugwise/climate.pyi +4 -2
  242. homeassistant-stubs/components/plugwise/entity.pyi +2 -2
  243. homeassistant-stubs/components/plugwise/number.pyi +2 -2
  244. homeassistant-stubs/components/plugwise/select.pyi +2 -1
  245. homeassistant-stubs/components/proximity/config_flow.pyi +0 -3
  246. homeassistant-stubs/components/pure_energie/__init__.pyi +4 -5
  247. homeassistant-stubs/components/pure_energie/diagnostics.pyi +2 -4
  248. homeassistant-stubs/components/pure_energie/sensor.pyi +3 -3
  249. homeassistant-stubs/components/purpleair/config_flow.pyi +1 -2
  250. homeassistant-stubs/components/rainmachine/config_flow.pyi +0 -3
  251. homeassistant-stubs/components/recollect_waste/config_flow.pyi +1 -3
  252. homeassistant-stubs/components/recorder/core.pyi +1 -0
  253. homeassistant-stubs/components/recorder/history/legacy.pyi +4 -4
  254. homeassistant-stubs/components/recorder/history/modern.pyi +2 -2
  255. homeassistant-stubs/components/recorder/pool.pyi +1 -1
  256. homeassistant-stubs/components/recorder/queries.pyi +1 -0
  257. homeassistant-stubs/components/recorder/statistics.pyi +1 -1
  258. homeassistant-stubs/components/recorder/table_managers/states.pyi +7 -0
  259. homeassistant-stubs/components/recorder/websocket_api.pyi +1 -1
  260. homeassistant-stubs/components/renault/config_flow.pyi +4 -5
  261. homeassistant-stubs/components/renault/services.pyi +1 -0
  262. homeassistant-stubs/components/reolink/__init__.pyi +28 -0
  263. homeassistant-stubs/components/reolink/binary_sensor.pyi +34 -0
  264. homeassistant-stubs/components/reolink/button.pyi +48 -0
  265. homeassistant-stubs/components/reolink/camera.pyi +28 -0
  266. homeassistant-stubs/components/reolink/config_flow.pyi +35 -0
  267. homeassistant-stubs/components/reolink/const.pyi +2 -0
  268. homeassistant-stubs/components/reolink/diagnostics.pyi +5 -0
  269. homeassistant-stubs/components/reolink/entity.pyi +69 -0
  270. homeassistant-stubs/components/reolink/exceptions.pyi +7 -0
  271. homeassistant-stubs/components/reolink/host.pyi +82 -0
  272. homeassistant-stubs/components/reolink/light.pyi +55 -0
  273. homeassistant-stubs/components/reolink/media_source.pyi +27 -0
  274. homeassistant-stubs/components/reolink/number.pyi +69 -0
  275. homeassistant-stubs/components/reolink/select.pyi +54 -0
  276. homeassistant-stubs/components/reolink/sensor.pyi +55 -0
  277. homeassistant-stubs/components/reolink/services.pyi +12 -0
  278. homeassistant-stubs/components/reolink/siren.pyi +26 -0
  279. homeassistant-stubs/components/reolink/switch.pyi +65 -0
  280. homeassistant-stubs/components/reolink/update.pyi +71 -0
  281. homeassistant-stubs/components/reolink/util.pyi +18 -0
  282. homeassistant-stubs/components/rfxtrx/config_flow.pyi +2 -3
  283. homeassistant-stubs/components/ring/__init__.pyi +0 -1
  284. homeassistant-stubs/components/ring/camera.pyi +22 -6
  285. homeassistant-stubs/components/rituals_perfume_genie/select.pyi +1 -1
  286. homeassistant-stubs/components/roborock/config_flow.pyi +5 -3
  287. homeassistant-stubs/components/roborock/sensor.pyi +1 -1
  288. homeassistant-stubs/components/roku/config_flow.pyi +3 -3
  289. homeassistant-stubs/components/romy/sensor.pyi +1 -1
  290. homeassistant-stubs/components/rtsp_to_webrtc/__init__.pyi +1 -0
  291. homeassistant-stubs/components/rtsp_to_webrtc/config_flow.pyi +0 -2
  292. homeassistant-stubs/components/sensor/const.pyi +4 -2
  293. homeassistant-stubs/components/sensor/device_condition.pyi +2 -0
  294. homeassistant-stubs/components/sensor/device_trigger.pyi +2 -0
  295. homeassistant-stubs/components/shelly/config_flow.pyi +0 -2
  296. homeassistant-stubs/components/shelly/update.pyi +4 -1
  297. homeassistant-stubs/components/simplisafe/config_flow.pyi +0 -2
  298. homeassistant-stubs/components/smlight/config_flow.pyi +1 -1
  299. homeassistant-stubs/components/solarlog/coordinator.pyi +1 -0
  300. homeassistant-stubs/components/sonarr/config_flow.pyi +0 -2
  301. homeassistant-stubs/components/speedtestdotnet/config_flow.pyi +1 -2
  302. homeassistant-stubs/components/spotify/browse_media.pyi +2 -2
  303. homeassistant-stubs/components/spotify/coordinator.pyi +2 -4
  304. homeassistant-stubs/components/sql/config_flow.pyi +2 -2
  305. homeassistant-stubs/components/statistics/sensor.pyi +2 -4
  306. homeassistant-stubs/components/stookwijzer/__init__.pyi +15 -0
  307. homeassistant-stubs/components/stookwijzer/config_flow.pyi +10 -0
  308. homeassistant-stubs/components/stookwijzer/const.pyi +5 -0
  309. homeassistant-stubs/components/stookwijzer/coordinator.pyi +15 -0
  310. homeassistant-stubs/components/stookwijzer/diagnostics.pyi +5 -0
  311. homeassistant-stubs/components/stookwijzer/sensor.pyi +31 -0
  312. homeassistant-stubs/components/stream/const.pyi +3 -2
  313. homeassistant-stubs/components/stream/core.pyi +2 -2
  314. homeassistant-stubs/components/stream/worker.pyi +15 -13
  315. homeassistant-stubs/components/suez_water/__init__.pyi +3 -3
  316. homeassistant-stubs/components/suez_water/config_flow.pyi +2 -1
  317. homeassistant-stubs/components/suez_water/const.pyi +3 -0
  318. homeassistant-stubs/components/suez_water/coordinator.pyi +35 -0
  319. homeassistant-stubs/components/suez_water/sensor.pyi +23 -17
  320. homeassistant-stubs/components/switchbot_cloud/sensor.pyi +3 -1
  321. homeassistant-stubs/components/switcher_kis/button.pyi +1 -1
  322. homeassistant-stubs/components/switcher_kis/cover.pyi +1 -1
  323. homeassistant-stubs/components/switcher_kis/light.pyi +1 -1
  324. homeassistant-stubs/components/switcher_kis/sensor.pyi +2 -0
  325. homeassistant-stubs/components/synology_dsm/config_flow.pyi +0 -2
  326. homeassistant-stubs/components/tedee/binary_sensor.pyi +1 -1
  327. homeassistant-stubs/components/tedee/coordinator.pyi +2 -2
  328. homeassistant-stubs/components/tedee/entity.pyi +1 -1
  329. homeassistant-stubs/components/tedee/lock.pyi +3 -1
  330. homeassistant-stubs/components/tedee/sensor.pyi +1 -1
  331. homeassistant-stubs/components/thethingsnetwork/__init__.pyi +1 -4
  332. homeassistant-stubs/components/threshold/binary_sensor.pyi +4 -0
  333. homeassistant-stubs/components/tibber/__init__.pyi +1 -2
  334. homeassistant-stubs/components/tibber/notify.pyi +1 -10
  335. homeassistant-stubs/components/tod/binary_sensor.pyi +3 -3
  336. homeassistant-stubs/components/tolo/config_flow.pyi +1 -1
  337. homeassistant-stubs/components/tplink/__init__.pyi +1 -1
  338. homeassistant-stubs/components/tplink/config_flow.pyi +6 -3
  339. homeassistant-stubs/components/tplink_omada/__init__.pyi +2 -2
  340. homeassistant-stubs/components/trafikverket_camera/config_flow.pyi +1 -1
  341. homeassistant-stubs/components/trafikverket_camera/coordinator.pyi +2 -3
  342. homeassistant-stubs/components/trafikverket_train/__init__.pyi +3 -0
  343. homeassistant-stubs/components/trafikverket_train/config_flow.pyi +4 -3
  344. homeassistant-stubs/components/trafikverket_train/util.pyi +1 -2
  345. homeassistant-stubs/components/transmission/config_flow.pyi +0 -2
  346. homeassistant-stubs/components/trend/binary_sensor.pyi +1 -0
  347. homeassistant-stubs/components/tts/__init__.pyi +3 -1
  348. homeassistant-stubs/components/unifi/config_flow.pyi +2 -3
  349. homeassistant-stubs/components/unifiprotect/__init__.pyi +1 -1
  350. homeassistant-stubs/components/unifiprotect/config_flow.pyi +0 -2
  351. homeassistant-stubs/components/unifiprotect/const.pyi +5 -0
  352. homeassistant-stubs/components/unifiprotect/event.pyi +17 -4
  353. homeassistant-stubs/components/unifiprotect/views.pyi +7 -1
  354. homeassistant-stubs/components/upcloud/config_flow.pyi +0 -2
  355. homeassistant-stubs/components/watttime/config_flow.pyi +1 -3
  356. homeassistant-stubs/components/webostv/config_flow.pyi +0 -2
  357. homeassistant-stubs/components/websocket_api/http.pyi +2 -1
  358. homeassistant-stubs/components/wemo/config_flow.pyi +0 -3
  359. homeassistant-stubs/components/wled/config_flow.pyi +2 -2
  360. homeassistant-stubs/components/workday/config_flow.pyi +2 -2
  361. homeassistant-stubs/components/yale_smart_alarm/config_flow.pyi +5 -3
  362. homeassistant-stubs/components/yalexs_ble/config_flow.pyi +0 -2
  363. homeassistant-stubs/components/youtube/config_flow.pyi +2 -2
  364. homeassistant-stubs/components/zeroconf/usage.pyi +1 -1
  365. homeassistant-stubs/components/zwave_js/__init__.pyi +1 -1
  366. homeassistant-stubs/components/zwave_js/api.pyi +9 -1
  367. homeassistant-stubs/components/zwave_js/config_flow.pyi +1 -2
  368. homeassistant-stubs/components/zwave_js/const.pyi +1 -0
  369. homeassistant-stubs/config_entries.pyi +15 -7
  370. homeassistant-stubs/const.pyi +26 -1
  371. homeassistant-stubs/core_config.pyi +1 -1
  372. homeassistant-stubs/data_entry_flow.pyi +3 -3
  373. homeassistant-stubs/helpers/device_registry.pyi +0 -1
  374. homeassistant-stubs/helpers/entity.pyi +1 -0
  375. homeassistant-stubs/helpers/entity_platform.pyi +1 -0
  376. homeassistant-stubs/helpers/frame.pyi +12 -3
  377. homeassistant-stubs/helpers/intent.pyi +1 -0
  378. homeassistant-stubs/helpers/llm.pyi +2 -3
  379. homeassistant-stubs/helpers/restore_state.pyi +0 -3
  380. homeassistant-stubs/helpers/schema_config_entry_flow.pyi +5 -2
  381. homeassistant-stubs/helpers/trigger_template_entity.pyi +1 -1
  382. homeassistant-stubs/helpers/update_coordinator.pyi +3 -3
  383. homeassistant-stubs/loader.pyi +1 -0
  384. homeassistant-stubs/runner.pyi +0 -4
  385. homeassistant-stubs/util/json.pyi +3 -3
  386. homeassistant-stubs/util/unit_conversion.pyi +20 -1
  387. homeassistant-stubs/util/unit_system.pyi +7 -4
  388. homeassistant-stubs/util/yaml/loader.pyi +0 -19
  389. {homeassistant_stubs-2024.11.2.dist-info → homeassistant_stubs-2024.12.0.dist-info}/METADATA +2 -2
  390. {homeassistant_stubs-2024.11.2.dist-info → homeassistant_stubs-2024.12.0.dist-info}/RECORD +392 -337
  391. homeassistant-stubs/components/spotify/sensor.pyi +0 -31
  392. {homeassistant_stubs-2024.11.2.dist-info → homeassistant_stubs-2024.12.0.dist-info}/WHEEL +0 -0
  393. {homeassistant_stubs-2024.11.2.dist-info → homeassistant_stubs-2024.12.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,4 +1,5 @@
1
1
  import argparse
2
+ from .backup_restore import restore_backup as restore_backup
2
3
  from .const import REQUIRED_PYTHON_VER as REQUIRED_PYTHON_VER, RESTART_EXIT_CODE as RESTART_EXIT_CODE, __version__ as __version__
3
4
 
4
5
  FAULT_LOG_FILENAME: str
@@ -40,10 +40,10 @@ class TotpAuthModule(MultiFactorAuthModule):
40
40
  def _validate_2fa(self, user_id: str, code: str) -> bool: ...
41
41
 
42
42
  class TotpSetupFlow(SetupFlow):
43
- _auth_module: Incomplete
44
- _user: Incomplete
43
+ _auth_module: TotpAuthModule
45
44
  _ota_secret: str
46
- _url: Incomplete
47
- _image: Incomplete
45
+ _url: str
46
+ _image: str
47
+ _user: Incomplete
48
48
  def __init__(self, auth_module: TotpAuthModule, setup_schema: vol.Schema, user: User) -> None: ...
49
49
  async def async_step_init(self, user_input: dict[str, str] | None = None) -> FlowResult: ...
@@ -0,0 +1,17 @@
1
+ from _typeshed import Incomplete
2
+ from dataclasses import dataclass
3
+ from pathlib import Path
4
+
5
+ RESTORE_BACKUP_FILE: str
6
+ KEEP_PATHS: Incomplete
7
+ _LOGGER: Incomplete
8
+
9
+ @dataclass
10
+ class RestoreBackupFileContent:
11
+ backup_file_path: Path
12
+ def __init__(self, backup_file_path) -> None: ...
13
+
14
+ def restore_backup_file_content(config_dir: Path) -> RestoreBackupFileContent | None: ...
15
+ def _clear_configuration_directory(config_dir: Path) -> None: ...
16
+ def _extract_backup(config_dir: Path, backup_file_path: Path) -> None: ...
17
+ def restore_backup(config_dir_path: str) -> bool: ...
@@ -1,6 +1,6 @@
1
1
  from .const import DOMAIN as DOMAIN
2
2
  from _typeshed import Incomplete
3
- from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow, OptionsFlowWithConfigEntry as OptionsFlowWithConfigEntry
3
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow
4
4
  from homeassistant.const import CONF_API_KEY as CONF_API_KEY, CONF_LATITUDE as CONF_LATITUDE, CONF_LONGITUDE as CONF_LONGITUDE, CONF_RADIUS as CONF_RADIUS
5
5
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
6
6
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
@@ -15,9 +15,9 @@ class AirNowConfigFlow(ConfigFlow, domain=DOMAIN):
15
15
  VERSION: int
16
16
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
17
17
  @staticmethod
18
- def async_get_options_flow(config_entry: ConfigEntry) -> OptionsFlow: ...
18
+ def async_get_options_flow(config_entry: ConfigEntry) -> AirNowOptionsFlowHandler: ...
19
19
 
20
- class AirNowOptionsFlowHandler(OptionsFlowWithConfigEntry):
20
+ class AirNowOptionsFlowHandler(OptionsFlow):
21
21
  async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
22
22
 
23
23
  class CannotConnect(HomeAssistantError): ...
@@ -10,6 +10,7 @@ from homeassistant.helpers.deprecation import all_with_deprecated_constants as a
10
10
  from homeassistant.helpers.entity import Entity as Entity, EntityDescription as EntityDescription
11
11
  from homeassistant.helpers.entity_component import EntityComponent as EntityComponent
12
12
  from homeassistant.helpers.entity_platform import EntityPlatform as EntityPlatform
13
+ from homeassistant.helpers.frame import ReportBehavior as ReportBehavior, report_usage as report_usage
13
14
  from homeassistant.helpers.typing import ConfigType as ConfigType
14
15
  from homeassistant.util.hass_dict import HassKey as HassKey
15
16
  from typing import Any, Final
@@ -42,9 +43,8 @@ class AlarmControlPanelEntity(Entity, cached_properties=CACHED_PROPERTIES_WITH_A
42
43
  _attr_supported_features: AlarmControlPanelEntityFeature
43
44
  _alarm_control_panel_option_default_code: str | None
44
45
  __alarm_legacy_state: bool
45
- __alarm_legacy_state_reported: bool
46
46
  def __init_subclass__(cls, **kwargs: Any) -> None: ...
47
- def __setattr__(self, __name: str, /, __value: Any) -> None: ...
47
+ def __setattr__(self, name: str, value: Any, /) -> None: ...
48
48
  def add_to_platform_start(self, hass: HomeAssistant, platform: EntityPlatform, parallel_updates: asyncio.Semaphore | None) -> None: ...
49
49
  def _report_deprecated_alarm_state_handling(self) -> None: ...
50
50
  @property
@@ -1,6 +1,6 @@
1
1
  from .const import CONF_SITE_ID as CONF_SITE_ID, CONF_SITE_NAME as CONF_SITE_NAME, DOMAIN as DOMAIN
2
2
  from _typeshed import Incomplete
3
- from amberelectric.model.site import Site as Site
3
+ from amberelectric.models.site import Site as Site
4
4
  from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
5
5
  from homeassistant.const import CONF_API_TOKEN as CONF_API_TOKEN
6
6
  from homeassistant.helpers.selector import SelectOptionDict as SelectOptionDict, SelectSelector as SelectSelector, SelectSelectorConfig as SelectSelectorConfig, SelectSelectorMode as SelectSelectorMode
@@ -1,10 +1,10 @@
1
+ import amberelectric
1
2
  from .const import LOGGER as LOGGER
2
3
  from _typeshed import Incomplete
3
- from amberelectric.api import amber_api as amber_api
4
- from amberelectric.model.actual_interval import ActualInterval as ActualInterval
5
- from amberelectric.model.current_interval import CurrentInterval
6
- from amberelectric.model.forecast_interval import ForecastInterval
7
- from amberelectric.model.interval import Descriptor as Descriptor
4
+ from amberelectric.models.actual_interval import ActualInterval as ActualInterval
5
+ from amberelectric.models.current_interval import CurrentInterval
6
+ from amberelectric.models.forecast_interval import ForecastInterval
7
+ from amberelectric.models.price_descriptor import PriceDescriptor as PriceDescriptor
8
8
  from homeassistant.core import HomeAssistant as HomeAssistant
9
9
  from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
10
10
  from typing import Any
@@ -14,11 +14,11 @@ def is_forecast(interval: ActualInterval | CurrentInterval | ForecastInterval) -
14
14
  def is_general(interval: ActualInterval | CurrentInterval | ForecastInterval) -> bool: ...
15
15
  def is_controlled_load(interval: ActualInterval | CurrentInterval | ForecastInterval) -> bool: ...
16
16
  def is_feed_in(interval: ActualInterval | CurrentInterval | ForecastInterval) -> bool: ...
17
- def normalize_descriptor(descriptor: Descriptor) -> str | None: ...
17
+ def normalize_descriptor(descriptor: PriceDescriptor | None) -> str | None: ...
18
18
 
19
19
  class AmberUpdateCoordinator(DataUpdateCoordinator):
20
20
  _api: Incomplete
21
21
  site_id: Incomplete
22
- def __init__(self, hass: HomeAssistant, api: amber_api.AmberApi, site_id: str) -> None: ...
22
+ def __init__(self, hass: HomeAssistant, api: amberelectric.AmberApi, site_id: str) -> None: ...
23
23
  def update_price_data(self) -> dict[str, dict[str, Any]]: ...
24
24
  async def _async_update_data(self) -> dict[str, Any]: ...
@@ -2,9 +2,8 @@ from . import AmberConfigEntry as AmberConfigEntry
2
2
  from .const import ATTRIBUTION as ATTRIBUTION
3
3
  from .coordinator import AmberUpdateCoordinator as AmberUpdateCoordinator, normalize_descriptor as normalize_descriptor
4
4
  from _typeshed import Incomplete
5
- from amberelectric.model.channel import ChannelType
6
- from amberelectric.model.current_interval import CurrentInterval as CurrentInterval
7
- from amberelectric.model.forecast_interval import ForecastInterval as ForecastInterval
5
+ from amberelectric.models.current_interval import CurrentInterval as CurrentInterval
6
+ from amberelectric.models.forecast_interval import ForecastInterval as ForecastInterval
8
7
  from homeassistant.components.sensor import SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
9
8
  from homeassistant.const import CURRENCY_DOLLAR as CURRENCY_DOLLAR, PERCENTAGE as PERCENTAGE, UnitOfEnergy as UnitOfEnergy
10
9
  from homeassistant.core import HomeAssistant as HomeAssistant
@@ -23,7 +22,7 @@ class AmberSensor(CoordinatorEntity[AmberUpdateCoordinator], SensorEntity):
23
22
  entity_description: Incomplete
24
23
  channel_type: Incomplete
25
24
  _attr_unique_id: Incomplete
26
- def __init__(self, coordinator: AmberUpdateCoordinator, description: SensorEntityDescription, channel_type: ChannelType) -> None: ...
25
+ def __init__(self, coordinator: AmberUpdateCoordinator, description: SensorEntityDescription, channel_type: str) -> None: ...
27
26
 
28
27
  class AmberPriceSensor(AmberSensor):
29
28
  @property
@@ -1,6 +1,6 @@
1
1
  from .const import CONF_TRACKED_ADDONS as CONF_TRACKED_ADDONS, CONF_TRACKED_CUSTOM_INTEGRATIONS as CONF_TRACKED_CUSTOM_INTEGRATIONS, CONF_TRACKED_INTEGRATIONS as CONF_TRACKED_INTEGRATIONS, DOMAIN as DOMAIN, LOGGER as LOGGER
2
2
  from _typeshed import Incomplete
3
- from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow, OptionsFlowWithConfigEntry as OptionsFlowWithConfigEntry
3
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow
4
4
  from homeassistant.core import callback as callback
5
5
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
6
6
  from homeassistant.helpers.selector import SelectOptionDict as SelectOptionDict, SelectSelector as SelectSelector, SelectSelectorConfig as SelectSelectorConfig
@@ -10,8 +10,8 @@ INTEGRATION_TYPES_WITHOUT_ANALYTICS: Incomplete
10
10
 
11
11
  class HomeassistantAnalyticsConfigFlow(ConfigFlow, domain=DOMAIN):
12
12
  @staticmethod
13
- def async_get_options_flow(config_entry: ConfigEntry) -> OptionsFlow: ...
13
+ def async_get_options_flow(config_entry: ConfigEntry) -> HomeassistantAnalyticsOptionsFlowHandler: ...
14
14
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
15
15
 
16
- class HomeassistantAnalyticsOptionsFlowHandler(OptionsFlowWithConfigEntry):
16
+ class HomeassistantAnalyticsOptionsFlowHandler(OptionsFlow):
17
17
  async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -1,7 +1,7 @@
1
1
  from . import async_connect_androidtv as async_connect_androidtv, get_androidtv_mac as get_androidtv_mac
2
2
  from .const import CONF_ADBKEY as CONF_ADBKEY, CONF_ADB_SERVER_IP as CONF_ADB_SERVER_IP, CONF_ADB_SERVER_PORT as CONF_ADB_SERVER_PORT, CONF_APPS as CONF_APPS, CONF_EXCLUDE_UNNAMED_APPS as CONF_EXCLUDE_UNNAMED_APPS, CONF_GET_SOURCES as CONF_GET_SOURCES, CONF_SCREENCAP_INTERVAL as CONF_SCREENCAP_INTERVAL, CONF_STATE_DETECTION_RULES as CONF_STATE_DETECTION_RULES, CONF_TURN_OFF_COMMAND as CONF_TURN_OFF_COMMAND, CONF_TURN_ON_COMMAND as CONF_TURN_ON_COMMAND, DEFAULT_ADB_SERVER_PORT as DEFAULT_ADB_SERVER_PORT, DEFAULT_DEVICE_CLASS as DEFAULT_DEVICE_CLASS, DEFAULT_EXCLUDE_UNNAMED_APPS as DEFAULT_EXCLUDE_UNNAMED_APPS, DEFAULT_GET_SOURCES as DEFAULT_GET_SOURCES, DEFAULT_PORT as DEFAULT_PORT, DEFAULT_SCREENCAP_INTERVAL as DEFAULT_SCREENCAP_INTERVAL, DEVICE_CLASSES as DEVICE_CLASSES, DOMAIN as DOMAIN, PROP_ETHMAC as PROP_ETHMAC, PROP_WIFIMAC as PROP_WIFIMAC
3
3
  from _typeshed import Incomplete
4
- from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlowWithConfigEntry as OptionsFlowWithConfigEntry
4
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow
5
5
  from homeassistant.const import CONF_DEVICE_CLASS as CONF_DEVICE_CLASS, CONF_HOST as CONF_HOST, CONF_PORT as CONF_PORT
6
6
  from homeassistant.core import callback as callback
7
7
  from homeassistant.helpers.selector import ObjectSelector as ObjectSelector, SelectOptionDict as SelectOptionDict, SelectSelector as SelectSelector, SelectSelectorConfig as SelectSelectorConfig, SelectSelectorMode as SelectSelectorMode
@@ -30,7 +30,7 @@ class AndroidTVFlowHandler(ConfigFlow, domain=DOMAIN):
30
30
  @staticmethod
31
31
  def async_get_options_flow(config_entry: ConfigEntry) -> OptionsFlowHandler: ...
32
32
 
33
- class OptionsFlowHandler(OptionsFlowWithConfigEntry):
33
+ class OptionsFlowHandler(OptionsFlow):
34
34
  _apps: Incomplete
35
35
  _state_det_rules: Incomplete
36
36
  _conf_app_id: Incomplete
@@ -4,7 +4,7 @@ from _typeshed import Incomplete
4
4
  from androidtvremote2 import AndroidTVRemote as AndroidTVRemote
5
5
  from collections.abc import Mapping
6
6
  from homeassistant.components import zeroconf as zeroconf
7
- from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlowWithConfigEntry as OptionsFlowWithConfigEntry, SOURCE_REAUTH as SOURCE_REAUTH
7
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow, SOURCE_REAUTH as SOURCE_REAUTH
8
8
  from homeassistant.const import CONF_HOST as CONF_HOST, CONF_MAC as CONF_MAC, CONF_NAME as CONF_NAME
9
9
  from homeassistant.core import callback as callback
10
10
  from homeassistant.helpers.device_registry import format_mac as format_mac
@@ -34,7 +34,7 @@ class AndroidTVRemoteConfigFlow(ConfigFlow, domain=DOMAIN):
34
34
  @staticmethod
35
35
  def async_get_options_flow(config_entry: ConfigEntry) -> AndroidTVRemoteOptionsFlowHandler: ...
36
36
 
37
- class AndroidTVRemoteOptionsFlowHandler(OptionsFlowWithConfigEntry):
37
+ class AndroidTVRemoteOptionsFlowHandler(OptionsFlow):
38
38
  _apps: Incomplete
39
39
  _conf_app_id: Incomplete
40
40
  def __init__(self, config_entry: ConfigEntry) -> None: ...
@@ -1,4 +1,4 @@
1
- from .const import LOGGER as LOGGER
1
+ from .const import DOMAIN as DOMAIN, LOGGER as LOGGER
2
2
  from APsystemsEZ1 import APsystemsEZ1M as APsystemsEZ1M, ReturnAlarmInfo as ReturnAlarmInfo, ReturnOutputData as ReturnOutputData
3
3
  from _typeshed import Incomplete
4
4
  from dataclasses import dataclass
@@ -10,8 +10,8 @@ _LOGGER: Incomplete
10
10
  class EnhancedAudioChunk:
11
11
  audio: bytes
12
12
  timestamp_ms: int
13
- is_speech: bool | None
14
- def __init__(self, audio, timestamp_ms, is_speech) -> None: ...
13
+ speech_probability: float | None
14
+ def __init__(self, audio, timestamp_ms, speech_probability) -> None: ...
15
15
 
16
16
  class AudioEnhancer(ABC, metaclass=abc.ABCMeta):
17
17
  auto_gain: Incomplete
@@ -26,6 +26,5 @@ class MicroVadSpeexEnhancer(AudioEnhancer):
26
26
  noise_suppression: Incomplete
27
27
  auto_gain: Incomplete
28
28
  vad: Incomplete
29
- threshold: float
30
29
  def __init__(self, auto_gain: int, noise_suppression: int, is_vad_enabled: bool) -> None: ...
31
30
  def enhance_chunk(self, audio: bytes, timestamp_ms: int) -> EnhancedAudioChunk: ...
@@ -11,6 +11,7 @@ from enum import StrEnum
11
11
  from homeassistant.components import conversation as conversation, media_source as media_source, stt as stt, tts as tts, wake_word as wake_word, websocket_api as websocket_api
12
12
  from homeassistant.core import Context as Context, HomeAssistant as HomeAssistant, callback as callback
13
13
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
14
+ from homeassistant.helpers import intent as intent
14
15
  from homeassistant.helpers.collection import CHANGE_UPDATED as CHANGE_UPDATED, CollectionError as CollectionError, ItemNotFound as ItemNotFound, SerializedStorageCollection as SerializedStorageCollection, StorageCollection as StorageCollection, StorageCollectionWebsocket as StorageCollectionWebsocket
15
16
  from homeassistant.helpers.singleton import singleton as singleton
16
17
  from homeassistant.helpers.storage import Store as Store
@@ -39,7 +40,7 @@ async def async_create_default_pipeline(hass: HomeAssistant, stt_engine_id: str,
39
40
  def _async_get_pipeline_from_conversation_entity(hass: HomeAssistant, entity_id: str) -> Pipeline: ...
40
41
  def async_get_pipeline(hass: HomeAssistant, pipeline_id: str | None = None) -> Pipeline: ...
41
42
  def async_get_pipelines(hass: HomeAssistant) -> list[Pipeline]: ...
42
- async def async_update_pipeline(hass: HomeAssistant, pipeline: Pipeline, *, conversation_engine: str | UndefinedType = ..., conversation_language: str | UndefinedType = ..., language: str | UndefinedType = ..., name: str | UndefinedType = ..., stt_engine: str | None | UndefinedType = ..., stt_language: str | None | UndefinedType = ..., tts_engine: str | None | UndefinedType = ..., tts_language: str | None | UndefinedType = ..., tts_voice: str | None | UndefinedType = ..., wake_word_entity: str | None | UndefinedType = ..., wake_word_id: str | None | UndefinedType = ...) -> None: ...
43
+ async def async_update_pipeline(hass: HomeAssistant, pipeline: Pipeline, *, conversation_engine: str | UndefinedType = ..., conversation_language: str | UndefinedType = ..., language: str | UndefinedType = ..., name: str | UndefinedType = ..., stt_engine: str | None | UndefinedType = ..., stt_language: str | None | UndefinedType = ..., tts_engine: str | None | UndefinedType = ..., tts_language: str | None | UndefinedType = ..., tts_voice: str | None | UndefinedType = ..., wake_word_entity: str | None | UndefinedType = ..., wake_word_id: str | None | UndefinedType = ..., prefer_local_intents: bool | UndefinedType = ...) -> None: ...
43
44
 
44
45
  class PipelineEventType(StrEnum):
45
46
  RUN_START = 'run-start'
@@ -77,11 +78,12 @@ class Pipeline:
77
78
  tts_voice: str | None
78
79
  wake_word_entity: str | None
79
80
  wake_word_id: str | None
81
+ prefer_local_intents: bool = ...
80
82
  id: str = ...
81
83
  @classmethod
82
84
  def from_json(cls, data: dict[str, Any]) -> Pipeline: ...
83
85
  def to_json(self) -> dict[str, Any]: ...
84
- def __init__(self, conversation_engine, conversation_language, language, name, stt_engine, stt_language, tts_engine, tts_language, tts_voice, wake_word_entity, wake_word_id, id=...) -> None: ...
86
+ def __init__(self, conversation_engine, conversation_language, language, name, stt_engine, stt_language, tts_engine, tts_language, tts_voice, wake_word_entity, wake_word_id, prefer_local_intents=..., id=...) -> None: ...
85
87
 
86
88
  class PipelineStage(StrEnum):
87
89
  WAKE_WORD = 'wake_word'
@@ -34,6 +34,8 @@ class VoiceCommandSegmenter:
34
34
  reset_seconds: float = ...
35
35
  in_command: bool = ...
36
36
  timed_out: bool = ...
37
+ before_command_speech_threshold: float = ...
38
+ in_command_speech_threshold: float = ...
37
39
  _speech_seconds_left: float = ...
38
40
  _command_seconds_left: float = ...
39
41
  _silence_seconds_left: float = ...
@@ -41,19 +43,20 @@ class VoiceCommandSegmenter:
41
43
  _reset_seconds_left: float = ...
42
44
  def __post_init__(self) -> None: ...
43
45
  def reset(self) -> None: ...
44
- def process(self, chunk_seconds: float, is_speech: bool | None) -> bool: ...
46
+ def process(self, chunk_seconds: float, speech_probability: float | None) -> bool: ...
45
47
  def process_with_vad(self, chunk: bytes, vad_samples_per_chunk: int | None, vad_is_speech: Callable[[bytes], bool], leftover_chunk_buffer: AudioBuffer | None) -> bool: ...
46
- def __init__(self, speech_seconds=..., command_seconds=..., silence_seconds=..., timeout_seconds=..., reset_seconds=..., in_command=..., timed_out=..., _speech_seconds_left=..., _command_seconds_left=..., _silence_seconds_left=..., _timeout_seconds_left=..., _reset_seconds_left=...) -> None: ...
48
+ def __init__(self, speech_seconds=..., command_seconds=..., silence_seconds=..., timeout_seconds=..., reset_seconds=..., in_command=..., timed_out=..., before_command_speech_threshold=..., in_command_speech_threshold=..., _speech_seconds_left=..., _command_seconds_left=..., _silence_seconds_left=..., _timeout_seconds_left=..., _reset_seconds_left=...) -> None: ...
47
49
 
48
50
  @dataclass
49
51
  class VoiceActivityTimeout:
50
52
  silence_seconds: float
51
53
  reset_seconds: float = ...
54
+ speech_threshold: float = ...
52
55
  _silence_seconds_left: float = ...
53
56
  _reset_seconds_left: float = ...
54
57
  def __post_init__(self) -> None: ...
55
58
  def reset(self) -> None: ...
56
- def process(self, chunk_seconds: float, is_speech: bool | None) -> bool: ...
57
- def __init__(self, silence_seconds, reset_seconds=..., _silence_seconds_left=..., _reset_seconds_left=...) -> None: ...
59
+ def process(self, chunk_seconds: float, speech_probability: float | None) -> bool: ...
60
+ def __init__(self, silence_seconds, reset_seconds=..., speech_threshold=..., _silence_seconds_left=..., _reset_seconds_left=...) -> None: ...
58
61
 
59
62
  def chunk_samples(samples: bytes, bytes_per_chunk: int, leftover_chunk_buffer: AudioBuffer) -> Iterable[bytes]: ...
@@ -5,7 +5,7 @@ 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
7
  from homeassistant.components import dhcp as dhcp, ssdp as ssdp, zeroconf as zeroconf
8
- from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlowWithConfigEntry as OptionsFlowWithConfigEntry, SOURCE_IGNORE as SOURCE_IGNORE, SOURCE_REAUTH as SOURCE_REAUTH, SOURCE_RECONFIGURE as SOURCE_RECONFIGURE
8
+ 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
9
  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
10
  from homeassistant.core import callback as callback
11
11
  from homeassistant.helpers.device_registry import format_mac as format_mac
@@ -35,7 +35,7 @@ class AxisFlowHandler(ConfigFlow, domain=AXIS_DOMAIN):
35
35
  async def async_step_zeroconf(self, discovery_info: zeroconf.ZeroconfServiceInfo) -> ConfigFlowResult: ...
36
36
  async def _process_discovered_device(self, discovery_info: dict[str, Any]) -> ConfigFlowResult: ...
37
37
 
38
- class AxisOptionsFlowHandler(OptionsFlowWithConfigEntry):
38
+ class AxisOptionsFlowHandler(OptionsFlow):
39
39
  config_entry: AxisConfigEntry
40
40
  hub: AxisHub
41
41
  async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -1,7 +1,6 @@
1
- from .const import DOMAIN as DOMAIN
2
- from .manager import BaseBackupManager as BaseBackupManager
1
+ from .const import DATA_MANAGER as DATA_MANAGER
3
2
  from aiohttp.web import FileResponse, Request as Request, Response
4
- from homeassistant.components.http import HomeAssistantView as HomeAssistantView, KEY_HASS as KEY_HASS
3
+ from homeassistant.components.http import HomeAssistantView as HomeAssistantView, KEY_HASS as KEY_HASS, require_admin as require_admin
5
4
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
6
5
  from homeassistant.util import slugify as slugify
7
6
 
@@ -11,3 +10,8 @@ class DownloadBackupView(HomeAssistantView):
11
10
  url: str
12
11
  name: str
13
12
  async def get(self, request: Request, slug: str) -> FileResponse | Response: ...
13
+
14
+ class UploadBackupView(HomeAssistantView):
15
+ url: str
16
+ name: str
17
+ async def post(self, request: Request) -> Response: ...
@@ -1,7 +1,9 @@
1
1
  import abc
2
+ import aiohttp
2
3
  from .const import DOMAIN as DOMAIN, EXCLUDE_FROM_BACKUP as EXCLUDE_FROM_BACKUP, LOGGER as LOGGER
3
4
  from _typeshed import Incomplete
4
5
  from dataclasses import dataclass
6
+ from homeassistant.backup_restore import RESTORE_BACKUP_FILE as RESTORE_BACKUP_FILE
5
7
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
6
8
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
7
9
  from homeassistant.helpers import integration_platform as integration_platform
@@ -38,6 +40,8 @@ class BaseBackupManager(abc.ABC, metaclass=abc.ABCMeta):
38
40
  async def async_post_backup_actions(self, **kwargs: Any) -> None: ...
39
41
  async def load_platforms(self) -> None: ...
40
42
  @abc.abstractmethod
43
+ async def async_restore_backup(self, slug: str, **kwargs: Any) -> None: ...
44
+ @abc.abstractmethod
41
45
  async def async_create_backup(self, **kwargs: Any) -> Backup: ...
42
46
  @abc.abstractmethod
43
47
  async def async_get_backups(self, **kwargs: Any) -> dict[str, Backup]: ...
@@ -45,6 +49,8 @@ class BaseBackupManager(abc.ABC, metaclass=abc.ABCMeta):
45
49
  async def async_get_backup(self, *, slug: str, **kwargs: Any) -> Backup | None: ...
46
50
  @abc.abstractmethod
47
51
  async def async_remove_backup(self, *, slug: str, **kwargs: Any) -> None: ...
52
+ @abc.abstractmethod
53
+ async def async_receive_backup(self, *, contents: aiohttp.BodyPartReader, **kwargs: Any) -> None: ...
48
54
 
49
55
  class BackupManager(BaseBackupManager):
50
56
  backup_dir: Incomplete
@@ -56,8 +62,10 @@ class BackupManager(BaseBackupManager):
56
62
  async def async_get_backups(self, **kwargs: Any) -> dict[str, Backup]: ...
57
63
  async def async_get_backup(self, *, slug: str, **kwargs: Any) -> Backup | None: ...
58
64
  async def async_remove_backup(self, *, slug: str, **kwargs: Any) -> None: ...
65
+ async def async_receive_backup(self, *, contents: aiohttp.BodyPartReader, **kwargs: Any) -> None: ...
59
66
  backing_up: bool
60
67
  async def async_create_backup(self, **kwargs: Any) -> Backup: ...
61
68
  def _mkdir_and_generate_backup_contents(self, tar_file_path: Path, backup_data: dict[str, Any]) -> int: ...
69
+ async def async_restore_backup(self, slug: str, **kwargs: Any) -> None: ...
62
70
 
63
71
  def _generate_slug(date: str, name: str) -> str: ...
@@ -7,6 +7,7 @@ def async_register_websocket_handlers(hass: HomeAssistant, with_hassio: bool) ->
7
7
  async def handle_info(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
8
8
  async def handle_details(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
9
9
  async def handle_remove(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
10
+ async def handle_restore(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
10
11
  async def handle_create(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
11
12
  async def handle_backup_start(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
12
13
  async def handle_backup_end(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
@@ -4,14 +4,9 @@ from mozart_api.models import Source, SourceArray
4
4
  from typing import Final
5
5
 
6
6
  class BangOlufsenSource:
7
- URI_STREAMER: Final[Source]
8
- BLUETOOTH: Final[Source]
9
- CHROMECAST: Final[Source]
10
7
  LINE_IN: Final[Source]
11
8
  SPDIF: Final[Source]
12
- NET_RADIO: Final[Source]
13
- DEEZER: Final[Source]
14
- TIDAL: Final[Source]
9
+ URI_STREAMER: Final[Source]
15
10
 
16
11
  BANG_OLUFSEN_STATES: dict[str, MediaPlayerState]
17
12
  BANG_OLUFSEN_REPEAT_FROM_HA: dict[RepeatMode, str]
@@ -0,0 +1,6 @@
1
+ from . import BangOlufsenConfigEntry as BangOlufsenConfigEntry
2
+ from .const import DOMAIN as DOMAIN
3
+ from homeassistant.core import HomeAssistant as HomeAssistant
4
+ from typing import Any
5
+
6
+ async def async_get_config_entry_diagnostics(hass: HomeAssistant, config_entry: BangOlufsenConfigEntry) -> dict[str, Any]: ...
@@ -12,12 +12,13 @@ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callb
12
12
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, ServiceValidationError as ServiceValidationError
13
13
  from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
14
14
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
15
- from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
15
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback, async_get_current_platform as async_get_current_platform
16
16
  from homeassistant.util.dt import utcnow as utcnow
17
17
  from mozart_api.models import BeolinkLeader as BeolinkLeader, ListeningModeProps as ListeningModeProps, ListeningModeRef as ListeningModeRef, PlaybackContentMetadata as PlaybackContentMetadata, PlaybackError as PlaybackError, PlaybackProgress, RenderingState as RenderingState, Source, VolumeState as VolumeState
18
18
  from mozart_api.mozart_client import MozartClient as MozartClient
19
19
  from typing import Any
20
20
 
21
+ PARALLEL_UPDATES: int
21
22
  SCAN_INTERVAL: Incomplete
22
23
  _LOGGER: Incomplete
23
24
  BANG_OLUFSEN_FEATURES: Incomplete
@@ -25,7 +26,6 @@ BANG_OLUFSEN_FEATURES: Incomplete
25
26
  async def async_setup_entry(hass: HomeAssistant, config_entry: BangOlufsenConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
26
27
 
27
28
  class BangOlufsenMediaPlayer(BangOlufsenEntity, MediaPlayerEntity):
28
- _attr_icon: str
29
29
  _attr_name: Incomplete
30
30
  _attr_device_class: Incomplete
31
31
  _beolink_jid: Incomplete
@@ -42,6 +42,7 @@ class BangOlufsenMediaPlayer(BangOlufsenEntity, MediaPlayerEntity):
42
42
  _sound_modes: Incomplete
43
43
  _beolink_sources: Incomplete
44
44
  _remote_leader: Incomplete
45
+ _beolink_attributes: Incomplete
45
46
  def __init__(self, entry: ConfigEntry, client: MozartClient) -> None: ...
46
47
  async def async_added_to_hass(self) -> None: ...
47
48
  _volume: Incomplete
@@ -62,6 +63,7 @@ class BangOlufsenMediaPlayer(BangOlufsenEntity, MediaPlayerEntity):
62
63
  def _async_update_playback_state(self, data: RenderingState) -> None: ...
63
64
  def _async_update_source_change(self, data: Source) -> None: ...
64
65
  def _async_update_volume(self, data: VolumeState) -> None: ...
66
+ async def _async_update_name_and_beolink(self) -> None: ...
65
67
  _attr_group_members: Incomplete
66
68
  async def _async_update_beolink(self) -> None: ...
67
69
  def _get_entity_id_from_jid(self, jid: str) -> str | None: ...
@@ -99,6 +101,8 @@ class BangOlufsenMediaPlayer(BangOlufsenEntity, MediaPlayerEntity):
99
101
  def media_channel(self) -> str | None: ...
100
102
  @property
101
103
  def source(self) -> str | None: ...
104
+ @property
105
+ def extra_state_attributes(self) -> dict[str, Any] | None: ...
102
106
  async def async_turn_off(self) -> None: ...
103
107
  async def async_set_volume_level(self, volume: float) -> None: ...
104
108
  async def async_mute_volume(self, mute: bool) -> None: ...
@@ -118,6 +122,8 @@ class BangOlufsenMediaPlayer(BangOlufsenEntity, MediaPlayerEntity):
118
122
  async def async_browse_media(self, media_content_type: MediaType | str | None = None, media_content_id: str | None = None) -> BrowseMedia: ...
119
123
  async def async_join_players(self, group_members: list[str]) -> None: ...
120
124
  async def async_unjoin_player(self) -> None: ...
121
- async def _async_beolink_join(self) -> None: ...
122
- async def _async_beolink_expand(self, beolink_jids: list[str]) -> None: ...
123
- async def _async_beolink_leave(self) -> None: ...
125
+ async def async_beolink_join(self, beolink_jid: str | None = None) -> None: ...
126
+ async def async_beolink_expand(self, beolink_jids: list[str] | None = None, all_discovered: bool = False) -> None: ...
127
+ async def async_beolink_unexpand(self, beolink_jids: list[str]) -> None: ...
128
+ async def async_beolink_leave(self) -> None: ...
129
+ async def async_beolink_allstandby(self) -> None: ...
@@ -7,7 +7,7 @@ from homeassistant.core import HomeAssistant as HomeAssistant
7
7
  from homeassistant.helpers.dispatcher import async_dispatcher_send as async_dispatcher_send
8
8
  from homeassistant.util.enum import try_parse_enum as try_parse_enum
9
9
  from mozart_api.models import ListeningModeProps as ListeningModeProps, PlaybackContentMetadata as PlaybackContentMetadata, PlaybackError as PlaybackError, PlaybackProgress as PlaybackProgress, RenderingState as RenderingState, SoftwareUpdateState as SoftwareUpdateState, Source as Source, VolumeState as VolumeState, WebsocketNotificationTag as WebsocketNotificationTag
10
- from mozart_api.mozart_client import MozartClient as MozartClient
10
+ from mozart_api.mozart_client import BaseWebSocketResponse as BaseWebSocketResponse, MozartClient as MozartClient
11
11
 
12
12
  _LOGGER: Incomplete
13
13
 
@@ -28,4 +28,4 @@ class BangOlufsenWebsocket(BangOlufsenBase):
28
28
  def on_source_change_notification(self, notification: Source) -> None: ...
29
29
  def on_volume_notification(self, notification: VolumeState) -> None: ...
30
30
  async def on_software_update_state(self, notification: SoftwareUpdateState) -> None: ...
31
- def on_all_notifications_raw(self, notification: dict) -> None: ...
31
+ def on_all_notifications_raw(self, notification: BaseWebSocketResponse) -> None: ...
@@ -1,28 +1,32 @@
1
1
  from . import DOMAIN as DOMAIN
2
- from .const import CONF_ALLOWED_REGIONS as CONF_ALLOWED_REGIONS, CONF_GCID as CONF_GCID, CONF_READ_ONLY as CONF_READ_ONLY, CONF_REFRESH_TOKEN as CONF_REFRESH_TOKEN
2
+ from .const import CONF_ALLOWED_REGIONS as CONF_ALLOWED_REGIONS, CONF_CAPTCHA_REGIONS as CONF_CAPTCHA_REGIONS, CONF_CAPTCHA_TOKEN as CONF_CAPTCHA_TOKEN, CONF_CAPTCHA_URL as CONF_CAPTCHA_URL, CONF_GCID as CONF_GCID, CONF_READ_ONLY as CONF_READ_ONLY, CONF_REFRESH_TOKEN as CONF_REFRESH_TOKEN
3
3
  from _typeshed import Incomplete
4
4
  from collections.abc import Mapping
5
- from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlowWithConfigEntry as OptionsFlowWithConfigEntry, SOURCE_REAUTH as SOURCE_REAUTH, SOURCE_RECONFIGURE as SOURCE_RECONFIGURE
5
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow, SOURCE_REAUTH as SOURCE_REAUTH, SOURCE_RECONFIGURE as SOURCE_RECONFIGURE
6
6
  from homeassistant.const import CONF_PASSWORD as CONF_PASSWORD, CONF_REGION as CONF_REGION, CONF_SOURCE as CONF_SOURCE, CONF_USERNAME as CONF_USERNAME
7
7
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
8
8
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
9
9
  from homeassistant.helpers.selector import SelectSelector as SelectSelector, SelectSelectorConfig as SelectSelectorConfig
10
+ from homeassistant.util.ssl import get_default_context as get_default_context
10
11
  from typing import Any
11
12
 
12
13
  DATA_SCHEMA: Incomplete
14
+ CAPTCHA_SCHEMA: Incomplete
13
15
 
14
16
  async def validate_input(hass: HomeAssistant, data: dict[str, Any]) -> dict[str, str]: ...
15
17
 
16
18
  class BMWConfigFlow(ConfigFlow, domain=DOMAIN):
17
19
  VERSION: int
20
+ data: dict[str, Any]
18
21
  _existing_entry_data: Mapping[str, Any] | None
19
22
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
20
23
  async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> ConfigFlowResult: ...
21
24
  async def async_step_reconfigure(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
25
+ async def async_step_captcha(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
22
26
  @staticmethod
23
27
  def async_get_options_flow(config_entry: ConfigEntry) -> BMWOptionsFlow: ...
24
28
 
25
- class BMWOptionsFlow(OptionsFlowWithConfigEntry):
29
+ class BMWOptionsFlow(OptionsFlow):
26
30
  async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
27
31
  async def async_step_account_options(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
28
32
 
@@ -5,10 +5,13 @@ DOMAIN: str
5
5
  ATTR_DIRECTION: str
6
6
  ATTR_VIN: str
7
7
  CONF_ALLOWED_REGIONS: Incomplete
8
+ CONF_CAPTCHA_REGIONS: Incomplete
8
9
  CONF_READ_ONLY: str
9
10
  CONF_ACCOUNT: str
10
11
  CONF_REFRESH_TOKEN: str
11
12
  CONF_GCID: str
13
+ CONF_CAPTCHA_TOKEN: str
14
+ CONF_CAPTCHA_URL: str
12
15
  DATA_HASS_CONFIG: str
13
16
  UNIT_MAP: Incomplete
14
17
  SCAN_INTERVALS: Incomplete
@@ -15,7 +15,6 @@ from homeassistant.helpers.update_coordinator import CoordinatorEntity as Coordi
15
15
 
16
16
  ATTR_COUNTER: str
17
17
  ATTR_REMAINING_PAGES: str
18
- UNIT_PAGES: str
19
18
  _LOGGER: Incomplete
20
19
 
21
20
  @dataclass(frozen=True, kw_only=True)
@@ -5,6 +5,7 @@ from homeassistant.config_entries import ConfigEntry as ConfigEntry
5
5
  from homeassistant.const import CONF_HOST as CONF_HOST, Platform as Platform
6
6
  from homeassistant.core import HomeAssistant as HomeAssistant
7
7
  from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady
8
+ from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
8
9
 
9
10
  PLATFORMS: list[Platform]
10
11
  _LOGGER: Incomplete
@@ -3,6 +3,7 @@ from _typeshed import Incomplete
3
3
  from homeassistant.components import zeroconf as zeroconf
4
4
  from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
5
5
  from homeassistant.const import CONF_HOST as CONF_HOST, CONF_NAME as CONF_NAME
6
+ from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
6
7
  from typing import Any
7
8
 
8
9
  class CambridgeAudioConfigFlow(ConfigFlow, domain=DOMAIN):
@@ -13,6 +13,7 @@ from typing import Any
13
13
  BASE_FEATURES: Incomplete
14
14
  PREAMP_FEATURES: Incomplete
15
15
  TRANSPORT_FEATURES: dict[TransportControl, MediaPlayerEntityFeature]
16
+ PARALLEL_UPDATES: int
16
17
 
17
18
  async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
18
19
 
@@ -1,4 +1,4 @@
1
- from .entity import CambridgeAudioEntity as CambridgeAudioEntity
1
+ from .entity import CambridgeAudioEntity as CambridgeAudioEntity, command as command
2
2
  from _typeshed import Incomplete
3
3
  from aiostreammagic import StreamMagicClient as StreamMagicClient
4
4
  from collections.abc import Awaitable, Callable as Callable
@@ -9,6 +9,8 @@ from homeassistant.const import EntityCategory as EntityCategory
9
9
  from homeassistant.core import HomeAssistant as HomeAssistant
10
10
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
11
11
 
12
+ PARALLEL_UPDATES: int
13
+
12
14
  @dataclass(frozen=True, kw_only=True)
13
15
  class CambridgeAudioSelectEntityDescription(SelectEntityDescription):
14
16
  options_fn: Callable[[StreamMagicClient], list[str]] = ...
@@ -1,4 +1,4 @@
1
- from .entity import CambridgeAudioEntity as CambridgeAudioEntity
1
+ from .entity import CambridgeAudioEntity as CambridgeAudioEntity, command as command
2
2
  from _typeshed import Incomplete
3
3
  from aiostreammagic import StreamMagicClient as StreamMagicClient
4
4
  from collections.abc import Awaitable, Callable as Callable
@@ -10,6 +10,8 @@ from homeassistant.core import HomeAssistant as HomeAssistant
10
10
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
11
11
  from typing import Any
12
12
 
13
+ PARALLEL_UPDATES: int
14
+
13
15
  @dataclass(frozen=True, kw_only=True)
14
16
  class CambridgeAudioSwitchEntityDescription(SwitchEntityDescription):
15
17
  value_fn: Callable[[StreamMagicClient], bool]