homeassistant-stubs 2024.6.3__py3-none-any.whl → 2024.7.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (620) hide show
  1. homeassistant-stubs/auth/__init__.pyi +2 -0
  2. homeassistant-stubs/auth/auth_store.pyi +1 -0
  3. homeassistant-stubs/auth/providers/homeassistant.pyi +10 -2
  4. homeassistant-stubs/block_async_io.pyi +23 -0
  5. homeassistant-stubs/bootstrap.pyi +4 -3
  6. homeassistant-stubs/components/accuweather/sensor.pyi +5 -9
  7. homeassistant-stubs/components/accuweather/weather.pyi +1 -1
  8. homeassistant-stubs/components/acer_projector/switch.pyi +2 -1
  9. homeassistant-stubs/components/air_quality/__init__.pyi +4 -3
  10. homeassistant-stubs/components/airgradient/__init__.pyi +8 -0
  11. homeassistant-stubs/components/airgradient/button.pyi +28 -0
  12. homeassistant-stubs/components/airgradient/const.pyi +2 -0
  13. homeassistant-stubs/components/airgradient/coordinator.pyi +2 -2
  14. homeassistant-stubs/components/airgradient/number.pyi +32 -0
  15. homeassistant-stubs/components/airgradient/select.pyi +14 -12
  16. homeassistant-stubs/components/airgradient/sensor.pyi +28 -10
  17. homeassistant-stubs/components/airgradient/switch.pyi +33 -0
  18. homeassistant-stubs/components/airnow/const.pyi +1 -0
  19. homeassistant-stubs/components/airnow/coordinator.pyi +1 -1
  20. homeassistant-stubs/components/airnow/sensor.pyi +1 -2
  21. homeassistant-stubs/components/airzone/__init__.pyi +4 -4
  22. homeassistant-stubs/components/airzone/binary_sensor.pyi +2 -2
  23. homeassistant-stubs/components/airzone/climate.pyi +3 -2
  24. homeassistant-stubs/components/airzone/diagnostics.pyi +2 -4
  25. homeassistant-stubs/components/airzone/entity.pyi +2 -1
  26. homeassistant-stubs/components/airzone/select.pyi +2 -2
  27. homeassistant-stubs/components/airzone/sensor.pyi +3 -2
  28. homeassistant-stubs/components/airzone/water_heater.pyi +3 -2
  29. homeassistant-stubs/components/airzone_cloud/__init__.pyi +3 -3
  30. homeassistant-stubs/components/airzone_cloud/binary_sensor.pyi +2 -3
  31. homeassistant-stubs/components/airzone_cloud/climate.pyi +8 -10
  32. homeassistant-stubs/components/airzone_cloud/diagnostics.pyi +2 -4
  33. homeassistant-stubs/components/airzone_cloud/select.pyi +2 -3
  34. homeassistant-stubs/components/airzone_cloud/sensor.pyi +2 -3
  35. homeassistant-stubs/components/airzone_cloud/water_heater.pyi +2 -3
  36. homeassistant-stubs/components/aladdin_connect/__init__.pyi +4 -13
  37. homeassistant-stubs/components/aladdin_connect/config_flow.pyi +3 -16
  38. homeassistant-stubs/components/alarm_control_panel/__init__.pyi +3 -3
  39. homeassistant-stubs/components/alexa/capabilities.pyi +2 -2
  40. homeassistant-stubs/components/alexa/entities.pyi +25 -24
  41. homeassistant-stubs/components/alpha_vantage/sensor.pyi +2 -1
  42. homeassistant-stubs/components/ambient_network/coordinator.pyi +2 -0
  43. homeassistant-stubs/components/ambient_network/sensor.pyi +1 -0
  44. homeassistant-stubs/components/androidtv/entity.pyi +1 -0
  45. homeassistant-stubs/components/androidtv/remote.pyi +21 -0
  46. homeassistant-stubs/components/androidtv_remote/config_flow.pyi +11 -1
  47. homeassistant-stubs/components/androidtv_remote/const.pyi +3 -0
  48. homeassistant-stubs/components/androidtv_remote/entity.pyi +2 -1
  49. homeassistant-stubs/components/androidtv_remote/media_player.pyi +4 -1
  50. homeassistant-stubs/components/androidtv_remote/remote.pyi +3 -0
  51. homeassistant-stubs/components/anel_pwrctrl/switch.pyi +2 -1
  52. homeassistant-stubs/components/apprise/notify.pyi +2 -1
  53. homeassistant-stubs/components/apsystems/__init__.pyi +9 -2
  54. homeassistant-stubs/components/apsystems/entity.pyi +10 -0
  55. homeassistant-stubs/components/apsystems/number.pyi +25 -0
  56. homeassistant-stubs/components/apsystems/sensor.pyi +6 -7
  57. homeassistant-stubs/components/aqualogic/sensor.pyi +2 -1
  58. homeassistant-stubs/components/aqualogic/switch.pyi +2 -1
  59. homeassistant-stubs/components/aquostv/media_player.pyi +2 -1
  60. homeassistant-stubs/components/assist_pipeline/pipeline.pyi +8 -7
  61. homeassistant-stubs/components/assist_pipeline/select.pyi +1 -1
  62. homeassistant-stubs/components/asuswrt/config_flow.pyi +1 -0
  63. homeassistant-stubs/components/automation/__init__.pyi +10 -5
  64. homeassistant-stubs/components/automation/config.pyi +11 -1
  65. homeassistant-stubs/components/automation/trace.pyi +2 -2
  66. homeassistant-stubs/components/axis/config_flow.pyi +1 -0
  67. homeassistant-stubs/components/baf/binary_sensor.pyi +2 -4
  68. homeassistant-stubs/components/baf/entity.pyi +6 -1
  69. homeassistant-stubs/components/baf/number.pyi +2 -4
  70. homeassistant-stubs/components/baf/sensor.pyi +2 -4
  71. homeassistant-stubs/components/baf/switch.pyi +2 -4
  72. homeassistant-stubs/components/bang_olufsen/const.pyi +2 -0
  73. homeassistant-stubs/components/bang_olufsen/media_player.pyi +3 -2
  74. homeassistant-stubs/components/bayesian/binary_sensor.pyi +2 -1
  75. homeassistant-stubs/components/binary_sensor/__init__.pyi +3 -2
  76. homeassistant-stubs/components/bitcoin/sensor.pyi +2 -1
  77. homeassistant-stubs/components/blockchain/sensor.pyi +2 -1
  78. homeassistant-stubs/components/blueprint/errors.pyi +1 -1
  79. homeassistant-stubs/components/blueprint/websocket_api.pyi +6 -3
  80. homeassistant-stubs/components/bluetooth/passive_update_coordinator.pyi +3 -3
  81. homeassistant-stubs/components/bmw_connected_drive/const.pyi +0 -1
  82. homeassistant-stubs/components/bmw_connected_drive/select.pyi +1 -1
  83. homeassistant-stubs/components/bmw_connected_drive/sensor.pyi +1 -1
  84. homeassistant-stubs/components/brother/config_flow.pyi +9 -1
  85. homeassistant-stubs/components/button/__init__.pyi +4 -3
  86. homeassistant-stubs/components/calendar/__init__.pyi +2 -4
  87. homeassistant-stubs/components/camera/__init__.pyi +8 -7
  88. homeassistant-stubs/components/cert_expiry/sensor.pyi +2 -1
  89. homeassistant-stubs/components/clickatell/notify.pyi +2 -1
  90. homeassistant-stubs/components/clicksend/notify.pyi +2 -1
  91. homeassistant-stubs/components/climate/__init__.pyi +5 -4
  92. homeassistant-stubs/components/cloud/__init__.pyi +1 -1
  93. homeassistant-stubs/components/cloud/account_link.pyi +1 -1
  94. homeassistant-stubs/components/cloud/binary_sensor.pyi +1 -1
  95. homeassistant-stubs/components/cloud/const.pyi +6 -1
  96. homeassistant-stubs/components/cloud/http_api.pyi +1 -1
  97. homeassistant-stubs/components/cloud/repairs.pyi +1 -3
  98. homeassistant-stubs/components/cloud/stt.pyi +1 -1
  99. homeassistant-stubs/components/cloud/system_health.pyi +1 -3
  100. homeassistant-stubs/components/cloud/tts.pyi +1 -1
  101. homeassistant-stubs/components/config/auth_provider_homeassistant.pyi +1 -0
  102. homeassistant-stubs/components/config/scene.pyi +3 -1
  103. homeassistant-stubs/components/counter/__init__.pyi +2 -2
  104. homeassistant-stubs/components/cover/__init__.pyi +3 -2
  105. homeassistant-stubs/components/demo/tts.pyi +2 -1
  106. homeassistant-stubs/components/derivative/__init__.pyi +2 -1
  107. homeassistant-stubs/components/derivative/config_flow.pyi +11 -4
  108. homeassistant-stubs/components/derivative/sensor.pyi +3 -1
  109. homeassistant-stubs/components/device_automation/__init__.pyi +2 -2
  110. homeassistant-stubs/components/dlna_dmr/config_flow.pyi +1 -0
  111. homeassistant-stubs/components/dnsip/__init__.pyi +4 -2
  112. homeassistant-stubs/components/dnsip/config_flow.pyi +4 -3
  113. homeassistant-stubs/components/dnsip/const.pyi +2 -0
  114. homeassistant-stubs/components/dnsip/sensor.pyi +4 -3
  115. homeassistant-stubs/components/ecovacs/binary_sensor.pyi +3 -3
  116. homeassistant-stubs/components/ecovacs/button.pyi +5 -5
  117. homeassistant-stubs/components/ecovacs/config_flow.pyi +1 -0
  118. homeassistant-stubs/components/ecovacs/controller.pyi +4 -4
  119. homeassistant-stubs/components/ecovacs/entity.pyi +8 -10
  120. homeassistant-stubs/components/ecovacs/event.pyi +3 -3
  121. homeassistant-stubs/components/ecovacs/image.pyi +2 -2
  122. homeassistant-stubs/components/ecovacs/lawn_mower.pyi +3 -3
  123. homeassistant-stubs/components/ecovacs/number.pyi +3 -3
  124. homeassistant-stubs/components/ecovacs/select.pyi +3 -3
  125. homeassistant-stubs/components/ecovacs/sensor.pyi +6 -6
  126. homeassistant-stubs/components/ecovacs/switch.pyi +4 -4
  127. homeassistant-stubs/components/ecovacs/vacuum.pyi +9 -5
  128. homeassistant-stubs/components/ecowitt/binary_sensor.pyi +1 -0
  129. homeassistant-stubs/components/efergy/__init__.pyi +3 -2
  130. homeassistant-stubs/components/efergy/sensor.pyi +3 -4
  131. homeassistant-stubs/components/electrasmart/__init__.pyi +12 -0
  132. homeassistant-stubs/components/electrasmart/climate.pyi +64 -0
  133. homeassistant-stubs/components/electrasmart/config_flow.pyi +24 -0
  134. homeassistant-stubs/components/electrasmart/const.pyi +10 -0
  135. homeassistant-stubs/components/elkm1/alarm_control_panel.pyi +2 -1
  136. homeassistant-stubs/components/elkm1/const.pyi +2 -1
  137. homeassistant-stubs/components/elkm1/sensor.pyi +2 -1
  138. homeassistant-stubs/components/energy/websocket_api.pyi +5 -5
  139. homeassistant-stubs/components/enigma2/__init__.pyi +3 -2
  140. homeassistant-stubs/components/enigma2/config_flow.pyi +10 -1
  141. homeassistant-stubs/components/enigma2/media_player.pyi +3 -2
  142. homeassistant-stubs/components/enphase_envoy/config_flow.pyi +8 -2
  143. homeassistant-stubs/components/enphase_envoy/const.pyi +2 -0
  144. homeassistant-stubs/components/enphase_envoy/diagnostics.pyi +3 -1
  145. homeassistant-stubs/components/esphome/__init__.pyi +5 -5
  146. homeassistant-stubs/components/esphome/alarm_control_panel.pyi +3 -5
  147. homeassistant-stubs/components/esphome/binary_sensor.pyi +2 -3
  148. homeassistant-stubs/components/esphome/button.pyi +3 -5
  149. homeassistant-stubs/components/esphome/camera.pyi +3 -5
  150. homeassistant-stubs/components/esphome/climate.pyi +3 -6
  151. homeassistant-stubs/components/esphome/cover.pyi +3 -5
  152. homeassistant-stubs/components/esphome/date.pyi +3 -5
  153. homeassistant-stubs/components/esphome/datetime.pyi +3 -5
  154. homeassistant-stubs/components/esphome/diagnostics.pyi +3 -3
  155. homeassistant-stubs/components/esphome/domain_data.pyi +4 -8
  156. homeassistant-stubs/components/esphome/entity.pyi +2 -4
  157. homeassistant-stubs/components/esphome/entry_data.pyi +4 -3
  158. homeassistant-stubs/components/esphome/event.pyi +3 -5
  159. homeassistant-stubs/components/esphome/fan.pyi +3 -6
  160. homeassistant-stubs/components/esphome/light.pyi +3 -6
  161. homeassistant-stubs/components/esphome/lock.pyi +3 -5
  162. homeassistant-stubs/components/esphome/manager.pyi +4 -5
  163. homeassistant-stubs/components/esphome/media_player.pyi +3 -5
  164. homeassistant-stubs/components/esphome/number.pyi +3 -5
  165. homeassistant-stubs/components/esphome/select.pyi +2 -4
  166. homeassistant-stubs/components/esphome/switch.pyi +3 -5
  167. homeassistant-stubs/components/esphome/text.pyi +3 -5
  168. homeassistant-stubs/components/esphome/time.pyi +3 -5
  169. homeassistant-stubs/components/esphome/update.pyi +23 -2
  170. homeassistant-stubs/components/esphome/valve.pyi +3 -5
  171. homeassistant-stubs/components/event/__init__.pyi +3 -1
  172. homeassistant-stubs/components/evohome/__init__.pyi +8 -49
  173. homeassistant-stubs/components/evohome/climate.pyi +2 -2
  174. homeassistant-stubs/components/evohome/const.pyi +39 -16
  175. homeassistant-stubs/components/evohome/coordinator.pyi +33 -0
  176. homeassistant-stubs/components/evohome/helpers.pyi +13 -0
  177. homeassistant-stubs/components/fan/__init__.pyi +3 -2
  178. homeassistant-stubs/components/fastdotcom/__init__.pyi +2 -7
  179. homeassistant-stubs/components/fastdotcom/config_flow.pyi +0 -2
  180. homeassistant-stubs/components/feedreader/__init__.pyi +10 -5
  181. homeassistant-stubs/components/feedreader/config_flow.pyi +30 -0
  182. homeassistant-stubs/components/feedreader/const.pyi +5 -0
  183. homeassistant-stubs/components/feedreader/coordinator.pyi +4 -4
  184. homeassistant-stubs/components/filter/sensor.pyi +2 -1
  185. homeassistant-stubs/components/flux_led/light.pyi +4 -3
  186. homeassistant-stubs/components/fritz/switch.pyi +1 -1
  187. homeassistant-stubs/components/fritzbox/climate.pyi +14 -9
  188. homeassistant-stubs/components/fritzbox/switch.pyi +3 -0
  189. homeassistant-stubs/components/fronius/config_flow.pyi +3 -2
  190. homeassistant-stubs/components/frontend/__init__.pyi +9 -4
  191. homeassistant-stubs/components/fully_kiosk/camera.pyi +21 -0
  192. homeassistant-stubs/components/fully_kiosk/image.pyi +30 -0
  193. homeassistant-stubs/components/fully_kiosk/media_player.pyi +2 -0
  194. homeassistant-stubs/components/fully_kiosk/notify.pyi +25 -0
  195. homeassistant-stubs/components/generic_hygrostat/__init__.pyi +4 -0
  196. homeassistant-stubs/components/generic_hygrostat/config_flow.pyi +19 -0
  197. homeassistant-stubs/components/generic_hygrostat/humidifier.pyi +7 -2
  198. homeassistant-stubs/components/generic_thermostat/__init__.pyi +6 -0
  199. homeassistant-stubs/components/generic_thermostat/climate.pyi +7 -1
  200. homeassistant-stubs/components/generic_thermostat/config_flow.pyi +19 -0
  201. homeassistant-stubs/components/geo_location/__init__.pyi +4 -3
  202. homeassistant-stubs/components/glances/__init__.pyi +3 -2
  203. homeassistant-stubs/components/glances/sensor.pyi +2 -3
  204. homeassistant-stubs/components/goalzero/__init__.pyi +3 -5
  205. homeassistant-stubs/components/goalzero/binary_sensor.pyi +2 -3
  206. homeassistant-stubs/components/goalzero/coordinator.pyi +3 -1
  207. homeassistant-stubs/components/goalzero/sensor.pyi +2 -3
  208. homeassistant-stubs/components/goalzero/switch.pyi +2 -3
  209. homeassistant-stubs/components/google_assistant_sdk/__init__.pyi +2 -2
  210. homeassistant-stubs/components/google_assistant_sdk/diagnostics.pyi +9 -0
  211. homeassistant-stubs/components/google_assistant_sdk/helpers.pyi +1 -0
  212. homeassistant-stubs/components/google_sheets/__init__.pyi +4 -3
  213. homeassistant-stubs/components/google_sheets/config_flow.pyi +3 -2
  214. homeassistant-stubs/components/gpsd/sensor.pyi +2 -1
  215. homeassistant-stubs/components/group/binary_sensor.pyi +2 -1
  216. homeassistant-stubs/components/group/cover.pyi +2 -1
  217. homeassistant-stubs/components/group/entity.pyi +2 -2
  218. homeassistant-stubs/components/group/event.pyi +2 -1
  219. homeassistant-stubs/components/group/fan.pyi +2 -1
  220. homeassistant-stubs/components/group/light.pyi +2 -1
  221. homeassistant-stubs/components/group/lock.pyi +2 -1
  222. homeassistant-stubs/components/group/media_player.pyi +2 -1
  223. homeassistant-stubs/components/group/notify.pyi +2 -1
  224. homeassistant-stubs/components/group/registry.pyi +8 -2
  225. homeassistant-stubs/components/group/switch.pyi +2 -1
  226. homeassistant-stubs/components/history_stats/sensor.pyi +4 -1
  227. homeassistant-stubs/components/homeassistant/const.pyi +3 -1
  228. homeassistant-stubs/components/homekit/aidmanager.pyi +2 -2
  229. homeassistant-stubs/components/homekit_controller/config_flow.pyi +1 -0
  230. homeassistant-stubs/components/homeworks/__init__.pyi +2 -5
  231. homeassistant-stubs/components/homeworks/config_flow.pyi +1 -6
  232. homeassistant-stubs/components/http/__init__.pyi +20 -3
  233. homeassistant-stubs/components/http/cors.pyi +1 -1
  234. homeassistant-stubs/components/http/data_validator.pyi +2 -1
  235. homeassistant-stubs/components/humidifier/__init__.pyi +3 -2
  236. homeassistant-stubs/components/humidifier/device_action.pyi +1 -1
  237. homeassistant-stubs/components/husqvarna_automower/__init__.pyi +3 -3
  238. homeassistant-stubs/components/husqvarna_automower/binary_sensor.pyi +2 -3
  239. homeassistant-stubs/components/husqvarna_automower/button.pyi +22 -0
  240. homeassistant-stubs/components/husqvarna_automower/device_tracker.pyi +2 -3
  241. homeassistant-stubs/components/husqvarna_automower/diagnostics.pyi +2 -2
  242. homeassistant-stubs/components/husqvarna_automower/entity.pyi +7 -1
  243. homeassistant-stubs/components/husqvarna_automower/lawn_mower.pyi +14 -5
  244. homeassistant-stubs/components/husqvarna_automower/number.pyi +4 -5
  245. homeassistant-stubs/components/husqvarna_automower/select.pyi +2 -3
  246. homeassistant-stubs/components/husqvarna_automower/sensor.pyi +10 -5
  247. homeassistant-stubs/components/husqvarna_automower/switch.pyi +4 -8
  248. homeassistant-stubs/components/hydrawise/coordinator.pyi +3 -3
  249. homeassistant-stubs/components/hydrawise/sensor.pyi +6 -1
  250. homeassistant-stubs/components/ibeacon/config_flow.pyi +1 -0
  251. homeassistant-stubs/components/idasen_desk/coordinator.pyi +2 -5
  252. homeassistant-stubs/components/idasen_desk/sensor.pyi +3 -0
  253. homeassistant-stubs/components/image/__init__.pyi +3 -2
  254. homeassistant-stubs/components/image_upload/__init__.pyi +7 -3
  255. homeassistant-stubs/components/imap/__init__.pyi +5 -4
  256. homeassistant-stubs/components/imap/diagnostics.pyi +3 -5
  257. homeassistant-stubs/components/imap/sensor.pyi +5 -5
  258. homeassistant-stubs/components/input_button/__init__.pyi +3 -4
  259. homeassistant-stubs/components/input_select/__init__.pyi +2 -2
  260. homeassistant-stubs/components/input_text/__init__.pyi +3 -4
  261. homeassistant-stubs/components/integration/__init__.pyi +2 -0
  262. homeassistant-stubs/components/integration/config_flow.pyi +1 -1
  263. homeassistant-stubs/components/integration/const.pyi +1 -0
  264. homeassistant-stubs/components/integration/sensor.pyi +33 -12
  265. homeassistant-stubs/components/intent/timers.pyi +7 -3
  266. homeassistant-stubs/components/islamic_prayer_times/__init__.pyi +4 -3
  267. homeassistant-stubs/components/islamic_prayer_times/sensor.pyi +3 -3
  268. homeassistant-stubs/components/isy994/services.pyi +3 -2
  269. homeassistant-stubs/components/jewish_calendar/binary_sensor.pyi +6 -12
  270. homeassistant-stubs/components/jewish_calendar/entity.pyi +19 -0
  271. homeassistant-stubs/components/jewish_calendar/sensor.pyi +8 -13
  272. homeassistant-stubs/components/knocki/__init__.pyi +12 -0
  273. homeassistant-stubs/components/knocki/config_flow.pyi +12 -0
  274. homeassistant-stubs/components/knocki/const.pyi +4 -0
  275. homeassistant-stubs/components/knocki/coordinator.pyi +13 -0
  276. homeassistant-stubs/components/knocki/event.pyi +26 -0
  277. homeassistant-stubs/components/knx/config_flow.pyi +1 -1
  278. homeassistant-stubs/components/knx/device_trigger.pyi +1 -1
  279. homeassistant-stubs/components/knx/trigger.pyi +2 -3
  280. homeassistant-stubs/components/knx/websocket.pyi +1 -0
  281. homeassistant-stubs/components/lacrosse/sensor.pyi +2 -1
  282. homeassistant-stubs/components/lamarzocco/__init__.pyi +8 -3
  283. homeassistant-stubs/components/lamarzocco/binary_sensor.pyi +4 -5
  284. homeassistant-stubs/components/lamarzocco/button.pyi +4 -5
  285. homeassistant-stubs/components/lamarzocco/calendar.pyi +9 -3
  286. homeassistant-stubs/components/lamarzocco/config_flow.pyi +7 -3
  287. homeassistant-stubs/components/lamarzocco/const.pyi +1 -2
  288. homeassistant-stubs/components/lamarzocco/coordinator.pyi +13 -11
  289. homeassistant-stubs/components/lamarzocco/diagnostics.pyi +10 -5
  290. homeassistant-stubs/components/lamarzocco/entity.pyi +3 -3
  291. homeassistant-stubs/components/lamarzocco/number.pyi +9 -13
  292. homeassistant-stubs/components/lamarzocco/select.pyi +13 -7
  293. homeassistant-stubs/components/lamarzocco/sensor.pyi +4 -5
  294. homeassistant-stubs/components/lamarzocco/switch.pyi +21 -6
  295. homeassistant-stubs/components/lamarzocco/update.pyi +5 -10
  296. homeassistant-stubs/components/lawn_mower/__init__.pyi +3 -2
  297. homeassistant-stubs/components/lidarr/__init__.pyi +12 -2
  298. homeassistant-stubs/components/lidarr/config_flow.pyi +2 -1
  299. homeassistant-stubs/components/lidarr/coordinator.pyi +0 -1
  300. homeassistant-stubs/components/lidarr/sensor.pyi +3 -4
  301. homeassistant-stubs/components/lifx/light.pyi +3 -2
  302. homeassistant-stubs/components/light/__init__.pyi +8 -6
  303. homeassistant-stubs/components/light/device_action.pyi +1 -1
  304. homeassistant-stubs/components/litterrobot/__init__.pyi +4 -3
  305. homeassistant-stubs/components/litterrobot/binary_sensor.pyi +2 -4
  306. homeassistant-stubs/components/litterrobot/button.pyi +2 -4
  307. homeassistant-stubs/components/litterrobot/select.pyi +2 -3
  308. homeassistant-stubs/components/litterrobot/sensor.pyi +2 -4
  309. homeassistant-stubs/components/litterrobot/switch.pyi +2 -4
  310. homeassistant-stubs/components/litterrobot/time.pyi +2 -4
  311. homeassistant-stubs/components/litterrobot/update.pyi +3 -4
  312. homeassistant-stubs/components/litterrobot/vacuum.pyi +2 -4
  313. homeassistant-stubs/components/lock/__init__.pyi +4 -3
  314. homeassistant-stubs/components/logbook/processor.pyi +4 -3
  315. homeassistant-stubs/components/london_underground/sensor.pyi +2 -1
  316. homeassistant-stubs/components/mastodon/notify.pyi +2 -1
  317. homeassistant-stubs/components/matrix/notify.pyi +2 -1
  318. homeassistant-stubs/components/matter/binary_sensor.pyi +1 -1
  319. homeassistant-stubs/components/matter/discovery.pyi +3 -3
  320. homeassistant-stubs/components/matter/entity.pyi +8 -1
  321. homeassistant-stubs/components/matter/event.pyi +0 -2
  322. homeassistant-stubs/components/matter/fan.pyi +2 -2
  323. homeassistant-stubs/components/matter/lock.pyi +1 -0
  324. homeassistant-stubs/components/matter/models.pyi +1 -2
  325. homeassistant-stubs/components/matter/number.pyi +24 -0
  326. homeassistant-stubs/components/matter/sensor.pyi +1 -1
  327. homeassistant-stubs/components/media_player/__init__.pyi +3 -2
  328. homeassistant-stubs/components/media_player/intent.pyi +2 -1
  329. homeassistant-stubs/components/mikrotik/__init__.pyi +2 -1
  330. homeassistant-stubs/components/mikrotik/device_tracker.pyi +2 -3
  331. homeassistant-stubs/components/min_max/sensor.pyi +2 -1
  332. homeassistant-stubs/components/modbus/sensor.pyi +2 -2
  333. homeassistant-stubs/components/monzo/config_flow.pyi +5 -1
  334. homeassistant-stubs/components/monzo/coordinator.pyi +1 -0
  335. homeassistant-stubs/components/motionmount/select.pyi +5 -2
  336. homeassistant-stubs/components/mqtt/async_client.pyi +22 -0
  337. homeassistant-stubs/components/mqtt/client.pyi +13 -28
  338. homeassistant-stubs/components/mqtt/climate.pyi +2 -3
  339. homeassistant-stubs/components/mqtt/cover.pyi +2 -3
  340. homeassistant-stubs/components/mqtt/device_tracker.pyi +2 -3
  341. homeassistant-stubs/components/mqtt/event.pyi +2 -3
  342. homeassistant-stubs/components/mqtt/fan.pyi +2 -3
  343. homeassistant-stubs/components/mqtt/humidifier.pyi +2 -3
  344. homeassistant-stubs/components/mqtt/image.pyi +2 -3
  345. homeassistant-stubs/components/mqtt/lawn_mower.pyi +2 -3
  346. homeassistant-stubs/components/mqtt/light/__init__.pyi +1 -1
  347. homeassistant-stubs/components/mqtt/light/schema_basic.pyi +2 -3
  348. homeassistant-stubs/components/mqtt/light/schema_json.pyi +2 -3
  349. homeassistant-stubs/components/mqtt/light/schema_template.pyi +2 -3
  350. homeassistant-stubs/components/mqtt/mixins.pyi +4 -4
  351. homeassistant-stubs/components/mqtt/models.pyi +2 -3
  352. homeassistant-stubs/components/mqtt/number.pyi +2 -3
  353. homeassistant-stubs/components/mqtt/select.pyi +2 -3
  354. homeassistant-stubs/components/mqtt/sensor.pyi +2 -3
  355. homeassistant-stubs/components/mqtt/siren.pyi +2 -3
  356. homeassistant-stubs/components/mqtt/text.pyi +2 -3
  357. homeassistant-stubs/components/mqtt/update.pyi +2 -3
  358. homeassistant-stubs/components/mqtt/util.pyi +23 -2
  359. homeassistant-stubs/components/mqtt/vacuum.pyi +2 -3
  360. homeassistant-stubs/components/mqtt/valve.pyi +2 -3
  361. homeassistant-stubs/components/mqtt/water_heater.pyi +2 -3
  362. homeassistant-stubs/components/mysensors/config_flow.pyi +1 -0
  363. homeassistant-stubs/components/mysensors/sensor.pyi +1 -1
  364. homeassistant-stubs/components/myuplink/__init__.pyi +4 -1
  365. homeassistant-stubs/components/myuplink/binary_sensor.pyi +2 -4
  366. homeassistant-stubs/components/myuplink/diagnostics.pyi +2 -4
  367. homeassistant-stubs/components/myuplink/number.pyi +2 -4
  368. homeassistant-stubs/components/myuplink/sensor.pyi +3 -5
  369. homeassistant-stubs/components/myuplink/switch.pyi +2 -4
  370. homeassistant-stubs/components/myuplink/update.pyi +2 -4
  371. homeassistant-stubs/components/nam/const.pyi +1 -0
  372. homeassistant-stubs/components/nam/sensor.pyi +1 -1
  373. homeassistant-stubs/components/nanoleaf/__init__.pyi +6 -14
  374. homeassistant-stubs/components/nanoleaf/button.pyi +4 -7
  375. homeassistant-stubs/components/nanoleaf/coordinator.pyi +12 -0
  376. homeassistant-stubs/components/nanoleaf/device_trigger.pyi +1 -0
  377. homeassistant-stubs/components/nanoleaf/diagnostics.pyi +2 -4
  378. homeassistant-stubs/components/nanoleaf/entity.pyi +4 -4
  379. homeassistant-stubs/components/nanoleaf/event.pyi +18 -0
  380. homeassistant-stubs/components/nanoleaf/light.pyi +4 -7
  381. homeassistant-stubs/components/number/__init__.pyi +3 -1
  382. homeassistant-stubs/components/number/const.pyi +2 -1
  383. homeassistant-stubs/components/overkiz/water_heater.pyi +2 -1
  384. homeassistant-stubs/components/overkiz/water_heater_entities/__init__.pyi +2 -0
  385. homeassistant-stubs/components/overkiz/water_heater_entities/atlantic_domestic_hot_water_production_mlb_component.pyi +32 -0
  386. homeassistant-stubs/components/ping/binary_sensor.pyi +2 -8
  387. homeassistant-stubs/components/ping/config_flow.pyi +2 -4
  388. homeassistant-stubs/components/ping/device_tracker.pyi +4 -14
  389. homeassistant-stubs/components/plugwise/button.pyi +20 -0
  390. homeassistant-stubs/components/plugwise/const.pyi +3 -0
  391. homeassistant-stubs/components/plugwise/coordinator.pyi +5 -3
  392. homeassistant-stubs/components/plugwise/number.pyi +2 -4
  393. homeassistant-stubs/components/plugwise/select.pyi +3 -5
  394. homeassistant-stubs/components/prometheus/__init__.pyi +1 -1
  395. homeassistant-stubs/components/proximity/config_flow.pyi +2 -1
  396. homeassistant-stubs/components/radarr/__init__.pyi +14 -2
  397. homeassistant-stubs/components/radarr/binary_sensor.pyi +3 -4
  398. homeassistant-stubs/components/radarr/calendar.pyi +2 -4
  399. homeassistant-stubs/components/radarr/config_flow.pyi +3 -4
  400. homeassistant-stubs/components/radarr/coordinator.pyi +2 -2
  401. homeassistant-stubs/components/radarr/sensor.pyi +2 -4
  402. homeassistant-stubs/components/rainmachine/switch.pyi +1 -0
  403. homeassistant-stubs/components/recorder/const.pyi +3 -1
  404. homeassistant-stubs/components/recorder/core.pyi +2 -2
  405. homeassistant-stubs/components/recorder/db_schema.pyi +3 -1
  406. homeassistant-stubs/components/recorder/purge.pyi +1 -1
  407. homeassistant-stubs/components/recorder/statistics.pyi +7 -4
  408. homeassistant-stubs/components/recorder/table_managers/event_data.pyi +3 -3
  409. homeassistant-stubs/components/recorder/table_managers/event_types.pyi +1 -1
  410. homeassistant-stubs/components/recorder/table_managers/state_attributes.pyi +3 -3
  411. homeassistant-stubs/components/recorder/table_managers/states_meta.pyi +1 -1
  412. homeassistant-stubs/components/recorder/util.pyi +4 -3
  413. homeassistant-stubs/components/remote/__init__.pyi +5 -4
  414. homeassistant-stubs/components/rest/binary_sensor.pyi +2 -1
  415. homeassistant-stubs/components/rest/notify.pyi +2 -1
  416. homeassistant-stubs/components/rest/sensor.pyi +2 -1
  417. homeassistant-stubs/components/rest/switch.pyi +2 -1
  418. homeassistant-stubs/components/rfxtrx/config_flow.pyi +1 -0
  419. homeassistant-stubs/components/roborock/__init__.pyi +30 -0
  420. homeassistant-stubs/components/roborock/binary_sensor.pyi +29 -0
  421. homeassistant-stubs/components/roborock/button.pyi +28 -0
  422. homeassistant-stubs/components/roborock/config_flow.pyi +30 -0
  423. homeassistant-stubs/components/roborock/const.pyi +13 -0
  424. homeassistant-stubs/components/roborock/coordinator.pyi +47 -0
  425. homeassistant-stubs/components/roborock/device.pyi +53 -0
  426. homeassistant-stubs/components/roborock/diagnostics.pyi +13 -0
  427. homeassistant-stubs/components/roborock/image.pyi +37 -0
  428. homeassistant-stubs/components/roborock/models.pyi +27 -0
  429. homeassistant-stubs/components/roborock/number.pyi +35 -0
  430. homeassistant-stubs/components/roborock/select.pyi +37 -0
  431. homeassistant-stubs/components/roborock/sensor.pyi +47 -0
  432. homeassistant-stubs/components/roborock/switch.pyi +37 -0
  433. homeassistant-stubs/components/roborock/time.pyi +38 -0
  434. homeassistant-stubs/components/roborock/vacuum.pyi +39 -0
  435. homeassistant-stubs/components/roku/media_player.pyi +2 -1
  436. homeassistant-stubs/components/schedule/__init__.pyi +5 -5
  437. homeassistant-stubs/components/select/__init__.pyi +3 -1
  438. homeassistant-stubs/components/sensor/__init__.pyi +3 -1
  439. homeassistant-stubs/components/sensor/const.pyi +3 -2
  440. homeassistant-stubs/components/sensor/device_condition.pyi +1 -0
  441. homeassistant-stubs/components/sensor/device_trigger.pyi +1 -0
  442. homeassistant-stubs/components/shelly/__init__.pyi +1 -2
  443. homeassistant-stubs/components/shelly/climate.pyi +3 -0
  444. homeassistant-stubs/components/shelly/const.pyi +0 -1
  445. homeassistant-stubs/components/shelly/coordinator.pyi +3 -2
  446. homeassistant-stubs/components/shelly/switch.pyi +2 -18
  447. homeassistant-stubs/components/shelly/valve.pyi +1 -1
  448. homeassistant-stubs/components/simplisafe/alarm_control_panel.pyi +4 -5
  449. homeassistant-stubs/components/siren/__init__.pyi +4 -3
  450. homeassistant-stubs/components/sql/sensor.pyi +2 -1
  451. homeassistant-stubs/components/starlink/const.pyi +1 -0
  452. homeassistant-stubs/components/starlink/device_tracker.pyi +6 -2
  453. homeassistant-stubs/components/statistics/__init__.pyi +8 -1
  454. homeassistant-stubs/components/statistics/config_flow.pyi +23 -0
  455. homeassistant-stubs/components/statistics/sensor.pyi +7 -2
  456. homeassistant-stubs/components/stream/fmp4utils.pyi +2 -2
  457. homeassistant-stubs/components/stream/worker.pyi +3 -2
  458. homeassistant-stubs/components/streamlabswater/__init__.pyi +1 -6
  459. homeassistant-stubs/components/streamlabswater/config_flow.pyi +0 -1
  460. homeassistant-stubs/components/suez_water/config_flow.pyi +0 -1
  461. homeassistant-stubs/components/suez_water/sensor.pyi +3 -8
  462. homeassistant-stubs/components/switch/__init__.pyi +4 -3
  463. homeassistant-stubs/components/switch/light.pyi +2 -1
  464. homeassistant-stubs/components/switcher_kis/__init__.pyi +3 -0
  465. homeassistant-stubs/components/switcher_kis/switch.pyi +3 -2
  466. homeassistant-stubs/components/synology_dsm/config_flow.pyi +2 -2
  467. homeassistant-stubs/components/synology_dsm/const.pyi +1 -0
  468. homeassistant-stubs/components/synology_dsm/media_source.pyi +2 -1
  469. homeassistant-stubs/components/systemmonitor/config_flow.pyi +0 -2
  470. homeassistant-stubs/components/systemmonitor/sensor.pyi +4 -7
  471. homeassistant-stubs/components/tag/__init__.pyi +4 -5
  472. homeassistant-stubs/components/tami4/__init__.pyi +1 -1
  473. homeassistant-stubs/components/tami4/coordinator.pyi +3 -5
  474. homeassistant-stubs/components/tami4/sensor.pyi +3 -3
  475. homeassistant-stubs/components/tautulli/__init__.pyi +3 -2
  476. homeassistant-stubs/components/tautulli/coordinator.pyi +2 -2
  477. homeassistant-stubs/components/tautulli/sensor.pyi +3 -3
  478. homeassistant-stubs/components/threshold/__init__.pyi +2 -1
  479. homeassistant-stubs/components/threshold/binary_sensor.pyi +11 -3
  480. homeassistant-stubs/components/threshold/config_flow.pyi +8 -0
  481. homeassistant-stubs/components/tibber/__init__.pyi +1 -0
  482. homeassistant-stubs/components/tibber/sensor.pyi +12 -6
  483. homeassistant-stubs/components/tibber/services.pyi +15 -0
  484. homeassistant-stubs/components/time_date/sensor.pyi +3 -3
  485. homeassistant-stubs/components/timer/__init__.pyi +2 -2
  486. homeassistant-stubs/components/todo/__init__.pyi +3 -2
  487. homeassistant-stubs/components/tplink/__init__.pyi +14 -8
  488. homeassistant-stubs/components/tplink/binary_sensor.pyi +22 -0
  489. homeassistant-stubs/components/tplink/button.pyi +22 -0
  490. homeassistant-stubs/components/tplink/climate.pyi +42 -0
  491. homeassistant-stubs/components/tplink/config_flow.pyi +5 -5
  492. homeassistant-stubs/components/tplink/const.pyi +5 -1
  493. homeassistant-stubs/components/tplink/coordinator.pyi +2 -2
  494. homeassistant-stubs/components/tplink/diagnostics.pyi +2 -4
  495. homeassistant-stubs/components/tplink/entity.pyi +49 -7
  496. homeassistant-stubs/components/tplink/fan.pyi +31 -0
  497. homeassistant-stubs/components/tplink/light.pyi +20 -19
  498. homeassistant-stubs/components/tplink/number.pyi +27 -0
  499. homeassistant-stubs/components/tplink/select.pyi +26 -0
  500. homeassistant-stubs/components/tplink/sensor.pyi +12 -23
  501. homeassistant-stubs/components/tplink/switch.pyi +12 -35
  502. homeassistant-stubs/components/tplink_omada/controller.pyi +4 -15
  503. homeassistant-stubs/components/tplink_omada/coordinator.pyi +20 -1
  504. homeassistant-stubs/components/tplink_omada/device_tracker.pyi +36 -0
  505. homeassistant-stubs/components/transmission/__init__.pyi +9 -3
  506. homeassistant-stubs/components/transmission/sensor.pyi +2 -2
  507. homeassistant-stubs/components/transmission/switch.pyi +2 -4
  508. homeassistant-stubs/components/trend/__init__.pyi +2 -1
  509. homeassistant-stubs/components/trend/binary_sensor.pyi +6 -2
  510. homeassistant-stubs/components/tts/notify.pyi +2 -1
  511. homeassistant-stubs/components/unifi/config_flow.pyi +1 -1
  512. homeassistant-stubs/components/unifi/sensor.pyi +2 -1
  513. homeassistant-stubs/components/unifi/services.pyi +1 -0
  514. homeassistant-stubs/components/unifiprotect/__init__.pyi +8 -9
  515. homeassistant-stubs/components/unifiprotect/binary_sensor.pyi +29 -21
  516. homeassistant-stubs/components/unifiprotect/button.pyi +8 -9
  517. homeassistant-stubs/components/unifiprotect/camera.pyi +10 -10
  518. homeassistant-stubs/components/unifiprotect/const.pyi +0 -1
  519. homeassistant-stubs/components/unifiprotect/data.pyi +27 -14
  520. homeassistant-stubs/components/unifiprotect/diagnostics.pyi +2 -4
  521. homeassistant-stubs/components/unifiprotect/entity.pyi +27 -17
  522. homeassistant-stubs/components/unifiprotect/light.pyi +3 -6
  523. homeassistant-stubs/components/unifiprotect/lock.pyi +3 -8
  524. homeassistant-stubs/components/unifiprotect/media_player.pyi +4 -8
  525. homeassistant-stubs/components/unifiprotect/media_source.pyi +2 -3
  526. homeassistant-stubs/components/unifiprotect/migrate.pyi +5 -5
  527. homeassistant-stubs/components/unifiprotect/models.pyi +16 -17
  528. homeassistant-stubs/components/unifiprotect/number.pyi +8 -12
  529. homeassistant-stubs/components/unifiprotect/repairs.pyi +5 -3
  530. homeassistant-stubs/components/unifiprotect/select.pyi +9 -11
  531. homeassistant-stubs/components/unifiprotect/sensor.pyi +25 -23
  532. homeassistant-stubs/components/unifiprotect/services.pyi +0 -4
  533. homeassistant-stubs/components/unifiprotect/switch.pyi +15 -24
  534. homeassistant-stubs/components/unifiprotect/text.pyi +8 -11
  535. homeassistant-stubs/components/unifiprotect/utils.pyi +6 -11
  536. homeassistant-stubs/components/unifiprotect/views.pyi +2 -4
  537. homeassistant-stubs/components/update/__init__.pyi +3 -1
  538. homeassistant-stubs/components/vacuum/__init__.pyi +2 -1
  539. homeassistant-stubs/components/vallox/sensor.pyi +5 -1
  540. homeassistant-stubs/components/valve/__init__.pyi +3 -2
  541. homeassistant-stubs/components/water_heater/__init__.pyi +4 -3
  542. homeassistant-stubs/components/weather/__init__.pyi +4 -5
  543. homeassistant-stubs/components/webhook/__init__.pyi +1 -1
  544. homeassistant-stubs/components/webostv/__init__.pyi +7 -0
  545. homeassistant-stubs/components/websocket_api/__init__.pyi +3 -4
  546. homeassistant-stubs/components/websocket_api/decorators.pyi +2 -1
  547. homeassistant-stubs/components/wemo/entity.pyi +2 -2
  548. homeassistant-stubs/components/wemo/fan.pyi +2 -1
  549. homeassistant-stubs/components/withings/coordinator.pyi +3 -3
  550. homeassistant-stubs/components/withings/sensor.pyi +6 -2
  551. homeassistant-stubs/components/worldclock/sensor.pyi +2 -1
  552. homeassistant-stubs/components/xiaomi_ble/sensor.pyi +1 -1
  553. homeassistant-stubs/components/zone/__init__.pyi +3 -3
  554. homeassistant-stubs/components/zwave_js/__init__.pyi +1 -1
  555. homeassistant-stubs/components/zwave_js/api.pyi +1 -5
  556. homeassistant-stubs/components/zwave_js/config_flow.pyi +8 -1
  557. homeassistant-stubs/components/zwave_js/const.pyi +5 -0
  558. homeassistant-stubs/components/zwave_js/discovery.pyi +4 -4
  559. homeassistant-stubs/components/zwave_js/helpers.pyi +2 -2
  560. homeassistant-stubs/components/zwave_js/sensor.pyi +2 -0
  561. homeassistant-stubs/components/zwave_js/services.pyi +3 -2
  562. homeassistant-stubs/config.pyi +4 -5
  563. homeassistant-stubs/config_entries.pyi +6 -3
  564. homeassistant-stubs/const.pyi +9 -3
  565. homeassistant-stubs/core.pyi +15 -10
  566. homeassistant-stubs/data_entry_flow.pyi +12 -2
  567. homeassistant-stubs/exceptions.pyi +6 -5
  568. homeassistant-stubs/helpers/__init__.pyi +0 -5
  569. homeassistant-stubs/helpers/collection.pyi +14 -11
  570. homeassistant-stubs/helpers/condition.pyi +3 -2
  571. homeassistant-stubs/helpers/config_validation.pyi +5 -4
  572. homeassistant-stubs/helpers/deprecation.pyi +10 -0
  573. homeassistant-stubs/helpers/device.pyi +8 -0
  574. homeassistant-stubs/helpers/device_registry.pyi +14 -2
  575. homeassistant-stubs/helpers/entity.pyi +3 -2
  576. homeassistant-stubs/helpers/entity_component.pyi +3 -4
  577. homeassistant-stubs/helpers/entity_platform.pyi +2 -3
  578. homeassistant-stubs/helpers/event.pyi +10 -4
  579. homeassistant-stubs/helpers/frame.pyi +1 -0
  580. homeassistant-stubs/helpers/http.pyi +1 -1
  581. homeassistant-stubs/helpers/intent.pyi +6 -4
  582. homeassistant-stubs/helpers/llm.pyi +17 -3
  583. homeassistant-stubs/helpers/schema_config_entry_flow.pyi +2 -2
  584. homeassistant-stubs/helpers/script.pyi +3 -2
  585. homeassistant-stubs/helpers/selector.pyi +10 -8
  586. homeassistant-stubs/helpers/service.pyi +6 -3
  587. homeassistant-stubs/helpers/template.pyi +8 -6
  588. homeassistant-stubs/helpers/trace.pyi +3 -2
  589. homeassistant-stubs/helpers/typing.pyi +6 -1
  590. homeassistant-stubs/helpers/update_coordinator.pyi +3 -3
  591. homeassistant-stubs/loader.pyi +1 -2
  592. homeassistant-stubs/requirements.pyi +0 -3
  593. homeassistant-stubs/setup.pyi +4 -3
  594. homeassistant-stubs/util/loop.pyi +5 -1
  595. homeassistant-stubs/util/unit_conversion.pyi +7 -1
  596. {homeassistant_stubs-2024.6.3.dist-info → homeassistant_stubs-2024.7.0.dist-info}/METADATA +2 -2
  597. {homeassistant_stubs-2024.6.3.dist-info → homeassistant_stubs-2024.7.0.dist-info}/RECORD +599 -562
  598. homeassistant-stubs/auth/providers/legacy_api_password.pyi +0 -30
  599. homeassistant-stubs/components/air_quality/group.pyi +0 -5
  600. homeassistant-stubs/components/aladdin_connect/api.pyi +0 -12
  601. homeassistant-stubs/components/aladdin_connect/application_credentials.pyi +0 -5
  602. homeassistant-stubs/components/aladdin_connect/const.pyi +0 -3
  603. homeassistant-stubs/components/aladdin_connect/coordinator.pyi +0 -15
  604. homeassistant-stubs/components/aladdin_connect/cover.pyi +0 -25
  605. homeassistant-stubs/components/aladdin_connect/entity.pyi +0 -12
  606. homeassistant-stubs/components/aladdin_connect/sensor.pyi +0 -27
  607. homeassistant-stubs/components/alarm_control_panel/group.pyi +0 -6
  608. homeassistant-stubs/components/climate/group.pyi +0 -6
  609. homeassistant-stubs/components/cover/group.pyi +0 -6
  610. homeassistant-stubs/components/device_tracker/group.pyi +0 -6
  611. homeassistant-stubs/components/fastdotcom/services.pyi +0 -7
  612. homeassistant-stubs/components/lock/group.pyi +0 -6
  613. homeassistant-stubs/components/media_player/group.pyi +0 -6
  614. homeassistant-stubs/components/sensor/group.pyi +0 -5
  615. homeassistant-stubs/components/vacuum/group.pyi +0 -6
  616. homeassistant-stubs/components/water_heater/group.pyi +0 -6
  617. homeassistant-stubs/components/weather/group.pyi +0 -5
  618. homeassistant-stubs/components/wled/binary_sensor.pyi +0 -20
  619. {homeassistant_stubs-2024.6.3.dist-info → homeassistant_stubs-2024.7.0.dist-info}/LICENSE +0 -0
  620. {homeassistant_stubs-2024.6.3.dist-info → homeassistant_stubs-2024.7.0.dist-info}/WHEEL +0 -0
