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
@@ -24,13 +24,12 @@ def none_or_int(value: str | None, base: int) -> int | None: ...
24
24
  class RfxtrxOptionsFlow(OptionsFlow):
25
25
  _device_registry: dr.DeviceRegistry
26
26
  _device_entries: list[dr.DeviceEntry]
27
- _config_entry: Incomplete
28
27
  _global_options: Incomplete
29
28
  _selected_device: Incomplete
30
29
  _selected_device_entry_id: Incomplete
31
30
  _selected_device_event_code: Incomplete
32
31
  _selected_device_object: Incomplete
33
- def __init__(self, config_entry: ConfigEntry) -> None: ...
32
+ def __init__(self) -> None: ...
34
33
  async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
35
34
  async def async_step_prompt_options(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
36
35
  async def async_step_set_device_options(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -49,7 +48,7 @@ class RfxtrxConfigFlow(ConfigFlow, domain=DOMAIN):
49
48
  async def async_step_setup_serial_manual_path(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
50
49
  async def async_validate_rfx(self, host: str | None = None, port: int | None = None, device: str | None = None) -> dict[str, Any]: ...
51
50
  @staticmethod
52
- def async_get_options_flow(config_entry: ConfigEntry) -> OptionsFlow: ...
51
+ def async_get_options_flow(config_entry: ConfigEntry) -> RfxtrxOptionsFlow: ...
53
52
 
54
53
  def _test_transport(host: str | None, port: int | None, device: str | None) -> bool: ...
55
54
  def get_serial_by_id(dev_path: str) -> str: ...
@@ -24,5 +24,4 @@ def get_auth_user_agent() -> str: ...
24
24
  async def async_setup_entry(hass: HomeAssistant, entry: RingConfigEntry) -> bool: ...
25
25
  async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
26
26
  async def async_remove_config_entry_device(hass: HomeAssistant, config_entry: ConfigEntry, device_entry: dr.DeviceEntry) -> bool: ...
27
- async def _migrate_old_unique_ids(hass: HomeAssistant, entry_id: str) -> None: ...
28
27
  async def async_migrate_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
@@ -1,39 +1,55 @@
1
1
  from . import RingConfigEntry as RingConfigEntry
2
2
  from .coordinator import RingDataCoordinator as RingDataCoordinator
3
- from .entity import RingEntity as RingEntity, exception_wrap as exception_wrap
3
+ from .entity import RingDeviceT as RingDeviceT, RingEntity as RingEntity, exception_wrap as exception_wrap
4
4
  from _typeshed import Incomplete
5
5
  from aiohttp import web as web
6
+ from collections.abc import Callable as Callable
7
+ from dataclasses import dataclass
6
8
  from homeassistant.components import ffmpeg as ffmpeg
7
- from homeassistant.components.camera import Camera as Camera
9
+ from homeassistant.components.camera import Camera as Camera, CameraEntityDescription as CameraEntityDescription, CameraEntityFeature as CameraEntityFeature, RTCIceCandidateInit as RTCIceCandidateInit, WebRTCAnswer as WebRTCAnswer, WebRTCCandidate as WebRTCCandidate, WebRTCError as WebRTCError, WebRTCSendMessage as WebRTCSendMessage
8
10
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
11
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
9
12
  from homeassistant.helpers.aiohttp_client import async_aiohttp_proxy_stream as async_aiohttp_proxy_stream
10
13
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
11
14
  from ring_doorbell import RingDoorBell
12
- from typing import Any
15
+ from ring_doorbell.webrtcstream import RingWebRtcMessage as RingWebRtcMessage
16
+ from typing import Any, Generic
13
17
 
14
18
  FORCE_REFRESH_INTERVAL: Incomplete
15
19
  MOTION_DETECTION_CAPABILITY: str
16
20
  _LOGGER: Incomplete
17
21
 
22
+ @dataclass(frozen=True, kw_only=True)
23
+ class RingCameraEntityDescription(CameraEntityDescription, Generic[RingDeviceT]):
24
+ exists_fn: Callable[[RingDoorBell], bool]
25
+ live_stream: bool
26
+ motion_detection: bool
27
+ def __init__(self, *, key, device_class=..., entity_category=..., entity_registry_enabled_default=..., entity_registry_visible_default=..., force_update=..., icon=..., has_entity_name=..., name=..., translation_key=..., translation_placeholders=..., unit_of_measurement=..., exists_fn, live_stream, motion_detection) -> None: ...
28
+
29
+ CAMERA_DESCRIPTIONS: tuple[RingCameraEntityDescription, ...]
30
+
18
31
  async def async_setup_entry(hass: HomeAssistant, entry: RingConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
19
32
 
20
33
  class RingCam(RingEntity[RingDoorBell], Camera):
21
- _attr_name: Incomplete
34
+ entity_description: Incomplete
22
35
  _ffmpeg_manager: Incomplete
23
36
  _last_event: Incomplete
24
37
  _last_video_id: Incomplete
25
38
  _video_url: Incomplete
26
- _image: Incomplete
39
+ _images: Incomplete
27
40
  _expires_at: Incomplete
28
41
  _attr_unique_id: Incomplete
29
42
  _attr_motion_detection_enabled: Incomplete
30
- def __init__(self, device: RingDoorBell, coordinator: RingDataCoordinator, ffmpeg_manager: ffmpeg.FFmpegManager) -> None: ...
43
+ def __init__(self, device: RingDoorBell, coordinator: RingDataCoordinator, description: RingCameraEntityDescription, *, ffmpeg_manager: ffmpeg.FFmpegManager) -> None: ...
31
44
  _device: Incomplete
32
45
  def _handle_coordinator_update(self) -> None: ...
33
46
  @property
34
47
  def extra_state_attributes(self) -> dict[str, Any]: ...
35
48
  async def async_camera_image(self, width: int | None = None, height: int | None = None) -> bytes | None: ...
36
49
  async def handle_async_mjpeg_stream(self, request: web.Request) -> web.StreamResponse | None: ...
50
+ async def async_handle_async_webrtc_offer(self, offer_sdp: str, session_id: str, send_message: WebRTCSendMessage) -> None: ...
51
+ async def async_on_webrtc_candidate(self, session_id: str, candidate: RTCIceCandidateInit) -> None: ...
52
+ def close_webrtc_session(self, session_id: str) -> None: ...
37
53
  async def async_update(self) -> None: ...
38
54
  async def _async_get_video(self) -> str | None: ...
39
55
  async def _async_set_motion_detection_enabled(self, new_state: bool) -> None: ...
@@ -6,7 +6,7 @@ from collections.abc import Awaitable, Callable as Callable
6
6
  from dataclasses import dataclass
7
7
  from homeassistant.components.select import SelectEntity as SelectEntity, SelectEntityDescription as SelectEntityDescription
8
8
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
9
- from homeassistant.const import AREA_SQUARE_METERS as AREA_SQUARE_METERS, EntityCategory as EntityCategory
9
+ from homeassistant.const import EntityCategory as EntityCategory, UnitOfArea as UnitOfArea
10
10
  from homeassistant.core import HomeAssistant as HomeAssistant
11
11
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
12
12
  from pyrituals import Diffuser as Diffuser
@@ -1,7 +1,7 @@
1
1
  from .const import CONF_BASE_URL as CONF_BASE_URL, CONF_ENTRY_CODE as CONF_ENTRY_CODE, CONF_USER_DATA as CONF_USER_DATA, DEFAULT_DRAWABLES as DEFAULT_DRAWABLES, DOMAIN as DOMAIN, DRAWABLES as DRAWABLES
2
2
  from _typeshed import Incomplete
3
3
  from collections.abc import Mapping
4
- from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow, OptionsFlowWithConfigEntry as OptionsFlowWithConfigEntry, SOURCE_REAUTH as SOURCE_REAUTH
4
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow, SOURCE_REAUTH as SOURCE_REAUTH
5
5
  from homeassistant.const import CONF_USERNAME as CONF_USERNAME
6
6
  from homeassistant.core import callback as callback
7
7
  from roborock.containers import UserData as UserData
@@ -22,8 +22,10 @@ class RoborockFlowHandler(ConfigFlow, domain=DOMAIN):
22
22
  async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
23
23
  def _create_entry(self, client: RoborockApiClient, username: str, user_data: UserData) -> ConfigFlowResult: ...
24
24
  @staticmethod
25
- def async_get_options_flow(config_entry: ConfigEntry) -> OptionsFlow: ...
25
+ def async_get_options_flow(config_entry: ConfigEntry) -> RoborockOptionsFlowHandler: ...
26
26
 
27
- class RoborockOptionsFlowHandler(OptionsFlowWithConfigEntry):
27
+ class RoborockOptionsFlowHandler(OptionsFlow):
28
+ options: Incomplete
29
+ def __init__(self, config_entry: ConfigEntry) -> None: ...
28
30
  async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
29
31
  async def async_step_drawables(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -6,7 +6,7 @@ from _typeshed import Incomplete
6
6
  from collections.abc import Callable as Callable
7
7
  from dataclasses import dataclass
8
8
  from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription
9
- from homeassistant.const import AREA_SQUARE_METERS as AREA_SQUARE_METERS, EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE, UnitOfTime as UnitOfTime
9
+ from homeassistant.const import EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE, UnitOfArea as UnitOfArea, UnitOfTime as UnitOfTime
10
10
  from homeassistant.core import HomeAssistant as HomeAssistant
11
11
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
12
12
  from homeassistant.helpers.typing import StateType as StateType
@@ -1,7 +1,7 @@
1
1
  from .const import CONF_PLAY_MEDIA_APP_ID as CONF_PLAY_MEDIA_APP_ID, DEFAULT_PLAY_MEDIA_APP_ID as DEFAULT_PLAY_MEDIA_APP_ID, DOMAIN as DOMAIN
2
2
  from _typeshed import Incomplete
3
3
  from homeassistant.components import ssdp as ssdp, zeroconf as zeroconf
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_HOST as CONF_HOST, CONF_NAME as CONF_NAME
6
6
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
7
7
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
@@ -24,7 +24,7 @@ class RokuConfigFlow(ConfigFlow, domain=DOMAIN):
24
24
  async def async_step_ssdp(self, discovery_info: ssdp.SsdpServiceInfo) -> ConfigFlowResult: ...
25
25
  async def async_step_discovery_confirm(self, user_input: dict | None = None) -> ConfigFlowResult: ...
26
26
  @staticmethod
27
- def async_get_options_flow(config_entry: ConfigEntry) -> OptionsFlowWithConfigEntry: ...
27
+ def async_get_options_flow(config_entry: ConfigEntry) -> RokuOptionsFlowHandler: ...
28
28
 
29
- class RokuOptionsFlowHandler(OptionsFlowWithConfigEntry):
29
+ class RokuOptionsFlowHandler(OptionsFlow):
30
30
  async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -4,7 +4,7 @@ from .entity import RomyEntity as RomyEntity
4
4
  from _typeshed import Incomplete
5
5
  from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
6
6
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
- from homeassistant.const import AREA_SQUARE_METERS as AREA_SQUARE_METERS, EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE, SIGNAL_STRENGTH_DECIBELS_MILLIWATT as SIGNAL_STRENGTH_DECIBELS_MILLIWATT, UnitOfLength as UnitOfLength, UnitOfTime as UnitOfTime
7
+ from homeassistant.const import EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE, SIGNAL_STRENGTH_DECIBELS_MILLIWATT as SIGNAL_STRENGTH_DECIBELS_MILLIWATT, UnitOfArea as UnitOfArea, UnitOfLength as UnitOfLength, UnitOfTime as UnitOfTime
8
8
  from homeassistant.core import HomeAssistant as HomeAssistant
9
9
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
10
10
 
@@ -12,6 +12,7 @@ DATA_SERVER_URL: str
12
12
  DATA_UNSUB: str
13
13
  TIMEOUT: int
14
14
  CONF_STUN_SERVER: str
15
+ _DEPRECATED: str
15
16
 
16
17
  async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
17
18
  async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
@@ -20,6 +20,4 @@ class RTSPToWebRTCConfigFlow(ConfigFlow, domain=DOMAIN):
20
20
  def async_get_options_flow(config_entry: ConfigEntry) -> OptionsFlow: ...
21
21
 
22
22
  class OptionsFlowHandler(OptionsFlow):
23
- config_entry: Incomplete
24
- def __init__(self, config_entry: ConfigEntry) -> None: ...
25
23
  async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -1,8 +1,8 @@
1
1
  from _typeshed import Incomplete
2
2
  from enum import StrEnum
3
- from homeassistant.const import CONCENTRATION_MICROGRAMS_PER_CUBIC_METER as CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, CONCENTRATION_PARTS_PER_BILLION as CONCENTRATION_PARTS_PER_BILLION, CONCENTRATION_PARTS_PER_MILLION as CONCENTRATION_PARTS_PER_MILLION, LIGHT_LUX as LIGHT_LUX, PERCENTAGE as PERCENTAGE, SIGNAL_STRENGTH_DECIBELS as SIGNAL_STRENGTH_DECIBELS, SIGNAL_STRENGTH_DECIBELS_MILLIWATT as SIGNAL_STRENGTH_DECIBELS_MILLIWATT, UnitOfApparentPower as UnitOfApparentPower, UnitOfConductivity as UnitOfConductivity, UnitOfDataRate as UnitOfDataRate, UnitOfElectricCurrent as UnitOfElectricCurrent, UnitOfElectricPotential as UnitOfElectricPotential, UnitOfEnergy as UnitOfEnergy, UnitOfFrequency as UnitOfFrequency, UnitOfInformation as UnitOfInformation, UnitOfIrradiance as UnitOfIrradiance, UnitOfLength as UnitOfLength, UnitOfMass as UnitOfMass, UnitOfPower as UnitOfPower, UnitOfPrecipitationDepth as UnitOfPrecipitationDepth, UnitOfPressure as UnitOfPressure, UnitOfReactivePower as UnitOfReactivePower, UnitOfSoundPressure as UnitOfSoundPressure, UnitOfSpeed as UnitOfSpeed, UnitOfTemperature as UnitOfTemperature, UnitOfTime as UnitOfTime, UnitOfVolume as UnitOfVolume, UnitOfVolumeFlowRate as UnitOfVolumeFlowRate, UnitOfVolumetricFlux as UnitOfVolumetricFlux
3
+ from homeassistant.const import CONCENTRATION_MICROGRAMS_PER_CUBIC_METER as CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, CONCENTRATION_PARTS_PER_BILLION as CONCENTRATION_PARTS_PER_BILLION, CONCENTRATION_PARTS_PER_MILLION as CONCENTRATION_PARTS_PER_MILLION, LIGHT_LUX as LIGHT_LUX, PERCENTAGE as PERCENTAGE, SIGNAL_STRENGTH_DECIBELS as SIGNAL_STRENGTH_DECIBELS, SIGNAL_STRENGTH_DECIBELS_MILLIWATT as SIGNAL_STRENGTH_DECIBELS_MILLIWATT, UnitOfApparentPower as UnitOfApparentPower, UnitOfArea as UnitOfArea, UnitOfBloodGlucoseConcentration as UnitOfBloodGlucoseConcentration, UnitOfConductivity as UnitOfConductivity, UnitOfDataRate as UnitOfDataRate, UnitOfElectricCurrent as UnitOfElectricCurrent, UnitOfElectricPotential as UnitOfElectricPotential, UnitOfEnergy as UnitOfEnergy, UnitOfFrequency as UnitOfFrequency, UnitOfInformation as UnitOfInformation, UnitOfIrradiance as UnitOfIrradiance, UnitOfLength as UnitOfLength, UnitOfMass as UnitOfMass, UnitOfPower as UnitOfPower, UnitOfPrecipitationDepth as UnitOfPrecipitationDepth, UnitOfPressure as UnitOfPressure, UnitOfReactivePower as UnitOfReactivePower, UnitOfSoundPressure as UnitOfSoundPressure, UnitOfSpeed as UnitOfSpeed, UnitOfTemperature as UnitOfTemperature, UnitOfTime as UnitOfTime, UnitOfVolume as UnitOfVolume, UnitOfVolumeFlowRate as UnitOfVolumeFlowRate, UnitOfVolumetricFlux as UnitOfVolumetricFlux
4
4
  from homeassistant.helpers.deprecation import DeprecatedConstantEnum as DeprecatedConstantEnum, all_with_deprecated_constants as all_with_deprecated_constants, check_if_deprecated_constant as check_if_deprecated_constant, dir_with_deprecated_constants as dir_with_deprecated_constants
5
- from homeassistant.util.unit_conversion import BaseUnitConverter as BaseUnitConverter, ConductivityConverter as ConductivityConverter, DataRateConverter as DataRateConverter, DistanceConverter as DistanceConverter, DurationConverter as DurationConverter, ElectricCurrentConverter as ElectricCurrentConverter, ElectricPotentialConverter as ElectricPotentialConverter, EnergyConverter as EnergyConverter, InformationConverter as InformationConverter, MassConverter as MassConverter, PowerConverter as PowerConverter, PressureConverter as PressureConverter, SpeedConverter as SpeedConverter, TemperatureConverter as TemperatureConverter, UnitlessRatioConverter as UnitlessRatioConverter, VolumeConverter as VolumeConverter, VolumeFlowRateConverter as VolumeFlowRateConverter
5
+ from homeassistant.util.unit_conversion import AreaConverter as AreaConverter, BaseUnitConverter as BaseUnitConverter, BloodGlucoseConcentrationConverter as BloodGlucoseConcentrationConverter, ConductivityConverter as ConductivityConverter, DataRateConverter as DataRateConverter, DistanceConverter as DistanceConverter, DurationConverter as DurationConverter, ElectricCurrentConverter as ElectricCurrentConverter, ElectricPotentialConverter as ElectricPotentialConverter, EnergyConverter as EnergyConverter, InformationConverter as InformationConverter, MassConverter as MassConverter, PowerConverter as PowerConverter, PressureConverter as PressureConverter, SpeedConverter as SpeedConverter, TemperatureConverter as TemperatureConverter, UnitlessRatioConverter as UnitlessRatioConverter, VolumeConverter as VolumeConverter, VolumeFlowRateConverter as VolumeFlowRateConverter
6
6
  from typing import Final
7
7
 
8
8
  DOMAIN: Final[str]
@@ -17,8 +17,10 @@ class SensorDeviceClass(StrEnum):
17
17
  TIMESTAMP = 'timestamp'
18
18
  APPARENT_POWER = 'apparent_power'
19
19
  AQI = 'aqi'
20
+ AREA = 'area'
20
21
  ATMOSPHERIC_PRESSURE = 'atmospheric_pressure'
21
22
  BATTERY = 'battery'
23
+ BLOOD_GLUCOSE_CONCENTRATION = 'blood_glucose_concentration'
22
24
  CO = 'carbon_monoxide'
23
25
  CO2 = 'carbon_dioxide'
24
26
  CONDUCTIVITY = 'conductivity'
@@ -12,8 +12,10 @@ from homeassistant.helpers.typing import ConfigType as ConfigType
12
12
  DEVICE_CLASS_NONE: str
13
13
  CONF_IS_APPARENT_POWER: str
14
14
  CONF_IS_AQI: str
15
+ CONF_IS_AREA: str
15
16
  CONF_IS_ATMOSPHERIC_PRESSURE: str
16
17
  CONF_IS_BATTERY_LEVEL: str
18
+ CONF_IS_BLOOD_GLUCOSE_CONCENTRATION: str
17
19
  CONF_IS_CO: str
18
20
  CONF_IS_CO2: str
19
21
  CONF_IS_CONDUCTIVITY: str
@@ -12,8 +12,10 @@ from homeassistant.helpers.typing import ConfigType as ConfigType
12
12
  DEVICE_CLASS_NONE: str
13
13
  CONF_APPARENT_POWER: str
14
14
  CONF_AQI: str
15
+ CONF_AREA: str
15
16
  CONF_ATMOSPHERIC_PRESSURE: str
16
17
  CONF_BATTERY_LEVEL: str
18
+ CONF_BLOOD_GLUCOSE_CONCENTRATION: str
17
19
  CONF_CO: str
18
20
  CONF_CO2: str
19
21
  CONF_CONDUCTIVITY: str
@@ -39,6 +39,4 @@ class ShellyConfigFlow(ConfigFlow, domain=DOMAIN):
39
39
  def async_supports_options_flow(cls, config_entry: ConfigEntry) -> bool: ...
40
40
 
41
41
  class OptionsFlowHandler(OptionsFlow):
42
- config_entry: Incomplete
43
- def __init__(self, config_entry: ConfigEntry) -> None: ...
44
42
  async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -51,6 +51,7 @@ class RpcUpdateEntity(ShellyRpcAttributeEntity, UpdateEntity):
51
51
  _attr_supported_features: Incomplete
52
52
  entity_description: RpcUpdateDescription
53
53
  _ota_in_progress: bool
54
+ _ota_progress_percentage: Incomplete
54
55
  _attr_release_url: Incomplete
55
56
  def __init__(self, coordinator: ShellyRpcCoordinator, key: str, attribute: str, description: RpcUpdateDescription) -> None: ...
56
57
  async def async_added_to_hass(self) -> None: ...
@@ -60,7 +61,9 @@ class RpcUpdateEntity(ShellyRpcAttributeEntity, UpdateEntity):
60
61
  @property
61
62
  def latest_version(self) -> str | None: ...
62
63
  @property
63
- def in_progress(self) -> bool | int: ...
64
+ def in_progress(self) -> bool: ...
65
+ @property
66
+ def update_percentage(self) -> int | None: ...
64
67
  async def async_install(self, version: str | None, backup: bool, **kwargs: Any) -> None: ...
65
68
 
66
69
  class RpcSleepingUpdateEntity(ShellySleepingRpcAttributeEntity, UpdateEntity, RestoreEntity):
@@ -27,6 +27,4 @@ class SimpliSafeFlowHandler(ConfigFlow, domain=DOMAIN):
27
27
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
28
28
 
29
29
  class SimpliSafeOptionsFlowHandler(OptionsFlow):
30
- config_entry: Incomplete
31
- def __init__(self, config_entry: ConfigEntry) -> None: ...
32
30
  async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -12,8 +12,8 @@ STEP_USER_DATA_SCHEMA: Incomplete
12
12
  STEP_AUTH_DATA_SCHEMA: Incomplete
13
13
 
14
14
  class SmlightConfigFlow(ConfigFlow, domain=DOMAIN):
15
+ host: str
15
16
  client: Incomplete
16
- host: Incomplete
17
17
  def __init__(self) -> None: ...
18
18
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
19
19
  async def async_step_auth(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -5,6 +5,7 @@ from collections.abc import Callable as Callable
5
5
  from homeassistant.const import CONF_HOST as CONF_HOST
6
6
  from homeassistant.core import HomeAssistant as HomeAssistant
7
7
  from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryNotReady as ConfigEntryNotReady
8
+ from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
8
9
  from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
9
10
  from homeassistant.util import slugify as slugify
10
11
  from solarlog_cli.solarlog_models import SolarlogData
@@ -22,6 +22,4 @@ class SonarrConfigFlow(ConfigFlow, domain=DOMAIN):
22
22
  def _get_user_data_schema(self) -> dict[vol.Marker, type]: ...
23
23
 
24
24
  class SonarrOptionsFlowHandler(OptionsFlow):
25
- config_entry: Incomplete
26
- def __init__(self, config_entry: ConfigEntry) -> None: ...
27
25
  async def async_step_init(self, user_input: dict[str, int] | None = None) -> ConfigFlowResult: ...
@@ -12,7 +12,6 @@ class SpeedTestFlowHandler(ConfigFlow, domain=DOMAIN):
12
12
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
13
13
 
14
14
  class SpeedTestOptionsFlowHandler(OptionsFlow):
15
- config_entry: Incomplete
16
15
  _servers: Incomplete
17
- def __init__(self, config_entry: SpeedTestConfigEntry) -> None: ...
16
+ def __init__(self) -> None: ...
18
17
  async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -6,6 +6,7 @@ from homeassistant.components.media_player import BrowseError as BrowseError, Br
6
6
  from homeassistant.config_entries import ConfigEntryState as ConfigEntryState
7
7
  from homeassistant.core import HomeAssistant as HomeAssistant
8
8
  from spotifyaio import Artist as Artist, BasePlaylist as BasePlaylist, SimplifiedAlbum as SimplifiedAlbum, SimplifiedTrack as SimplifiedTrack, SpotifyClient as SpotifyClient
9
+ from spotifyaio.models import SimplifiedEpisode
9
10
  from typing import Any, TypedDict
10
11
 
11
12
  BROWSE_LIMIT: int
@@ -22,6 +23,7 @@ def _get_artist_item_payload(artist: Artist) -> ItemPayload: ...
22
23
  def _get_album_item_payload(album: SimplifiedAlbum) -> ItemPayload: ...
23
24
  def _get_playlist_item_payload(playlist: BasePlaylist) -> ItemPayload: ...
24
25
  def _get_track_item_payload(track: SimplifiedTrack, show_thumbnails: bool = True) -> ItemPayload: ...
26
+ def _get_episode_item_payload(episode: SimplifiedEpisode) -> ItemPayload: ...
25
27
 
26
28
  class BrowsableMedia(StrEnum):
27
29
  CURRENT_USER_PLAYLISTS = 'current_user_playlists'
@@ -32,8 +34,6 @@ class BrowsableMedia(StrEnum):
32
34
  CURRENT_USER_RECENTLY_PLAYED = 'current_user_recently_played'
33
35
  CURRENT_USER_TOP_ARTISTS = 'current_user_top_artists'
34
36
  CURRENT_USER_TOP_TRACKS = 'current_user_top_tracks'
35
- CATEGORIES = 'categories'
36
- FEATURED_PLAYLISTS = 'featured_playlists'
37
37
  NEW_RELEASES = 'new_releases'
38
38
 
39
39
  LIBRARY_MAP: Incomplete
@@ -7,7 +7,6 @@ from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
7
  from homeassistant.core import HomeAssistant as HomeAssistant
8
8
  from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
9
9
  from spotifyaio import PlaybackState as PlaybackState, Playlist as Playlist, SpotifyClient as SpotifyClient, UserProfile as UserProfile
10
- from spotifyaio.models import AudioFeatures as AudioFeatures
11
10
 
12
11
  _LOGGER: Incomplete
13
12
  type SpotifyConfigEntry = ConfigEntry[SpotifyData]
@@ -17,9 +16,8 @@ class SpotifyCoordinatorData:
17
16
  current_playback: PlaybackState | None
18
17
  position_updated_at: datetime | None
19
18
  playlist: Playlist | None
20
- audio_features: AudioFeatures | None
21
19
  dj_playlist: bool = ...
22
- def __init__(self, current_playback, position_updated_at, playlist, audio_features, dj_playlist=...) -> None: ...
20
+ def __init__(self, current_playback, position_updated_at, playlist, dj_playlist=...) -> None: ...
23
21
 
24
22
  SPOTIFY_DJ_PLAYLIST_URI: str
25
23
 
@@ -28,7 +26,7 @@ class SpotifyCoordinator(DataUpdateCoordinator[SpotifyCoordinatorData]):
28
26
  config_entry: SpotifyConfigEntry
29
27
  client: Incomplete
30
28
  _playlist: Incomplete
31
- _currently_loaded_track: Incomplete
29
+ _checked_playlist_id: Incomplete
32
30
  def __init__(self, hass: HomeAssistant, client: SpotifyClient) -> None: ...
33
31
  async def _async_setup(self) -> None: ...
34
32
  async def _async_update_data(self) -> SpotifyCoordinatorData: ...
@@ -4,7 +4,7 @@ from .util import resolve_db_url as resolve_db_url
4
4
  from _typeshed import Incomplete
5
5
  from homeassistant.components.recorder import CONF_DB_URL as CONF_DB_URL, get_instance as get_instance
6
6
  from homeassistant.components.sensor import CONF_STATE_CLASS as CONF_STATE_CLASS, SensorDeviceClass as SensorDeviceClass, SensorStateClass as SensorStateClass
7
- from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlowWithConfigEntry as OptionsFlowWithConfigEntry
7
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow
8
8
  from homeassistant.const import CONF_DEVICE_CLASS as CONF_DEVICE_CLASS, CONF_NAME as CONF_NAME, CONF_UNIT_OF_MEASUREMENT as CONF_UNIT_OF_MEASUREMENT, CONF_VALUE_TEMPLATE as CONF_VALUE_TEMPLATE
9
9
  from homeassistant.core import callback as callback
10
10
  from homeassistant.helpers import selector as selector
@@ -25,5 +25,5 @@ class SQLConfigFlow(ConfigFlow, domain=DOMAIN):
25
25
  def async_get_options_flow(config_entry: ConfigEntry) -> SQLOptionsFlowHandler: ...
26
26
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
27
27
 
28
- class SQLOptionsFlowHandler(OptionsFlowWithConfigEntry):
28
+ class SQLOptionsFlowHandler(OptionsFlow):
29
29
  async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -91,7 +91,7 @@ class StatisticsSensor(SensorEntity):
91
91
  _attr_available: bool
92
92
  states: Incomplete
93
93
  ages: Incomplete
94
- attributes: Incomplete
94
+ _attr_extra_state_attributes: Incomplete
95
95
  _state_characteristic_fn: Incomplete
96
96
  _update_listener: Incomplete
97
97
  _preview_callback: Incomplete
@@ -110,8 +110,6 @@ class StatisticsSensor(SensorEntity):
110
110
  def _calculate_unit_of_measurement(self, new_state: State) -> str | None: ...
111
111
  def _calculate_device_class(self, new_state: State, unit: str | None) -> SensorDeviceClass | None: ...
112
112
  def _calculate_state_class(self, new_state: State) -> SensorStateClass | None: ...
113
- @property
114
- def extra_state_attributes(self) -> dict[str, StateType] | None: ...
115
113
  def _purge_old_states(self, max_age: timedelta) -> None: ...
116
114
  def _async_next_to_purge_timestamp(self) -> datetime | None: ...
117
115
  async def async_update(self) -> None: ...
@@ -120,7 +118,7 @@ class StatisticsSensor(SensorEntity):
120
118
  def _async_scheduled_update(self, now: datetime) -> None: ...
121
119
  def _fetch_states_from_database(self) -> list[State]: ...
122
120
  async def _initialize_from_database(self) -> None: ...
123
- def _update_attributes(self) -> None: ...
121
+ def _update_extra_state_attributes(self) -> None: ...
124
122
  _attr_native_value: Incomplete
125
123
  def _update_value(self) -> None: ...
126
124
  def _callable_characteristic_fn(self, characteristic: str) -> Callable[[], float | int | datetime | None]: ...
@@ -0,0 +1,15 @@
1
+ from .const import DOMAIN as DOMAIN, LOGGER as LOGGER
2
+ from .coordinator import StookwijzerConfigEntry as StookwijzerConfigEntry, StookwijzerCoordinator as StookwijzerCoordinator
3
+ from _typeshed import Incomplete
4
+ from homeassistant.const import CONF_LATITUDE as CONF_LATITUDE, CONF_LOCATION as CONF_LOCATION, CONF_LONGITUDE as CONF_LONGITUDE, Platform as Platform
5
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
6
+ from homeassistant.helpers import entity_registry as er
7
+ from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
8
+ from typing import Any
9
+
10
+ PLATFORMS: Incomplete
11
+
12
+ async def async_setup_entry(hass: HomeAssistant, entry: StookwijzerConfigEntry) -> bool: ...
13
+ async def async_unload_entry(hass: HomeAssistant, entry: StookwijzerConfigEntry) -> bool: ...
14
+ async def async_migrate_entry(hass: HomeAssistant, entry: StookwijzerConfigEntry) -> bool: ...
15
+ def async_migrate_entity_entry(entity_entry: er.RegistryEntry) -> dict[str, Any] | None: ...
@@ -0,0 +1,10 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
3
+ from homeassistant.const import CONF_LATITUDE as CONF_LATITUDE, CONF_LOCATION as CONF_LOCATION, CONF_LONGITUDE as CONF_LONGITUDE
4
+ from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
5
+ from homeassistant.helpers.selector import LocationSelector as LocationSelector
6
+ from typing import Any
7
+
8
+ class StookwijzerFlowHandler(ConfigFlow, domain=DOMAIN):
9
+ VERSION: int
10
+ async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -0,0 +1,5 @@
1
+ from _typeshed import Incomplete
2
+ from typing import Final
3
+
4
+ DOMAIN: Final[str]
5
+ LOGGER: Incomplete
@@ -0,0 +1,15 @@
1
+ from .const import DOMAIN as DOMAIN, LOGGER as LOGGER
2
+ from _typeshed import Incomplete
3
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
4
+ from homeassistant.const import CONF_LATITUDE as CONF_LATITUDE, CONF_LONGITUDE as CONF_LONGITUDE
5
+ from homeassistant.core import HomeAssistant as HomeAssistant
6
+ from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
7
+ from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
8
+
9
+ SCAN_INTERVAL: Incomplete
10
+ type StookwijzerConfigEntry = ConfigEntry[StookwijzerCoordinator]
11
+
12
+ class StookwijzerCoordinator(DataUpdateCoordinator[None]):
13
+ client: Incomplete
14
+ def __init__(self, hass: HomeAssistant, entry: StookwijzerConfigEntry) -> None: ...
15
+ async def _async_update_data(self) -> None: ...
@@ -0,0 +1,5 @@
1
+ from .coordinator import StookwijzerConfigEntry as StookwijzerConfigEntry
2
+ from homeassistant.core import HomeAssistant as HomeAssistant
3
+ from typing import Any
4
+
5
+ async def async_get_config_entry_diagnostics(hass: HomeAssistant, entry: StookwijzerConfigEntry) -> dict[str, Any]: ...
@@ -0,0 +1,31 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from .coordinator import StookwijzerConfigEntry as StookwijzerConfigEntry, StookwijzerCoordinator as StookwijzerCoordinator
3
+ from _typeshed import Incomplete
4
+ from collections.abc import Callable as Callable
5
+ from dataclasses import dataclass
6
+ from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
7
+ from homeassistant.const import UnitOfSpeed as UnitOfSpeed
8
+ from homeassistant.core import HomeAssistant as HomeAssistant
9
+ from homeassistant.helpers.device_registry import DeviceEntryType as DeviceEntryType, DeviceInfo as DeviceInfo
10
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
11
+ from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
12
+ from stookwijzer import Stookwijzer as Stookwijzer
13
+
14
+ @dataclass(kw_only=True, frozen=True)
15
+ class StookwijzerSensorDescription(SensorEntityDescription):
16
+ value_fn: Callable[[Stookwijzer], int | float | str | None]
17
+ def __init__(self, *, key, device_class=..., entity_category=..., entity_registry_enabled_default=..., entity_registry_visible_default=..., force_update=..., icon=..., has_entity_name=..., name=..., translation_key=..., translation_placeholders=..., unit_of_measurement=..., last_reset=..., native_unit_of_measurement=..., options=..., state_class=..., suggested_display_precision=..., suggested_unit_of_measurement=..., value_fn) -> None: ...
18
+
19
+ STOOKWIJZER_SENSORS: Incomplete
20
+
21
+ async def async_setup_entry(hass: HomeAssistant, entry: StookwijzerConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
22
+
23
+ class StookwijzerSensor(CoordinatorEntity[StookwijzerCoordinator], SensorEntity):
24
+ entity_description: StookwijzerSensorDescription
25
+ _attr_attribution: str
26
+ _attr_has_entity_name: bool
27
+ _attr_unique_id: Incomplete
28
+ _attr_device_info: Incomplete
29
+ def __init__(self, description: StookwijzerSensorDescription, entry: StookwijzerConfigEntry) -> None: ...
30
+ @property
31
+ def native_value(self) -> int | float | str | None: ...
@@ -1,4 +1,5 @@
1
1
  from _typeshed import Incomplete
2
+ from typing import Final
2
3
 
3
4
  DOMAIN: str
4
5
  ATTR_ENDPOINTS: str
@@ -7,8 +8,8 @@ ATTR_STREAMS: str
7
8
  HLS_PROVIDER: str
8
9
  RECORDER_PROVIDER: str
9
10
  OUTPUT_FORMATS: Incomplete
10
- SEGMENT_CONTAINER_FORMAT: str
11
- RECORDER_CONTAINER_FORMAT: str
11
+ SEGMENT_CONTAINER_FORMAT: Final[str]
12
+ RECORDER_CONTAINER_FORMAT: Final[str]
12
13
  AUDIO_CODECS: Incomplete
13
14
  FORMAT_CONTENT_TYPE: Incomplete
14
15
  OUTPUT_IDLE_TIMEOUT: int
@@ -4,7 +4,7 @@ from . import Stream as Stream
4
4
  from .const import ATTR_STREAMS as ATTR_STREAMS, DOMAIN as DOMAIN, SEGMENT_DURATION_ADJUSTER as SEGMENT_DURATION_ADJUSTER, TARGET_SEGMENT_DURATION_NON_LL_HLS as TARGET_SEGMENT_DURATION_NON_LL_HLS
5
5
  from _typeshed import Incomplete
6
6
  from aiohttp import web
7
- from av import CodecContext, Packet as Packet
7
+ from av import Packet as Packet, VideoCodecContext as VideoCodecContext
8
8
  from collections import deque
9
9
  from collections.abc import Callable as Callable, Coroutine, Iterable
10
10
  from dataclasses import dataclass
@@ -132,7 +132,7 @@ class KeyFrameConverter:
132
132
  _dynamic_stream_settings: Incomplete
133
133
  def __init__(self, hass: HomeAssistant, stream_settings: StreamSettings, dynamic_stream_settings: DynamicStreamSettings) -> None: ...
134
134
  def stash_keyframe_packet(self, packet: Packet) -> None: ...
135
- def create_codec_context(self, codec_context: CodecContext) -> None: ...
135
+ def create_codec_context(self, codec_context: VideoCodecContext) -> None: ...
136
136
  @staticmethod
137
137
  def transform_image(image: np.ndarray, orientation: int) -> np.ndarray: ...
138
138
  def _generate_image(self, width: int | None, height: int | None) -> None: ...
@@ -1,4 +1,6 @@
1
1
  import av
2
+ import av.audio
3
+ import av.container
2
4
  from . import redact_credentials as redact_credentials
3
5
  from .const import AUDIO_CODECS as AUDIO_CODECS, HLS_PROVIDER as HLS_PROVIDER, MAX_MISSING_DTS as MAX_MISSING_DTS, MAX_TIMESTAMP_GAP as MAX_TIMESTAMP_GAP, PACKETS_TO_WAIT_FOR_AUDIO as PACKETS_TO_WAIT_FOR_AUDIO, SEGMENT_CONTAINER_FORMAT as SEGMENT_CONTAINER_FORMAT, SOURCE_TIMEOUT as SOURCE_TIMEOUT
4
6
  from .core import KeyFrameConverter as KeyFrameConverter, Part as Part, STREAM_SETTINGS_NON_LL_HLS as STREAM_SETTINGS_NON_LL_HLS, Segment as Segment, StreamOutput as StreamOutput, StreamSettings as StreamSettings
@@ -17,7 +19,7 @@ NEGATIVE_INF: Incomplete
17
19
 
18
20
  class StreamWorkerError(Exception): ...
19
21
 
20
- def redact_av_error_string(err: av.AVError) -> str: ...
22
+ def redact_av_error_string(err: av.FFmpegError) -> str: ...
21
23
 
22
24
  class StreamEndedError(StreamWorkerError): ...
23
25
 
@@ -40,25 +42,25 @@ class StreamState:
40
42
  def diagnostics(self) -> Diagnostics: ...
41
43
 
42
44
  class StreamMuxer:
45
+ _segment_start_dts: int
46
+ _memory_file: BytesIO
47
+ _av_output: av.container.OutputContainer
48
+ _output_video_stream: av.VideoStream
49
+ _output_audio_stream: av.audio.AudioStream | None
50
+ _segment: Segment | None
51
+ _memory_file_pos: int
52
+ _part_start_dts: float
43
53
  _hass: Incomplete
44
- _segment_start_dts: Incomplete
45
- _memory_file: Incomplete
46
- _av_output: Incomplete
47
54
  _input_video_stream: Incomplete
48
55
  _input_audio_stream: Incomplete
49
56
  _audio_bsf: Incomplete
50
57
  _audio_bsf_context: Incomplete
51
- _output_video_stream: Incomplete
52
- _output_audio_stream: Incomplete
53
- _segment: Incomplete
54
- _memory_file_pos: Incomplete
55
- _part_start_dts: Incomplete
56
58
  _part_has_keyframe: bool
57
59
  _stream_settings: Incomplete
58
60
  _stream_state: Incomplete
59
61
  _start_time: Incomplete
60
- def __init__(self, hass: HomeAssistant, video_stream: av.video.VideoStream, audio_stream: av.audio.stream.AudioStream | None, audio_bsf: av.BitStreamFilter | None, stream_state: StreamState, stream_settings: StreamSettings) -> None: ...
61
- def make_new_av(self, memory_file: BytesIO, sequence: int, input_vstream: av.video.VideoStream, input_astream: av.audio.stream.AudioStream | None) -> tuple[av.container.OutputContainer, av.video.VideoStream, av.audio.stream.AudioStream | None]: ...
62
+ def __init__(self, hass: HomeAssistant, video_stream: av.VideoStream, audio_stream: av.audio.AudioStream | None, audio_bsf: str | None, stream_state: StreamState, stream_settings: StreamSettings) -> None: ...
63
+ def make_new_av(self, memory_file: BytesIO, sequence: int, input_vstream: av.VideoStream, input_astream: av.audio.AudioStream | None) -> tuple[av.container.OutputContainer, av.VideoStream, av.audio.AudioStream | None]: ...
62
64
  def reset(self, video_dts: int) -> None: ...
63
65
  def mux_packet(self, packet: av.Packet) -> None: ...
64
66
  def create_segment(self) -> None: ...
@@ -66,7 +68,7 @@ class StreamMuxer:
66
68
  def flush(self, packet: av.Packet, last_part: bool) -> None: ...
67
69
  def close(self) -> None: ...
68
70
 
69
- class PeekIterator(Iterator):
71
+ class PeekIterator(Iterator[av.Packet]):
70
72
  _iterator: Incomplete
71
73
  _buffer: Incomplete
72
74
  _next: Incomplete
@@ -84,5 +86,5 @@ class TimestampValidator:
84
86
  def is_valid(self, packet: av.Packet) -> bool: ...
85
87
 
86
88
  def is_keyframe(packet: av.Packet) -> Any: ...
87
- def get_audio_bitstream_filter(packets: Iterator[av.Packet], audio_stream: Any) -> av.BitStreamFilterContext | None: ...
89
+ def get_audio_bitstream_filter(packets: Iterator[av.Packet], audio_stream: Any) -> str | None: ...
88
90
  def stream_worker(source: str, pyav_options: dict[str, str], stream_settings: StreamSettings, stream_state: StreamState, keyframe_converter: KeyFrameConverter, quit_event: Event) -> None: ...
@@ -1,8 +1,8 @@
1
- from .const import CONF_COUNTER_ID as CONF_COUNTER_ID, DOMAIN as DOMAIN
1
+ from .const import DOMAIN as DOMAIN
2
+ from .coordinator import SuezWaterCoordinator as SuezWaterCoordinator
2
3
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
3
- from homeassistant.const import CONF_PASSWORD as CONF_PASSWORD, CONF_USERNAME as CONF_USERNAME, Platform as Platform
4
+ from homeassistant.const import Platform as Platform
4
5
  from homeassistant.core import HomeAssistant as HomeAssistant
5
- from homeassistant.exceptions import ConfigEntryError as ConfigEntryError, ConfigEntryNotReady as ConfigEntryNotReady
6
6
 
7
7
  PLATFORMS: list[Platform]
8
8