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
@@ -1,45 +1,44 @@
1
- from .utils import get_nested_attr as get_nested_attr
2
1
  from _typeshed import Incomplete
3
2
  from collections.abc import Callable as Callable, Coroutine
4
3
  from dataclasses import dataclass
5
4
  from enum import Enum
6
5
  from homeassistant.helpers.entity import EntityDescription as EntityDescription
7
6
  from typing import Any, Generic, TypeVar
8
- from uiprotect.data import Event as Event, NVR, ProtectAdoptableDeviceModel
7
+ from uiprotect.data import Event as Event, NVR, ProtectAdoptableDeviceModel, SmartDetectObjectType as SmartDetectObjectType
9
8
 
10
9
  _LOGGER: Incomplete
11
10
  T = TypeVar('T', bound=ProtectAdoptableDeviceModel | NVR)
12
11
 
13
- def split_tuple(value: tuple[str, ...] | str | None) -> tuple[str, ...] | None: ...
14
-
15
12
  class PermRequired(int, Enum):
16
13
  NO_WRITE: int
17
14
  WRITE: int
18
15
  DELETE: int
19
16
 
20
17
  @dataclass(frozen=True, kw_only=True)
21
- class ProtectRequiredKeysMixin(EntityDescription, Generic[T]):
22
- ufp_required_field: tuple[str, ...] | str | None = ...
23
- ufp_value: tuple[str, ...] | str | None = ...
18
+ class ProtectEntityDescription(EntityDescription, Generic[T]):
19
+ ufp_required_field: str | None = ...
20
+ ufp_value: str | None = ...
24
21
  ufp_value_fn: Callable[[T], Any] | None = ...
25
- ufp_enabled: tuple[str, ...] | str | None = ...
22
+ ufp_enabled: str | None = ...
26
23
  ufp_perm: PermRequired | None = ...
27
- def __post_init__(self) -> None: ...
24
+ has_required: Callable[[T], bool] = ...
25
+ get_ufp_enabled: Callable[[T], bool] | None = ...
28
26
  def get_ufp_value(self, obj: T) -> Any: ...
29
- def get_ufp_enabled(self, obj: T) -> bool: ...
30
- def has_required(self, obj: T) -> bool: ...
31
- def __init__(self, *, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, translation_placeholders, unit_of_measurement, ufp_required_field, ufp_value, ufp_value_fn, ufp_enabled, ufp_perm) -> None: ...
27
+ def __post_init__(self) -> None: ...
28
+ def __init__(self, *, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, translation_placeholders, unit_of_measurement, ufp_required_field, ufp_value, ufp_value_fn, ufp_enabled, ufp_perm, has_required, get_ufp_enabled) -> None: ...
32
29
 
33
30
  @dataclass(frozen=True, kw_only=True)
34
- class ProtectEventMixin(ProtectRequiredKeysMixin[T]):
31
+ class ProtectEventMixin(ProtectEntityDescription[T]):
35
32
  ufp_event_obj: str | None = ...
33
+ ufp_obj_type: SmartDetectObjectType | None = ...
36
34
  def get_event_obj(self, obj: T) -> Event | None: ...
37
- def get_is_on(self, obj: T, event: Event | None) -> bool: ...
38
- 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: ...
35
+ def has_matching_smart(self, event: Event) -> bool: ...
36
+ def __post_init__(self) -> 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, ufp_required_field, ufp_value, ufp_value_fn, ufp_enabled, ufp_perm, has_required, get_ufp_enabled, ufp_event_obj, ufp_obj_type) -> None: ...
39
38
 
40
39
  @dataclass(frozen=True, kw_only=True)
41
- class ProtectSetableKeysMixin(ProtectRequiredKeysMixin[T]):
40
+ class ProtectSetableKeysMixin(ProtectEntityDescription[T]):
42
41
  ufp_set_method: str | None = ...
43
42
  ufp_set_method_fn: Callable[[T, Any], Coroutine[Any, Any, None]] | None = ...
44
43
  async def ufp_set(self, obj: T, value: Any) -> None: ...
45
- 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) -> None: ...
44
+ 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) -> None: ...
@@ -1,26 +1,21 @@
1
- from .const import DISPATCH_ADOPT as DISPATCH_ADOPT, DOMAIN as DOMAIN
2
- from .data import ProtectData as ProtectData
1
+ from .data import ProtectData as ProtectData, UFPConfigEntry as UFPConfigEntry
3
2
  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
3
+ from .models import PermRequired as PermRequired, ProtectEntityDescription as ProtectEntityDescription, ProtectSetableKeysMixin as ProtectSetableKeysMixin, T as T
5
4
  from _typeshed import Incomplete
5
+ from collections.abc import Sequence
6
6
  from dataclasses import dataclass
7
7
  from homeassistant.components.number import NumberEntity as NumberEntity, NumberEntityDescription as NumberEntityDescription
8
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
9
8
  from homeassistant.const import EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE, UnitOfTime as UnitOfTime
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 as Camera, Doorlock, Light, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel, ProtectModelWithId as ProtectModelWithId
15
-
16
- _LOGGER: Incomplete
11
+ from uiprotect.data import Camera as Camera, Doorlock, Light, ModelType, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel, ProtectModelWithId as ProtectModelWithId
17
12
 
18
13
  @dataclass(frozen=True, kw_only=True)
19
14
  class ProtectNumberEntityDescription(ProtectSetableKeysMixin[T], NumberEntityDescription):
20
15
  ufp_max: int | float
21
16
  ufp_min: int | float