@@ -25,8 +25,9 @@ def async_client_rx_value_fn(hub: UnifiHub, client: Client) -> float: ...
25
25
  def async_client_tx_value_fn(hub: UnifiHub, client: Client) -> float: ...
26
26
  def async_client_uptime_value_fn(hub: UnifiHub, client: Client) -> datetime: ...
27
27
  def async_wlan_client_value_fn(hub: UnifiHub, wlan: Wlan) -> int: ...
28
+ def async_device_clients_value_fn(hub: UnifiHub, device: Device) -> int: ...
28
29
  def async_device_uptime_value_fn(hub: UnifiHub, device: Device) -> datetime | None: ...
29
- def async_device_uptime_value_changed_fn(old: StateType | date | datetime | Decimal, new: datetime | float | str | None) -> bool: ...
30
+ def async_uptime_value_changed_fn(old: StateType | date | datetime | Decimal, new: datetime | float | str | None) -> bool: ...
30
31
  def async_device_outlet_power_supported_fn(hub: UnifiHub, obj_id: str) -> bool: ...
31
32
  def async_device_outlet_supported_fn(hub: UnifiHub, obj_id: str) -> bool: ...
32
33
  def device_system_stats_supported_fn(stat_index: int, hub: UnifiHub, obj_id: str) -> bool: ...
