homeassistant-stubs 2024.6.4__py3-none-any.whl → 2024.7.0b0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (605) 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 +8 -1
  4. homeassistant-stubs/block_async_io.pyi +23 -0
  5. homeassistant-stubs/components/accuweather/sensor.pyi +5 -9
  6. homeassistant-stubs/components/accuweather/weather.pyi +1 -1
  7. homeassistant-stubs/components/acer_projector/switch.pyi +2 -1
  8. homeassistant-stubs/components/air_quality/__init__.pyi +4 -3
  9. homeassistant-stubs/components/airgradient/__init__.pyi +8 -0
  10. homeassistant-stubs/components/airgradient/button.pyi +28 -0
  11. homeassistant-stubs/components/airgradient/const.pyi +2 -0
  12. homeassistant-stubs/components/airgradient/coordinator.pyi +2 -2
  13. homeassistant-stubs/components/airgradient/number.pyi +32 -0
  14. homeassistant-stubs/components/airgradient/select.pyi +14 -12
  15. homeassistant-stubs/components/airgradient/sensor.pyi +28 -10
  16. homeassistant-stubs/components/airgradient/switch.pyi +33 -0
  17. homeassistant-stubs/components/airnow/const.pyi +1 -0
  18. homeassistant-stubs/components/airnow/coordinator.pyi +1 -1
  19. homeassistant-stubs/components/airnow/sensor.pyi +1 -2
  20. homeassistant-stubs/components/airzone/__init__.pyi +4 -4
  21. homeassistant-stubs/components/airzone/binary_sensor.pyi +2 -2
  22. homeassistant-stubs/components/airzone/climate.pyi +3 -2
  23. homeassistant-stubs/components/airzone/diagnostics.pyi +2 -4
  24. homeassistant-stubs/components/airzone/entity.pyi +2 -1
  25. homeassistant-stubs/components/airzone/select.pyi +2 -2
  26. homeassistant-stubs/components/airzone/sensor.pyi +3 -2
  27. homeassistant-stubs/components/airzone/water_heater.pyi +3 -2
  28. homeassistant-stubs/components/airzone_cloud/__init__.pyi +3 -3
  29. homeassistant-stubs/components/airzone_cloud/binary_sensor.pyi +2 -3
  30. homeassistant-stubs/components/airzone_cloud/climate.pyi +8 -10
  31. homeassistant-stubs/components/airzone_cloud/diagnostics.pyi +2 -4
  32. homeassistant-stubs/components/airzone_cloud/select.pyi +2 -3
  33. homeassistant-stubs/components/airzone_cloud/sensor.pyi +2 -3
  34. homeassistant-stubs/components/airzone_cloud/water_heater.pyi +2 -3
  35. homeassistant-stubs/components/aladdin_connect/api.pyi +0 -1
  36. homeassistant-stubs/components/aladdin_connect/coordinator.pyi +0 -2
  37. homeassistant-stubs/components/aladdin_connect/cover.pyi +0 -1
  38. homeassistant-stubs/components/aladdin_connect/entity.pyi +0 -1
  39. homeassistant-stubs/components/aladdin_connect/sensor.pyi +0 -2
  40. homeassistant-stubs/components/alarm_control_panel/__init__.pyi +3 -3
  41. homeassistant-stubs/components/alexa/capabilities.pyi +2 -2
  42. homeassistant-stubs/components/alexa/entities.pyi +25 -24
  43. homeassistant-stubs/components/alpha_vantage/sensor.pyi +2 -1
  44. homeassistant-stubs/components/ambient_network/coordinator.pyi +2 -0
  45. homeassistant-stubs/components/ambient_network/sensor.pyi +1 -0
  46. homeassistant-stubs/components/androidtv/entity.pyi +1 -0
  47. homeassistant-stubs/components/androidtv/remote.pyi +21 -0
  48. homeassistant-stubs/components/androidtv_remote/config_flow.pyi +11 -1
  49. homeassistant-stubs/components/androidtv_remote/const.pyi +3 -0
  50. homeassistant-stubs/components/androidtv_remote/entity.pyi +2 -1
  51. homeassistant-stubs/components/androidtv_remote/media_player.pyi +4 -1
  52. homeassistant-stubs/components/androidtv_remote/remote.pyi +3 -0
  53. homeassistant-stubs/components/anel_pwrctrl/switch.pyi +2 -1
  54. homeassistant-stubs/components/apprise/notify.pyi +2 -1
  55. homeassistant-stubs/components/apsystems/__init__.pyi +9 -2
  56. homeassistant-stubs/components/apsystems/entity.pyi +10 -0
  57. homeassistant-stubs/components/apsystems/number.pyi +25 -0
  58. homeassistant-stubs/components/apsystems/sensor.pyi +6 -7
  59. homeassistant-stubs/components/aqualogic/sensor.pyi +2 -1
  60. homeassistant-stubs/components/aqualogic/switch.pyi +2 -1
  61. homeassistant-stubs/components/aquostv/media_player.pyi +2 -1
  62. homeassistant-stubs/components/assist_pipeline/pipeline.pyi +8 -7
  63. homeassistant-stubs/components/assist_pipeline/select.pyi +1 -1
  64. homeassistant-stubs/components/asuswrt/config_flow.pyi +1 -0
  65. homeassistant-stubs/components/automation/__init__.pyi +10 -5
  66. homeassistant-stubs/components/automation/config.pyi +11 -1
  67. homeassistant-stubs/components/automation/trace.pyi +2 -2
  68. homeassistant-stubs/components/axis/config_flow.pyi +1 -0
  69. homeassistant-stubs/components/baf/binary_sensor.pyi +2 -4
  70. homeassistant-stubs/components/baf/entity.pyi +6 -1
  71. homeassistant-stubs/components/baf/number.pyi +2 -4
  72. homeassistant-stubs/components/baf/sensor.pyi +2 -4
  73. homeassistant-stubs/components/baf/switch.pyi +2 -4
  74. homeassistant-stubs/components/bang_olufsen/const.pyi +2 -0
  75. homeassistant-stubs/components/bang_olufsen/media_player.pyi +3 -2
  76. homeassistant-stubs/components/bayesian/binary_sensor.pyi +2 -1
  77. homeassistant-stubs/components/binary_sensor/__init__.pyi +3 -2
  78. homeassistant-stubs/components/bitcoin/sensor.pyi +2 -1
  79. homeassistant-stubs/components/blockchain/sensor.pyi +2 -1
  80. homeassistant-stubs/components/blueprint/errors.pyi +1 -1
  81. homeassistant-stubs/components/blueprint/websocket_api.pyi +6 -3
  82. homeassistant-stubs/components/bluetooth/passive_update_coordinator.pyi +3 -3
  83. homeassistant-stubs/components/bmw_connected_drive/const.pyi +0 -1
  84. homeassistant-stubs/components/bmw_connected_drive/select.pyi +1 -1
  85. homeassistant-stubs/components/bmw_connected_drive/sensor.pyi +1 -1
  86. homeassistant-stubs/components/brother/config_flow.pyi +9 -1
  87. homeassistant-stubs/components/button/__init__.pyi +4 -3
  88. homeassistant-stubs/components/calendar/__init__.pyi +2 -4
  89. homeassistant-stubs/components/camera/__init__.pyi +8 -7
  90. homeassistant-stubs/components/cert_expiry/sensor.pyi +2 -1
  91. homeassistant-stubs/components/clickatell/notify.pyi +2 -1
  92. homeassistant-stubs/components/clicksend/notify.pyi +2 -1
  93. homeassistant-stubs/components/climate/__init__.pyi +5 -4
  94. homeassistant-stubs/components/cloud/__init__.pyi +1 -1
  95. homeassistant-stubs/components/cloud/account_link.pyi +1 -1
  96. homeassistant-stubs/components/cloud/binary_sensor.pyi +1 -1
  97. homeassistant-stubs/components/cloud/const.pyi +6 -1
  98. homeassistant-stubs/components/cloud/http_api.pyi +1 -1
  99. homeassistant-stubs/components/cloud/repairs.pyi +1 -3
  100. homeassistant-stubs/components/cloud/stt.pyi +1 -1
  101. homeassistant-stubs/components/cloud/system_health.pyi +1 -3
  102. homeassistant-stubs/components/cloud/tts.pyi +1 -1
  103. homeassistant-stubs/components/config/auth_provider_homeassistant.pyi +1 -0
  104. homeassistant-stubs/components/config/scene.pyi +3 -1
  105. homeassistant-stubs/components/counter/__init__.pyi +2 -2
  106. homeassistant-stubs/components/cover/__init__.pyi +3 -2
  107. homeassistant-stubs/components/demo/tts.pyi +2 -1
  108. homeassistant-stubs/components/derivative/__init__.pyi +2 -1
  109. homeassistant-stubs/components/derivative/config_flow.pyi +11 -4
  110. homeassistant-stubs/components/derivative/sensor.pyi +3 -1
  111. homeassistant-stubs/components/device_automation/__init__.pyi +2 -2
  112. homeassistant-stubs/components/dlna_dmr/config_flow.pyi +1 -0
  113. homeassistant-stubs/components/dnsip/__init__.pyi +4 -2
  114. homeassistant-stubs/components/dnsip/config_flow.pyi +4 -3
  115. homeassistant-stubs/components/dnsip/const.pyi +2 -0
  116. homeassistant-stubs/components/dnsip/sensor.pyi +4 -3
  117. homeassistant-stubs/components/ecovacs/binary_sensor.pyi +3 -3
  118. homeassistant-stubs/components/ecovacs/button.pyi +5 -5
  119. homeassistant-stubs/components/ecovacs/config_flow.pyi +1 -0
  120. homeassistant-stubs/components/ecovacs/controller.pyi +4 -4
  121. homeassistant-stubs/components/ecovacs/entity.pyi +8 -10
  122. homeassistant-stubs/components/ecovacs/event.pyi +3 -3
  123. homeassistant-stubs/components/ecovacs/image.pyi +2 -2
  124. homeassistant-stubs/components/ecovacs/lawn_mower.pyi +3 -3
  125. homeassistant-stubs/components/ecovacs/number.pyi +3 -3
  126. homeassistant-stubs/components/ecovacs/select.pyi +3 -3
  127. homeassistant-stubs/components/ecovacs/sensor.pyi +6 -6
  128. homeassistant-stubs/components/ecovacs/switch.pyi +4 -4
  129. homeassistant-stubs/components/ecovacs/vacuum.pyi +9 -5
  130. homeassistant-stubs/components/ecowitt/binary_sensor.pyi +1 -0
  131. homeassistant-stubs/components/efergy/__init__.pyi +3 -2
  132. homeassistant-stubs/components/efergy/sensor.pyi +3 -4
  133. homeassistant-stubs/components/electrasmart/__init__.pyi +12 -0
  134. homeassistant-stubs/components/electrasmart/climate.pyi +64 -0
  135. homeassistant-stubs/components/electrasmart/config_flow.pyi +24 -0
  136. homeassistant-stubs/components/electrasmart/const.pyi +10 -0
  137. homeassistant-stubs/components/elkm1/alarm_control_panel.pyi +2 -1
  138. homeassistant-stubs/components/elkm1/const.pyi +2 -1
  139. homeassistant-stubs/components/elkm1/sensor.pyi +2 -1
  140. homeassistant-stubs/components/energy/websocket_api.pyi +5 -5
  141. homeassistant-stubs/components/enigma2/__init__.pyi +3 -2
  142. homeassistant-stubs/components/enigma2/config_flow.pyi +10 -1
  143. homeassistant-stubs/components/enigma2/media_player.pyi +3 -2
  144. homeassistant-stubs/components/enphase_envoy/config_flow.pyi +8 -2
  145. homeassistant-stubs/components/enphase_envoy/const.pyi +2 -0
  146. homeassistant-stubs/components/enphase_envoy/diagnostics.pyi +3 -1
  147. homeassistant-stubs/components/esphome/__init__.pyi +5 -5
  148. homeassistant-stubs/components/esphome/alarm_control_panel.pyi +3 -5
  149. homeassistant-stubs/components/esphome/binary_sensor.pyi +2 -3
  150. homeassistant-stubs/components/esphome/button.pyi +3 -5
  151. homeassistant-stubs/components/esphome/camera.pyi +3 -5
  152. homeassistant-stubs/components/esphome/climate.pyi +3 -6
  153. homeassistant-stubs/components/esphome/cover.pyi +3 -5
  154. homeassistant-stubs/components/esphome/date.pyi +3 -5
  155. homeassistant-stubs/components/esphome/datetime.pyi +3 -5
  156. homeassistant-stubs/components/esphome/diagnostics.pyi +3 -3
  157. homeassistant-stubs/components/esphome/domain_data.pyi +4 -8
  158. homeassistant-stubs/components/esphome/entity.pyi +2 -4
  159. homeassistant-stubs/components/esphome/entry_data.pyi +4 -3
  160. homeassistant-stubs/components/esphome/event.pyi +3 -5
  161. homeassistant-stubs/components/esphome/fan.pyi +3 -6
  162. homeassistant-stubs/components/esphome/light.pyi +3 -6
  163. homeassistant-stubs/components/esphome/lock.pyi +3 -5
  164. homeassistant-stubs/components/esphome/manager.pyi +4 -5
  165. homeassistant-stubs/components/esphome/media_player.pyi +3 -5
  166. homeassistant-stubs/components/esphome/number.pyi +3 -5
  167. homeassistant-stubs/components/esphome/select.pyi +2 -4
  168. homeassistant-stubs/components/esphome/switch.pyi +3 -5
  169. homeassistant-stubs/components/esphome/text.pyi +3 -5
  170. homeassistant-stubs/components/esphome/time.pyi +3 -5
  171. homeassistant-stubs/components/esphome/update.pyi +22 -2
  172. homeassistant-stubs/components/esphome/valve.pyi +3 -5
  173. homeassistant-stubs/components/event/__init__.pyi +3 -1
  174. homeassistant-stubs/components/evohome/__init__.pyi +8 -49
  175. homeassistant-stubs/components/evohome/climate.pyi +2 -2
  176. homeassistant-stubs/components/evohome/const.pyi +39 -16
  177. homeassistant-stubs/components/evohome/coordinator.pyi +33 -0
  178. homeassistant-stubs/components/evohome/helpers.pyi +13 -0
  179. homeassistant-stubs/components/fan/__init__.pyi +3 -2
  180. homeassistant-stubs/components/fastdotcom/__init__.pyi +2 -7
  181. homeassistant-stubs/components/fastdotcom/config_flow.pyi +0 -2
  182. homeassistant-stubs/components/feedreader/__init__.pyi +10 -5
  183. homeassistant-stubs/components/feedreader/config_flow.pyi +30 -0
  184. homeassistant-stubs/components/feedreader/const.pyi +5 -0
  185. homeassistant-stubs/components/feedreader/coordinator.pyi +4 -4
  186. homeassistant-stubs/components/filter/sensor.pyi +2 -1
  187. homeassistant-stubs/components/flux_led/light.pyi +4 -3
  188. homeassistant-stubs/components/fritz/switch.pyi +1 -1
  189. homeassistant-stubs/components/fritzbox/climate.pyi +14 -9
  190. homeassistant-stubs/components/fronius/config_flow.pyi +3 -2
  191. homeassistant-stubs/components/frontend/__init__.pyi +9 -4
  192. homeassistant-stubs/components/fully_kiosk/camera.pyi +21 -0
  193. homeassistant-stubs/components/fully_kiosk/image.pyi +30 -0
  194. homeassistant-stubs/components/fully_kiosk/media_player.pyi +2 -0
  195. homeassistant-stubs/components/fully_kiosk/notify.pyi +25 -0
  196. homeassistant-stubs/components/generic_hygrostat/__init__.pyi +4 -0
  197. homeassistant-stubs/components/generic_hygrostat/config_flow.pyi +19 -0
  198. homeassistant-stubs/components/generic_hygrostat/humidifier.pyi +7 -2
  199. homeassistant-stubs/components/generic_thermostat/__init__.pyi +6 -0
  200. homeassistant-stubs/components/generic_thermostat/climate.pyi +7 -1
  201. homeassistant-stubs/components/generic_thermostat/config_flow.pyi +19 -0
  202. homeassistant-stubs/components/geo_location/__init__.pyi +4 -3
  203. homeassistant-stubs/components/glances/__init__.pyi +3 -2
  204. homeassistant-stubs/components/glances/sensor.pyi +2 -3
  205. homeassistant-stubs/components/goalzero/__init__.pyi +3 -5
  206. homeassistant-stubs/components/goalzero/binary_sensor.pyi +2 -3
  207. homeassistant-stubs/components/goalzero/coordinator.pyi +3 -1
  208. homeassistant-stubs/components/goalzero/sensor.pyi +2 -3
  209. homeassistant-stubs/components/goalzero/switch.pyi +2 -3
  210. homeassistant-stubs/components/google_assistant_sdk/__init__.pyi +2 -2
  211. homeassistant-stubs/components/google_assistant_sdk/diagnostics.pyi +9 -0
  212. homeassistant-stubs/components/google_assistant_sdk/helpers.pyi +1 -0
  213. homeassistant-stubs/components/google_sheets/__init__.pyi +4 -3
  214. homeassistant-stubs/components/google_sheets/config_flow.pyi +3 -2
  215. homeassistant-stubs/components/gpsd/sensor.pyi +2 -1
  216. homeassistant-stubs/components/group/binary_sensor.pyi +2 -1
  217. homeassistant-stubs/components/group/cover.pyi +2 -1
  218. homeassistant-stubs/components/group/entity.pyi +2 -2
  219. homeassistant-stubs/components/group/event.pyi +2 -1
  220. homeassistant-stubs/components/group/fan.pyi +2 -1
  221. homeassistant-stubs/components/group/light.pyi +2 -1
  222. homeassistant-stubs/components/group/lock.pyi +2 -1
  223. homeassistant-stubs/components/group/media_player.pyi +2 -1
  224. homeassistant-stubs/components/group/notify.pyi +2 -1
  225. homeassistant-stubs/components/group/registry.pyi +8 -2
  226. homeassistant-stubs/components/group/switch.pyi +2 -1
  227. homeassistant-stubs/components/history_stats/sensor.pyi +4 -1
  228. homeassistant-stubs/components/homeassistant/const.pyi +3 -1
  229. homeassistant-stubs/components/homekit/aidmanager.pyi +2 -2
  230. homeassistant-stubs/components/homekit_controller/config_flow.pyi +1 -0
  231. homeassistant-stubs/components/homeworks/__init__.pyi +2 -5
  232. homeassistant-stubs/components/homeworks/config_flow.pyi +1 -6
  233. homeassistant-stubs/components/http/__init__.pyi +20 -3
  234. homeassistant-stubs/components/http/cors.pyi +1 -1
  235. homeassistant-stubs/components/http/data_validator.pyi +2 -1
  236. homeassistant-stubs/components/humidifier/__init__.pyi +3 -2
  237. homeassistant-stubs/components/humidifier/device_action.pyi +1 -1
  238. homeassistant-stubs/components/husqvarna_automower/__init__.pyi +3 -3
  239. homeassistant-stubs/components/husqvarna_automower/binary_sensor.pyi +2 -3
  240. homeassistant-stubs/components/husqvarna_automower/button.pyi +22 -0
  241. homeassistant-stubs/components/husqvarna_automower/device_tracker.pyi +2 -3
  242. homeassistant-stubs/components/husqvarna_automower/diagnostics.pyi +2 -2
  243. homeassistant-stubs/components/husqvarna_automower/entity.pyi +7 -1
  244. homeassistant-stubs/components/husqvarna_automower/lawn_mower.pyi +14 -5
  245. homeassistant-stubs/components/husqvarna_automower/number.pyi +4 -5
  246. homeassistant-stubs/components/husqvarna_automower/select.pyi +2 -3
  247. homeassistant-stubs/components/husqvarna_automower/sensor.pyi +10 -5
  248. homeassistant-stubs/components/husqvarna_automower/switch.pyi +4 -8
  249. homeassistant-stubs/components/hydrawise/coordinator.pyi +3 -3
  250. homeassistant-stubs/components/hydrawise/sensor.pyi +3 -0
  251. homeassistant-stubs/components/ibeacon/config_flow.pyi +1 -0
  252. homeassistant-stubs/components/idasen_desk/coordinator.pyi +2 -5
  253. homeassistant-stubs/components/idasen_desk/sensor.pyi +3 -0
  254. homeassistant-stubs/components/image/__init__.pyi +3 -2
  255. homeassistant-stubs/components/image_upload/__init__.pyi +7 -3
  256. homeassistant-stubs/components/imap/__init__.pyi +5 -4
  257. homeassistant-stubs/components/imap/diagnostics.pyi +3 -5
  258. homeassistant-stubs/components/imap/sensor.pyi +5 -5
  259. homeassistant-stubs/components/input_button/__init__.pyi +3 -4
  260. homeassistant-stubs/components/input_select/__init__.pyi +2 -2
  261. homeassistant-stubs/components/input_text/__init__.pyi +3 -4
  262. homeassistant-stubs/components/integration/__init__.pyi +2 -0
  263. homeassistant-stubs/components/integration/config_flow.pyi +1 -1
  264. homeassistant-stubs/components/integration/const.pyi +1 -0
  265. homeassistant-stubs/components/integration/sensor.pyi +33 -12
  266. homeassistant-stubs/components/intent/timers.pyi +7 -3
  267. homeassistant-stubs/components/islamic_prayer_times/__init__.pyi +4 -3
  268. homeassistant-stubs/components/islamic_prayer_times/sensor.pyi +3 -3
  269. homeassistant-stubs/components/isy994/services.pyi +3 -2
  270. homeassistant-stubs/components/jewish_calendar/binary_sensor.pyi +6 -12
  271. homeassistant-stubs/components/jewish_calendar/entity.pyi +19 -0
  272. homeassistant-stubs/components/jewish_calendar/sensor.pyi +8 -13
  273. homeassistant-stubs/components/knocki/__init__.pyi +12 -0
  274. homeassistant-stubs/components/knocki/config_flow.pyi +12 -0
  275. homeassistant-stubs/components/knocki/const.pyi +4 -0
  276. homeassistant-stubs/components/knocki/coordinator.pyi +13 -0
  277. homeassistant-stubs/components/knocki/event.pyi +25 -0
  278. homeassistant-stubs/components/knx/config_flow.pyi +1 -1
  279. homeassistant-stubs/components/knx/device_trigger.pyi +1 -1
  280. homeassistant-stubs/components/knx/trigger.pyi +2 -3
  281. homeassistant-stubs/components/knx/websocket.pyi +1 -0
  282. homeassistant-stubs/components/lacrosse/sensor.pyi +2 -1
  283. homeassistant-stubs/components/lamarzocco/__init__.pyi +8 -3
  284. homeassistant-stubs/components/lamarzocco/binary_sensor.pyi +4 -5
  285. homeassistant-stubs/components/lamarzocco/button.pyi +4 -5
  286. homeassistant-stubs/components/lamarzocco/calendar.pyi +9 -3
  287. homeassistant-stubs/components/lamarzocco/config_flow.pyi +7 -3
  288. homeassistant-stubs/components/lamarzocco/const.pyi +1 -2
  289. homeassistant-stubs/components/lamarzocco/coordinator.pyi +13 -11
  290. homeassistant-stubs/components/lamarzocco/diagnostics.pyi +10 -5
  291. homeassistant-stubs/components/lamarzocco/entity.pyi +3 -3
  292. homeassistant-stubs/components/lamarzocco/number.pyi +9 -13
  293. homeassistant-stubs/components/lamarzocco/select.pyi +13 -7
  294. homeassistant-stubs/components/lamarzocco/sensor.pyi +4 -5
  295. homeassistant-stubs/components/lamarzocco/switch.pyi +20 -7
  296. homeassistant-stubs/components/lamarzocco/update.pyi +5 -10
  297. homeassistant-stubs/components/lawn_mower/__init__.pyi +3 -2
  298. homeassistant-stubs/components/lidarr/__init__.pyi +12 -2
  299. homeassistant-stubs/components/lidarr/config_flow.pyi +2 -1
  300. homeassistant-stubs/components/lidarr/coordinator.pyi +0 -1
  301. homeassistant-stubs/components/lidarr/sensor.pyi +3 -4
  302. homeassistant-stubs/components/lifx/light.pyi +3 -2
  303. homeassistant-stubs/components/light/__init__.pyi +8 -6
  304. homeassistant-stubs/components/light/device_action.pyi +1 -1
  305. homeassistant-stubs/components/litterrobot/__init__.pyi +4 -3
  306. homeassistant-stubs/components/litterrobot/binary_sensor.pyi +2 -4
  307. homeassistant-stubs/components/litterrobot/button.pyi +2 -4
  308. homeassistant-stubs/components/litterrobot/select.pyi +2 -3
  309. homeassistant-stubs/components/litterrobot/sensor.pyi +2 -4
  310. homeassistant-stubs/components/litterrobot/switch.pyi +2 -4
  311. homeassistant-stubs/components/litterrobot/time.pyi +2 -4
  312. homeassistant-stubs/components/litterrobot/update.pyi +3 -4
  313. homeassistant-stubs/components/litterrobot/vacuum.pyi +2 -4
  314. homeassistant-stubs/components/lock/__init__.pyi +4 -3
  315. homeassistant-stubs/components/logbook/processor.pyi +4 -3
  316. homeassistant-stubs/components/london_underground/sensor.pyi +2 -1
  317. homeassistant-stubs/components/mastodon/notify.pyi +2 -1
  318. homeassistant-stubs/components/matrix/notify.pyi +2 -1
  319. homeassistant-stubs/components/matter/binary_sensor.pyi +1 -1
  320. homeassistant-stubs/components/matter/discovery.pyi +3 -3
  321. homeassistant-stubs/components/matter/entity.pyi +8 -1
  322. homeassistant-stubs/components/matter/event.pyi +0 -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/ping/binary_sensor.pyi +2 -8
  384. homeassistant-stubs/components/ping/config_flow.pyi +2 -4
  385. homeassistant-stubs/components/ping/device_tracker.pyi +4 -14
  386. homeassistant-stubs/components/plugwise/button.pyi +20 -0
  387. homeassistant-stubs/components/plugwise/const.pyi +3 -0
  388. homeassistant-stubs/components/plugwise/coordinator.pyi +5 -3
  389. homeassistant-stubs/components/plugwise/number.pyi +2 -4
  390. homeassistant-stubs/components/plugwise/select.pyi +3 -5
  391. homeassistant-stubs/components/proximity/config_flow.pyi +2 -1
  392. homeassistant-stubs/components/radarr/__init__.pyi +14 -2
  393. homeassistant-stubs/components/radarr/binary_sensor.pyi +3 -4
  394. homeassistant-stubs/components/radarr/calendar.pyi +2 -4
  395. homeassistant-stubs/components/radarr/config_flow.pyi +3 -4
  396. homeassistant-stubs/components/radarr/coordinator.pyi +2 -2
  397. homeassistant-stubs/components/radarr/sensor.pyi +2 -4
  398. homeassistant-stubs/components/rainmachine/switch.pyi +1 -0
  399. homeassistant-stubs/components/recorder/const.pyi +3 -1
  400. homeassistant-stubs/components/recorder/core.pyi +2 -2
  401. homeassistant-stubs/components/recorder/db_schema.pyi +2 -1
  402. homeassistant-stubs/components/recorder/purge.pyi +1 -1
  403. homeassistant-stubs/components/recorder/statistics.pyi +7 -4
  404. homeassistant-stubs/components/recorder/table_managers/event_data.pyi +3 -3
  405. homeassistant-stubs/components/recorder/table_managers/event_types.pyi +1 -1
  406. homeassistant-stubs/components/recorder/table_managers/state_attributes.pyi +3 -3
  407. homeassistant-stubs/components/recorder/table_managers/states_meta.pyi +1 -1
  408. homeassistant-stubs/components/recorder/util.pyi +4 -3
  409. homeassistant-stubs/components/remote/__init__.pyi +5 -4
  410. homeassistant-stubs/components/rest/binary_sensor.pyi +2 -1
  411. homeassistant-stubs/components/rest/notify.pyi +2 -1
  412. homeassistant-stubs/components/rest/sensor.pyi +2 -1
  413. homeassistant-stubs/components/rest/switch.pyi +2 -1
  414. homeassistant-stubs/components/rfxtrx/config_flow.pyi +1 -0
  415. homeassistant-stubs/components/roborock/__init__.pyi +30 -0
  416. homeassistant-stubs/components/roborock/binary_sensor.pyi +29 -0
  417. homeassistant-stubs/components/roborock/button.pyi +28 -0
  418. homeassistant-stubs/components/roborock/config_flow.pyi +30 -0
  419. homeassistant-stubs/components/roborock/const.pyi +13 -0
  420. homeassistant-stubs/components/roborock/coordinator.pyi +47 -0
  421. homeassistant-stubs/components/roborock/device.pyi +53 -0
  422. homeassistant-stubs/components/roborock/diagnostics.pyi +13 -0
  423. homeassistant-stubs/components/roborock/image.pyi +37 -0
  424. homeassistant-stubs/components/roborock/models.pyi +27 -0
  425. homeassistant-stubs/components/roborock/number.pyi +35 -0
  426. homeassistant-stubs/components/roborock/select.pyi +37 -0
  427. homeassistant-stubs/components/roborock/sensor.pyi +47 -0
  428. homeassistant-stubs/components/roborock/switch.pyi +37 -0
  429. homeassistant-stubs/components/roborock/time.pyi +38 -0
  430. homeassistant-stubs/components/roborock/vacuum.pyi +39 -0
  431. homeassistant-stubs/components/roku/media_player.pyi +2 -1
  432. homeassistant-stubs/components/schedule/__init__.pyi +5 -5
  433. homeassistant-stubs/components/select/__init__.pyi +3 -1
  434. homeassistant-stubs/components/sensor/__init__.pyi +3 -1
  435. homeassistant-stubs/components/sensor/const.pyi +3 -2
  436. homeassistant-stubs/components/sensor/device_condition.pyi +1 -0
  437. homeassistant-stubs/components/sensor/device_trigger.pyi +1 -0
  438. homeassistant-stubs/components/shelly/__init__.pyi +1 -2
  439. homeassistant-stubs/components/shelly/climate.pyi +3 -0
  440. homeassistant-stubs/components/shelly/coordinator.pyi +2 -1
  441. homeassistant-stubs/components/shelly/switch.pyi +2 -18
  442. homeassistant-stubs/components/shelly/valve.pyi +1 -1
  443. homeassistant-stubs/components/simplisafe/alarm_control_panel.pyi +4 -5
  444. homeassistant-stubs/components/siren/__init__.pyi +4 -3
  445. homeassistant-stubs/components/sql/sensor.pyi +2 -1
  446. homeassistant-stubs/components/starlink/const.pyi +1 -0
  447. homeassistant-stubs/components/starlink/device_tracker.pyi +6 -2
  448. homeassistant-stubs/components/statistics/__init__.pyi +6 -0
  449. homeassistant-stubs/components/statistics/config_flow.pyi +23 -0
  450. homeassistant-stubs/components/statistics/sensor.pyi +4 -1
  451. homeassistant-stubs/components/stream/fmp4utils.pyi +2 -2
  452. homeassistant-stubs/components/stream/worker.pyi +3 -2
  453. homeassistant-stubs/components/streamlabswater/__init__.pyi +1 -6
  454. homeassistant-stubs/components/streamlabswater/config_flow.pyi +0 -1
  455. homeassistant-stubs/components/suez_water/config_flow.pyi +0 -1
  456. homeassistant-stubs/components/suez_water/sensor.pyi +3 -8
  457. homeassistant-stubs/components/switch/__init__.pyi +4 -3
  458. homeassistant-stubs/components/switch/light.pyi +2 -1
  459. homeassistant-stubs/components/switcher_kis/__init__.pyi +3 -0
  460. homeassistant-stubs/components/switcher_kis/switch.pyi +3 -2
  461. homeassistant-stubs/components/synology_dsm/config_flow.pyi +2 -2
  462. homeassistant-stubs/components/systemmonitor/config_flow.pyi +0 -2
  463. homeassistant-stubs/components/systemmonitor/sensor.pyi +4 -7
  464. homeassistant-stubs/components/tag/__init__.pyi +4 -5
  465. homeassistant-stubs/components/tami4/__init__.pyi +1 -1
  466. homeassistant-stubs/components/tami4/coordinator.pyi +3 -5
  467. homeassistant-stubs/components/tami4/sensor.pyi +3 -3
  468. homeassistant-stubs/components/tautulli/__init__.pyi +3 -2
  469. homeassistant-stubs/components/tautulli/coordinator.pyi +2 -2
  470. homeassistant-stubs/components/tautulli/sensor.pyi +3 -3
  471. homeassistant-stubs/components/threshold/__init__.pyi +2 -1
  472. homeassistant-stubs/components/threshold/binary_sensor.pyi +11 -3
  473. homeassistant-stubs/components/threshold/config_flow.pyi +8 -0
  474. homeassistant-stubs/components/tibber/__init__.pyi +1 -0
  475. homeassistant-stubs/components/tibber/sensor.pyi +12 -6
  476. homeassistant-stubs/components/tibber/services.pyi +15 -0
  477. homeassistant-stubs/components/time_date/sensor.pyi +3 -3
  478. homeassistant-stubs/components/timer/__init__.pyi +2 -2
  479. homeassistant-stubs/components/todo/__init__.pyi +3 -2
  480. homeassistant-stubs/components/tplink/__init__.pyi +9 -6
  481. homeassistant-stubs/components/tplink/binary_sensor.pyi +22 -0
  482. homeassistant-stubs/components/tplink/button.pyi +22 -0
  483. homeassistant-stubs/components/tplink/climate.pyi +42 -0
  484. homeassistant-stubs/components/tplink/config_flow.pyi +4 -4
  485. homeassistant-stubs/components/tplink/const.pyi +3 -1
  486. homeassistant-stubs/components/tplink/coordinator.pyi +2 -2
  487. homeassistant-stubs/components/tplink/diagnostics.pyi +2 -4
  488. homeassistant-stubs/components/tplink/entity.pyi +49 -7
  489. homeassistant-stubs/components/tplink/fan.pyi +31 -0
  490. homeassistant-stubs/components/tplink/light.pyi +19 -19
  491. homeassistant-stubs/components/tplink/number.pyi +27 -0
  492. homeassistant-stubs/components/tplink/select.pyi +26 -0
  493. homeassistant-stubs/components/tplink/sensor.pyi +14 -22
  494. homeassistant-stubs/components/tplink/switch.pyi +14 -34
  495. homeassistant-stubs/components/tplink_omada/controller.pyi +4 -15
  496. homeassistant-stubs/components/tplink_omada/coordinator.pyi +20 -1
  497. homeassistant-stubs/components/tplink_omada/device_tracker.pyi +36 -0
  498. homeassistant-stubs/components/transmission/__init__.pyi +9 -3
  499. homeassistant-stubs/components/transmission/sensor.pyi +2 -2
  500. homeassistant-stubs/components/transmission/switch.pyi +2 -4
  501. homeassistant-stubs/components/trend/__init__.pyi +2 -1
  502. homeassistant-stubs/components/trend/binary_sensor.pyi +6 -2
  503. homeassistant-stubs/components/tts/notify.pyi +2 -1
  504. homeassistant-stubs/components/unifi/config_flow.pyi +1 -1
  505. homeassistant-stubs/components/unifi/sensor.pyi +1 -0
  506. homeassistant-stubs/components/unifi/services.pyi +1 -0
  507. homeassistant-stubs/components/unifiprotect/__init__.pyi +8 -9
  508. homeassistant-stubs/components/unifiprotect/binary_sensor.pyi +29 -21
  509. homeassistant-stubs/components/unifiprotect/button.pyi +8 -9
  510. homeassistant-stubs/components/unifiprotect/camera.pyi +10 -10
  511. homeassistant-stubs/components/unifiprotect/const.pyi +0 -1
  512. homeassistant-stubs/components/unifiprotect/data.pyi +27 -14
  513. homeassistant-stubs/components/unifiprotect/diagnostics.pyi +2 -4
  514. homeassistant-stubs/components/unifiprotect/entity.pyi +27 -17
  515. homeassistant-stubs/components/unifiprotect/light.pyi +3 -6
  516. homeassistant-stubs/components/unifiprotect/lock.pyi +3 -8
  517. homeassistant-stubs/components/unifiprotect/media_player.pyi +4 -8
  518. homeassistant-stubs/components/unifiprotect/media_source.pyi +2 -3
  519. homeassistant-stubs/components/unifiprotect/migrate.pyi +5 -5
  520. homeassistant-stubs/components/unifiprotect/models.pyi +16 -17
  521. homeassistant-stubs/components/unifiprotect/number.pyi +8 -12
  522. homeassistant-stubs/components/unifiprotect/repairs.pyi +5 -3
  523. homeassistant-stubs/components/unifiprotect/select.pyi +9 -11
  524. homeassistant-stubs/components/unifiprotect/sensor.pyi +25 -23
  525. homeassistant-stubs/components/unifiprotect/services.pyi +0 -4
  526. homeassistant-stubs/components/unifiprotect/switch.pyi +15 -24
  527. homeassistant-stubs/components/unifiprotect/text.pyi +8 -11
  528. homeassistant-stubs/components/unifiprotect/utils.pyi +6 -11
  529. homeassistant-stubs/components/unifiprotect/views.pyi +2 -4
  530. homeassistant-stubs/components/update/__init__.pyi +3 -1
  531. homeassistant-stubs/components/vacuum/__init__.pyi +2 -1
  532. homeassistant-stubs/components/vallox/sensor.pyi +5 -1
  533. homeassistant-stubs/components/valve/__init__.pyi +3 -2
  534. homeassistant-stubs/components/water_heater/__init__.pyi +4 -3
  535. homeassistant-stubs/components/weather/__init__.pyi +4 -5
  536. homeassistant-stubs/components/webhook/__init__.pyi +1 -1
  537. homeassistant-stubs/components/webostv/__init__.pyi +7 -0
  538. homeassistant-stubs/components/websocket_api/__init__.pyi +3 -4
  539. homeassistant-stubs/components/websocket_api/decorators.pyi +2 -1
  540. homeassistant-stubs/components/wemo/entity.pyi +2 -2
  541. homeassistant-stubs/components/wemo/fan.pyi +2 -1
  542. homeassistant-stubs/components/withings/coordinator.pyi +3 -3
  543. homeassistant-stubs/components/withings/sensor.pyi +6 -2
  544. homeassistant-stubs/components/worldclock/sensor.pyi +2 -1
  545. homeassistant-stubs/components/xiaomi_ble/sensor.pyi +1 -1
  546. homeassistant-stubs/components/zone/__init__.pyi +3 -3
  547. homeassistant-stubs/components/zwave_js/__init__.pyi +1 -1
  548. homeassistant-stubs/components/zwave_js/api.pyi +1 -5
  549. homeassistant-stubs/components/zwave_js/config_flow.pyi +8 -1
  550. homeassistant-stubs/components/zwave_js/const.pyi +5 -0
  551. homeassistant-stubs/components/zwave_js/discovery.pyi +4 -4
  552. homeassistant-stubs/components/zwave_js/helpers.pyi +2 -2
  553. homeassistant-stubs/components/zwave_js/sensor.pyi +2 -0
  554. homeassistant-stubs/components/zwave_js/services.pyi +3 -2
  555. homeassistant-stubs/config.pyi +4 -5
  556. homeassistant-stubs/config_entries.pyi +6 -3
  557. homeassistant-stubs/const.pyi +9 -3
  558. homeassistant-stubs/core.pyi +13 -8
  559. homeassistant-stubs/data_entry_flow.pyi +12 -2
  560. homeassistant-stubs/exceptions.pyi +6 -5
  561. homeassistant-stubs/helpers/__init__.pyi +0 -5
  562. homeassistant-stubs/helpers/collection.pyi +14 -11
  563. homeassistant-stubs/helpers/condition.pyi +3 -2
  564. homeassistant-stubs/helpers/config_validation.pyi +5 -4
  565. homeassistant-stubs/helpers/deprecation.pyi +10 -0
  566. homeassistant-stubs/helpers/device.pyi +8 -0
  567. homeassistant-stubs/helpers/device_registry.pyi +14 -2
  568. homeassistant-stubs/helpers/entity.pyi +3 -2
  569. homeassistant-stubs/helpers/entity_component.pyi +3 -4
  570. homeassistant-stubs/helpers/entity_platform.pyi +2 -3
  571. homeassistant-stubs/helpers/frame.pyi +1 -0
  572. homeassistant-stubs/helpers/http.pyi +1 -1
  573. homeassistant-stubs/helpers/intent.pyi +6 -4
  574. homeassistant-stubs/helpers/llm.pyi +17 -3
  575. homeassistant-stubs/helpers/schema_config_entry_flow.pyi +2 -2
  576. homeassistant-stubs/helpers/script.pyi +3 -2
  577. homeassistant-stubs/helpers/selector.pyi +10 -8
  578. homeassistant-stubs/helpers/service.pyi +6 -3
  579. homeassistant-stubs/helpers/template.pyi +8 -6
  580. homeassistant-stubs/helpers/trace.pyi +3 -2
  581. homeassistant-stubs/helpers/typing.pyi +6 -1
  582. homeassistant-stubs/helpers/update_coordinator.pyi +3 -3
  583. homeassistant-stubs/loader.pyi +1 -2
  584. homeassistant-stubs/requirements.pyi +0 -3
  585. homeassistant-stubs/setup.pyi +4 -3
  586. homeassistant-stubs/util/loop.pyi +2 -1
  587. homeassistant-stubs/util/unit_conversion.pyi +7 -1
  588. {homeassistant_stubs-2024.6.4.dist-info → homeassistant_stubs-2024.7.0b0.dist-info}/METADATA +2 -2
  589. {homeassistant_stubs-2024.6.4.dist-info → homeassistant_stubs-2024.7.0b0.dist-info}/RECORD +591 -548
  590. homeassistant-stubs/auth/providers/legacy_api_password.pyi +0 -30
  591. homeassistant-stubs/components/air_quality/group.pyi +0 -5
  592. homeassistant-stubs/components/alarm_control_panel/group.pyi +0 -6
  593. homeassistant-stubs/components/climate/group.pyi +0 -6
  594. homeassistant-stubs/components/cover/group.pyi +0 -6
  595. homeassistant-stubs/components/device_tracker/group.pyi +0 -6
  596. homeassistant-stubs/components/fastdotcom/services.pyi +0 -7
  597. homeassistant-stubs/components/lock/group.pyi +0 -6
  598. homeassistant-stubs/components/media_player/group.pyi +0 -6
  599. homeassistant-stubs/components/sensor/group.pyi +0 -5
  600. homeassistant-stubs/components/vacuum/group.pyi +0 -6
  601. homeassistant-stubs/components/water_heater/group.pyi +0 -6
  602. homeassistant-stubs/components/weather/group.pyi +0 -5
  603. homeassistant-stubs/components/wled/binary_sensor.pyi +0 -20
  604. {homeassistant_stubs-2024.6.4.dist-info → homeassistant_stubs-2024.7.0b0.dist-info}/LICENSE +0 -0
  605. {homeassistant_stubs-2024.6.4.dist-info → homeassistant_stubs-2024.7.0b0.dist-info}/WHEEL +0 -0