22
17
  ufp_step: int | float
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, max_value, min_value, mode, native_max_value, native_min_value, native_step, native_unit_of_measurement, step, ufp_required_field, ufp_value, ufp_value_fn, ufp_enabled, ufp_perm, ufp_set_method, ufp_set_method_fn, ufp_max, ufp_min, ufp_step) -> None: ...
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, max_value, min_value, mode, native_max_value, native_min_value, native_step, native_unit_of_measurement, step, 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_max, ufp_min, ufp_step) -> None: ...
24
19
 
25
20
  def _get_pir_duration(obj: Light) -> int: ...
26
21
  async def _set_pir_duration(obj: Light, value: float) -> None: ...
@@ -33,12 +28,14 @@ LIGHT_NUMBERS: tuple[ProtectNumberEntityDescription, ...]
33
28
  SENSE_NUMBERS: tuple[ProtectNumberEntityDescription, ...]
34
29
  DOORLOCK_NUMBERS: tuple[ProtectNumberEntityDescription, ...]
35
30
  CHIME_NUMBERS: tuple[ProtectNumberEntityDescription, ...]
31
+ _MODEL_DESCRIPTIONS: dict[ModelType, Sequence[ProtectEntityDescription]]
36
32
 
37
- async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
33
+ async def async_setup_entry(hass: HomeAssistant, entry: UFPConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
38
34
 
39
35
  class ProtectNumbers(ProtectDeviceEntity, NumberEntity):
40
36
  device: Camera | Light
41
37
  entity_description: ProtectNumberEntityDescription
38
+ _state_attrs: Incomplete
42
39
  _attr_native_max_value: Incomplete
43
40
  _attr_native_min_value: Incomplete
44
41
  _attr_native_step: Incomplete
@@ -46,4 +43,3 @@ class ProtectNumbers(ProtectDeviceEntity, NumberEntity):
46
43
  _attr_native_value: Incomplete
47
44
  def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None: ...
48
45
  async def async_set_native_value(self, value: float) -> None: ...
49
- def _async_get_state_attrs(self) -> tuple[Any, ...]: ...
@@ -1,4 +1,5 @@
1
1
  from .const import CONF_ALLOW_EA as CONF_ALLOW_EA
2
+ from .data import UFPConfigEntry as UFPConfigEntry, async_get_data_for_entry_id as async_get_data_for_entry_id
2
3
  from .utils import async_create_api_client as async_create_api_client
3
4
  from homeassistant import data_entry_flow as data_entry_flow
4
5
  from homeassistant.components.repairs import ConfirmRepairFlow as ConfirmRepairFlow, RepairsFlow as RepairsFlow
@@ -9,8 +10,8 @@ from uiprotect.data import Bootstrap as Bootstrap, Camera as Camera
9
10
 
10
11
  class ProtectRepair(RepairsFlow):
11
12
  _api: ProtectApiClient
12
- _entry: ConfigEntry
13
- def __init__(self, *, api: ProtectApiClient, entry: ConfigEntry) -> None: ...
13
+ _entry: UFPConfigEntry
14
+ def __init__(self, *, api: ProtectApiClient, entry: UFPConfigEntry) -> None: ...
14
15
  def _async_get_placeholders(self) -> dict[str, str]: ...
15
16
 
16
17
  class EAConfirmRepair(ProtectRepair):
@@ -26,7 +27,7 @@ class RTSPRepair(ProtectRepair):
26
27
  _camera_id: str
27
28
  _camera: Camera | None
28
29
  _bootstrap: Bootstrap | None
29
- def __init__(self, *, api: ProtectApiClient, entry: ConfigEntry, camera_id: str) -> None: ...
30
+ def __init__(self, *, api: ProtectApiClient, entry: UFPConfigEntry, camera_id: str) -> None: ...
30
31
  def _async_get_placeholders(self) -> dict[str, str]: ...
31
32
  async def _get_boostrap(self) -> Bootstrap: ...
32
33
  async def _get_camera(self) -> Camera: ...
@@ -35,4 +36,5 @@ class RTSPRepair(ProtectRepair):
35
36
  async def async_step_start(self, user_input: dict[str, str] | None = None) -> data_entry_flow.FlowResult: ...
36
37
  async def async_step_confirm(self, user_input: dict[str, str] | None = None) -> data_entry_flow.FlowResult: ...
37
38
 
39
+ def _async_get_or_create_api_client(hass: HomeAssistant, entry: ConfigEntry) -> ProtectApiClient: ...
38
40
  async def async_create_fix_flow(hass: HomeAssistant, issue_id: str, data: dict[str, str | int | float | None] | None) -> RepairsFlow: ...
@@ -1,21 +1,19 @@
1
- from .const import DISPATCH_ADOPT as DISPATCH_ADOPT, DOMAIN as DOMAIN, TYPE_EMPTY_VALUE as TYPE_EMPTY_VALUE
2
- from .data import ProtectData as ProtectData
1
+ from .const import TYPE_EMPTY_VALUE as TYPE_EMPTY_VALUE
2
+ from .data import ProtectData as ProtectData, 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 .utils import async_get_light_motion_current as async_get_light_motion_current
6
6
  from _typeshed import Incomplete
7
- from collections.abc import Callable as Callable
7
+ from collections.abc import Callable as Callable, Sequence
8
8
  from dataclasses import dataclass
9
9
  from enum import Enum
10
10
  from homeassistant.components.select import SelectEntity as SelectEntity, SelectEntityDescription as SelectEntityDescription
11
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
12
11
  from homeassistant.const import EntityCategory as EntityCategory
13
12
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
14
- from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
15
13
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
16
14
  from typing import Any, Final
17
15
  from uiprotect.api import ProtectApiClient as ProtectApiClient
18
- from uiprotect.data import Camera, Doorlock, Light, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel, ProtectModelWithId as ProtectModelWithId, Sensor, Viewer
16
+ from uiprotect.data import Camera, Doorlock, Light, ModelType, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel, ProtectModelWithId as ProtectModelWithId, Sensor, Viewer
19
17
 
20
18
  _LOGGER: Incomplete
21
19
  _KEY_LIGHT_MOTION: str
@@ -38,7 +36,7 @@ class ProtectSelectEntityDescription(ProtectSetableKeysMixin[T], SelectEntityDes
38
36
  ufp_options: list[dict[str, Any]] | None = ...
39
37
  ufp_options_fn: Callable[[ProtectApiClient], list[dict[str, Any]]] | None = ...
40
38
  ufp_enum_type: type[Enum] | None = ...
41
- 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, options, ufp_required_field, ufp_value, ufp_value_fn, ufp_enabled, ufp_perm, ufp_set_method, ufp_set_method_fn, ufp_options, ufp_options_fn, ufp_enum_type) -> None: ...
39
+ 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, options, 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_options, ufp_options_fn, ufp_enum_type) -> None: ...
42
40
 