@@ -1,5 +1,6 @@
1
1
  from _typeshed import Incomplete
2
2
  from collections.abc import Mapping
3
+ from homeassistant.config_entries import ConfigEntryState as ConfigEntryState
3
4
  from homeassistant.const import ATTR_DEVICE_ID as ATTR_DEVICE_ID
4
5
  from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, callback as callback
5
6
  from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC as CONNECTION_NETWORK_MAC
@@ -1,12 +1,11 @@
1
- from .const import AUTH_RETRIES as AUTH_RETRIES, CONF_ALLOW_EA as CONF_ALLOW_EA, DEFAULT_SCAN_INTERVAL as DEFAULT_SCAN_INTERVAL, DEVICES_THAT_ADOPT as DEVICES_THAT_ADOPT, DOMAIN as DOMAIN, MIN_REQUIRED_PROTECT_V as MIN_REQUIRED_PROTECT_V, OUTDATED_LOG_MESSAGE as OUTDATED_LOG_MESSAGE, PLATFORMS as PLATFORMS
2
- from .data import ProtectData as ProtectData, async_ufp_instance_for_config_entry_ids as async_ufp_instance_for_config_entry_ids
1
+ from .const import AUTH_RETRIES as AUTH_RETRIES, CONF_ALLOW_EA as CONF_ALLOW_EA, DEVICES_THAT_ADOPT as DEVICES_THAT_ADOPT, DOMAIN as DOMAIN, MIN_REQUIRED_PROTECT_V as MIN_REQUIRED_PROTECT_V, OUTDATED_LOG_MESSAGE as OUTDATED_LOG_MESSAGE, PLATFORMS as PLATFORMS
2
+ from .data import ProtectData as ProtectData, UFPConfigEntry as UFPConfigEntry
3
3
  from .discovery import async_start_discovery as async_start_discovery
