homeassistant-stubs 2024.11.3__py3-none-any.whl → 2024.12.0b0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (371) 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/assist_pipeline/audio_enhancer.pyi +2 -3
  13. homeassistant-stubs/components/assist_pipeline/pipeline.pyi +4 -2
  14. homeassistant-stubs/components/assist_pipeline/vad.pyi +7 -4
  15. homeassistant-stubs/components/axis/config_flow.pyi +2 -2
  16. homeassistant-stubs/components/backup/http.pyi +7 -3
  17. homeassistant-stubs/components/backup/manager.pyi +8 -0
  18. homeassistant-stubs/components/backup/websocket.pyi +1 -0
  19. homeassistant-stubs/components/bang_olufsen/const.pyi +1 -6
  20. homeassistant-stubs/components/bang_olufsen/diagnostics.pyi +6 -0
  21. homeassistant-stubs/components/bang_olufsen/media_player.pyi +11 -5
  22. homeassistant-stubs/components/bang_olufsen/websocket.pyi +2 -2
  23. homeassistant-stubs/components/bmw_connected_drive/config_flow.pyi +2 -2
  24. homeassistant-stubs/components/brother/sensor.pyi +0 -1
  25. homeassistant-stubs/components/cambridge_audio/__init__.pyi +1 -0
  26. homeassistant-stubs/components/cambridge_audio/config_flow.pyi +1 -0
  27. homeassistant-stubs/components/cambridge_audio/media_player.pyi +1 -0
  28. homeassistant-stubs/components/cambridge_audio/select.pyi +3 -1
  29. homeassistant-stubs/components/cambridge_audio/switch.pyi +3 -1
  30. homeassistant-stubs/components/camera/__init__.pyi +5 -3
  31. homeassistant-stubs/components/camera/webrtc.pyi +10 -6
  32. homeassistant-stubs/components/canary/config_flow.pyi +0 -2
  33. homeassistant-stubs/components/climate/__init__.pyi +10 -3
  34. homeassistant-stubs/components/climate/const.pyi +6 -0
  35. homeassistant-stubs/components/climate/reproduce_state.pyi +1 -1
  36. homeassistant-stubs/components/climate/significant_change.pyi +1 -1
  37. homeassistant-stubs/components/cloud/prefs.pyi +1 -1
  38. homeassistant-stubs/components/crownstone/config_flow.pyi +1 -2
  39. homeassistant-stubs/components/deconz/config_flow.pyi +1 -5
  40. homeassistant-stubs/components/demo/climate.pyi +8 -1
  41. homeassistant-stubs/components/demo/config_flow.pyi +0 -1
  42. homeassistant-stubs/components/discovergy/config_flow.pyi +2 -5
  43. homeassistant-stubs/components/dlna_dmr/config_flow.pyi +0 -2
  44. homeassistant-stubs/components/dnsip/config_flow.pyi +2 -2
  45. homeassistant-stubs/components/doorbird/config_flow.pyi +0 -2
  46. homeassistant-stubs/components/dsmr/config_flow.pyi +0 -2
  47. homeassistant-stubs/components/ecovacs/sensor.pyi +1 -1
  48. homeassistant-stubs/components/elevenlabs/config_flow.pyi +2 -2
  49. homeassistant-stubs/components/enphase_envoy/config_flow.pyi +2 -2
  50. homeassistant-stubs/components/eq3btsmart/__init__.pyi +7 -6
  51. homeassistant-stubs/components/eq3btsmart/binary_sensor.pyi +26 -0
  52. homeassistant-stubs/components/eq3btsmart/climate.pyi +4 -15
  53. homeassistant-stubs/components/eq3btsmart/const.pyi +14 -0
  54. homeassistant-stubs/components/eq3btsmart/entity.pyi +17 -3
  55. homeassistant-stubs/components/eq3btsmart/models.pyi +1 -3
  56. homeassistant-stubs/components/eq3btsmart/number.pyi +33 -0
  57. homeassistant-stubs/components/eq3btsmart/sensor.pyi +28 -0
  58. homeassistant-stubs/components/eq3btsmart/switch.pyi +30 -0
  59. homeassistant-stubs/components/esphome/assist_satellite.pyi +1 -0
  60. homeassistant-stubs/components/esphome/config_flow.pyi +0 -2
  61. homeassistant-stubs/components/esphome/entry_data.pyi +8 -1
  62. homeassistant-stubs/components/esphome/ffmpeg_proxy.pyi +1 -0
  63. homeassistant-stubs/components/esphome/media_player.pyi +2 -1
  64. homeassistant-stubs/components/esphome/select.pyi +17 -1
  65. homeassistant-stubs/components/fan/__init__.pyi +1 -1
  66. homeassistant-stubs/components/feedreader/config_flow.pyi +2 -2
  67. homeassistant-stubs/components/filesize/config_flow.pyi +2 -5
  68. homeassistant-stubs/components/fitbit/config_flow.pyi +0 -1
  69. homeassistant-stubs/components/fitbit/sensor.pyi +12 -15
  70. homeassistant-stubs/components/flux_led/config_flow.pyi +1 -3
  71. homeassistant-stubs/components/forecast_solar/config_flow.pyi +0 -2
  72. homeassistant-stubs/components/fritz/config_flow.pyi +4 -4
  73. homeassistant-stubs/components/fritzbox/config_flow.pyi +1 -1
  74. homeassistant-stubs/components/fritzbox_callmonitor/config_flow.pyi +0 -2
  75. homeassistant-stubs/components/fully_kiosk/__init__.pyi +3 -2
  76. homeassistant-stubs/components/fully_kiosk/binary_sensor.pyi +2 -3
  77. homeassistant-stubs/components/fully_kiosk/button.pyi +2 -3
  78. homeassistant-stubs/components/fully_kiosk/camera.pyi +2 -3
  79. homeassistant-stubs/components/fully_kiosk/diagnostics.pyi +2 -3
  80. homeassistant-stubs/components/fully_kiosk/image.pyi +2 -3
  81. homeassistant-stubs/components/fully_kiosk/media_player.pyi +3 -3
  82. homeassistant-stubs/components/fully_kiosk/notify.pyi +2 -3
  83. homeassistant-stubs/components/fully_kiosk/number.pyi +2 -3
  84. homeassistant-stubs/components/fully_kiosk/sensor.pyi +2 -3
  85. homeassistant-stubs/components/fully_kiosk/switch.pyi +2 -3
  86. homeassistant-stubs/components/fyta/__init__.pyi +1 -0
  87. homeassistant-stubs/components/glances/__init__.pyi +0 -2
  88. homeassistant-stubs/components/go2rtc/__init__.pyi +2 -2
  89. homeassistant-stubs/components/google/config_flow.pyi +0 -2
  90. homeassistant-stubs/components/google_assistant_sdk/config_flow.pyi +0 -2
  91. homeassistant-stubs/components/google_cloud/config_flow.pyi +2 -2
  92. homeassistant-stubs/components/google_cloud/helpers.pyi +1 -1
  93. homeassistant-stubs/components/here_travel_time/config_flow.pyi +1 -2
  94. homeassistant-stubs/components/homeassistant_hardware/firmware_config_flow.pyi +4 -3
  95. homeassistant-stubs/components/homeassistant_hardware/silabs_multiprotocol_addon.pyi +0 -1
  96. homeassistant-stubs/components/homekit/config_flow.pyi +1 -2
  97. homeassistant-stubs/components/homewizard/button.pyi +2 -0
  98. homeassistant-stubs/components/homewizard/config_flow.pyi +5 -1
  99. homeassistant-stubs/components/homewizard/const.pyi +1 -1
  100. homeassistant-stubs/components/homewizard/coordinator.pyi +3 -3
  101. homeassistant-stubs/components/homewizard/number.pyi +2 -0
  102. homeassistant-stubs/components/homewizard/sensor.pyi +1 -1
  103. homeassistant-stubs/components/homewizard/switch.pyi +4 -2
  104. homeassistant-stubs/components/huawei_lte/config_flow.pyi +0 -2
  105. homeassistant-stubs/components/husqvarna_automower/api.pyi +6 -0
  106. homeassistant-stubs/components/husqvarna_automower/binary_sensor.pyi +7 -0
  107. homeassistant-stubs/components/husqvarna_automower/button.pyi +1 -0
  108. homeassistant-stubs/components/husqvarna_automower/config_flow.pyi +2 -1
  109. homeassistant-stubs/components/husqvarna_automower/lawn_mower.pyi +2 -1
  110. homeassistant-stubs/components/husqvarna_automower/number.pyi +1 -0
  111. homeassistant-stubs/components/husqvarna_automower/select.pyi +1 -0
  112. homeassistant-stubs/components/husqvarna_automower/switch.pyi +1 -0
  113. homeassistant-stubs/components/hydrawise/sensor.pyi +2 -9
  114. homeassistant-stubs/components/hyperion/config_flow.pyi +0 -2
  115. homeassistant-stubs/components/ibeacon/config_flow.pyi +0 -3
  116. homeassistant-stubs/components/imap/config_flow.pyi +3 -3
  117. homeassistant-stubs/components/imap/sensor.pyi +1 -1
  118. homeassistant-stubs/components/intent/timers.pyi +6 -0
  119. homeassistant-stubs/components/islamic_prayer_times/config_flow.pyi +0 -3
  120. homeassistant-stubs/components/isy994/config_flow.pyi +0 -2
  121. homeassistant-stubs/components/jellyfin/config_flow.pyi +3 -3
  122. homeassistant-stubs/components/jewish_calendar/__init__.pyi +6 -17
  123. homeassistant-stubs/components/jewish_calendar/binary_sensor.pyi +2 -4
  124. homeassistant-stubs/components/jewish_calendar/config_flow.pyi +3 -4
  125. homeassistant-stubs/components/jewish_calendar/entity.pyi +15 -4
  126. homeassistant-stubs/components/jewish_calendar/sensor.pyi +3 -5
  127. homeassistant-stubs/components/knx/config_flow.pyi +0 -1
  128. homeassistant-stubs/components/knx/light.pyi +3 -3
  129. homeassistant-stubs/components/knx/telegrams.pyi +1 -0
  130. homeassistant-stubs/components/knx/websocket.pyi +1 -0
  131. homeassistant-stubs/components/kraken/config_flow.pyi +0 -3
  132. homeassistant-stubs/components/lamarzocco/binary_sensor.pyi +1 -1
  133. homeassistant-stubs/components/lamarzocco/button.pyi +7 -3
  134. homeassistant-stubs/components/lamarzocco/calendar.pyi +1 -1
  135. homeassistant-stubs/components/lamarzocco/config_flow.pyi +7 -5
  136. homeassistant-stubs/components/lamarzocco/coordinator.pyi +3 -3
  137. homeassistant-stubs/components/lamarzocco/diagnostics.pyi +1 -1
  138. homeassistant-stubs/components/lamarzocco/entity.pyi +3 -2
  139. homeassistant-stubs/components/lamarzocco/number.pyi +5 -3
  140. homeassistant-stubs/components/lamarzocco/select.pyi +3 -2
  141. homeassistant-stubs/components/lamarzocco/sensor.pyi +1 -1
  142. homeassistant-stubs/components/lamarzocco/switch.pyi +4 -2
  143. homeassistant-stubs/components/lamarzocco/update.pyi +3 -1
  144. homeassistant-stubs/components/lcn/__init__.pyi +4 -4
  145. homeassistant-stubs/components/lcn/config_flow.pyi +0 -4
  146. homeassistant-stubs/components/lcn/helpers.pyi +2 -4
  147. homeassistant-stubs/components/lcn/schemas.pyi +2 -13
  148. homeassistant-stubs/components/lcn/services.pyi +2 -0
  149. homeassistant-stubs/components/lektrico/binary_sensor.pyi +27 -0
  150. homeassistant-stubs/components/linkplay/button.pyi +28 -0
  151. homeassistant-stubs/components/linkplay/diagnostics.pyi +5 -0
  152. homeassistant-stubs/components/linkplay/entity.pyi +16 -0
  153. homeassistant-stubs/components/linkplay/media_player.pyi +3 -8
  154. homeassistant-stubs/components/linkplay/utils.pyi +12 -0
  155. homeassistant-stubs/components/litejet/config_flow.pyi +0 -3
  156. homeassistant-stubs/components/media_extractor/__init__.pyi +1 -2
  157. homeassistant-stubs/components/media_extractor/config_flow.pyi +0 -1
  158. homeassistant-stubs/components/mikrotik/config_flow.pyi +0 -3
  159. homeassistant-stubs/components/mjpeg/config_flow.pyi +0 -3
  160. homeassistant-stubs/components/mold_indicator/sensor.pyi +3 -5
  161. homeassistant-stubs/components/monzo/coordinator.pyi +1 -1
  162. homeassistant-stubs/components/mopeka/config_flow.pyi +0 -2
  163. homeassistant-stubs/components/mqtt/__init__.pyi +1 -0
  164. homeassistant-stubs/components/mqtt/alarm_control_panel.pyi +1 -0
  165. homeassistant-stubs/components/mqtt/binary_sensor.pyi +1 -0
  166. homeassistant-stubs/components/mqtt/button.pyi +1 -0
  167. homeassistant-stubs/components/mqtt/camera.pyi +1 -0
  168. homeassistant-stubs/components/mqtt/climate.pyi +1 -0
  169. homeassistant-stubs/components/mqtt/config_flow.pyi +1 -3
  170. homeassistant-stubs/components/mqtt/cover.pyi +1 -0
  171. homeassistant-stubs/components/mqtt/device_tracker.pyi +1 -0
  172. homeassistant-stubs/components/mqtt/entity.pyi +1 -0
  173. homeassistant-stubs/components/mqtt/event.pyi +1 -0
  174. homeassistant-stubs/components/mqtt/fan.pyi +1 -0
  175. homeassistant-stubs/components/mqtt/humidifier.pyi +1 -0
  176. homeassistant-stubs/components/mqtt/image.pyi +1 -0
  177. homeassistant-stubs/components/mqtt/lawn_mower.pyi +1 -0
  178. homeassistant-stubs/components/mqtt/light/__init__.pyi +2 -0
  179. homeassistant-stubs/components/mqtt/lock.pyi +1 -0
  180. homeassistant-stubs/components/mqtt/notify.pyi +1 -0
  181. homeassistant-stubs/components/mqtt/number.pyi +1 -0
  182. homeassistant-stubs/components/mqtt/scene.pyi +1 -0
  183. homeassistant-stubs/components/mqtt/select.pyi +1 -0
  184. homeassistant-stubs/components/mqtt/sensor.pyi +1 -0
  185. homeassistant-stubs/components/mqtt/siren.pyi +1 -0
  186. homeassistant-stubs/components/mqtt/subscription.pyi +1 -1
  187. homeassistant-stubs/components/mqtt/switch.pyi +1 -0
  188. homeassistant-stubs/components/mqtt/text.pyi +1 -0
  189. homeassistant-stubs/components/mqtt/update.pyi +1 -0
  190. homeassistant-stubs/components/mqtt/vacuum.pyi +1 -0
  191. homeassistant-stubs/components/mqtt/valve.pyi +1 -0
  192. homeassistant-stubs/components/mqtt/water_heater.pyi +1 -0
  193. homeassistant-stubs/components/music_assistant/__init__.pyi +27 -0
  194. homeassistant-stubs/components/music_assistant/config_flow.pyi +24 -0
  195. homeassistant-stubs/components/music_assistant/const.pyi +12 -0
  196. homeassistant-stubs/components/music_assistant/entity.pyi +24 -0
  197. homeassistant-stubs/components/music_assistant/media_browser.pyi +33 -0
  198. homeassistant-stubs/components/music_assistant/media_player.pyi +96 -0
  199. homeassistant-stubs/components/nasweb/__init__.pyi +19 -0
  200. homeassistant-stubs/components/nasweb/config_flow.pyi +27 -0
  201. homeassistant-stubs/components/nasweb/const.pyi +5 -0
  202. homeassistant-stubs/components/nasweb/coordinator.pyi +42 -0
  203. homeassistant-stubs/components/nasweb/nasweb_data.pyi +20 -0
  204. homeassistant-stubs/components/nasweb/switch.pyi +35 -0
  205. homeassistant-stubs/components/nest/camera.pyi +3 -5
  206. homeassistant-stubs/components/netatmo/config_flow.pyi +0 -1
  207. homeassistant-stubs/components/nightscout/sensor.pyi +4 -3
  208. homeassistant-stubs/components/nordpool/__init__.pyi +9 -0
  209. homeassistant-stubs/components/nordpool/config_flow.pyi +19 -0
  210. homeassistant-stubs/components/nordpool/const.pyi +9 -0
  211. homeassistant-stubs/components/nordpool/coordinator.pyi +20 -0
  212. homeassistant-stubs/components/nordpool/diagnostics.pyi +5 -0
  213. homeassistant-stubs/components/nordpool/entity.pyi +14 -0
  214. homeassistant-stubs/components/nordpool/sensor.pyi +69 -0
  215. homeassistant-stubs/components/number/const.pyi +3 -1
  216. homeassistant-stubs/components/nut/__init__.pyi +4 -1
  217. homeassistant-stubs/components/nut/config_flow.pyi +0 -2
  218. homeassistant-stubs/components/nut/sensor.pyi +1 -1
  219. homeassistant-stubs/components/onewire/config_flow.pyi +4 -2
  220. homeassistant-stubs/components/onkyo/config_flow.pyi +3 -2
  221. homeassistant-stubs/components/openai_conversation/config_flow.pyi +0 -1
  222. homeassistant-stubs/components/opensky/config_flow.pyi +3 -3
  223. homeassistant-stubs/components/p1_monitor/__init__.pyi +3 -3
  224. homeassistant-stubs/components/p1_monitor/diagnostics.pyi +1 -2
  225. homeassistant-stubs/components/p1_monitor/sensor.pyi +1 -1
  226. homeassistant-stubs/components/ping/__init__.pyi +2 -6
  227. homeassistant-stubs/components/ping/config_flow.pyi +0 -2
  228. homeassistant-stubs/components/plugwise/climate.pyi +1 -0
  229. homeassistant-stubs/components/plugwise/entity.pyi +2 -2
  230. homeassistant-stubs/components/plugwise/number.pyi +2 -2
  231. homeassistant-stubs/components/plugwise/select.pyi +2 -1
  232. homeassistant-stubs/components/proximity/config_flow.pyi +0 -3
  233. homeassistant-stubs/components/pure_energie/__init__.pyi +4 -5
  234. homeassistant-stubs/components/pure_energie/diagnostics.pyi +2 -4
  235. homeassistant-stubs/components/pure_energie/sensor.pyi +3 -3
  236. homeassistant-stubs/components/purpleair/config_flow.pyi +1 -2
  237. homeassistant-stubs/components/rainmachine/config_flow.pyi +0 -3
  238. homeassistant-stubs/components/recollect_waste/config_flow.pyi +1 -3
  239. homeassistant-stubs/components/recorder/pool.pyi +1 -1
  240. homeassistant-stubs/components/recorder/statistics.pyi +1 -1
  241. homeassistant-stubs/components/recorder/websocket_api.pyi +1 -1
  242. homeassistant-stubs/components/renault/config_flow.pyi +4 -5
  243. homeassistant-stubs/components/renault/services.pyi +1 -0
  244. homeassistant-stubs/components/reolink/__init__.pyi +28 -0
  245. homeassistant-stubs/components/reolink/binary_sensor.pyi +34 -0
  246. homeassistant-stubs/components/reolink/button.pyi +48 -0
  247. homeassistant-stubs/components/reolink/camera.pyi +28 -0
  248. homeassistant-stubs/components/reolink/config_flow.pyi +35 -0
  249. homeassistant-stubs/components/reolink/const.pyi +2 -0
  250. homeassistant-stubs/components/reolink/diagnostics.pyi +5 -0
  251. homeassistant-stubs/components/reolink/entity.pyi +69 -0
  252. homeassistant-stubs/components/reolink/exceptions.pyi +7 -0
  253. homeassistant-stubs/components/reolink/host.pyi +82 -0
  254. homeassistant-stubs/components/reolink/light.pyi +55 -0
  255. homeassistant-stubs/components/reolink/media_source.pyi +27 -0
  256. homeassistant-stubs/components/reolink/number.pyi +69 -0
  257. homeassistant-stubs/components/reolink/select.pyi +54 -0
  258. homeassistant-stubs/components/reolink/sensor.pyi +55 -0
  259. homeassistant-stubs/components/reolink/services.pyi +12 -0
  260. homeassistant-stubs/components/reolink/siren.pyi +26 -0
  261. homeassistant-stubs/components/reolink/switch.pyi +65 -0
  262. homeassistant-stubs/components/reolink/update.pyi +71 -0
  263. homeassistant-stubs/components/reolink/util.pyi +18 -0
  264. homeassistant-stubs/components/rfxtrx/config_flow.pyi +2 -3
  265. homeassistant-stubs/components/ring/__init__.pyi +0 -1
  266. homeassistant-stubs/components/ring/camera.pyi +22 -6
  267. homeassistant-stubs/components/rituals_perfume_genie/select.pyi +1 -1
  268. homeassistant-stubs/components/roborock/config_flow.pyi +5 -3
  269. homeassistant-stubs/components/roborock/sensor.pyi +1 -1
  270. homeassistant-stubs/components/roku/config_flow.pyi +3 -3
  271. homeassistant-stubs/components/romy/sensor.pyi +1 -1
  272. homeassistant-stubs/components/rtsp_to_webrtc/__init__.pyi +1 -0
  273. homeassistant-stubs/components/rtsp_to_webrtc/config_flow.pyi +0 -2
  274. homeassistant-stubs/components/sensor/__init__.pyi +1 -0
  275. homeassistant-stubs/components/sensor/const.pyi +4 -2
  276. homeassistant-stubs/components/sensor/device_condition.pyi +2 -0
  277. homeassistant-stubs/components/sensor/device_trigger.pyi +2 -0
  278. homeassistant-stubs/components/shelly/config_flow.pyi +0 -2
  279. homeassistant-stubs/components/shelly/update.pyi +4 -1
  280. homeassistant-stubs/components/simplisafe/config_flow.pyi +0 -2
  281. homeassistant-stubs/components/smlight/config_flow.pyi +1 -1
  282. homeassistant-stubs/components/solarlog/coordinator.pyi +1 -0
  283. homeassistant-stubs/components/sonarr/config_flow.pyi +0 -2
  284. homeassistant-stubs/components/speedtestdotnet/config_flow.pyi +1 -2
  285. homeassistant-stubs/components/sql/config_flow.pyi +2 -2
  286. homeassistant-stubs/components/statistics/sensor.pyi +2 -4
  287. homeassistant-stubs/components/stookwijzer/__init__.pyi +15 -0
  288. homeassistant-stubs/components/stookwijzer/config_flow.pyi +10 -0
  289. homeassistant-stubs/components/stookwijzer/const.pyi +5 -0
  290. homeassistant-stubs/components/stookwijzer/coordinator.pyi +15 -0
  291. homeassistant-stubs/components/stookwijzer/diagnostics.pyi +5 -0
  292. homeassistant-stubs/components/stookwijzer/sensor.pyi +31 -0
  293. homeassistant-stubs/components/stream/const.pyi +3 -2
  294. homeassistant-stubs/components/stream/core.pyi +2 -2
  295. homeassistant-stubs/components/stream/worker.pyi +15 -13
  296. homeassistant-stubs/components/suez_water/__init__.pyi +3 -3
  297. homeassistant-stubs/components/suez_water/config_flow.pyi +2 -1
  298. homeassistant-stubs/components/suez_water/const.pyi +3 -0
  299. homeassistant-stubs/components/suez_water/coordinator.pyi +35 -0
  300. homeassistant-stubs/components/suez_water/sensor.pyi +23 -17
  301. homeassistant-stubs/components/switchbot_cloud/sensor.pyi +3 -1
  302. homeassistant-stubs/components/switcher_kis/button.pyi +1 -1
  303. homeassistant-stubs/components/switcher_kis/cover.pyi +1 -1
  304. homeassistant-stubs/components/switcher_kis/light.pyi +1 -1
  305. homeassistant-stubs/components/switcher_kis/sensor.pyi +2 -0
  306. homeassistant-stubs/components/synology_dsm/config_flow.pyi +0 -2
  307. homeassistant-stubs/components/tedee/binary_sensor.pyi +1 -1
  308. homeassistant-stubs/components/tedee/coordinator.pyi +2 -2
  309. homeassistant-stubs/components/tedee/entity.pyi +1 -1
  310. homeassistant-stubs/components/tedee/lock.pyi +3 -1
  311. homeassistant-stubs/components/tedee/sensor.pyi +1 -1
  312. homeassistant-stubs/components/thethingsnetwork/__init__.pyi +1 -4
  313. homeassistant-stubs/components/threshold/binary_sensor.pyi +4 -0
  314. homeassistant-stubs/components/tibber/__init__.pyi +1 -2
  315. homeassistant-stubs/components/tibber/notify.pyi +1 -10
  316. homeassistant-stubs/components/tod/binary_sensor.pyi +3 -3
  317. homeassistant-stubs/components/tolo/config_flow.pyi +1 -1
  318. homeassistant-stubs/components/tplink/__init__.pyi +1 -1
  319. homeassistant-stubs/components/tplink/config_flow.pyi +6 -3
  320. homeassistant-stubs/components/tplink_omada/__init__.pyi +2 -2
  321. homeassistant-stubs/components/trafikverket_camera/config_flow.pyi +1 -1
  322. homeassistant-stubs/components/trafikverket_camera/coordinator.pyi +2 -3
  323. homeassistant-stubs/components/trafikverket_train/__init__.pyi +3 -0
  324. homeassistant-stubs/components/trafikverket_train/config_flow.pyi +4 -3
  325. homeassistant-stubs/components/trafikverket_train/util.pyi +1 -2
  326. homeassistant-stubs/components/transmission/config_flow.pyi +0 -2
  327. homeassistant-stubs/components/tts/__init__.pyi +3 -1
  328. homeassistant-stubs/components/unifi/config_flow.pyi +2 -3
  329. homeassistant-stubs/components/unifiprotect/__init__.pyi +1 -1
  330. homeassistant-stubs/components/unifiprotect/config_flow.pyi +0 -2
  331. homeassistant-stubs/components/unifiprotect/const.pyi +5 -0
  332. homeassistant-stubs/components/unifiprotect/event.pyi +17 -4
  333. homeassistant-stubs/components/unifiprotect/views.pyi +7 -1
  334. homeassistant-stubs/components/upcloud/config_flow.pyi +0 -2
  335. homeassistant-stubs/components/watttime/config_flow.pyi +1 -3
  336. homeassistant-stubs/components/webostv/config_flow.pyi +0 -2
  337. homeassistant-stubs/components/websocket_api/http.pyi +2 -1
  338. homeassistant-stubs/components/wemo/config_flow.pyi +0 -3
  339. homeassistant-stubs/components/wled/config_flow.pyi +2 -2
  340. homeassistant-stubs/components/workday/config_flow.pyi +2 -2
  341. homeassistant-stubs/components/yale_smart_alarm/config_flow.pyi +5 -3
  342. homeassistant-stubs/components/yalexs_ble/config_flow.pyi +0 -2
  343. homeassistant-stubs/components/youtube/config_flow.pyi +2 -2
  344. homeassistant-stubs/components/zeroconf/usage.pyi +1 -1
  345. homeassistant-stubs/components/zwave_js/__init__.pyi +1 -1
  346. homeassistant-stubs/components/zwave_js/api.pyi +9 -1
  347. homeassistant-stubs/components/zwave_js/config_flow.pyi +1 -2
  348. homeassistant-stubs/components/zwave_js/const.pyi +1 -0
  349. homeassistant-stubs/config_entries.pyi +15 -7
  350. homeassistant-stubs/const.pyi +26 -1
  351. homeassistant-stubs/core_config.pyi +1 -1
  352. homeassistant-stubs/data_entry_flow.pyi +3 -3
  353. homeassistant-stubs/helpers/device_registry.pyi +0 -1
  354. homeassistant-stubs/helpers/entity_platform.pyi +1 -0
  355. homeassistant-stubs/helpers/frame.pyi +12 -3
  356. homeassistant-stubs/helpers/intent.pyi +1 -0
  357. homeassistant-stubs/helpers/llm.pyi +2 -3
  358. homeassistant-stubs/helpers/restore_state.pyi +0 -3
  359. homeassistant-stubs/helpers/schema_config_entry_flow.pyi +5 -2
  360. homeassistant-stubs/helpers/trigger_template_entity.pyi +1 -1
  361. homeassistant-stubs/helpers/update_coordinator.pyi +3 -3
  362. homeassistant-stubs/loader.pyi +1 -0
  363. homeassistant-stubs/runner.pyi +0 -4
  364. homeassistant-stubs/util/json.pyi +3 -3
  365. homeassistant-stubs/util/unit_conversion.pyi +20 -1
  366. homeassistant-stubs/util/unit_system.pyi +7 -4
  367. homeassistant-stubs/util/yaml/loader.pyi +0 -19
  368. {homeassistant_stubs-2024.11.3.dist-info → homeassistant_stubs-2024.12.0b0.dist-info}/METADATA +2 -2
  369. {homeassistant_stubs-2024.11.3.dist-info → homeassistant_stubs-2024.12.0b0.dist-info}/RECORD +371 -315
  370. {homeassistant_stubs-2024.11.3.dist-info → homeassistant_stubs-2024.12.0b0.dist-info}/WHEEL +0 -0
  371. {homeassistant_stubs-2024.11.3.dist-info → homeassistant_stubs-2024.12.0b0.dist-info}/licenses/LICENSE +0 -0