43
41
  def _get_viewer_options(api: ProtectApiClient) -> list[dict[str, Any]]: ...
44
42
  def _get_doorbell_options(api: ProtectApiClient) -> list[dict[str, Any]]: ...
@@ -55,13 +53,14 @@ LIGHT_SELECTS: tuple[ProtectSelectEntityDescription, ...]
55
53
  SENSE_SELECTS: tuple[ProtectSelectEntityDescription, ...]
56
54
  DOORLOCK_SELECTS: tuple[ProtectSelectEntityDescription, ...]
57
55
  VIEWER_SELECTS: tuple[ProtectSelectEntityDescription, ...]
56
+ _MODEL_DESCRIPTIONS: dict[ModelType, Sequence[ProtectEntityDescription]]
58
57
 
59
- async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
58
+ async def async_setup_entry(hass: HomeAssistant, entry: UFPConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
60
59
 
61
60
  class ProtectSelects(ProtectDeviceEntity, SelectEntity):
62
61
  device: Camera | Light | Viewer
63
62
  entity_description: ProtectSelectEntityDescription
64
- _attr_name: Incomplete
63
+ _state_attrs: Incomplete
65
64
  def __init__(self, data: ProtectData, device: Camera | Light | Viewer, description: ProtectSelectEntityDescription) -> None: ...
66
65
  _attr_current_option: Incomplete
67
66
  def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None: ...
@@ -70,4 +69,3 @@ class ProtectSelects(ProtectDeviceEntity, SelectEntity):
70
69
  _unifi_to_hass_options: Incomplete
71
70
  def _async_set_options(self, data: ProtectData, description: ProtectSelectEntityDescription) -> None: ...
72
71
  async def async_select_option(self, option: str) -> None: ...
73
- def _async_get_state_attrs(self) -> tuple[Any, ...]: ...
@@ -1,32 +1,31 @@
1
- from .const import DISPATCH_ADOPT as DISPATCH_ADOPT, DOMAIN as DOMAIN
2
- from .data import ProtectData as ProtectData
3
- from .entity import 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, ProtectEventMixin as ProtectEventMixin, ProtectRequiredKeysMixin as ProtectRequiredKeysMixin, T as T
1
+ from .data import ProtectData as ProtectData, UFPConfigEntry as UFPConfigEntry
2
+ from .entity import BaseProtectEntity as BaseProtectEntity, EventEntityMixin as EventEntityMixin, ProtectDeviceEntity as ProtectDeviceEntity, ProtectNVREntity as ProtectNVREntity, async_all_device_entities as async_all_device_entities
3
+ from .models import PermRequired as PermRequired, ProtectEntityDescription as ProtectEntityDescription, ProtectEventMixin as ProtectEventMixin, T as T
5
4
  from .utils import async_get_light_motion_current as async_get_light_motion_current
6
5
  from _typeshed import Incomplete
6
+ from collections.abc import Callable as Callable, Sequence
7
7
  from dataclasses import dataclass
8
8
  from datetime import datetime
9
9
  from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
10
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
11
10
  from homeassistant.const import EntityCategory as EntityCategory, LIGHT_LUX as LIGHT_LUX, PERCENTAGE as PERCENTAGE, SIGNAL_STRENGTH_DECIBELS_MILLIWATT as SIGNAL_STRENGTH_DECIBELS_MILLIWATT, UnitOfDataRate as UnitOfDataRate, UnitOfElectricPotential as UnitOfElectricPotential, UnitOfInformation as UnitOfInformation, UnitOfTemperature as UnitOfTemperature, UnitOfTime as UnitOfTime
12
11
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
13
- from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
14
12
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
15
13
  from typing import Any
16
- from uiprotect.data import Camera, NVR, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel, ProtectDeviceModel as ProtectDeviceModel, ProtectModelWithId as ProtectModelWithId, Sensor
14
+ from uiprotect.data import Camera, ModelType, NVR, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel, ProtectDeviceModel as ProtectDeviceModel, ProtectModelWithId as ProtectModelWithId, Sensor
17
15
 
18
16
  _LOGGER: Incomplete
19
17
  OBJECT_TYPE_NONE: str
20
18
 
21
19
  @dataclass(frozen=True, kw_only=True)
22
- class ProtectSensorEntityDescription(ProtectRequiredKeysMixin[T], SensorEntityDescription):
20
+ class ProtectSensorEntityDescription(ProtectEntityDescription[T], SensorEntityDescription):
23
21
  precision: int | None = ...
24
- def get_ufp_value(self, obj: T) -> Any: ...
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, last_reset, native_unit_of_measurement, options, state_class, suggested_display_precision, suggested_unit_of_measurement, ufp_required_field, ufp_value, ufp_value_fn, ufp_enabled, ufp_perm, precision) -> None: ...
22
+ def __post_init__(self) -> None: ...
23
+ def _rounded_value(self, precision: int, getter: Callable[[T], Any], obj: T) -> Any: ...
24
+ def __init__(self, *, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, translation_placeholders, unit_of_measurement, last_reset, native_unit_of_measurement, options, state_class, suggested_display_precision, suggested_unit_of_measurement, ufp_required_field, ufp_value, ufp_value_fn, ufp_enabled, ufp_perm, has_required, get_ufp_enabled, precision) -> None: ...
26
25
 