4
4
  from .migrate import async_migrate_data as async_migrate_data
5
- from .services import async_cleanup_services as async_cleanup_services, async_setup_services as async_setup_services
5
+ from .services import async_setup_services as async_setup_services
6
6
  from .utils import _async_unifi_mac_from_hass as _async_unifi_mac_from_hass, async_create_api_client as async_create_api_client, async_get_devices as async_get_devices
7
7
  from .views import ThumbnailProxyView as ThumbnailProxyView, VideoProxyView as VideoProxyView
8
8
  from _typeshed import Incomplete
9
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
10
9
  from homeassistant.const import EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP
11
10
  from homeassistant.core import HomeAssistant as HomeAssistant
12
11
  from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryNotReady as ConfigEntryNotReady
@@ -22,8 +21,8 @@ CONFIG_SCHEMA: Incomplete
22
21
  EARLY_ACCESS_URL: str
23
22
 
24
23
  async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
25
- async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
26
- async def _async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, data_service: ProtectData, bootstrap: Bootstrap) -> None: ...
27
- async def _async_options_updated(hass: HomeAssistant, entry: ConfigEntry) -> None: ...
28
- async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
29
- async def async_remove_config_entry_device(hass: HomeAssistant, config_entry: ConfigEntry, device_entry: dr.DeviceEntry) -> bool: ...
24
+ async def async_setup_entry(hass: HomeAssistant, entry: UFPConfigEntry) -> bool: ...
25
+ async def _async_setup_entry(hass: HomeAssistant, entry: UFPConfigEntry, data_service: ProtectData, bootstrap: Bootstrap) -> None: ...
26
+ async def _async_options_updated(hass: HomeAssistant, entry: UFPConfigEntry) -> None: ...
27
+ async def async_unload_entry(hass: HomeAssistant, entry: UFPConfigEntry) -> bool: ...
28
+ async def async_remove_config_entry_device(hass: HomeAssistant, config_entry: UFPConfigEntry, device_entry: dr.DeviceEntry) -> bool: ...
@@ -1,64 +1,72 @@
1
1
  import dataclasses