@@ -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
@@ -8,7 +8,6 @@ from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
8
  from homeassistant.const import PRECISION_HALVES as PRECISION_HALVES, PRECISION_TENTHS as PRECISION_TENTHS, PRECISION_WHOLE as PRECISION_WHOLE, UnitOfPressure as UnitOfPressure, UnitOfSpeed as UnitOfSpeed, UnitOfTemperature as UnitOfTemperature
9
9
  from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, ServiceResponse as ServiceResponse, SupportsResponse as SupportsResponse, callback as callback
10
10
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
11
- from homeassistant.helpers.config_validation import PLATFORM_SCHEMA as PLATFORM_SCHEMA, PLATFORM_SCHEMA_BASE as PLATFORM_SCHEMA_BASE
12
11
  from homeassistant.helpers.entity import ABCCachedProperties as ABCCachedProperties, Entity as Entity, EntityDescription as EntityDescription
13
12
  from homeassistant.helpers.entity_component import EntityComponent as EntityComponent
14
13
  from homeassistant.helpers.typing import ConfigType as ConfigType
@@ -20,6 +19,10 @@ from typing import Any, Final, Generic, Literal, Required, TypedDict
20
19
  from typing_extensions import TypeVar
21
20
 
22
21
  _LOGGER: Incomplete