27
26
  @dataclass(frozen=True, kw_only=True)
28
27
  class ProtectSensorEventEntityDescription(ProtectEventMixin[T], SensorEntityDescription):
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, last_reset, native_unit_of_measurement, options, state_class, suggested_display_precision, suggested_unit_of_measurement, ufp_required_field, ufp_value, ufp_value_fn, ufp_enabled, ufp_perm, ufp_event_obj) -> None: ...
28
+ def __init__(self, *, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, translation_placeholders, unit_of_measurement, last_reset, native_unit_of_measurement, options, state_class, suggested_display_precision, suggested_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: ...
30
29
 
31
30
  def _get_uptime(obj: ProtectDeviceModel) -> datetime | None: ...
32
31
  def _get_nvr_recording_capacity(obj: NVR) -> int: ...
@@ -40,32 +39,35 @@ SENSE_SENSORS: tuple[ProtectSensorEntityDescription, ...]
40
39
  DOORLOCK_SENSORS: tuple[ProtectSensorEntityDescription, ...]
41
40
  NVR_SENSORS: tuple[ProtectSensorEntityDescription, ...]
42
41
  NVR_DISABLED_SENSORS: tuple[ProtectSensorEntityDescription, ...]
43
- EVENT_SENSORS: tuple[ProtectSensorEventEntityDescription, ...]
42
+ LICENSE_PLATE_EVENT_SENSORS: tuple[ProtectSensorEventEntityDescription, ...]
44
43
  LIGHT_SENSORS: tuple[ProtectSensorEntityDescription, ...]
45
44
  MOTION_TRIP_SENSORS: tuple[ProtectSensorEntityDescription, ...]
46
45
  CHIME_SENSORS: tuple[ProtectSensorEntityDescription, ...]
47
46
  VIEWER_SENSORS: tuple[ProtectSensorEntityDescription, ...]
47
+ _MODEL_DESCRIPTIONS: dict[ModelType, Sequence[ProtectEntityDescription]]
48
48
 
49
- async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
49
+ async def async_setup_entry(hass: HomeAssistant, entry: UFPConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
50
50
  def _async_event_entities(data: ProtectData, ufp_device: Camera | None = None) -> list[ProtectDeviceEntity]: ...
51
- def _async_nvr_entities(data: ProtectData) -> list[ProtectDeviceEntity]: ...
51
+ def _async_nvr_entities(data: ProtectData) -> list[BaseProtectEntity]: ...
52
52
 
53
- class ProtectDeviceSensor(ProtectDeviceEntity, SensorEntity):
53
+ class BaseProtectSensor(BaseProtectEntity, SensorEntity):
54
54
  entity_description: ProtectSensorEntityDescription
55
+ _state_attrs: Incomplete
55
56
  _attr_native_value: Incomplete
56
57
  def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None: ...
57
- def _async_get_state_attrs(self) -> tuple[Any, ...]: ...
58
58
 
59
- class ProtectNVRSensor(ProtectNVREntity, SensorEntity):
60
- entity_description: ProtectSensorEntityDescription
61
- _attr_native_value: Incomplete
62
- def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None: ...
63
- def _async_get_state_attrs(self) -> tuple[Any, ...]: ...
59
+ class ProtectDeviceSensor(BaseProtectSensor, ProtectDeviceEntity): ...
60
+ class ProtectNVRSensor(BaseProtectSensor, ProtectNVREntity): ...
64
61
 
65
62
  class ProtectEventSensor(EventEntityMixin, SensorEntity):
66
63
  entity_description: ProtectSensorEventEntityDescription
64
+ _state_attrs: Incomplete
65
+
66
+ class ProtectLicensePlateEventSensor(ProtectEventSensor):
67
+ device: Camera
67
68
  _attr_native_value: Incomplete
68
- _event: Incomplete
69
69
  _attr_extra_state_attributes: Incomplete
70
+ def _set_event_done(self) -> None: ...
71
+ _event: Incomplete
72
+ _event_end: Incomplete
70
73
  def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None: ...
71
- def _async_get_state_attrs(self) -> tuple[Any, ...]: ...
@@ -2,7 +2,6 @@ from .const import ATTR_MESSAGE as ATTR_MESSAGE, DOMAIN as DOMAIN
2
2
  from .data import async_ufp_instance_for_config_entry_ids as async_ufp_instance_for_config_entry_ids
3
3
  from _typeshed import Incomplete
4
4
  from homeassistant.components.binary_sensor import BinarySensorDeviceClass as BinarySensorDeviceClass
5
- from homeassistant.config_entries import ConfigEntryState as ConfigEntryState
6
5
  from homeassistant.const import ATTR_DEVICE_ID as ATTR_DEVICE_ID, ATTR_NAME as ATTR_NAME, Platform as Platform
7
6
  from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, callback as callback
8
7
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, ServiceValidationError as ServiceValidationError
@@ -16,7 +15,6 @@ SERVICE_ADD_DOORBELL_TEXT: str
16
15
  SERVICE_REMOVE_DOORBELL_TEXT: str
17
16
  SERVICE_SET_PRIVACY_ZONE: str
18
17
  SERVICE_REMOVE_PRIVACY_ZONE: str
19
- SERVICE_SET_DEFAULT_DOORBELL_TEXT: str
20
18
  SERVICE_SET_CHIME_PAIRED: str
21
19
  ALL_GLOBAL_SERIVCES: Incomplete
22
20
  DOORBELL_TEXT_SCHEMA: Incomplete
@@ -29,9 +27,7 @@ def _async_get_protect_from_call(hass: HomeAssistant, call: ServiceCall) -> set[
29
27
  async def _async_service_call_nvr(hass: HomeAssistant, call: ServiceCall, method: str, *args: Any, **kwargs: Any) -> None: ...
30
28
  async def add_doorbell_text(hass: HomeAssistant, call: ServiceCall) -> None: ...
31
29
  async def remove_doorbell_text(hass: HomeAssistant, call: ServiceCall) -> None: ...
32
- async def set_default_doorbell_text(hass: HomeAssistant, call: ServiceCall) -> None: ...
33
30
  async def remove_privacy_zone(hass: HomeAssistant, call: ServiceCall) -> None: ...
34
31
  def _async_unique_id_to_mac(unique_id: str) -> str: ...
35
32
  async def set_chime_paired_doorbells(hass: HomeAssistant, call: ServiceCall) -> None: ...
36
33
  def async_setup_services(hass: HomeAssistant) -> None: ...
37
- def async_cleanup_services(hass: HomeAssistant) -> None: ...
@@ -1,18 +1,16 @@
1
- from .const import DISPATCH_ADOPT as DISPATCH_ADOPT, DOMAIN as DOMAIN
2
- from .data import ProtectData as ProtectData
3
- from .entity import ProtectDeviceEntity as ProtectDeviceEntity, ProtectNVREntity as ProtectNVREntity, async_all_device_entities as async_all_device_entities
4
- from .models import PermRequired as PermRequired, ProtectSetableKeysMixin as ProtectSetableKeysMixin, T as T
1
+ from .data import ProtectData as ProtectData, UFPConfigEntry as UFPConfigEntry
2
+ from .entity import BaseProtectEntity as BaseProtectEntity, ProtectDeviceEntity as ProtectDeviceEntity, ProtectNVREntity as ProtectNVREntity, async_all_device_entities as async_all_device_entities
3
+ from .models import PermRequired as PermRequired, ProtectEntityDescription as ProtectEntityDescription, ProtectSetableKeysMixin as ProtectSetableKeysMixin, T as T
5
4
  from _typeshed import Incomplete
5
+ from collections.abc import Sequence
6
6
  from dataclasses import dataclass
7
7
  from homeassistant.components.switch import SwitchEntity as SwitchEntity, SwitchEntityDescription as SwitchEntityDescription
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
11
  from homeassistant.helpers.restore_state import RestoreEntity as RestoreEntity
14
12
  from typing import Any
15
- from uiprotect.data import Camera, NVR as NVR, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel, ProtectModelWithId as ProtectModelWithId
13
+ from uiprotect.data import Camera, ModelType, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel, ProtectModelWithId as ProtectModelWithId
16
14
 
17
15
  _LOGGER: Incomplete
18
16
  ATTR_PREV_MIC: str
@@ -20,7 +18,7 @@ ATTR_PREV_RECORD: str
20
18
 
21
19
  @dataclass(frozen=True, kw_only=True)
22
20
  class ProtectSwitchEntityDescription(ProtectSetableKeysMixin[T], SwitchEntityDescription):
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, ufp_required_field, ufp_value, ufp_value_fn, ufp_enabled, ufp_perm, ufp_set_method, ufp_set_method_fn) -> 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) -> None: ...
24
22
 
25
23
  async def _set_highfps(obj: Camera, value: bool) -> None: ...
26
24
 
@@ -31,37 +29,30 @@ LIGHT_SWITCHES: tuple[ProtectSwitchEntityDescription, ...]
31
29
  DOORLOCK_SWITCHES: tuple[ProtectSwitchEntityDescription, ...]
32
30
  VIEWER_SWITCHES: tuple[ProtectSwitchEntityDescription, ...]
33
31
  NVR_SWITCHES: tuple[ProtectSwitchEntityDescription, ...]
32
+ _MODEL_DESCRIPTIONS: dict[ModelType, Sequence[ProtectEntityDescription]]
33
+ _PRIVACY_DESCRIPTIONS: dict[ModelType, Sequence[ProtectEntityDescription]]
34
34
 
35
- async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
36
-
37
- class ProtectSwitch(ProtectDeviceEntity, SwitchEntity):
35
+ class ProtectBaseSwitch(BaseProtectEntity, SwitchEntity):
38
36
  entity_description: ProtectSwitchEntityDescription
39
- _attr_name: Incomplete
40
- _switch_type: Incomplete
41
- def __init__(self, data: ProtectData, device: ProtectAdoptableDeviceModel, description: ProtectSwitchEntityDescription) -> None: ...
37
+ _state_attrs: Incomplete
42
38
  _attr_is_on: Incomplete
43
39
  def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None: ...
44
40
  async def async_turn_on(self, **kwargs: Any) -> None: ...
45
41
  async def async_turn_off(self, **kwargs: Any) -> None: ...
46
- def _async_get_state_attrs(self) -> tuple[Any, ...]: ...
47
42
 
48
- class ProtectNVRSwitch(ProtectNVREntity, SwitchEntity):
49
- entity_description: ProtectSwitchEntityDescription
50
- _attr_name: Incomplete
51
- def __init__(self, data: ProtectData, device: NVR, description: ProtectSwitchEntityDescription) -> None: ...
52
- @property
53
- def is_on(self) -> bool: ...
54
- async def async_turn_on(self, **kwargs: Any) -> None: ...
55
- async def async_turn_off(self, **kwargs: Any) -> None: ...
43
+ class ProtectSwitch(ProtectBaseSwitch, ProtectDeviceEntity): ...
44
+ class ProtectNVRSwitch(ProtectBaseSwitch, ProtectNVREntity): ...
56
45
 
57
46
  class ProtectPrivacyModeSwitch(RestoreEntity, ProtectSwitch):
58
47
  device: Camera
59
48
  _previous_mic_level: Incomplete
60
49
  _previous_record_mode: Incomplete
61
- def __init__(self, data: ProtectData, device: ProtectAdoptableDeviceModel, description: ProtectSwitchEntityDescription) -> None: ...
50
+ def __init__(self, data: ProtectData, device: Camera, description: ProtectSwitchEntityDescription) -> None: ...
62
51
  _attr_extra_state_attributes: Incomplete
63
52
  def _update_previous_attr(self) -> None: ...
64
53
  def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None: ...
65
54
  async def async_turn_on(self, **kwargs: Any) -> None: ...
66
55
  async def async_turn_off(self, **kwargs: Any) -> None: ...
67
56
  async def async_added_to_hass(self) -> None: ...
57
+
58
+ async def async_setup_entry(hass: HomeAssistant, entry: UFPConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
@@ -1,33 +1,30 @@
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, async_all_device_entities as async_all_device_entities
4
- from .models import PermRequired as PermRequired, ProtectSetableKeysMixin as ProtectSetableKeysMixin, T as T
3
+ from .models import PermRequired as PermRequired, ProtectEntityDescription as ProtectEntityDescription, ProtectSetableKeysMixin as ProtectSetableKeysMixin, T as T
5
4
  from _typeshed import Incomplete
5
+ from collections.abc import Sequence
6
6
  from dataclasses import dataclass
7
7
  from homeassistant.components.text import TextEntity as TextEntity, TextEntityDescription as TextEntityDescription
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 as Camera, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel, ProtectModelWithId as ProtectModelWithId
11
+ from uiprotect.data import Camera as Camera, ModelType, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel, ProtectModelWithId as ProtectModelWithId
15
12
 
16
13
  @dataclass(frozen=True, kw_only=True)
17
14
  class ProtectTextEntityDescription(ProtectSetableKeysMixin[T], TextEntityDescription):
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, native_min, native_max, mode, pattern, ufp_required_field, ufp_value, ufp_value_fn, ufp_enabled, ufp_perm, ufp_set_method, ufp_set_method_fn) -> None: ...
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, native_min, native_max, mode, pattern, ufp_required_field, ufp_value, ufp_value_fn, ufp_enabled, ufp_perm, has_required, get_ufp_enabled, ufp_set_method, ufp_set_method_fn) -> None: ...
19
16
 