2
- from .const import DISPATCH_ADOPT as DISPATCH_ADOPT, DOMAIN as DOMAIN
3
- from .data import ProtectData as ProtectData
4
- from .entity import EventEntityMixin as EventEntityMixin, ProtectDeviceEntity as ProtectDeviceEntity, ProtectNVREntity as ProtectNVREntity, async_all_device_entities as async_all_device_entities
5
- from .models import PermRequired as PermRequired, ProtectEventMixin as ProtectEventMixin, ProtectRequiredKeysMixin as ProtectRequiredKeysMixin
2
+ from .data import ProtectData as ProtectData, UFPConfigEntry as UFPConfigEntry
3
+ from .entity import BaseProtectEntity as BaseProtectEntity, EventEntityMixin as EventEntityMixin, ProtectDeviceEntity as ProtectDeviceEntity, ProtectNVREntity as ProtectNVREntity, async_all_device_entities as async_all_device_entities
4
+ from .models import PermRequired as PermRequired, ProtectEntityDescription as ProtectEntityDescription, ProtectEventMixin as ProtectEventMixin
6
5
  from _typeshed import Incomplete
6
+ from collections.abc import Sequence
7
7
  from homeassistant.components.binary_sensor import BinarySensorDeviceClass as BinarySensorDeviceClass, BinarySensorEntity as BinarySensorEntity, BinarySensorEntityDescription as BinarySensorEntityDescription
8
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
9
8
  from homeassistant.const import EntityCategory as EntityCategory
10
9
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
11
- from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
12
10
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
13
- from typing import Any
14
- from uiprotect.data import Camera, Light as Light, NVR as NVR, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel, ProtectModelWithId as ProtectModelWithId, Sensor
11
+ from uiprotect.data import Camera, Light as Light, ModelType, NVR as NVR, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel, ProtectModelWithId as ProtectModelWithId, Sensor as Sensor
15
12
  from uiprotect.data.nvr import UOSDisk as UOSDisk
16
13
 
17
- _LOGGER: Incomplete
18
14
  _KEY_DOOR: str
19
15
 
20
16
  @dataclasses.dataclass(frozen=True, kw_only=True)
21
- class ProtectBinaryEntityDescription(ProtectRequiredKeysMixin, BinarySensorEntityDescription):
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, ufp_required_field, ufp_value, ufp_value_fn, ufp_enabled, ufp_perm) -> None: ...
17
+ class ProtectBinaryEntityDescription(ProtectEntityDescription, BinarySensorEntityDescription):
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, ufp_required_field, ufp_value, ufp_value_fn, ufp_enabled, ufp_perm, has_required, get_ufp_enabled) -> None: ...
23
19
 