22
+ ENTITY_ID_FORMAT: Incomplete
23
+ PLATFORM_SCHEMA: Incomplete
24
+ PLATFORM_SCHEMA_BASE: Incomplete
25
+ SCAN_INTERVAL: Incomplete
23
26
  ATTR_CONDITION_CLASS: str
24
27
  ATTR_CONDITION_CLEAR_NIGHT: str
25
28
  ATTR_CONDITION_CLOUDY: str
@@ -60,10 +63,7 @@ ATTR_FORECAST_NATIVE_DEW_POINT: Final[str]
60
63
  ATTR_FORECAST_DEW_POINT: Final[str]
61
64
  ATTR_FORECAST_CLOUD_COVERAGE: Final[str]
62
65
  ATTR_FORECAST_UV_INDEX: Final[str]
63
- ENTITY_ID_FORMAT: Incomplete
64
- SCAN_INTERVAL: Incomplete
65
66
  ROUNDING_PRECISION: int
66
- LEGACY_SERVICE_GET_FORECAST: Final[str]
67
67
  SERVICE_GET_FORECASTS: Final[str]
68
68
  _ObservationUpdateCoordinatorT = TypeVar('_ObservationUpdateCoordinatorT', bound=DataUpdateCoordinator[Any], default=DataUpdateCoordinator[dict[str, Any]])