20
17
  def _get_doorbell_current(obj: Camera) -> str | None: ...
21
18
  async def _set_doorbell_message(obj: Camera, message: str) -> None: ...
22
19
 
23
20
  CAMERA: tuple[ProtectTextEntityDescription, ...]
21
+ _MODEL_DESCRIPTIONS: dict[ModelType, Sequence[ProtectEntityDescription]]
24
22
 
25
- async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
23
+ async def async_setup_entry(hass: HomeAssistant, entry: UFPConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
26
24
 
27
25
  class ProtectDeviceText(ProtectDeviceEntity, TextEntity):
28
26
  entity_description: ProtectTextEntityDescription
29
- def __init__(self, data: ProtectData, device: ProtectAdoptableDeviceModel, description: ProtectTextEntityDescription) -> None: ...
27
+ _state_attrs: Incomplete
30
28
  _attr_native_value: Incomplete
31
29
  def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None: ...
32
- def _async_get_state_attrs(self) -> tuple[Any, ...]: ...
33
30
  async def async_set_value(self, value: str) -> None: ...
@@ -1,24 +1,19 @@
1
- from .const import CONF_ALL_UPDATES as CONF_ALL_UPDATES, CONF_OVERRIDE_CHOST as CONF_OVERRIDE_CHOST, DEVICES_FOR_SUBSCRIBE as DEVICES_FOR_SUBSCRIBE, DOMAIN as DOMAIN, ModelType as ModelType
2
- from _typeshed import Incomplete
3
- from collections.abc import Generator, Iterable
4
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
1
+ from .const import CONF_ALL_UPDATES as CONF_ALL_UPDATES, CONF_OVERRIDE_CHOST as CONF_OVERRIDE_CHOST, DEVICES_FOR_SUBSCRIBE as DEVICES_FOR_SUBSCRIBE, ModelType as ModelType
2
+ from .data import UFPConfigEntry as UFPConfigEntry
3
+ from collections.abc import Iterable
5
4
  from homeassistant.const import CONF_HOST as CONF_HOST, CONF_PASSWORD as CONF_PASSWORD, CONF_PORT as CONF_PORT, CONF_USERNAME as CONF_USERNAME, CONF_VERIFY_SSL as CONF_VERIFY_SSL
6
5
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
7
6
  from homeassistant.helpers.aiohttp_client import async_create_clientsession as async_create_clientsession
8
7
  from homeassistant.helpers.storage import STORAGE_DIR as STORAGE_DIR
9
- from typing import Any
8
+ from typing_extensions import Generator
10
9
  from uiprotect import ProtectApiClient
11
10
  from uiprotect.data import Bootstrap as Bootstrap, CameraChannel as CameraChannel, Light as Light, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel
12
11
 
13
- _SENTINEL: Incomplete
14
-
15
- def get_nested_attr(obj: Any, attrs: tuple[str, ...]) -> Any: ...
16
12
  def _async_unifi_mac_from_hass(mac: str) -> str: ...
17
13
  def _async_short_mac(mac: str) -> str: ...
18
14
  async def _async_resolve(hass: HomeAssistant, host: str) -> str | None: ...
19
15
  def async_get_devices_by_type(bootstrap: Bootstrap, device_type: ModelType) -> dict[str, ProtectAdoptableDeviceModel]: ...
20
- def async_get_devices(bootstrap: Bootstrap, model_type: Iterable[ModelType]) -> Generator[ProtectAdoptableDeviceModel, None, None]: ...
16
+ def async_get_devices(bootstrap: Bootstrap, model_type: Iterable[ModelType]) -> Generator[ProtectAdoptableDeviceModel]: ...
21
17
  def async_get_light_motion_current(obj: Light) -> str: ...
22
- def async_dispatch_id(entry: ConfigEntry, dispatch: str) -> str: ...
23
- def async_create_api_client(hass: HomeAssistant, entry: ConfigEntry) -> ProtectApiClient: ...
18
+ def async_create_api_client(hass: HomeAssistant, entry: UFPConfigEntry) -> ProtectApiClient: ...
24
19
  def get_camera_base_name(channel: CameraChannel) -> str: ...
@@ -1,5 +1,4 @@
1
- from .const import DOMAIN as DOMAIN
2
- from .data import ProtectData as ProtectData
1
+ from .data import ProtectData as ProtectData, async_get_data_for_entry_id as async_get_data_for_entry_id, async_get_data_for_nvr_id as async_get_data_for_nvr_id
3
2
  from _typeshed import Incomplete
4
3
  from aiohttp import web
5
4
  from homeassistant.components.http import HomeAssistantView as HomeAssistantView
@@ -21,9 +20,8 @@ def _validate_event(event: Event) -> None: ...
21
20
  class ProtectProxyView(HomeAssistantView):
22
21
  requires_auth: bool
23
22
  hass: Incomplete
24
- data: Incomplete
25
23
  def __init__(self, hass: HomeAssistant) -> None: ...
26
- def _get_data_or_404(self, nvr_id: str) -> ProtectData | web.Response: ...
24
+ def _get_data_or_404(self, nvr_id_or_entry_id: str) -> ProtectData | web.Response: ...
27
25
 
28
26
  class ThumbnailProxyView(ProtectProxyView):
29
27
  url: str
@@ -3,13 +3,15 @@ from _typeshed import Incomplete
3
3
  from enum import StrEnum
4
4
  from functools import cached_property
5
5
  from homeassistant.const import EntityCategory
6
- from homeassistant.helpers.config_validation import PLATFORM_SCHEMA as PLATFORM_SCHEMA, PLATFORM_SCHEMA_BASE as PLATFORM_SCHEMA_BASE
7
6
  from homeassistant.helpers.entity import ABCCachedProperties, EntityDescription
8
7
  from homeassistant.helpers.restore_state import RestoreEntity
9
8
  from typing import Any
10
9
 
11
10
  __all__ = ['ATTR_BACKUP', 'ATTR_INSTALLED_VERSION', 'ATTR_LATEST_VERSION', 'ATTR_VERSION', 'DEVICE_CLASSES_SCHEMA', 'DOMAIN', 'PLATFORM_SCHEMA_BASE', 'PLATFORM_SCHEMA', 'SERVICE_INSTALL', 'SERVICE_SKIP', 'UpdateDeviceClass', 'UpdateEntity', 'UpdateEntityDescription', 'UpdateEntityFeature']
12
11
 
12
+ PLATFORM_SCHEMA: Incomplete
13
+ PLATFORM_SCHEMA_BASE: Incomplete
14
+
13
15
  class UpdateDeviceClass(StrEnum):
14
16
  FIRMWARE: str
15
17
 
@@ -5,7 +5,6 @@ from functools import cached_property as cached_property
5
5
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
6
6
  from homeassistant.const import ATTR_BATTERY_LEVEL as ATTR_BATTERY_LEVEL, ATTR_COMMAND as ATTR_COMMAND, SERVICE_TOGGLE as SERVICE_TOGGLE, SERVICE_TURN_OFF as SERVICE_TURN_OFF, SERVICE_TURN_ON as SERVICE_TURN_ON, STATE_IDLE as STATE_IDLE, STATE_ON as STATE_ON, STATE_PAUSED as STATE_PAUSED
7
7
  from homeassistant.core import HomeAssistant as HomeAssistant
8
- from homeassistant.helpers.config_validation import PLATFORM_SCHEMA as PLATFORM_SCHEMA, PLATFORM_SCHEMA_BASE as PLATFORM_SCHEMA_BASE, make_entity_service_schema as make_entity_service_schema
9
8
  from homeassistant.helpers.entity import Entity as Entity, EntityDescription as EntityDescription
10
9
  from homeassistant.helpers.entity_component import EntityComponent as EntityComponent
11
10
  from homeassistant.helpers.icon import icon_for_battery_level as icon_for_battery_level
@@ -15,6 +14,8 @@ from typing import Any
15
14
 
16
15
  _LOGGER: Incomplete
17
16
  ENTITY_ID_FORMAT: Incomplete
17
+ PLATFORM_SCHEMA: Incomplete
18
+ PLATFORM_SCHEMA_BASE: Incomplete
18
19
  SCAN_INTERVAL: Incomplete
19
20
  ATTR_BATTERY_ICON: str
20
21
  ATTR_CLEANED_AREA: str
@@ -6,7 +6,7 @@ from dataclasses import dataclass
6
6
  from datetime import datetime
7
7
  from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
8
8
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
9
- from homeassistant.const import CONCENTRATION_PARTS_PER_MILLION as CONCENTRATION_PARTS_PER_MILLION, EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE, REVOLUTIONS_PER_MINUTE as REVOLUTIONS_PER_MINUTE, UnitOfTemperature as UnitOfTemperature
9
+ from homeassistant.const import CONCENTRATION_PARTS_PER_MILLION as CONCENTRATION_PARTS_PER_MILLION, EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE, REVOLUTIONS_PER_MINUTE as REVOLUTIONS_PER_MINUTE, UnitOfTemperature as UnitOfTemperature, 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
@@ -35,6 +35,10 @@ class ValloxCellStateSensor(ValloxSensorEntity):
35
35
  @property
36
36
  def native_value(self) -> StateType: ...
37
37
 
38
+ class ValloxProfileDurationSensor(ValloxSensorEntity):
39
+ @property
40
+ def native_value(self) -> StateType: ...
41
+
38
42
  @dataclass(frozen=True)
39
43
  class ValloxSensorEntityDescription(SensorEntityDescription):
40
44
  metric_key: str | None = ...
@@ -4,7 +4,6 @@ from enum import IntFlag, StrEnum
4
4
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
5
5
  from homeassistant.const import SERVICE_CLOSE_VALVE as SERVICE_CLOSE_VALVE, SERVICE_OPEN_VALVE as SERVICE_OPEN_VALVE, SERVICE_SET_VALVE_POSITION as SERVICE_SET_VALVE_POSITION, SERVICE_STOP_VALVE as SERVICE_STOP_VALVE, SERVICE_TOGGLE as SERVICE_TOGGLE, STATE_CLOSED as STATE_CLOSED, STATE_CLOSING as STATE_CLOSING, STATE_OPEN as STATE_OPEN, STATE_OPENING as STATE_OPENING
6
6
  from homeassistant.core import HomeAssistant as HomeAssistant
7
- from homeassistant.helpers.config_validation import PLATFORM_SCHEMA as PLATFORM_SCHEMA, PLATFORM_SCHEMA_BASE as PLATFORM_SCHEMA_BASE
8
7
  from homeassistant.helpers.entity import Entity as Entity, EntityDescription as EntityDescription
9
8
  from homeassistant.helpers.entity_component import EntityComponent as EntityComponent
10
9
  from homeassistant.helpers.typing import ConfigType as ConfigType
@@ -12,8 +11,10 @@ from typing import Any
12
11
 
13
12
  _LOGGER: Incomplete
14
13
  DOMAIN: str
15
- SCAN_INTERVAL: Incomplete
16
14
  ENTITY_ID_FORMAT: Incomplete
15
+ PLATFORM_SCHEMA: Incomplete
16
+ PLATFORM_SCHEMA_BASE: Incomplete
17
+ SCAN_INTERVAL: Incomplete
17
18
 
18
19
  class ValveDeviceClass(StrEnum):
19
20
  WATER: str
@@ -6,7 +6,6 @@ from homeassistant.config_entries import ConfigEntry as ConfigEntry
6
6
  from homeassistant.const import ATTR_ENTITY_ID as ATTR_ENTITY_ID, ATTR_TEMPERATURE as ATTR_TEMPERATURE, PRECISION_TENTHS as PRECISION_TENTHS, PRECISION_WHOLE as PRECISION_WHOLE, SERVICE_TURN_OFF as SERVICE_TURN_OFF, SERVICE_TURN_ON as SERVICE_TURN_ON, STATE_OFF as STATE_OFF, STATE_ON as STATE_ON, UnitOfTemperature as UnitOfTemperature
7
7
  from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall
8
8
  from homeassistant.exceptions import ServiceValidationError as ServiceValidationError
9
- from homeassistant.helpers.config_validation import PLATFORM_SCHEMA as PLATFORM_SCHEMA, PLATFORM_SCHEMA_BASE as PLATFORM_SCHEMA_BASE
10
9
  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
11
10
  from homeassistant.helpers.entity import Entity as Entity, EntityDescription as EntityDescription
12
11
  from homeassistant.helpers.entity_component import EntityComponent as EntityComponent
@@ -14,10 +13,12 @@ from homeassistant.helpers.typing import ConfigType as ConfigType
14
13
  from homeassistant.util.unit_conversion import TemperatureConverter as TemperatureConverter
15
14
  from typing import Any
16
15
 
17
- DEFAULT_MIN_TEMP: int
18
- DEFAULT_MAX_TEMP: int
19
16
  ENTITY_ID_FORMAT: Incomplete
17
+ PLATFORM_SCHEMA: Incomplete
18
+ PLATFORM_SCHEMA_BASE: Incomplete
20
19
  SCAN_INTERVAL: Incomplete
20
+ DEFAULT_MIN_TEMP: int
21
+ DEFAULT_MAX_TEMP: int
21
22
  SERVICE_SET_AWAY_MODE: str
22
23
  SERVICE_SET_TEMPERATURE: str
23
24
  SERVICE_SET_OPERATION_MODE: str