@@ -1,10 +1,10 @@
1
+ from . import PureEnergieConfigEntry as PureEnergieConfigEntry
1
2
  from .const import DOMAIN as DOMAIN
2
3
  from .coordinator import PureEnergieData as PureEnergieData, PureEnergieDataUpdateCoordinator as PureEnergieDataUpdateCoordinator
3
4
  from _typeshed import Incomplete
4
5
  from collections.abc import Callable as Callable
5
6
  from dataclasses import dataclass
6
7
  from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
7
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
8
  from homeassistant.const import CONF_HOST as CONF_HOST, UnitOfEnergy as UnitOfEnergy, UnitOfPower as UnitOfPower
9
9
  from homeassistant.core import HomeAssistant as HomeAssistant
10
10
  from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
@@ -18,7 +18,7 @@ class PureEnergieSensorEntityDescription(SensorEntityDescription):
18
18
 
19
19
  SENSORS: tuple[PureEnergieSensorEntityDescription, ...]
20
20
 
21
- async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
21
+ async def async_setup_entry(hass: HomeAssistant, entry: PureEnergieConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
22
22
 
23
23
  class PureEnergieSensorEntity(CoordinatorEntity[PureEnergieDataUpdateCoordinator], SensorEntity):
24
24
  _attr_has_entity_name: bool
@@ -26,6 +26,6 @@ class PureEnergieSensorEntity(CoordinatorEntity[PureEnergieDataUpdateCoordinator
26
26
  entity_id: Incomplete
27
27
  _attr_unique_id: Incomplete
28
28
  _attr_device_info: Incomplete
29
- def __init__(self, *, coordinator: PureEnergieDataUpdateCoordinator, description: PureEnergieSensorEntityDescription, entry: ConfigEntry) -> None: ...
29
+ def __init__(self, *, description: PureEnergieSensorEntityDescription, entry: PureEnergieConfigEntry) -> None: ...
30
30
  @property
31
31
  def native_value(self) -> int | float: ...
@@ -50,8 +50,7 @@ class PurpleAirConfigFlow(ConfigFlow, domain=DOMAIN):
50
50
 
51
51
  class PurpleAirOptionsFlowHandler(OptionsFlow):
52
52
  _flow_data: Incomplete
53
- config_entry: Incomplete
54
- def __init__(self, config_entry: ConfigEntry) -> None: ...
53
+ def __init__(self) -> None: ...
55
54
  @property
56
55
  def settings_schema(self) -> vol.Schema: ...
57
56
  async def async_step_add_sensor(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -1,6 +1,5 @@
1
1
  import voluptuous as vol
2
2
  from .const import CONF_ALLOW_INACTIVE_ZONES_TO_RUN as CONF_ALLOW_INACTIVE_ZONES_TO_RUN, CONF_DEFAULT_ZONE_RUN_TIME as CONF_DEFAULT_ZONE_RUN_TIME, CONF_USE_APP_RUN_TIMES as CONF_USE_APP_RUN_TIMES, DEFAULT_PORT as DEFAULT_PORT, DEFAULT_ZONE_RUN as DEFAULT_ZONE_RUN, DOMAIN as DOMAIN
3
- from _typeshed import Incomplete
4
3
  from homeassistant.components import zeroconf as zeroconf
5
4
  from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow
6
5
  from homeassistant.const import CONF_IP_ADDRESS as CONF_IP_ADDRESS, CONF_PASSWORD as CONF_PASSWORD, CONF_PORT as CONF_PORT, CONF_SSL as CONF_SSL
@@ -25,6 +24,4 @@ class RainMachineFlowHandler(ConfigFlow, domain=DOMAIN):
25
24
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
26
25
 
27
26
  class RainMachineOptionsFlowHandler(OptionsFlow):
28
- config_entry: Incomplete
29
- def __init__(self, config_entry: ConfigEntry) -> None: ...
30
27
  async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -11,10 +11,8 @@ DATA_SCHEMA: Incomplete
11
11
  class RecollectWasteConfigFlow(ConfigFlow, domain=DOMAIN):
12
12
  VERSION: int
13
13
  @staticmethod
14
- def async_get_options_flow(config_entry: ConfigEntry) -> OptionsFlow: ...
14
+ def async_get_options_flow(config_entry: ConfigEntry) -> RecollectWasteOptionsFlowHandler: ...
15
15
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
16
16
 
17
17
  class RecollectWasteOptionsFlowHandler(OptionsFlow):
18
- _entry: Incomplete
19
- def __init__(self, entry: ConfigEntry) -> None: ...
20
18
  async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -1,6 +1,6 @@
1
1
  import threading
2
2
  from _typeshed import Incomplete
3
- from homeassistant.helpers.frame import report as report
3
+ from homeassistant.helpers.frame import ReportBehavior as ReportBehavior, report_usage as report_usage
4
4
  from homeassistant.util.loop import raise_for_blocking_call as raise_for_blocking_call
5
5
  from sqlalchemy.pool import ConnectionPoolEntry as ConnectionPoolEntry, NullPool, SingletonThreadPool, StaticPool
6
6
  from typing import Any
@@ -12,7 +12,7 @@ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callb
12
12
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
13
13
  from homeassistant.helpers.singleton import singleton as singleton
14
14
  from homeassistant.helpers.typing import UNDEFINED as UNDEFINED, UndefinedType as UndefinedType
15
- 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
15
+ 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
16
16
  from sqlalchemy import Select as Select
17
17
  from sqlalchemy.engine.row import Row
18
18
  from sqlalchemy.orm.session import Session as Session
@@ -8,7 +8,7 @@ from homeassistant.components.websocket_api import messages as messages
8
8
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback, valid_entity_id as valid_entity_id
9
9
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
10
10
  from homeassistant.helpers.json import json_bytes as json_bytes
11
- from homeassistant.util.unit_conversion import 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
11
+ from homeassistant.util.unit_conversion import AreaConverter as AreaConverter, 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
12
12
  from typing import Any, Literal
13
13
 
14
14
  CLEAR_STATISTICS_TIME_OUT: int
@@ -6,15 +6,14 @@ from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowRes
6
6
  from homeassistant.const import CONF_PASSWORD as CONF_PASSWORD, CONF_USERNAME as CONF_USERNAME
7
7
  from typing import Any
8
8
 
9
+ USER_SCHEMA: Incomplete
10
+ REAUTH_SCHEMA: Incomplete
11
+
9
12
  class RenaultFlowHandler(ConfigFlow, domain=DOMAIN):
10
- VERSION: int
11
- _original_data: Incomplete
13
+ renault_hub: RenaultHub
12
14
  renault_config: Incomplete
13
- renault_hub: Incomplete
14
15
  def __init__(self) -> None: ...
15
16
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
16
- def _show_user_form(self, errors: dict[str, Any] | None = None) -> ConfigFlowResult: ...
17
17
  async def async_step_kamereon(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
18
18
  async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> ConfigFlowResult: ...
19
19
  async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
20
- def _show_reauth_confirm_form(self, errors: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -4,6 +4,7 @@ from .renault_vehicle import RenaultVehicleProxy as RenaultVehicleProxy
4
4
  from _typeshed import Incomplete
5
5
  from homeassistant.config_entries import ConfigEntryState as ConfigEntryState
6
6
  from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall
7
+ from homeassistant.exceptions import ServiceValidationError as ServiceValidationError
7
8
 
8
9
  LOGGER: Incomplete
9
10
  ATTR_SCHEDULES: str
@@ -0,0 +1,28 @@
1
+ from .const import CONF_USE_HTTPS as CONF_USE_HTTPS, DOMAIN as DOMAIN
2
+ from .exceptions import PasswordIncompatible as PasswordIncompatible, ReolinkException as ReolinkException, UserNotAdmin as UserNotAdmin
3
+ from .host import ReolinkHost as ReolinkHost
4
+ from .services import async_setup_services as async_setup_services
5
+ from .util import ReolinkConfigEntry as ReolinkConfigEntry, ReolinkData as ReolinkData, get_device_uid_and_ch as get_device_uid_and_ch
6
+ from _typeshed import Incomplete
7
+ from homeassistant.config_entries import ConfigEntryState as ConfigEntryState
8
+ from homeassistant.const import CONF_PORT as CONF_PORT, EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP, Platform as Platform
9
+ from homeassistant.core import HomeAssistant as HomeAssistant
10
+ from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryNotReady as ConfigEntryNotReady
11
+ from homeassistant.helpers import device_registry as dr
12
+ from homeassistant.helpers.device_registry import format_mac as format_mac
13
+ from homeassistant.helpers.typing import ConfigType as ConfigType
14
+ from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
15
+
16
+ _LOGGER: Incomplete
17
+ PLATFORMS: Incomplete
18
+ DEVICE_UPDATE_INTERVAL: Incomplete
19
+ FIRMWARE_UPDATE_INTERVAL: Incomplete
20
+ NUM_CRED_ERRORS: int
21
+ CONFIG_SCHEMA: Incomplete
22
+
23
+ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
24
+ async def async_setup_entry(hass: HomeAssistant, config_entry: ReolinkConfigEntry) -> bool: ...
25
+ async def entry_update_listener(hass: HomeAssistant, config_entry: ReolinkConfigEntry) -> None: ...
26
+ async def async_unload_entry(hass: HomeAssistant, config_entry: ReolinkConfigEntry) -> bool: ...
27
+ async def async_remove_config_entry_device(hass: HomeAssistant, config_entry: ReolinkConfigEntry, device: dr.DeviceEntry) -> bool: ...
28
+ def migrate_entity_ids(hass: HomeAssistant, config_entry_id: str, host: ReolinkHost) -> None: ...
@@ -0,0 +1,34 @@
1
+ from .entity import ReolinkChannelCoordinatorEntity as ReolinkChannelCoordinatorEntity, ReolinkChannelEntityDescription as ReolinkChannelEntityDescription
2
+ from .util import ReolinkConfigEntry as ReolinkConfigEntry, ReolinkData as ReolinkData
3
+ from _typeshed import Incomplete
4
+ from collections.abc import Callable as Callable
5
+ from dataclasses import dataclass
6
+ from homeassistant.components.binary_sensor import BinarySensorDeviceClass as BinarySensorDeviceClass, BinarySensorEntity as BinarySensorEntity, BinarySensorEntityDescription as BinarySensorEntityDescription
7
+ from homeassistant.const import EntityCategory as EntityCategory
8
+ from homeassistant.core import HomeAssistant as HomeAssistant
9
+ from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
10
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
11
+ from reolink_aio.api import Host as Host
12
+
13
+ PARALLEL_UPDATES: int
14
+
15
+ @dataclass(frozen=True, kw_only=True)
16
+ class ReolinkBinarySensorEntityDescription(BinarySensorEntityDescription, ReolinkChannelEntityDescription):
17
+ value: Callable[[Host, int], bool]
18
+ 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=..., cmd_key=..., cmd_id=..., supported=..., value) -> None: ...
19
+
20
+ BINARY_PUSH_SENSORS: Incomplete
21
+ BINARY_SENSORS: Incomplete
22
+
23
+ async def async_setup_entry(hass: HomeAssistant, config_entry: ReolinkConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
24
+
25
+ class ReolinkBinarySensorEntity(ReolinkChannelCoordinatorEntity, BinarySensorEntity):
26
+ entity_description: ReolinkBinarySensorEntityDescription
27
+ _attr_translation_key: Incomplete
28
+ def __init__(self, reolink_data: ReolinkData, channel: int, entity_description: ReolinkBinarySensorEntityDescription) -> None: ...
29
+ @property
30
+ def is_on(self) -> bool: ...
31
+
32
+ class ReolinkPushBinarySensorEntity(ReolinkBinarySensorEntity):
33
+ async def async_added_to_hass(self) -> None: ...
34
+ async def _async_handle_event(self, event: str) -> None: ...
@@ -0,0 +1,48 @@
1
+ from .entity import ReolinkChannelCoordinatorEntity as ReolinkChannelCoordinatorEntity, ReolinkChannelEntityDescription as ReolinkChannelEntityDescription, ReolinkHostCoordinatorEntity as ReolinkHostCoordinatorEntity, ReolinkHostEntityDescription as ReolinkHostEntityDescription
2
+ from .util import ReolinkConfigEntry as ReolinkConfigEntry, ReolinkData as ReolinkData
3
+ from _typeshed import Incomplete
4
+ from collections.abc import Callable as Callable
5
+ from dataclasses import dataclass
6
+ from homeassistant.components.button import ButtonDeviceClass as ButtonDeviceClass, ButtonEntity as ButtonEntity, ButtonEntityDescription as ButtonEntityDescription
7
+ from homeassistant.components.camera import CameraEntityFeature as CameraEntityFeature
8
+ from homeassistant.const import EntityCategory as EntityCategory
9
+ from homeassistant.core import HomeAssistant as HomeAssistant
10
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
11
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback, async_get_current_platform as async_get_current_platform
12
+ from reolink_aio.api import Host as Host
13
+ from typing import Any
14
+
15
+ PARALLEL_UPDATES: int
16
+ ATTR_SPEED: str
17
+ SUPPORT_PTZ_SPEED: Incomplete
18
+ SERVICE_PTZ_MOVE: str
19
+
20
+ @dataclass(frozen=True, kw_only=True)
21
+ class ReolinkButtonEntityDescription(ButtonEntityDescription, ReolinkChannelEntityDescription):
22
+ enabled_default: Callable[[Host, int], bool] | None = ...
23
+ method: Callable[[Host, int], Any]
24
+ ptz_cmd: str | None = ...
25
+ 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=..., cmd_key=..., cmd_id=..., supported=..., enabled_default=..., method, ptz_cmd=...) -> None: ...
26
+
27
+ @dataclass(frozen=True, kw_only=True)
28
+ class ReolinkHostButtonEntityDescription(ButtonEntityDescription, ReolinkHostEntityDescription):
29
+ method: Callable[[Host], Any]
30
+ 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=..., cmd_key=..., cmd_id=..., supported=..., method) -> None: ...
31
+
32
+ BUTTON_ENTITIES: Incomplete
33
+ HOST_BUTTON_ENTITIES: Incomplete
34
+
35
+ async def async_setup_entry(hass: HomeAssistant, config_entry: ReolinkConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
36
+
37
+ class ReolinkButtonEntity(ReolinkChannelCoordinatorEntity, ButtonEntity):
38
+ entity_description: ReolinkButtonEntityDescription
39
+ _attr_entity_registry_enabled_default: Incomplete
40
+ _attr_supported_features: Incomplete
41
+ def __init__(self, reolink_data: ReolinkData, channel: int, entity_description: ReolinkButtonEntityDescription) -> None: ...
42
+ async def async_press(self) -> None: ...
43
+ async def async_ptz_move(self, **kwargs: Any) -> None: ...
44
+
45
+ class ReolinkHostButtonEntity(ReolinkHostCoordinatorEntity, ButtonEntity):
46
+ entity_description: ReolinkHostButtonEntityDescription
47
+ def __init__(self, reolink_data: ReolinkData, entity_description: ReolinkHostButtonEntityDescription) -> None: ...
48
+ async def async_press(self) -> None: ...
@@ -0,0 +1,28 @@
1
+ from .entity import ReolinkChannelCoordinatorEntity as ReolinkChannelCoordinatorEntity, ReolinkChannelEntityDescription as ReolinkChannelEntityDescription
2
+ from .util import ReolinkConfigEntry as ReolinkConfigEntry, ReolinkData as ReolinkData
3
+ from _typeshed import Incomplete
4
+ from dataclasses import dataclass
5
+ from homeassistant.components.camera import Camera as Camera, CameraEntityDescription as CameraEntityDescription, CameraEntityFeature as CameraEntityFeature
6
+ from homeassistant.core import HomeAssistant as HomeAssistant
7
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
8
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
9
+
10
+ _LOGGER: Incomplete
11
+ PARALLEL_UPDATES: int
12
+
13
+ @dataclass(frozen=True, kw_only=True)
14
+ class ReolinkCameraEntityDescription(CameraEntityDescription, ReolinkChannelEntityDescription):
15
+ stream: str
16
+ 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=..., cmd_key=..., cmd_id=..., supported=..., stream) -> None: ...
17
+
18
+ CAMERA_ENTITIES: Incomplete
19
+
20
+ async def async_setup_entry(hass: HomeAssistant, config_entry: ReolinkConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
21
+
22
+ class ReolinkCamera(ReolinkChannelCoordinatorEntity, Camera):
23
+ entity_description: ReolinkCameraEntityDescription
24
+ _attr_supported_features: Incomplete
25
+ _attr_translation_key: Incomplete
26
+ def __init__(self, reolink_data: ReolinkData, channel: int, entity_description: ReolinkCameraEntityDescription) -> None: ...
27
+ async def stream_source(self) -> str | None: ...
28
+ async def async_camera_image(self, width: int | None = None, height: int | None = None) -> bytes | None: ...
@@ -0,0 +1,35 @@
1
+ from .const import CONF_USE_HTTPS as CONF_USE_HTTPS, DOMAIN as DOMAIN
2
+ from .exceptions import PasswordIncompatible as PasswordIncompatible, ReolinkException as ReolinkException, ReolinkWebhookException as ReolinkWebhookException, UserNotAdmin as UserNotAdmin
3
+ from .host import ReolinkHost as ReolinkHost
4
+ from .util import ReolinkConfigEntry as ReolinkConfigEntry, is_connected as is_connected
5
+ from _typeshed import Incomplete
6
+ from collections.abc import Mapping
7
+ from homeassistant.components import dhcp as dhcp
8
+ from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow, SOURCE_REAUTH as SOURCE_REAUTH, SOURCE_RECONFIGURE as SOURCE_RECONFIGURE
9
+ from homeassistant.const import CONF_HOST as CONF_HOST, CONF_PASSWORD as CONF_PASSWORD, CONF_PORT as CONF_PORT, CONF_PROTOCOL as CONF_PROTOCOL, CONF_USERNAME as CONF_USERNAME
10
+ from homeassistant.core import callback as callback
11
+ from homeassistant.data_entry_flow import AbortFlow as AbortFlow
12
+ from homeassistant.helpers import selector as selector
13
+ from homeassistant.helpers.device_registry import format_mac as format_mac
14
+ from typing import Any
15
+
16
+ _LOGGER: Incomplete
17
+ DEFAULT_PROTOCOL: str
18
+ DEFAULT_OPTIONS: Incomplete
19
+
20
+ class ReolinkOptionsFlowHandler(OptionsFlow):
21
+ async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
22
+
23
+ class ReolinkFlowHandler(ConfigFlow, domain=DOMAIN):
24
+ VERSION: int
25
+ _host: Incomplete
26
+ _username: str
27
+ _password: Incomplete
28
+ def __init__(self) -> None: ...
29
+ @staticmethod
30
+ def async_get_options_flow(config_entry: ReolinkConfigEntry) -> ReolinkOptionsFlowHandler: ...
31
+ async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> ConfigFlowResult: ...
32
+ async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
33
+ async def async_step_reconfigure(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
34
+ async def async_step_dhcp(self, discovery_info: dhcp.DhcpServiceInfo) -> ConfigFlowResult: ...
35
+ async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -0,0 +1,2 @@
1
+ DOMAIN: str
2
+ CONF_USE_HTTPS: str
@@ -0,0 +1,5 @@
1
+ from .util import ReolinkConfigEntry as ReolinkConfigEntry, ReolinkData as ReolinkData
2
+ from homeassistant.core import HomeAssistant as HomeAssistant
3
+ from typing import Any
4
+
5
+ async def async_get_config_entry_diagnostics(hass: HomeAssistant, config_entry: ReolinkConfigEntry) -> dict[str, Any]: ...
@@ -0,0 +1,69 @@
1
+ from . import ReolinkData as ReolinkData
2
+ from .const import DOMAIN as DOMAIN
3
+ from _typeshed import Incomplete
4
+ from collections.abc import Callable as Callable
5
+ from dataclasses import dataclass
6
+ from homeassistant.core import callback as callback
7
+ from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC as CONNECTION_NETWORK_MAC, DeviceInfo as DeviceInfo
8
+ from homeassistant.helpers.entity import EntityDescription as EntityDescription
9
+ from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity, DataUpdateCoordinator as DataUpdateCoordinator
10
+ from reolink_aio.api import Chime as Chime, Host as Host
11
+
12
+ @dataclass(frozen=True, kw_only=True)
13
+ class ReolinkEntityDescription(EntityDescription):
14
+ cmd_key: str | None = ...
15
+ cmd_id: int | None = ...
16
+ 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=..., cmd_key=..., cmd_id=...) -> None: ...
17
+
18
+ @dataclass(frozen=True, kw_only=True)
19
+ class ReolinkChannelEntityDescription(ReolinkEntityDescription):
20
+ supported: Callable[[Host, int], bool] = ...
21
+ 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=..., cmd_key=..., cmd_id=..., supported=...) -> None: ...
22
+
23
+ @dataclass(frozen=True, kw_only=True)
24
+ class ReolinkHostEntityDescription(ReolinkEntityDescription):
25
+ supported: Callable[[Host], bool] = ...
26
+ 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=..., cmd_key=..., cmd_id=..., supported=...) -> None: ...
27
+
28
+ @dataclass(frozen=True, kw_only=True)
29
+ class ReolinkChimeEntityDescription(ReolinkEntityDescription):
30
+ supported: Callable[[Chime], bool] = ...
31
+ 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=..., cmd_key=..., cmd_id=..., supported=...) -> None: ...
32
+
33
+ class ReolinkHostCoordinatorEntity(CoordinatorEntity[DataUpdateCoordinator[None]]):
34
+ _attr_has_entity_name: bool
35
+ entity_description: ReolinkEntityDescription
36
+ _host: Incomplete
37
+ _attr_unique_id: Incomplete
38
+ _conf_url: Incomplete
39
+ _dev_id: Incomplete
40
+ _attr_device_info: Incomplete
41
+ def __init__(self, reolink_data: ReolinkData, coordinator: DataUpdateCoordinator[None] | None = None) -> None: ...
42
+ @property
43
+ def available(self) -> bool: ...
44
+ def _push_callback(self) -> None: ...
45
+ def register_callback(self, unique_id: str, cmd_id: int) -> None: ...
46
+ async def async_added_to_hass(self) -> None: ...
47
+ async def async_will_remove_from_hass(self) -> None: ...
48
+ async def async_update(self) -> None: ...
49
+
50
+ class ReolinkChannelCoordinatorEntity(ReolinkHostCoordinatorEntity):
51
+ _channel: Incomplete
52
+ _attr_unique_id: Incomplete
53
+ _dev_id: Incomplete
54
+ _attr_device_info: Incomplete
55
+ def __init__(self, reolink_data: ReolinkData, channel: int, coordinator: DataUpdateCoordinator[None] | None = None) -> None: ...
56
+ @property
57
+ def available(self) -> bool: ...
58
+ def register_callback(self, unique_id: str, cmd_id: int) -> None: ...
59
+ async def async_added_to_hass(self) -> None: ...
60
+ async def async_will_remove_from_hass(self) -> None: ...
61
+
62
+ class ReolinkChimeCoordinatorEntity(ReolinkChannelCoordinatorEntity):
63
+ _chime: Incomplete
64
+ _attr_unique_id: Incomplete
65
+ _dev_id: Incomplete
66
+ _attr_device_info: Incomplete
67
+ def __init__(self, reolink_data: ReolinkData, chime: Chime, coordinator: DataUpdateCoordinator[None] | None = None) -> None: ...
68
+ @property
69
+ def available(self) -> bool: ...
@@ -0,0 +1,7 @@
1
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
2
+
3
+ class ReolinkException(HomeAssistantError): ...
4
+ class ReolinkSetupException(ReolinkException): ...
5
+ class ReolinkWebhookException(ReolinkException): ...
6
+ class UserNotAdmin(ReolinkException): ...
7
+ class PasswordIncompatible(ReolinkException): ...
@@ -0,0 +1,82 @@
1
+ from .const import CONF_USE_HTTPS as CONF_USE_HTTPS, DOMAIN as DOMAIN
2
+ from .exceptions import PasswordIncompatible as PasswordIncompatible, ReolinkSetupException as ReolinkSetupException, ReolinkWebhookException as ReolinkWebhookException, UserNotAdmin as UserNotAdmin
3
+ from _typeshed import Incomplete
4
+ from aiohttp.web import Request as Request
5
+ from collections.abc import Mapping
6
+ from homeassistant.components import webhook as webhook
7
+ from homeassistant.const import CONF_HOST as CONF_HOST, CONF_PASSWORD as CONF_PASSWORD, CONF_PORT as CONF_PORT, CONF_PROTOCOL as CONF_PROTOCOL, CONF_USERNAME as CONF_USERNAME
8
+ from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, HassJob as HassJob, HomeAssistant as HomeAssistant, callback as callback
9
+ from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
10
+ from homeassistant.helpers.device_registry import format_mac as format_mac
11
+ from homeassistant.helpers.dispatcher import async_dispatcher_send as async_dispatcher_send
12
+ from homeassistant.helpers.event import async_call_later as async_call_later
13
+ from homeassistant.helpers.network import NoURLAvailableError as NoURLAvailableError, get_url as get_url
14
+ from homeassistant.util.ssl import SSLCipherList as SSLCipherList
15
+ from reolink_aio.api import Host
16
+ from reolink_aio.enums import SubType
17
+ from typing import Any, Literal
18
+
19
+ DEFAULT_TIMEOUT: int
20
+ FIRST_TCP_PUSH_TIMEOUT: int
21
+ FIRST_ONVIF_TIMEOUT: int
22
+ FIRST_ONVIF_LONG_POLL_TIMEOUT: int
23
+ SUBSCRIPTION_RENEW_THRESHOLD: int
24
+ POLL_INTERVAL_NO_PUSH: int
25
+ LONG_POLL_COOLDOWN: float
26
+ LONG_POLL_ERROR_COOLDOWN: int
27
+ BATTERY_WAKE_UPDATE_INTERVAL: int
28
+ _LOGGER: Incomplete
29
+
30
+ class ReolinkHost:
31
+ _hass: Incomplete
32
+ _unique_id: str
33
+ _api: Incomplete
34
+ last_wake: int
35
+ update_cmd: Incomplete
36
+ firmware_ch_list: Incomplete
37
+ starting: bool
38
+ credential_errors: int
39
+ webhook_id: Incomplete
40
+ _onvif_push_supported: bool
41
+ _onvif_long_poll_supported: bool
42
+ _base_url: str
43
+ _webhook_url: str
44
+ _webhook_reachable: bool
45
+ _long_poll_received: bool
46
+ _long_poll_error: bool
47
+ _cancel_poll: Incomplete
48
+ _cancel_tcp_push_check: Incomplete
49
+ _cancel_onvif_check: Incomplete
50
+ _cancel_long_poll_check: Incomplete
51
+ _poll_job: Incomplete
52
+ _fast_poll_error: bool
53
+ _long_poll_task: Incomplete
54
+ _lost_subscription: bool
55
+ def __init__(self, hass: HomeAssistant, config: Mapping[str, Any], options: Mapping[str, Any]) -> None: ...
56
+ def async_register_update_cmd(self, cmd: str, channel: int | None = None) -> None: ...
57
+ def async_unregister_update_cmd(self, cmd: str, channel: int | None = None) -> None: ...
58
+ @property
59
+ def unique_id(self) -> str: ...
60
+ @property
61
+ def api(self) -> Host: ...
62
+ async def async_init(self) -> None: ...
63
+ async def _async_check_tcp_push(self, *_: Any) -> None: ...
64
+ async def _async_check_onvif(self, *_: Any) -> None: ...
65
+ async def _async_check_onvif_long_poll(self, *_: Any) -> None: ...
66
+ async def update_states(self) -> None: ...
67
+ async def disconnect(self) -> None: ...
68
+ async def _async_start_long_polling(self, initial: bool = False) -> None: ...
69
+ async def _async_stop_long_polling(self) -> None: ...
70
+ async def stop(self, *_: Any) -> None: ...
71
+ async def subscribe(self) -> None: ...
72
+ async def renew(self) -> None: ...
73
+ async def _renew(self, sub_type: Literal[SubType.push, SubType.long_poll]) -> None: ...
74
+ def register_webhook(self) -> None: ...
75
+ def unregister_webhook(self) -> None: ...
76
+ async def _async_long_polling(self, *_: Any) -> None: ...
77
+ async def _async_poll_all_motion(self, *_: Any) -> None: ...
78
+ async def handle_webhook(self, hass: HomeAssistant, webhook_id: str, request: Request) -> None: ...
79
+ async def _process_webhook_data(self, hass: HomeAssistant, webhook_id: str, data: bytes | None) -> None: ...
80
+ def _signal_write_ha_state(self, channels: list[int] | None) -> None: ...
81
+ @property
82
+ def event_connection(self) -> str: ...
@@ -0,0 +1,55 @@
1
+ from .entity import ReolinkChannelCoordinatorEntity as ReolinkChannelCoordinatorEntity, ReolinkChannelEntityDescription as ReolinkChannelEntityDescription, ReolinkHostCoordinatorEntity as ReolinkHostCoordinatorEntity, ReolinkHostEntityDescription as ReolinkHostEntityDescription
2
+ from .util import ReolinkConfigEntry as ReolinkConfigEntry, ReolinkData as ReolinkData
3
+ from _typeshed import Incomplete
4
+ from collections.abc import Callable as Callable
5
+ from dataclasses import dataclass
6
+ from homeassistant.components.light import ATTR_BRIGHTNESS as ATTR_BRIGHTNESS, ColorMode as ColorMode, LightEntity as LightEntity, LightEntityDescription as LightEntityDescription
7
+ from homeassistant.const import EntityCategory as EntityCategory
8
+ from homeassistant.core import HomeAssistant as HomeAssistant
9
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, ServiceValidationError as ServiceValidationError
10
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
11
+ from reolink_aio.api import Host as Host
12
+ from typing import Any
13
+
14
+ PARALLEL_UPDATES: int
15
+
16
+ @dataclass(frozen=True, kw_only=True)
17
+ class ReolinkLightEntityDescription(LightEntityDescription, ReolinkChannelEntityDescription):
18
+ get_brightness_fn: Callable[[Host, int], int | None] | None = ...
19
+ is_on_fn: Callable[[Host, int], bool]
20
+ set_brightness_fn: Callable[[Host, int, int], Any] | None = ...
21
+ turn_on_off_fn: Callable[[Host, int, bool], Any]
22
+ 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=..., cmd_key=..., cmd_id=..., supported=..., get_brightness_fn=..., is_on_fn, set_brightness_fn=..., turn_on_off_fn) -> None: ...
23
+
24
+ @dataclass(frozen=True, kw_only=True)
25
+ class ReolinkHostLightEntityDescription(LightEntityDescription, ReolinkHostEntityDescription):
26
+ is_on_fn: Callable[[Host], bool]
27
+ turn_on_off_fn: Callable[[Host, bool], Any]
28
+ 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=..., cmd_key=..., cmd_id=..., supported=..., is_on_fn, turn_on_off_fn) -> None: ...
29
+
30
+ LIGHT_ENTITIES: Incomplete
31
+ HOST_LIGHT_ENTITIES: Incomplete
32
+
33
+ async def async_setup_entry(hass: HomeAssistant, config_entry: ReolinkConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
34
+
35
+ class ReolinkLightEntity(ReolinkChannelCoordinatorEntity, LightEntity):
36
+ entity_description: ReolinkLightEntityDescription
37
+ _attr_supported_color_modes: Incomplete
38
+ _attr_color_mode: Incomplete
39
+ def __init__(self, reolink_data: ReolinkData, channel: int, entity_description: ReolinkLightEntityDescription) -> None: ...
40
+ @property
41
+ def is_on(self) -> bool: ...
42
+ @property
43
+ def brightness(self) -> int | None: ...
44
+ async def async_turn_off(self, **kwargs: Any) -> None: ...
45
+ async def async_turn_on(self, **kwargs: Any) -> None: ...
46
+
47
+ class ReolinkHostLightEntity(ReolinkHostCoordinatorEntity, LightEntity):
48
+ entity_description: ReolinkHostLightEntityDescription
49
+ _attr_supported_color_modes: Incomplete
50
+ _attr_color_mode: Incomplete
51
+ def __init__(self, reolink_data: ReolinkData, entity_description: ReolinkHostLightEntityDescription) -> None: ...
52
+ @property
53
+ def is_on(self) -> bool: ...
54
+ async def async_turn_off(self, **kwargs: Any) -> None: ...
55
+ async def async_turn_on(self, **kwargs: Any) -> None: ...
@@ -0,0 +1,27 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from .host import ReolinkHost as ReolinkHost
3
+ from .util import ReolinkConfigEntry as ReolinkConfigEntry
4
+ from _typeshed import Incomplete
5
+ from homeassistant.components.camera import DynamicStreamSettings as DynamicStreamSettings
6
+ from homeassistant.components.media_player import MediaClass as MediaClass, MediaType as MediaType
7
+ from homeassistant.components.media_source import BrowseMediaSource as BrowseMediaSource, MediaSource as MediaSource, MediaSourceItem as MediaSourceItem, PlayMedia as PlayMedia, Unresolvable as Unresolvable
8
+ from homeassistant.components.stream import create_stream as create_stream
9
+ from homeassistant.config_entries import ConfigEntryState as ConfigEntryState
10
+ from homeassistant.core import HomeAssistant as HomeAssistant
11
+
12
+ _LOGGER: Incomplete
13
+
14
+ async def async_get_media_source(hass: HomeAssistant) -> ReolinkVODMediaSource: ...
15
+ def res_name(stream: str) -> str: ...
16
+ def get_host(hass: HomeAssistant, config_entry_id: str) -> ReolinkHost: ...
17
+
18
+ class ReolinkVODMediaSource(MediaSource):
19
+ name: str
20
+ hass: Incomplete
21
+ def __init__(self, hass: HomeAssistant) -> None: ...
22
+ async def async_resolve_media(self, item: MediaSourceItem) -> PlayMedia: ...
23
+ async def async_browse_media(self, item: MediaSourceItem) -> BrowseMediaSource: ...
24
+ async def _async_generate_root(self) -> BrowseMediaSource: ...
25
+ async def _async_generate_resolution_select(self, config_entry_id: str, channel: int) -> BrowseMediaSource: ...
26
+ async def _async_generate_camera_days(self, config_entry_id: str, channel: int, stream: str) -> BrowseMediaSource: ...
27
+ async def _async_generate_camera_files(self, config_entry_id: str, channel: int, stream: str, year: int, month: int, day: int) -> BrowseMediaSource: ...