69
69
  _DailyForecastUpdateCoordinatorT = TypeVar('_DailyForecastUpdateCoordinatorT', bound=TimestampDataUpdateCoordinator[Any], default=TimestampDataUpdateCoordinator[None])
@@ -214,7 +214,6 @@ class WeatherEntity(Entity, PostInit, cached_properties=CACHED_PROPERTIES_WITH_A
214
214
  async def async_update_listeners(self, forecast_types: Iterable[Literal['daily', 'hourly', 'twice_daily']] | None) -> None: ...
215
215
 
216
216
  def raise_unsupported_forecast(entity_id: str, forecast_type: str) -> None: ...
217
- async def async_get_forecast_service(weather: WeatherEntity, service_call: ServiceCall) -> ServiceResponse: ...
218
217
  async def async_get_forecasts_service(weather: WeatherEntity, service_call: ServiceCall) -> ServiceResponse: ...
219
218
 
220
219
  class CoordinatorWeatherEntity(CoordinatorEntity[_ObservationUpdateCoordinatorT], WeatherEntity, Generic[_ObservationUpdateCoordinatorT, _DailyForecastUpdateCoordinatorT, _HourlyForecastUpdateCoordinatorT, _TwiceDailyForecastUpdateCoordinatorT]):
@@ -22,7 +22,7 @@ CONFIG_SCHEMA: Incomplete
22
22
  def async_register(hass: HomeAssistant, domain: str, name: str, webhook_id: str, handler: Callable[[HomeAssistant, str, Request], Awaitable[Response | None]], *, local_only: bool | None = False, allowed_methods: Iterable[str] | None = None) -> None: ...
23
23
  def async_unregister(hass: HomeAssistant, webhook_id: str) -> None: ...
24
24
  def async_generate_id() -> str: ...
25
- def async_generate_url(hass: HomeAssistant, webhook_id: str) -> str: ...
25
+ def async_generate_url(hass: HomeAssistant, webhook_id: str, allow_internal: bool = True, allow_external: bool = True, allow_ip: bool | None = None, prefer_external: bool | None = True) -> str: ...
26
26
  def async_generate_path(webhook_id: str) -> str: ...
27
27
  async def async_handle_webhook(hass: HomeAssistant, webhook_id: str, request: Request | MockRequest) -> Response: ...
28
28
  async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
@@ -1,3 +1,4 @@
1
+ import voluptuous as vol
1
2
  from .const import ATTR_BUTTON as ATTR_BUTTON, ATTR_CONFIG_ENTRY_ID as ATTR_CONFIG_ENTRY_ID, ATTR_PAYLOAD as ATTR_PAYLOAD, ATTR_SOUND_OUTPUT as ATTR_SOUND_OUTPUT, DATA_CONFIG_ENTRY as DATA_CONFIG_ENTRY, DATA_HASS_CONFIG as DATA_HASS_CONFIG, DOMAIN as DOMAIN, PLATFORMS as PLATFORMS, SERVICE_BUTTON as SERVICE_BUTTON, SERVICE_COMMAND as SERVICE_COMMAND, SERVICE_SELECT_SOUND_OUTPUT as SERVICE_SELECT_SOUND_OUTPUT, WEBOSTV_EXCEPTIONS as WEBOSTV_EXCEPTIONS
2
3
  from _typeshed import Incomplete
3
4
  from aiowebostv import WebOsClient
@@ -8,9 +9,15 @@ from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFai
8
9
  from homeassistant.helpers import discovery as discovery
9
10
  from homeassistant.helpers.dispatcher import async_dispatcher_send as async_dispatcher_send
10
11
  from homeassistant.helpers.typing import ConfigType as ConfigType
12
+ from typing import NamedTuple
11
13
 
12
14
  CONFIG_SCHEMA: Incomplete
13
15
  CALL_SCHEMA: Incomplete
16
+
17
+ class ServiceMethodDetails(NamedTuple):
18
+ method: str
19
+ schema: vol.Schema
20
+
14
21
  BUTTON_SCHEMA: Incomplete
15
22
  COMMAND_SCHEMA: Incomplete
16
23
  SOUND_OUTPUT_SCHEMA: Incomplete
@@ -1,12 +1,11 @@
1
- import voluptuous as vol
2
1
  from . import commands as commands, connection as connection, const as const, decorators as decorators, http as http, messages as messages
3
2
  from .connection import ActiveConnection as ActiveConnection, current_connection as current_connection
4
- from .const import AsyncWebSocketCommandHandler as AsyncWebSocketCommandHandler, ERR_HOME_ASSISTANT_ERROR as ERR_HOME_ASSISTANT_ERROR, ERR_INVALID_FORMAT as ERR_INVALID_FORMAT, ERR_NOT_FOUND as ERR_NOT_FOUND, ERR_NOT_SUPPORTED as ERR_NOT_SUPPORTED, ERR_SERVICE_VALIDATION_ERROR as ERR_SERVICE_VALIDATION_ERROR, ERR_TEMPLATE_ERROR as ERR_TEMPLATE_ERROR, ERR_TIMEOUT as ERR_TIMEOUT, ERR_UNAUTHORIZED as ERR_UNAUTHORIZED, ERR_UNKNOWN_COMMAND as ERR_UNKNOWN_COMMAND, ERR_UNKNOWN_ERROR as ERR_UNKNOWN_ERROR, WebSocketCommandHandler as WebSocketCommandHandler
3
+ from .const import AsyncWebSocketCommandHandler as AsyncWebSocketCommandHandler, ERR_HOME_ASSISTANT_ERROR as ERR_HOME_ASSISTANT_ERROR, ERR_INVALID_FORMAT as ERR_INVALID_FORMAT, ERR_NOT_ALLOWED as ERR_NOT_ALLOWED, ERR_NOT_FOUND as ERR_NOT_FOUND, ERR_NOT_SUPPORTED as ERR_NOT_SUPPORTED, ERR_SERVICE_VALIDATION_ERROR as ERR_SERVICE_VALIDATION_ERROR, ERR_TEMPLATE_ERROR as ERR_TEMPLATE_ERROR, ERR_TIMEOUT as ERR_TIMEOUT, ERR_UNAUTHORIZED as ERR_UNAUTHORIZED, ERR_UNKNOWN_COMMAND as ERR_UNKNOWN_COMMAND, ERR_UNKNOWN_ERROR as ERR_UNKNOWN_ERROR, TYPE_RESULT as TYPE_RESULT, WebSocketCommandHandler as WebSocketCommandHandler
5
4
  from .decorators import async_response as async_response, require_admin as require_admin, websocket_command as websocket_command, ws_require_user as ws_require_user
6
5
  from .messages import BASE_COMMAND_MESSAGE_SCHEMA as BASE_COMMAND_MESSAGE_SCHEMA, error_message as error_message, event_message as event_message, result_message as result_message
7
6
  from _typeshed import Incomplete
8
7
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
9
- from homeassistant.helpers.typing import ConfigType as ConfigType
8
+ from homeassistant.helpers.typing import ConfigType as ConfigType, VolSchemaType as VolSchemaType
10
9
  from homeassistant.loader import bind_hass as bind_hass
11
10
  from typing import Final
12
11
 
@@ -14,5 +13,5 @@ DOMAIN: Final[Incomplete]
14
13
  DEPENDENCIES: Final[tuple[str]]
15
14
  CONFIG_SCHEMA: Incomplete
16
15
 
17
- def async_register_command(hass: HomeAssistant, command_or_handler: str | const.WebSocketCommandHandler, handler: const.WebSocketCommandHandler | None = None, schema: vol.Schema | None = None) -> None: ...
16
+ def async_register_command(hass: HomeAssistant, command_or_handler: str | const.WebSocketCommandHandler, handler: const.WebSocketCommandHandler | None = None, schema: VolSchemaType | None = None) -> None: ...
18
17
  async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
@@ -5,10 +5,11 @@ from collections.abc import Callable as Callable
5
5
  from homeassistant.const import HASSIO_USER_NAME as HASSIO_USER_NAME
6
6
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
7
7
  from homeassistant.exceptions import Unauthorized as Unauthorized
8
+ from homeassistant.helpers.typing import VolDictType as VolDictType
8
9
  from typing import Any
9
10
 
10
11
  async def _handle_async_response(func: const.AsyncWebSocketCommandHandler, hass: HomeAssistant, connection: ActiveConnection, msg: dict[str, Any]) -> None: ...
11
12
  def async_response(func: const.AsyncWebSocketCommandHandler) -> const.WebSocketCommandHandler: ...
12
13
  def require_admin(func: const.WebSocketCommandHandler) -> const.WebSocketCommandHandler: ...
13
14
  def ws_require_user(only_owner: bool = False, only_system_user: bool = False, allow_system_user: bool = True, only_active_user: bool = True, only_inactive_user: bool = False, only_supervisor: bool = False) -> Callable[[const.WebSocketCommandHandler], const.WebSocketCommandHandler]: ...
14
- def websocket_command(schema: dict[vol.Marker, Any] | vol.All) -> Callable[[const.WebSocketCommandHandler], const.WebSocketCommandHandler]: ...
15
+ def websocket_command(schema: VolDictType | vol.All) -> Callable[[const.WebSocketCommandHandler], const.WebSocketCommandHandler]: ...
@@ -1,8 +1,8 @@
1
1
  from .coordinator import DeviceCoordinator as DeviceCoordinator
2
2
  from _typeshed import Incomplete
3
- from collections.abc import Generator
4
3
  from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
5
4
  from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
5
+ from typing_extensions import Generator
6
6
 
7
7
  _LOGGER: Incomplete
8
8
 
@@ -22,7 +22,7 @@ class WemoEntity(CoordinatorEntity[DeviceCoordinator]):
22
22
  def unique_id(self) -> str: ...
23
23
  @property
24
24
  def device_info(self) -> DeviceInfo: ...
25
- def _wemo_call_wrapper(self, message: str) -> Generator[None, None, None]: ...
25
+ def _wemo_call_wrapper(self, message: str) -> Generator[None]: ...
26
26
 
27
27
  class WemoBinaryStateEntity(WemoEntity):
28
28
  @property
@@ -8,6 +8,7 @@ from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
8
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
9
9
  from homeassistant.helpers import entity_platform as entity_platform
10
10
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
11
+ from homeassistant.helpers.typing import VolDictType as VolDictType
11
12
  from homeassistant.util.percentage import percentage_to_ranged_value as percentage_to_ranged_value, ranged_value_to_percentage as ranged_value_to_percentage
12
13
  from homeassistant.util.scaling import int_states_in_range as int_states_in_range
13
14
  from pywemo import FanMode, Humidifier as Humidifier
@@ -22,7 +23,7 @@ ATTR_FILTER_LIFE: str
22
23
  ATTR_FILTER_EXPIRED: str
23
24
  ATTR_WATER_LEVEL: str
24
25
  SPEED_RANGE: Incomplete
25
- SET_HUMIDITY_SCHEMA: Incomplete
26
+ SET_HUMIDITY_SCHEMA: VolDictType
26
27
 
27
28
  async def async_setup_entry(hass: HomeAssistant, _config_entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
28
29
 
@@ -3,7 +3,7 @@ from . import WithingsConfigEntry as WithingsConfigEntry
3
3
  from .const import LOGGER as LOGGER
4
4
  from _typeshed import Incomplete
5
5
  from abc import abstractmethod
6
- from aiowithings import Activity, Goals, MeasurementType, NotificationCategory, SleepSummary, WithingsClient as WithingsClient, Workout
6
+ from aiowithings import Activity, Goals, MeasurementPosition, MeasurementType, NotificationCategory, SleepSummary, WithingsClient as WithingsClient, Workout
7
7
  from datetime import datetime, timedelta
8
8
  from homeassistant.core import HomeAssistant as HomeAssistant
9
9
  from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed
@@ -28,13 +28,13 @@ class WithingsDataUpdateCoordinator(DataUpdateCoordinator[_DataT], metaclass=abc
28
28
  @abstractmethod
29
29
  async def _internal_update_data(self) -> _DataT: ...
30
30
 
31
- class WithingsMeasurementDataUpdateCoordinator(WithingsDataUpdateCoordinator[dict[MeasurementType, float]]):
31
+ class WithingsMeasurementDataUpdateCoordinator(WithingsDataUpdateCoordinator[dict[tuple[MeasurementType, MeasurementPosition | None], float]]):
32
32
  coordinator_name: str
33
33
  notification_categories: Incomplete
34
34
  _previous_data: Incomplete
35
35
  def __init__(self, hass: HomeAssistant, client: WithingsClient) -> None: ...
36
36
  _last_valid_update: Incomplete
37
- async def _internal_update_data(self) -> dict[MeasurementType, float]: ...
37
+ async def _internal_update_data(self) -> dict[tuple[MeasurementType, MeasurementPosition | None], float]: ...
38
38
 
39
39
  class WithingsSleepDataUpdateCoordinator(WithingsDataUpdateCoordinator[SleepSummary | None]):
40
40
  coordinator_name: str
@@ -3,7 +3,7 @@ from .const import DOMAIN as DOMAIN, LOGGER as LOGGER, SCORE_POINTS as SCORE_POI
3
3
  from .coordinator import WithingsActivityDataUpdateCoordinator as WithingsActivityDataUpdateCoordinator, WithingsDataUpdateCoordinator as WithingsDataUpdateCoordinator, WithingsGoalsDataUpdateCoordinator as WithingsGoalsDataUpdateCoordinator, WithingsMeasurementDataUpdateCoordinator as WithingsMeasurementDataUpdateCoordinator, WithingsSleepDataUpdateCoordinator as WithingsSleepDataUpdateCoordinator, WithingsWorkoutDataUpdateCoordinator as WithingsWorkoutDataUpdateCoordinator
4
4
  from .entity import WithingsEntity as WithingsEntity
5
5
  from _typeshed import Incomplete
6
- from aiowithings import Activity as Activity, Goals as Goals, MeasurementType, SleepSummary as SleepSummary, Workout as Workout
6
+ from aiowithings import Activity as Activity, Goals as Goals, MeasurementPosition, MeasurementType, SleepSummary as SleepSummary, Workout as Workout
7
7
  from collections.abc import Callable as Callable
8
8
  from dataclasses import dataclass
9
9
  from datetime import datetime
@@ -16,10 +16,14 @@ from homeassistant.helpers.typing import StateType as StateType
16
16
  @dataclass(frozen=True, kw_only=True)
17
17
  class WithingsMeasurementSensorEntityDescription(SensorEntityDescription):
18
18
  measurement_type: MeasurementType
19
- 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, measurement_type) -> None: ...
19
+ measurement_position: MeasurementPosition | None = ...
20
+ def __init__(self, *, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, translation_placeholders, unit_of_measurement, last_reset, native_unit_of_measurement, options, state_class, suggested_display_precision, suggested_unit_of_measurement, measurement_type, measurement_position) -> None: ...
20
21
 
21
22
  MEASUREMENT_SENSORS: dict[MeasurementType, WithingsMeasurementSensorEntityDescription]
22
23
 
24
+ def get_positional_measurement_description(measurement_type: MeasurementType, measurement_position: MeasurementPosition) -> WithingsMeasurementSensorEntityDescription | None: ...
25
+ def get_measurement_description(measurement: tuple[MeasurementType, MeasurementPosition | None]) -> WithingsMeasurementSensorEntityDescription | None: ...
26
+
23
27
  @dataclass(frozen=True, kw_only=True)
24
28
  class WithingsSleepSensorEntityDescription(SensorEntityDescription):
25
29
  value_fn: Callable[[SleepSummary], StateType]
@@ -1,6 +1,6 @@
1
1
  from _typeshed import Incomplete
2
2
  from datetime import tzinfo
3
- from homeassistant.components.sensor import PLATFORM_SCHEMA as PLATFORM_SCHEMA, SensorEntity as SensorEntity
3
+ from homeassistant.components.sensor import SensorEntity as SensorEntity
4
4
  from homeassistant.const import CONF_NAME as CONF_NAME, CONF_TIME_ZONE as CONF_TIME_ZONE
5
5
  from homeassistant.core import HomeAssistant as HomeAssistant
6
6
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
@@ -9,6 +9,7 @@ from homeassistant.helpers.typing import ConfigType as ConfigType, DiscoveryInfo
9
9
  CONF_TIME_FORMAT: str
10
10
  DEFAULT_NAME: str
11
11
  DEFAULT_TIME_STR_FORMAT: str
12
+ PLATFORM_SCHEMA: Incomplete
12
13
 
13
14
  async def async_setup_platform(hass: HomeAssistant, config: ConfigType, async_add_entities: AddEntitiesCallback, discovery_info: DiscoveryInfoType | None = None) -> None: ...
14
15