24
20
  @dataclasses.dataclass(frozen=True, kw_only=True)
25
21
  class ProtectBinaryEventEntityDescription(ProtectEventMixin, BinarySensorEntityDescription):
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, ufp_required_field, ufp_value, ufp_value_fn, ufp_enabled, ufp_perm, ufp_event_obj) -> 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, ufp_required_field, ufp_value, ufp_value_fn, ufp_enabled, ufp_perm, has_required, get_ufp_enabled, ufp_event_obj, ufp_obj_type) -> None: ...
27
23
 
28
24
  MOUNT_DEVICE_CLASS_MAP: Incomplete
29
25
  CAMERA_SENSORS: tuple[ProtectBinaryEntityDescription, ...]
30
26
  LIGHT_SENSORS: tuple[ProtectBinaryEntityDescription, ...]
27
+ MOUNTABLE_SENSE_SENSORS: tuple[ProtectBinaryEntityDescription, ...]
31
28
  SENSE_SENSORS: tuple[ProtectBinaryEntityDescription, ...]
32
29
  EVENT_SENSORS: tuple[ProtectBinaryEventEntityDescription, ...]
33
30
  DOORLOCK_SENSORS: tuple[ProtectBinaryEntityDescription, ...]
34
31
  VIEWER_SENSORS: tuple[ProtectBinaryEntityDescription, ...]
35
32
  DISK_SENSORS: tuple[ProtectBinaryEntityDescription, ...]
36
-
37
- async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
38
- def _async_event_entities(data: ProtectData, ufp_device: ProtectAdoptableDeviceModel | None = None) -> list[ProtectDeviceEntity]: ...
39
- def _async_nvr_entities(data: ProtectData) -> list[ProtectDeviceEntity]: ...
33
+ _MODEL_DESCRIPTIONS: dict[ModelType, Sequence[ProtectEntityDescription]]
34
+ _MOUNTABLE_MODEL_DESCRIPTIONS: dict[ModelType, Sequence[ProtectEntityDescription]]
40
35
 
41
36
  class ProtectDeviceBinarySensor(ProtectDeviceEntity, BinarySensorEntity):
42
37
  device: Camera | Light | Sensor
43
38
  entity_description: ProtectBinaryEntityDescription
39
+ _state_attrs: tuple[str, ...]
44
40
  _attr_is_on: Incomplete
41
+ def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None: ...
42
+
43
+ class MountableProtectDeviceBinarySensor(ProtectDeviceBinarySensor):
44
+ device: Sensor
45
+ _state_attrs: tuple[str, ...]
45
46
  _attr_device_class: Incomplete
46
47
  def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None: ...
47
- def _async_get_state_attrs(self) -> tuple[Any, ...]: ...
48
48
 
49
49
  class ProtectDiskBinarySensor(ProtectNVREntity, BinarySensorEntity):
50
50
  _disk: UOSDisk
51
51
  entity_description: ProtectBinaryEntityDescription
52
+ _state_attrs: Incomplete
52
53
  def __init__(self, data: ProtectData, device: NVR, description: ProtectBinaryEntityDescription, disk: UOSDisk) -> None: ...
53
54
  _attr_available: bool
54
55
  _attr_is_on: Incomplete
55
56
  def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None: ...
56
- def _async_get_state_attrs(self) -> tuple[Any, ...]: ...
57
57
 
58
58
  class ProtectEventBinarySensor(EventEntityMixin, BinarySensorEntity):
59
59
  entity_description: ProtectBinaryEventEntityDescription
60
- _attr_is_on: Incomplete
61
- _event: Incomplete
60
+ _state_attrs: Incomplete
61
+ _attr_is_on: bool
62
62
  _attr_extra_state_attributes: Incomplete
63
+ def _set_event_done(self) -> None: ...
64
+ _event: Incomplete
65
+ _event_end: Incomplete
63
66
  def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None: ...
64
- def _async_get_state_attrs(self) -> tuple[Any, ...]: ...
67
+
68
+ MODEL_DESCRIPTIONS_WITH_CLASS: Incomplete
69
+
70
+ def _async_event_entities(data: ProtectData, ufp_device: ProtectAdoptableDeviceModel | None = None) -> list[ProtectDeviceEntity]: ...
71
+ def _async_nvr_entities(data: ProtectData) -> list[BaseProtectEntity]: ...
72
+ async def async_setup_entry(hass: HomeAssistant, entry: UFPConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
@@ -1,24 +1,24 @@
1
- from .const import DEVICES_THAT_ADOPT as DEVICES_THAT_ADOPT, DISPATCH_ADD as DISPATCH_ADD, DISPATCH_ADOPT as DISPATCH_ADOPT, DOMAIN as DOMAIN
2
- from .data import ProtectData as ProtectData
1
+ from .const import DEVICES_THAT_ADOPT as DEVICES_THAT_ADOPT, DOMAIN as DOMAIN
2
+ from .data import UFPConfigEntry as UFPConfigEntry
3
3
  from .entity import ProtectDeviceEntity as ProtectDeviceEntity, async_all_device_entities as async_all_device_entities
4
- from .models import PermRequired as PermRequired, ProtectSetableKeysMixin as ProtectSetableKeysMixin, T as T
4
+ from .models import PermRequired as PermRequired, ProtectEntityDescription as ProtectEntityDescription, ProtectSetableKeysMixin as ProtectSetableKeysMixin, T as T
5
5
  from _typeshed import Incomplete
6
+ from collections.abc import Sequence
6
7
  from dataclasses import dataclass
7
8
  from homeassistant.components.button import ButtonDeviceClass as ButtonDeviceClass, ButtonEntity as ButtonEntity, ButtonEntityDescription as ButtonEntityDescription
8
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
9
9
  from homeassistant.const import Platform as Platform
10
10
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
11
11
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
12
12
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
13
13
  from typing import Final
14
- from uiprotect.data import ProtectAdoptableDeviceModel, ProtectModelWithId as ProtectModelWithId
14
+ from uiprotect.data import ModelType, ProtectAdoptableDeviceModel, ProtectModelWithId as ProtectModelWithId
15
15
 
16
16
  _LOGGER: Incomplete
17
17
 
18
18
  @dataclass(frozen=True, kw_only=True)
19
19
  class ProtectButtonEntityDescription(ProtectSetableKeysMixin[T], ButtonEntityDescription):
20
20
  ufp_press: str | 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, ufp_required_field, ufp_value, ufp_value_fn, ufp_enabled, ufp_perm, ufp_set_method, ufp_set_method_fn, ufp_press) -> 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, ufp_required_field, ufp_value, ufp_value_fn, ufp_enabled, ufp_perm, has_required, get_ufp_enabled, ufp_set_method, ufp_set_method_fn, ufp_press) -> None: ...
22
22
 
23
23
  DEVICE_CLASS_CHIME_BUTTON: Final[str]
24
24
  KEY_ADOPT: str
@@ -26,14 +26,13 @@ ALL_DEVICE_BUTTONS: tuple[ProtectButtonEntityDescription, ...]
26
26
  ADOPT_BUTTON: Incomplete
27
27
  SENSOR_BUTTONS: tuple[ProtectButtonEntityDescription, ...]
28
28
  CHIME_BUTTONS: tuple[ProtectButtonEntityDescription, ...]
29
+ _MODEL_DESCRIPTIONS: dict[ModelType, Sequence[ProtectEntityDescription]]
29
30
 
30
31
  def _async_remove_adopt_button(hass: HomeAssistant, device: ProtectAdoptableDeviceModel) -> None: ...
