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
@@ -0,0 +1,69 @@
1
+ from .entity import ReolinkChannelCoordinatorEntity as ReolinkChannelCoordinatorEntity, ReolinkChannelEntityDescription as ReolinkChannelEntityDescription, ReolinkChimeCoordinatorEntity as ReolinkChimeCoordinatorEntity, ReolinkChimeEntityDescription as ReolinkChimeEntityDescription, 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.number import NumberEntity as NumberEntity, NumberEntityDescription as NumberEntityDescription, NumberMode as NumberMode
7
+ from homeassistant.const import EntityCategory as EntityCategory, UnitOfTime as UnitOfTime
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 Chime as Chime, Host as Host
12
+ from typing import Any
13
+
14
+ PARALLEL_UPDATES: int
15
+
16
+ @dataclass(frozen=True, kw_only=True)
17
+ class ReolinkNumberEntityDescription(NumberEntityDescription, ReolinkChannelEntityDescription):
18
+ get_max_value: Callable[[Host, int], float] | None = ...
19
+ get_min_value: Callable[[Host, int], float] | None = ...
20
+ method: Callable[[Host, int, float], Any]
21
+ mode: NumberMode = ...
22
+ value: Callable[[Host, int], float | None]
23
+ 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=..., max_value=..., min_value=..., mode=..., native_max_value=..., native_min_value=..., native_step=..., native_unit_of_measurement=..., step=..., get_max_value=..., get_min_value=..., method, value) -> None: ...
24
+
25
+ @dataclass(frozen=True, kw_only=True)
26
+ class ReolinkHostNumberEntityDescription(NumberEntityDescription, ReolinkHostEntityDescription):
27
+ method: Callable[[Host, float], Any]
28
+ mode: NumberMode = ...
29
+ value: Callable[[Host], float | None]
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=..., max_value=..., min_value=..., mode=..., native_max_value=..., native_min_value=..., native_step=..., native_unit_of_measurement=..., step=..., method, value) -> None: ...
31
+
32
+ @dataclass(frozen=True, kw_only=True)
33
+ class ReolinkChimeNumberEntityDescription(NumberEntityDescription, ReolinkChimeEntityDescription):
34
+ method: Callable[[Chime, float], Any]
35
+ mode: NumberMode = ...
36
+ value: Callable[[Chime], float | None]
37
+ 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=..., max_value=..., min_value=..., mode=..., native_max_value=..., native_min_value=..., native_step=..., native_unit_of_measurement=..., step=..., method, value) -> None: ...
38
+
39
+ NUMBER_ENTITIES: Incomplete
40
+ HOST_NUMBER_ENTITIES: Incomplete
41
+ CHIME_NUMBER_ENTITIES: Incomplete
42
+
43
+ async def async_setup_entry(hass: HomeAssistant, config_entry: ReolinkConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
44
+
45
+ class ReolinkNumberEntity(ReolinkChannelCoordinatorEntity, NumberEntity):
46
+ entity_description: ReolinkNumberEntityDescription
47
+ _attr_native_min_value: Incomplete
48
+ _attr_native_max_value: Incomplete
49
+ _attr_mode: Incomplete
50
+ def __init__(self, reolink_data: ReolinkData, channel: int, entity_description: ReolinkNumberEntityDescription) -> None: ...
51
+ @property
52
+ def native_value(self) -> float | None: ...
53
+ async def async_set_native_value(self, value: float) -> None: ...
54
+
55
+ class ReolinkHostNumberEntity(ReolinkHostCoordinatorEntity, NumberEntity):
56
+ entity_description: ReolinkHostNumberEntityDescription
57
+ _attr_mode: Incomplete
58
+ def __init__(self, reolink_data: ReolinkData, entity_description: ReolinkHostNumberEntityDescription) -> None: ...
59
+ @property
60
+ def native_value(self) -> float | None: ...
61
+ async def async_set_native_value(self, value: float) -> None: ...
62
+
63
+ class ReolinkChimeNumberEntity(ReolinkChimeCoordinatorEntity, NumberEntity):
64
+ entity_description: ReolinkChimeNumberEntityDescription
65
+ _attr_mode: Incomplete
66
+ def __init__(self, reolink_data: ReolinkData, chime: Chime, entity_description: ReolinkChimeNumberEntityDescription) -> None: ...
67
+ @property
68
+ def native_value(self) -> float | None: ...
69
+ async def async_set_native_value(self, value: float) -> None: ...
@@ -0,0 +1,54 @@
1
+ from .entity import ReolinkChannelCoordinatorEntity as ReolinkChannelCoordinatorEntity, ReolinkChannelEntityDescription as ReolinkChannelEntityDescription, ReolinkChimeCoordinatorEntity as ReolinkChimeCoordinatorEntity, ReolinkChimeEntityDescription as ReolinkChimeEntityDescription
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.select import SelectEntity as SelectEntity, SelectEntityDescription as SelectEntityDescription
7
+ from homeassistant.const import EntityCategory as EntityCategory, UnitOfDataRate as UnitOfDataRate, UnitOfFrequency as UnitOfFrequency
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 Chime as Chime, Host as Host
12
+ from typing import Any
13
+
14
+ _LOGGER: Incomplete
15
+ PARALLEL_UPDATES: int
16
+
17
+ @dataclass(frozen=True, kw_only=True)
18
+ class ReolinkSelectEntityDescription(SelectEntityDescription, ReolinkChannelEntityDescription):
19
+ get_options: list[str] | Callable[[Host, int], list[str]]
20
+ method: Callable[[Host, int, str], Any]
21
+ value: Callable[[Host, int], str] | None = ...
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=..., options=..., get_options, method, value=...) -> None: ...
23
+
24
+ @dataclass(frozen=True, kw_only=True)
25
+ class ReolinkChimeSelectEntityDescription(SelectEntityDescription, ReolinkChimeEntityDescription):
26
+ get_options: list[str]
27
+ method: Callable[[Chime, str], Any]
28
+ value: Callable[[Chime], str]
29
+ 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=..., options=..., get_options, method, value) -> None: ...
30
+
31
+ def _get_quick_reply_id(api: Host, ch: int, mess: str) -> int: ...
32
+
33
+ SELECT_ENTITIES: Incomplete
34
+ CHIME_SELECT_ENTITIES: Incomplete
35
+
36
+ async def async_setup_entry(hass: HomeAssistant, config_entry: ReolinkConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
37
+
38
+ class ReolinkSelectEntity(ReolinkChannelCoordinatorEntity, SelectEntity):
39
+ entity_description: ReolinkSelectEntityDescription
40
+ _log_error: bool
41
+ _attr_options: Incomplete
42
+ def __init__(self, reolink_data: ReolinkData, channel: int, entity_description: ReolinkSelectEntityDescription) -> None: ...
43
+ @property
44
+ def current_option(self) -> str | None: ...
45
+ async def async_select_option(self, option: str) -> None: ...
46
+
47
+ class ReolinkChimeSelectEntity(ReolinkChimeCoordinatorEntity, SelectEntity):
48
+ entity_description: ReolinkChimeSelectEntityDescription
49
+ _log_error: bool
50
+ _attr_options: Incomplete
51
+ def __init__(self, reolink_data: ReolinkData, chime: Chime, entity_description: ReolinkChimeSelectEntityDescription) -> None: ...
52
+ @property
53
+ def current_option(self) -> str | None: ...
54
+ async def async_select_option(self, option: str) -> None: ...
@@ -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 datetime import date, datetime
7
+ from decimal import Decimal
8
+ from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
9
+ from homeassistant.const import EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE, UnitOfTemperature as UnitOfTemperature
10
+ from homeassistant.core import HomeAssistant as HomeAssistant
11
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
12
+ from homeassistant.helpers.typing import StateType as StateType
13
+ from reolink_aio.api import Host as Host
14
+
15
+ PARALLEL_UPDATES: int
16
+
17
+ @dataclass(frozen=True, kw_only=True)
18
+ class ReolinkSensorEntityDescription(SensorEntityDescription, ReolinkChannelEntityDescription):
19
+ value: Callable[[Host, int], StateType]
20
+ 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=..., last_reset=..., native_unit_of_measurement=..., options=..., state_class=..., suggested_display_precision=..., suggested_unit_of_measurement=..., value) -> None: ...
21
+
22
+ @dataclass(frozen=True, kw_only=True)
23
+ class ReolinkHostSensorEntityDescription(SensorEntityDescription, ReolinkHostEntityDescription):
24
+ value: Callable[[Host], StateType]
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=..., last_reset=..., native_unit_of_measurement=..., options=..., state_class=..., suggested_display_precision=..., suggested_unit_of_measurement=..., value) -> None: ...
26
+
27
+ SENSORS: Incomplete
28
+ HOST_SENSORS: Incomplete
29
+ HDD_SENSORS: Incomplete
30
+
31
+ async def async_setup_entry(hass: HomeAssistant, config_entry: ReolinkConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
32
+
33
+ class ReolinkSensorEntity(ReolinkChannelCoordinatorEntity, SensorEntity):
34
+ entity_description: ReolinkSensorEntityDescription
35
+ def __init__(self, reolink_data: ReolinkData, channel: int, entity_description: ReolinkSensorEntityDescription) -> None: ...
36
+ @property
37
+ def native_value(self) -> StateType | date | datetime | Decimal: ...
38
+
39
+ class ReolinkHostSensorEntity(ReolinkHostCoordinatorEntity, SensorEntity):
40
+ entity_description: ReolinkHostSensorEntityDescription
41
+ def __init__(self, reolink_data: ReolinkData, entity_description: ReolinkHostSensorEntityDescription) -> None: ...
42
+ @property
43
+ def native_value(self) -> StateType | date | datetime | Decimal: ...
44
+
45
+ class ReolinkHddSensorEntity(ReolinkHostCoordinatorEntity, SensorEntity):
46
+ entity_description: ReolinkSensorEntityDescription
47
+ _hdd_index: Incomplete
48
+ _attr_translation_placeholders: Incomplete
49
+ _attr_unique_id: Incomplete
50
+ _attr_translation_key: str
51
+ def __init__(self, reolink_data: ReolinkData, hdd_index: int, entity_description: ReolinkSensorEntityDescription) -> None: ...
52
+ @property
53
+ def native_value(self) -> StateType | date | datetime | Decimal: ...
54
+ @property
55
+ def available(self) -> bool: ...
@@ -0,0 +1,12 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from .host import ReolinkHost as ReolinkHost
3
+ from .util import get_device_uid_and_ch as get_device_uid_and_ch
4
+ from homeassistant.config_entries import ConfigEntryState as ConfigEntryState
5
+ from homeassistant.const import ATTR_DEVICE_ID as ATTR_DEVICE_ID
6
+ from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, callback as callback
7
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, ServiceValidationError as ServiceValidationError
8
+ from reolink_aio.api import Chime as Chime
9
+
10
+ ATTR_RINGTONE: str
11
+
12
+ def async_setup_services(hass: HomeAssistant) -> None: ...
@@ -0,0 +1,26 @@
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.siren import ATTR_DURATION as ATTR_DURATION, ATTR_VOLUME_LEVEL as ATTR_VOLUME_LEVEL, SirenEntity as SirenEntity, SirenEntityDescription as SirenEntityDescription, SirenEntityFeature as SirenEntityFeature
6
+ from homeassistant.core import HomeAssistant as HomeAssistant
7
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, ServiceValidationError as ServiceValidationError
8
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
9
+ from typing import Any
10
+
11
+ PARALLEL_UPDATES: int
12
+
13
+ @dataclass(frozen=True)
14
+ class ReolinkSirenEntityDescription(SirenEntityDescription, ReolinkChannelEntityDescription):
15
+ 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=..., available_tones=...) -> None: ...
16
+
17
+ SIREN_ENTITIES: Incomplete
18
+
19
+ async def async_setup_entry(hass: HomeAssistant, config_entry: ReolinkConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
20
+
21
+ class ReolinkSirenEntity(ReolinkChannelCoordinatorEntity, SirenEntity):
22
+ _attr_supported_features: Incomplete
23
+ entity_description: ReolinkSirenEntityDescription
24
+ def __init__(self, reolink_data: ReolinkData, channel: int, entity_description: ReolinkSirenEntityDescription) -> None: ...
25
+ async def async_turn_on(self, **kwargs: Any) -> None: ...
26
+ async def async_turn_off(self, **kwargs: Any) -> None: ...
@@ -0,0 +1,65 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from .entity import ReolinkChannelCoordinatorEntity as ReolinkChannelCoordinatorEntity, ReolinkChannelEntityDescription as ReolinkChannelEntityDescription, ReolinkChimeCoordinatorEntity as ReolinkChimeCoordinatorEntity, ReolinkChimeEntityDescription as ReolinkChimeEntityDescription, ReolinkHostCoordinatorEntity as ReolinkHostCoordinatorEntity, ReolinkHostEntityDescription as ReolinkHostEntityDescription
3
+ from .util import ReolinkConfigEntry as ReolinkConfigEntry, ReolinkData as ReolinkData
4
+ from _typeshed import Incomplete
5
+ from collections.abc import Callable as Callable
6
+ from dataclasses import dataclass
7
+ from homeassistant.components.switch import SwitchEntity as SwitchEntity, SwitchEntityDescription as SwitchEntityDescription
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
12
+ from reolink_aio.api import Chime as Chime, Host as Host
13
+ from typing import Any
14
+
15
+ PARALLEL_UPDATES: int
16
+
17
+ @dataclass(frozen=True, kw_only=True)
18
+ class ReolinkSwitchEntityDescription(SwitchEntityDescription, ReolinkChannelEntityDescription):
19
+ method: Callable[[Host, int, bool], Any]
20
+ value: Callable[[Host, int], bool | None]
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=..., method, value) -> None: ...
22
+
23
+ @dataclass(frozen=True, kw_only=True)
24
+ class ReolinkNVRSwitchEntityDescription(SwitchEntityDescription, ReolinkHostEntityDescription):
25
+ method: Callable[[Host, bool], Any]
26
+ value: Callable[[Host], 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=..., cmd_key=..., cmd_id=..., supported=..., method, value) -> None: ...
28
+
29
+ @dataclass(frozen=True, kw_only=True)
30
+ class ReolinkChimeSwitchEntityDescription(SwitchEntityDescription, ReolinkChimeEntityDescription):
31
+ method: Callable[[Chime, bool], Any]
32
+ value: Callable[[Chime], bool | None]
33
+ 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, value) -> None: ...
34
+
35
+ SWITCH_ENTITIES: Incomplete
36
+ NVR_SWITCH_ENTITIES: Incomplete
37
+ CHIME_SWITCH_ENTITIES: Incomplete
38
+ DEPRECATED_HDR: Incomplete
39
+ DEPRECATED_NVR_SWITCHES: Incomplete
40
+
41
+ async def async_setup_entry(hass: HomeAssistant, config_entry: ReolinkConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
42
+
43
+ class ReolinkSwitchEntity(ReolinkChannelCoordinatorEntity, SwitchEntity):
44
+ entity_description: ReolinkSwitchEntityDescription
45
+ def __init__(self, reolink_data: ReolinkData, channel: int, entity_description: ReolinkSwitchEntityDescription) -> None: ...
46
+ @property
47
+ def is_on(self) -> bool | None: ...
48
+ async def async_turn_on(self, **kwargs: Any) -> None: ...
49
+ async def async_turn_off(self, **kwargs: Any) -> None: ...
50
+
51
+ class ReolinkNVRSwitchEntity(ReolinkHostCoordinatorEntity, SwitchEntity):
52
+ entity_description: ReolinkNVRSwitchEntityDescription
53
+ def __init__(self, reolink_data: ReolinkData, entity_description: ReolinkNVRSwitchEntityDescription) -> None: ...
54
+ @property
55
+ def is_on(self) -> bool: ...
56
+ async def async_turn_on(self, **kwargs: Any) -> None: ...
57
+ async def async_turn_off(self, **kwargs: Any) -> None: ...
58
+
59
+ class ReolinkChimeSwitchEntity(ReolinkChimeCoordinatorEntity, SwitchEntity):
60
+ entity_description: ReolinkChimeSwitchEntityDescription
61
+ def __init__(self, reolink_data: ReolinkData, chime: Chime, entity_description: ReolinkChimeSwitchEntityDescription) -> None: ...
62
+ @property
63
+ def is_on(self) -> bool | None: ...
64
+ async def async_turn_on(self, **kwargs: Any) -> None: ...
65
+ async def async_turn_off(self, **kwargs: Any) -> None: ...
@@ -0,0 +1,71 @@
1
+ from . import DEVICE_UPDATE_INTERVAL as DEVICE_UPDATE_INTERVAL
2
+ from .entity import ReolinkChannelCoordinatorEntity as ReolinkChannelCoordinatorEntity, ReolinkChannelEntityDescription as ReolinkChannelEntityDescription, ReolinkHostCoordinatorEntity as ReolinkHostCoordinatorEntity, ReolinkHostEntityDescription as ReolinkHostEntityDescription
3
+ from .util import ReolinkConfigEntry as ReolinkConfigEntry, ReolinkData as ReolinkData
4
+ from _typeshed import Incomplete
5
+ from dataclasses import dataclass
6
+ from homeassistant.components.update import UpdateDeviceClass as UpdateDeviceClass, UpdateEntity as UpdateEntity, UpdateEntityDescription as UpdateEntityDescription, UpdateEntityFeature as UpdateEntityFeature
7
+ from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, HomeAssistant as HomeAssistant
8
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
9
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
10
+ from homeassistant.helpers.event import async_call_later as async_call_later
11
+ from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity, DataUpdateCoordinator as DataUpdateCoordinator
12
+ from typing import Any
13
+
14
+ PARALLEL_UPDATES: int
15
+ RESUME_AFTER_INSTALL: int
16
+ POLL_AFTER_INSTALL: int
17
+ POLL_PROGRESS: int
18
+
19
+ @dataclass(frozen=True, kw_only=True)
20
+ class ReolinkUpdateEntityDescription(UpdateEntityDescription, ReolinkChannelEntityDescription):
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=..., display_precision=...) -> None: ...
22
+
23
+ @dataclass(frozen=True, kw_only=True)
24
+ class ReolinkHostUpdateEntityDescription(UpdateEntityDescription, ReolinkHostEntityDescription):
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=..., display_precision=...) -> None: ...
26
+
27
+ UPDATE_ENTITIES: Incomplete
28
+ HOST_UPDATE_ENTITIES: Incomplete
29
+
30
+ async def async_setup_entry(hass: HomeAssistant, config_entry: ReolinkConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
31
+
32
+ class ReolinkUpdateBaseEntity(CoordinatorEntity[DataUpdateCoordinator[None]], UpdateEntity):
33
+ _attr_release_url: str
34
+ _channel: Incomplete
35
+ _host: Incomplete
36
+ _cancel_update: Incomplete
37
+ _cancel_resume: Incomplete
38
+ _cancel_progress: Incomplete
39
+ _installing: bool
40
+ _reolink_data: Incomplete
41
+ def __init__(self, reolink_data: ReolinkData, channel: int | None, coordinator: DataUpdateCoordinator[None]) -> None: ...
42
+ @property
43
+ def installed_version(self) -> str | None: ...
44
+ @property
45
+ def latest_version(self) -> str | None: ...
46
+ @property
47
+ def in_progress(self) -> bool: ...
48
+ @property
49
+ def update_percentage(self) -> int: ...
50
+ @property
51
+ def supported_features(self) -> UpdateEntityFeature: ...
52
+ @property
53
+ def available(self) -> bool: ...
54
+ def version_is_newer(self, latest_version: str, installed_version: str) -> bool: ...
55
+ async def async_release_notes(self) -> str | None: ...
56
+ async def async_install(self, version: str | None, backup: bool, **kwargs: Any) -> None: ...
57
+ async def _pause_update_coordinator(self) -> None: ...
58
+ async def _resume_update_coordinator(self, *args: Any) -> None: ...
59
+ async def _async_update_progress(self, *args: Any) -> None: ...
60
+ async def _async_update_future(self, *args: Any) -> None: ...
61
+ async def async_added_to_hass(self) -> None: ...
62
+ async def async_will_remove_from_hass(self) -> None: ...
63
+
64
+ class ReolinkUpdateEntity(ReolinkUpdateBaseEntity, ReolinkChannelCoordinatorEntity):
65
+ entity_description: ReolinkUpdateEntityDescription
66
+ _channel: int
67
+ def __init__(self, reolink_data: ReolinkData, channel: int, entity_description: ReolinkUpdateEntityDescription) -> None: ...
68
+
69
+ class ReolinkHostUpdateEntity(ReolinkUpdateBaseEntity, ReolinkHostCoordinatorEntity):
70
+ entity_description: ReolinkHostUpdateEntityDescription
71
+ def __init__(self, reolink_data: ReolinkData, entity_description: ReolinkHostUpdateEntityDescription) -> None: ...
@@ -0,0 +1,18 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from .host import ReolinkHost as ReolinkHost
3
+ from dataclasses import dataclass
4
+ from homeassistant import config_entries as config_entries
5
+ from homeassistant.core import HomeAssistant as HomeAssistant
6
+ from homeassistant.helpers import device_registry as dr
7
+ from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator
8
+
9
+ type ReolinkConfigEntry = config_entries.ConfigEntry[ReolinkData]
10
+ @dataclass
11
+ class ReolinkData:
12
+ host: ReolinkHost
13
+ device_coordinator: DataUpdateCoordinator[None]
14
+ firmware_coordinator: DataUpdateCoordinator[None]
15
+ def __init__(self, host, device_coordinator, firmware_coordinator) -> None: ...
16
+
17
+ def is_connected(hass: HomeAssistant, config_entry: config_entries.ConfigEntry) -> bool: ...
18
+ def get_device_uid_and_ch(device: dr.DeviceEntry, host: ReolinkHost) -> tuple[list[str], int | None, bool]: ...
@@ -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: ...
@@ -69,6 +69,7 @@ class SensorEntity(Entity, cached_properties=CACHED_PROPERTIES_WITH_ATTR_):
69
69
  def suggested_display_precision(self) -> int | None: ...
70
70
  def native_unit_of_measurement(self) -> str | None: ...
71
71
  def suggested_unit_of_measurement(self) -> str | None: ...
72
+ def _unit_of_measurement_translation_key(self) -> str | None: ...
72
73
  @property
73
74
  def unit_of_measurement(self) -> str | None: ...
74
75
  @property
@@ -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