31
- async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
32
+ async def async_setup_entry(hass: HomeAssistant, entry: UFPConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
32
33
 
33
34
  class ProtectButton(ProtectDeviceEntity, ButtonEntity):
34
35
  entity_description: ProtectButtonEntityDescription
35
- _attr_name: Incomplete
36
- def __init__(self, data: ProtectData, device: ProtectAdoptableDeviceModel, description: ProtectButtonEntityDescription) -> None: ...
37
36
  _attr_available: Incomplete
38
37
  def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None: ...
39
38
  async def async_press(self) -> None: ...
@@ -1,27 +1,28 @@
1
- from .const import ATTR_BITRATE as ATTR_BITRATE, ATTR_CHANNEL_ID as ATTR_CHANNEL_ID, ATTR_FPS as ATTR_FPS, ATTR_HEIGHT as ATTR_HEIGHT, ATTR_WIDTH as ATTR_WIDTH, DISPATCH_ADOPT as DISPATCH_ADOPT, DISPATCH_CHANNELS as DISPATCH_CHANNELS, DOMAIN as DOMAIN
2
- from .data import ProtectData as ProtectData
1
+ from .const import ATTR_BITRATE as ATTR_BITRATE, ATTR_CHANNEL_ID as ATTR_CHANNEL_ID, ATTR_FPS as ATTR_FPS, ATTR_HEIGHT as ATTR_HEIGHT, ATTR_WIDTH as ATTR_WIDTH, DOMAIN as DOMAIN
2
+ from .data import ProtectData as ProtectData, UFPConfigEntry as UFPConfigEntry
3
3
  from .entity import ProtectDeviceEntity as ProtectDeviceEntity
4
4
  from .utils import get_camera_base_name as get_camera_base_name
5
5
  from _typeshed import Incomplete
6
- from collections.abc import Generator
7
6
  from homeassistant.components.camera import Camera as Camera, CameraEntityFeature as CameraEntityFeature
8
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
9
7
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
10
8
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
11
9
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
12
10
  from homeassistant.helpers.issue_registry import IssueSeverity as IssueSeverity
13
- from typing import Any
11
+ from typing_extensions import Generator
14
12
  from uiprotect.data import Camera as UFPCamera, CameraChannel as CameraChannel, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel, ProtectModelWithId as ProtectModelWithId
15
13
 
16
14
  _LOGGER: Incomplete
17
15
 
18
- def _create_rtsp_repair(hass: HomeAssistant, entry: ConfigEntry, data: ProtectData, camera: UFPCamera) -> None: ...
19
- def _get_camera_channels(hass: HomeAssistant, entry: ConfigEntry, data: ProtectData, ufp_device: UFPCamera | None = None) -> Generator[tuple[UFPCamera, CameraChannel, bool], None, None]: ...
20
- def _async_camera_entities(hass: HomeAssistant, entry: ConfigEntry, data: ProtectData, ufp_device: UFPCamera | None = None) -> list[ProtectDeviceEntity]: ...
21
- async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
16
+ def _create_rtsp_repair(hass: HomeAssistant, entry: UFPConfigEntry, data: ProtectData, camera: UFPCamera) -> None: ...
17
+ def _get_camera_channels(hass: HomeAssistant, entry: UFPConfigEntry, data: ProtectData, ufp_device: UFPCamera | None = None) -> Generator[tuple[UFPCamera, CameraChannel, bool]]: ...
18
+ def _async_camera_entities(hass: HomeAssistant, entry: UFPConfigEntry, data: ProtectData, ufp_device: UFPCamera | None = None) -> list[ProtectDeviceEntity]: ...
19
+ async def async_setup_entry(hass: HomeAssistant, entry: UFPConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
20
+
21
+ _EMPTY_CAMERA_FEATURES: Incomplete
22
22
 
23
23
  class ProtectCamera(ProtectDeviceEntity, Camera):
24
24
  device: UFPCamera
25
+ _state_attrs: Incomplete
25
26
  channel: Incomplete
26
27
  _secure: Incomplete
27
28
  _disable_stream: Incomplete
@@ -33,7 +34,6 @@ class ProtectCamera(ProtectDeviceEntity, Camera):
33
34
  _stream_source: Incomplete
34
35
  _attr_supported_features: Incomplete
35
36
  def _async_set_stream_source(self) -> None: ...
36
- def _async_get_state_attrs(self) -> tuple[Any, ...]: ...
37
37
  _attr_motion_detection_enabled: Incomplete
38
38
  _attr_is_recording: Incomplete
39
39
  _attr_available: Incomplete
@@ -22,7 +22,6 @@ CONFIG_OPTIONS: Incomplete
22
22
  DEFAULT_PORT: int
23
23
  DEFAULT_ATTRIBUTION: str
24
24
  DEFAULT_BRAND: str
25
- DEFAULT_SCAN_INTERVAL: int
26
25
  DEFAULT_VERIFY_SSL: bool
27
26
  DEFAULT_MAX_MEDIA: int
28
27
  DEVICES_THAT_ADOPT: Incomplete
@@ -1,50 +1,63 @@
1
1
  from .const import AUTH_RETRIES as AUTH_RETRIES, CONF_DISABLE_RTSP as CONF_DISABLE_RTSP, CONF_MAX_MEDIA as CONF_MAX_MEDIA, DEFAULT_MAX_MEDIA as DEFAULT_MAX_MEDIA, DEVICES_THAT_ADOPT as DEVICES_THAT_ADOPT, DISPATCH_ADD as DISPATCH_ADD, DISPATCH_ADOPT as DISPATCH_ADOPT, DISPATCH_CHANNELS as DISPATCH_CHANNELS, DOMAIN as DOMAIN
2
2
  from .utils import async_get_devices_by_type as async_get_devices_by_type
3
3
  from _typeshed import Incomplete
4
- from collections.abc import Callable as Callable, Generator, Iterable
4
+ from collections.abc import Callable as Callable, Iterable
5
5
  from datetime import datetime, timedelta
6
6
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
7
  from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, HomeAssistant as HomeAssistant, callback as callback
8
- from homeassistant.helpers.dispatcher import async_dispatcher_send as async_dispatcher_send
8
+ from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect, async_dispatcher_send as async_dispatcher_send
9
9
  from homeassistant.helpers.event import async_track_time_interval as async_track_time_interval
10
10
  from typing import Any
11
+ from typing_extensions import Generator
11
12
  from uiprotect import ProtectApiClient as ProtectApiClient
12
- from uiprotect.data import Bootstrap as Bootstrap, ModelType, NVR, ProtectAdoptableDeviceModel, WSSubscriptionMessage as WSSubscriptionMessage
13
+ from uiprotect.data import Camera, ModelType, NVR, ProtectAdoptableDeviceModel, WSSubscriptionMessage as WSSubscriptionMessage
14
+ from uiprotect.websocket import WebsocketState
13
15
 
14
16
  _LOGGER: Incomplete
15
17
  ProtectDeviceType: Incomplete
18
+ UFPConfigEntry = ConfigEntry[ProtectData]
16
19
 
17
- def async_last_update_was_successful(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
20
+ def async_last_update_was_successful(hass: HomeAssistant, entry: UFPConfigEntry) -> bool: ...
21
+ def _async_dispatch_id(entry: UFPConfigEntry, dispatch: str) -> str: ...
18
22
 
19
23
  class ProtectData:
20
- _hass: Incomplete
21
24
  _entry: Incomplete
25
+ _hass: Incomplete
22
26
  _update_interval: Incomplete
23
27
  _subscriptions: Incomplete
24
28
  _pending_camera_ids: Incomplete
25
- _unsub_interval: Incomplete
26
- _unsub_websocket: Incomplete
29
+ _unsubs: Incomplete
27
30
  _auth_failures: int
28
31
  last_update_success: bool
29
32
  api: Incomplete
30
- def __init__(self, hass: HomeAssistant, protect: ProtectApiClient, update_interval: timedelta, entry: ConfigEntry) -> None: ...
33
+ adopt_signal: Incomplete
34
+ add_signal: Incomplete
35
+ channels_signal: Incomplete
36
+ def __init__(self, hass: HomeAssistant, protect: ProtectApiClient, update_interval: timedelta, entry: UFPConfigEntry) -> None: ...
31
37
  @property
32
38
  def disable_stream(self) -> bool: ...
33
39
  @property
34
40
  def max_events(self) -> int: ...
35
- def get_by_types(self, device_types: Iterable[ModelType], ignore_unadopted: bool = True) -> Generator[ProtectAdoptableDeviceModel, None, None]: ...
36
- async def async_setup(self) -> None: ...
41
+ def async_subscribe_adopt(self, add_callback: Callable[[ProtectAdoptableDeviceModel], None]) -> None: ...
42
+ def get_by_types(self, device_types: Iterable[ModelType], ignore_unadopted: bool = True) -> Generator[ProtectAdoptableDeviceModel]: ...
43
+ def get_cameras(self, ignore_unadopted: bool = True) -> Generator[Camera]: ...
44
+ def async_setup(self) -> None: ...
45
+ def _async_websocket_state_changed(self, state: WebsocketState) -> None: ...
46
+ def _async_update_change(self, success: bool, force_update: bool = False, exception: Exception | None = None) -> None: ...
37
47
  async def async_stop(self, *args: Any) -> None: ...
38
- async def async_refresh(self, *_: Any, force: bool = False) -> None: ...
48
+ async def async_refresh(self) -> None: ...
39
49
  def async_add_pending_camera_id(self, camera_id: str) -> None: ...
40
50
  def _async_add_device(self, device: ProtectAdoptableDeviceModel) -> None: ...
41
51
  def _async_remove_device(self, device: ProtectAdoptableDeviceModel) -> None: ...
42
52
  def _async_update_device(self, device: ProtectAdoptableDeviceModel | NVR, changed_data: dict[str, Any]) -> None: ...
43
53
  def _async_process_ws_message(self, message: WSSubscriptionMessage) -> None: ...
44
- def _async_process_updates(self, updates: Bootstrap | None) -> None: ...
54
+ def _async_process_updates(self) -> None: ...
45
55
  def _async_poll(self, now: datetime) -> None: ...
46
- def async_subscribe_device_id(self, mac: str, update_callback: Callable[[ProtectDeviceType], None]) -> CALLBACK_TYPE: ...
47
- def async_unsubscribe_device_id(self, mac: str, update_callback: Callable[[ProtectDeviceType], None]) -> None: ...
56
+ def async_subscribe(self, mac: str, update_callback: Callable[[ProtectDeviceType], None]) -> CALLBACK_TYPE: ...
57
+ def _async_unsubscribe(self, mac: str, update_callback: Callable[[ProtectDeviceType], None]) -> None: ...
48
58
  def _async_signal_device_update(self, device: ProtectDeviceType) -> None: ...
49
59
 
50
60
  def async_ufp_instance_for_config_entry_ids(hass: HomeAssistant, config_entry_ids: set[str]) -> ProtectApiClient | None: ...
61
+ def async_get_ufp_entries(hass: HomeAssistant) -> list[UFPConfigEntry]: ...
62
+ def async_get_data_for_nvr_id(hass: HomeAssistant, nvr_id: str) -> ProtectData | None: ...
63
+ def async_get_data_for_entry_id(hass: HomeAssistant, entry_id: str) -> ProtectData | None: ...
@@ -1,7 +1,5 @@
1
- from .const import DOMAIN as DOMAIN
2
- from .data import ProtectData as ProtectData
3
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
1
+ from .data import UFPConfigEntry as UFPConfigEntry
4
2
  from homeassistant.core import HomeAssistant as HomeAssistant
5
3
  from typing import Any
6
4
 
7
- async def async_get_config_entry_diagnostics(hass: HomeAssistant, config_entry: ConfigEntry) -> dict[str, Any]: ...
5
+ async def async_get_config_entry_diagnostics(hass: HomeAssistant, config_entry: UFPConfigEntry) -> dict[str, Any]: ...
@@ -1,51 +1,61 @@
1
1
  from .const import ATTR_EVENT_ID as ATTR_EVENT_ID, ATTR_EVENT_SCORE as ATTR_EVENT_SCORE, DEFAULT_ATTRIBUTION as DEFAULT_ATTRIBUTION, DEFAULT_BRAND as DEFAULT_BRAND, DOMAIN as DOMAIN
2
2
  from .data import ProtectData as ProtectData
3
- from .models import PermRequired as PermRequired, ProtectEventMixin as ProtectEventMixin, ProtectRequiredKeysMixin as ProtectRequiredKeysMixin
3
+ from .models import PermRequired as PermRequired, ProtectEntityDescription as ProtectEntityDescription, ProtectEventMixin as ProtectEventMixin
4
4
  from _typeshed import Incomplete
5
5
  from collections.abc import Callable as Callable, Sequence
6
+ from datetime import datetime
6
7
  from homeassistant.core import callback as callback
7
8
  from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
8
9
  from homeassistant.helpers.entity import Entity as Entity, EntityDescription as EntityDescription
9
- from homeassistant.helpers.typing import UNDEFINED as UNDEFINED
10
- from typing import Any
11
10
  from uiprotect.data import Event as Event, ModelType, NVR as NVR, ProtectAdoptableDeviceModel, ProtectModelWithId as ProtectModelWithId
12
11
 
13
12
  _LOGGER: Incomplete
14
13
 
15
- def _async_device_entities(data: ProtectData, klass: type[ProtectDeviceEntity], model_type: ModelType, descs: Sequence[ProtectRequiredKeysMixin], unadopted_descs: Sequence[ProtectRequiredKeysMixin], ufp_device: ProtectAdoptableDeviceModel | None = None) -> list[ProtectDeviceEntity]: ...
16
- def async_all_device_entities(data: ProtectData, klass: type[ProtectDeviceEntity], camera_descs: Sequence[ProtectRequiredKeysMixin] | None = None, light_descs: Sequence[ProtectRequiredKeysMixin] | None = None, sense_descs: Sequence[ProtectRequiredKeysMixin] | None = None, viewer_descs: Sequence[ProtectRequiredKeysMixin] | None = None, lock_descs: Sequence[ProtectRequiredKeysMixin] | None = None, chime_descs: Sequence[ProtectRequiredKeysMixin] | None = None, all_descs: Sequence[ProtectRequiredKeysMixin] | None = None, unadopted_descs: Sequence[ProtectRequiredKeysMixin] | None = None, ufp_device: ProtectAdoptableDeviceModel | None = None) -> list[ProtectDeviceEntity]: ...
14
+ def _async_device_entities(data: ProtectData, klass: type[BaseProtectEntity], model_type: ModelType, descs: Sequence[ProtectEntityDescription], unadopted_descs: Sequence[ProtectEntityDescription] | None = None, ufp_device: ProtectAdoptableDeviceModel | None = None) -> list[BaseProtectEntity]: ...
17
15
 
18
- class ProtectDeviceEntity(Entity):
19
- device: ProtectAdoptableDeviceModel
16
+ _ALL_MODEL_TYPES: Incomplete
17
+
18
+ def _combine_model_descs(model_type: ModelType, model_descriptions: dict[ModelType, Sequence[ProtectEntityDescription]] | None, all_descs: Sequence[ProtectEntityDescription] | None) -> list[ProtectEntityDescription]: ...
19
+ def async_all_device_entities(data: ProtectData, klass: type[BaseProtectEntity], model_descriptions: dict[ModelType, Sequence[ProtectEntityDescription]] | None = None, all_descs: Sequence[ProtectEntityDescription] | None = None, unadopted_descs: list[ProtectEntityDescription] | None = None, ufp_device: ProtectAdoptableDeviceModel | None = None) -> list[BaseProtectEntity]: ...
20
+
21
+ class BaseProtectEntity(Entity):
22
+ device: ProtectAdoptableDeviceModel | NVR
20
23
  _attr_should_poll: bool
24
+ _attr_attribution = DEFAULT_ATTRIBUTION
25
+ _state_attrs: tuple[str, ...]
26
+ _attr_has_entity_name: bool
27
+ _async_get_ufp_enabled: Callable[[ProtectAdoptableDeviceModel], bool] | None
21
28
  data: Incomplete
22
- _async_get_ufp_enabled: Incomplete
23
29
  _attr_unique_id: Incomplete
24
30
  _attr_name: Incomplete
25
31
  entity_description: Incomplete
26
- _attr_attribution: Incomplete
27
- def __init__(self, data: ProtectData, device: ProtectAdoptableDeviceModel, description: EntityDescription | None = None) -> None: ...
32
+ _state_getters: Incomplete
33
+ def __init__(self, data: ProtectData, device: ProtectAdoptableDeviceModel | NVR, description: EntityDescription | None = None) -> None: ...
28
34
  async def async_update(self) -> None: ...
29
35
  _attr_device_info: Incomplete
30
36
  def _async_set_device_info(self) -> None: ...
31
37
  _attr_available: Incomplete
32
38
  def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None: ...
33
- def _async_get_state_attrs(self) -> tuple[Any, ...]: ...
34
39
  def _async_updated_event(self, device: ProtectAdoptableDeviceModel | NVR) -> None: ...
35
40
  async def async_added_to_hass(self) -> None: ...
36
41
 
37
- class ProtectNVREntity(ProtectDeviceEntity):
42
+ class ProtectDeviceEntity(BaseProtectEntity):
43
+ device: ProtectAdoptableDeviceModel
44
+
45
+ class ProtectNVREntity(BaseProtectEntity):
38
46
  device: NVR
39
- def __init__(self, entry: ProtectData, device: NVR, description: EntityDescription | None = None) -> None: ...
40
47
  _attr_device_info: Incomplete
41
48
  def _async_set_device_info(self) -> None: ...
42
49
  _attr_available: Incomplete
43
50
  def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None: ...
44
51
 
45
52
  class EventEntityMixin(ProtectDeviceEntity):
46
- _unrecorded_attributes: Incomplete
47
53
  entity_description: ProtectEventMixin
48
- _event: Incomplete
49
- def __init__(self, *args: Any, **kwarg: Any) -> None: ...
54
+ _unrecorded_attributes: Incomplete
55
+ _event: Event | None
56
+ _event_end: datetime | None
57
+ def _set_event_done(self) -> None: ...
50
58
  _attr_extra_state_attributes: Incomplete
51
- def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None: ...
59
+ def _set_event_attrs(self, event: Event) -> None: ...
60
+ def _async_event_with_immediate_end(self) -> None: ...
61
+ def _event_already_ended(self, prev_event: Event | None, prev_event_end: datetime | None) -> bool: ...
@@ -1,18 +1,15 @@
1
- from .const import DISPATCH_ADOPT as DISPATCH_ADOPT, DOMAIN as DOMAIN
2
- from .data import ProtectData as ProtectData
1
+ from .data import UFPConfigEntry as UFPConfigEntry
3
2
  from .entity import ProtectDeviceEntity as ProtectDeviceEntity
4
3
  from _typeshed import Incomplete
5
4
  from homeassistant.components.light import ATTR_BRIGHTNESS as ATTR_BRIGHTNESS, ColorMode as ColorMode, LightEntity as LightEntity
6
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
5
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
8
- from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
9
6
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
10
7
  from typing import Any
11
8
  from uiprotect.data import Light as Light, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel, ProtectModelWithId as ProtectModelWithId
12
9
 
13
10
  _LOGGER: Incomplete
14
11
 
15
- async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
12
+ async def async_setup_entry(hass: HomeAssistant, entry: UFPConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
16
13
  def unifi_brightness_to_hass(value: int) -> int: ...
17
14
  def hass_to_unifi_brightness(value: int) -> int: ...
18
15
 
@@ -21,7 +18,7 @@ class ProtectLight(ProtectDeviceEntity, LightEntity):
21
18
  _attr_icon: str
22
19
  _attr_color_mode: Incomplete
23
20
  _attr_supported_color_modes: Incomplete
24
- def _async_get_state_attrs(self) -> tuple[Any, ...]: ...
21
+ _state_attrs: Incomplete
25
22
  _attr_is_on: Incomplete
26
23
  _attr_brightness: Incomplete
27
24
  def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None: ...
@@ -1,25 +1,20 @@
1
- from .const import DISPATCH_ADOPT as DISPATCH_ADOPT, DOMAIN as DOMAIN
2
- from .data import ProtectData as ProtectData
1
+ from .data import UFPConfigEntry as UFPConfigEntry
3
2
  from .entity import ProtectDeviceEntity as ProtectDeviceEntity
4
3
  from _typeshed import Incomplete
5
4
  from homeassistant.components.lock import LockEntity as LockEntity, LockEntityDescription as LockEntityDescription
6
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
5
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
8
- from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
9
6
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
10
7
  from typing import Any
11
8
  from uiprotect.data import Doorlock, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel, ProtectModelWithId as ProtectModelWithId
12
9
 
13
10
  _LOGGER: Incomplete
14
11
 
15
- async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
12
+ async def async_setup_entry(hass: HomeAssistant, entry: UFPConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
16
13
 
17
14
  class ProtectLock(ProtectDeviceEntity, LockEntity):
18
15
  device: Doorlock
19
16
  entity_description: LockEntityDescription
20
- _attr_name: Incomplete
21
- def __init__(self, data: ProtectData, doorlock: Doorlock) -> None: ...
22
- def _async_get_state_attrs(self) -> tuple[Any, ...]: ...
17
+ _state_attrs: Incomplete
23
18
  _attr_is_locked: bool
24
19
  _attr_is_locking: bool
25
20
  _attr_is_unlocking: bool
@@ -1,33 +1,29 @@
1
- from .const import DISPATCH_ADOPT as DISPATCH_ADOPT, DOMAIN as DOMAIN
2
- from .data import ProtectData as ProtectData
1
+ from .data import UFPConfigEntry as UFPConfigEntry
3
2
  from .entity import ProtectDeviceEntity as ProtectDeviceEntity
4
3
  from _typeshed import Incomplete
5
4
  from homeassistant.components import media_source as media_source
6
5
  from homeassistant.components.media_player import BrowseMedia as BrowseMedia, MediaPlayerDeviceClass as MediaPlayerDeviceClass, MediaPlayerEntity as MediaPlayerEntity, MediaPlayerEntityDescription as MediaPlayerEntityDescription, MediaPlayerEntityFeature as MediaPlayerEntityFeature, MediaPlayerState as MediaPlayerState, MediaType as MediaType, async_process_play_media_url as async_process_play_media_url
7
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
6
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
9
7
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
10
- from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
11
8
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
12
9
  from typing import Any
13
10
  from uiprotect.data import Camera, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel, ProtectModelWithId as ProtectModelWithId
14
11
 
15
12
  _LOGGER: Incomplete
13
+ _SPEAKER_DESCRIPTION: Incomplete
16
14
 
17
- async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
15
+ async def async_setup_entry(hass: HomeAssistant, entry: UFPConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
18
16
 
19
17
  class ProtectMediaPlayer(ProtectDeviceEntity, MediaPlayerEntity):
20
18
  device: Camera
21
19
  entity_description: MediaPlayerEntityDescription
22
20
  _attr_supported_features: Incomplete
23
- _attr_name: Incomplete
24
21
  _attr_media_content_type: Incomplete
25
- def __init__(self, data: ProtectData, camera: Camera) -> None: ...
22
+ _state_attrs: Incomplete
26
23
  _attr_volume_level: Incomplete
27
24
  _attr_state: Incomplete
28
25
  _attr_available: Incomplete
29
26
  def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None: ...
30
- def _async_get_state_attrs(self) -> tuple[Any, ...]: ...
31
27
  async def async_set_volume_level(self, volume: float) -> None: ...
32
28
  async def async_media_stop(self) -> None: ...
33
29
  async def async_play_media(self, media_type: MediaType | str, media_id: str, **kwargs: Any) -> None: ...
@@ -1,5 +1,5 @@
1
1
  from .const import DOMAIN as DOMAIN
2
- from .data import ProtectData as ProtectData
2
+ from .data import ProtectData as ProtectData, async_get_ufp_entries as async_get_ufp_entries
3
3
  from .views import async_generate_event_video_url as async_generate_event_video_url, async_generate_thumbnail_url as async_generate_thumbnail_url
4
4
  from _typeshed import Incomplete
5
5
  from datetime import date, datetime, timedelta
@@ -11,7 +11,7 @@ from homeassistant.const import Platform as Platform
11
11
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
12
12
  from homeassistant.helpers import entity_registry as er
13
13
  from typing import Any, NoReturn
14
- from uiprotect.data import Camera, Event, EventType
14
+ from uiprotect.data import Camera as Camera, Event, EventType
15
15
 
16
16
  VIDEO_FORMAT: str
17
17
  THUMBNAIL_WIDTH: int
@@ -36,7 +36,6 @@ class IdentifierTimeType(str, Enum):
36
36
  EVENT_MAP: dict[SimpleEventType, set[EventType]]
37
37
  EVENT_NAME_MAP: Incomplete
38
38
 
39
- def get_ufp_event(event_type: SimpleEventType) -> set[EventType]: ...
40
39
  async def async_get_media_source(hass: HomeAssistant) -> MediaSource: ...
41
40
  def _get_month_start_end(start: datetime) -> tuple[datetime, datetime]: ...
42
41
  def _bad_identifier(identifier: str, err: Exception | None = None) -> NoReturn: ...
@@ -1,8 +1,8 @@
1
1
  from .const import DOMAIN as DOMAIN
2
+ from .data import UFPConfigEntry as UFPConfigEntry
2
3
  from _typeshed import Incomplete
3
4
  from homeassistant.components.automation import automations_with_entity as automations_with_entity
4
5
  from homeassistant.components.script import scripts_with_entity as scripts_with_entity
5
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
6
6
  from homeassistant.const import Platform as Platform
7
7
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
8
8
  from homeassistant.helpers.issue_registry import IssueSeverity as IssueSeverity
@@ -20,7 +20,7 @@ class EntityUsage(TypedDict):
20
20
  automations: dict[str, list[str]]
21
21
  scripts: dict[str, list[str]]
22
22
 
23
- def check_if_used(hass: HomeAssistant, entry: ConfigEntry, entities: dict[str, EntityRef]) -> dict[str, EntityUsage]: ...
24
- def create_repair_if_used(hass: HomeAssistant, entry: ConfigEntry, breaks_in: str, entities: dict[str, EntityRef]) -> None: ...
25
- async def async_migrate_data(hass: HomeAssistant, entry: ConfigEntry, protect: ProtectApiClient, bootstrap: Bootstrap) -> None: ...
26
- def async_deprecate_hdr_package(hass: HomeAssistant, entry: ConfigEntry) -> None: ...
23
+ def check_if_used(hass: HomeAssistant, entry: UFPConfigEntry, entities: dict[str, EntityRef]) -> dict[str, EntityUsage]: ...
24
+ def create_repair_if_used(hass: HomeAssistant, entry: UFPConfigEntry, breaks_in: str, entities: dict[str, EntityRef]) -> None: ...
25
+ async def async_migrate_data(hass: HomeAssistant, entry: UFPConfigEntry, protect: ProtectApiClient, bootstrap: Bootstrap) -> None: ...
26
+ def async_deprecate_hdr_package(hass: HomeAssistant, entry: UFPConfigEntry) -> None: ...