homeassistant-stubs 2024.6.4__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 (618) 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 +3 -0
  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/systemmonitor/config_flow.pyi +0 -2
  468. homeassistant-stubs/components/systemmonitor/sensor.pyi +4 -7
  469. homeassistant-stubs/components/tag/__init__.pyi +4 -5
  470. homeassistant-stubs/components/tami4/__init__.pyi +1 -1
  471. homeassistant-stubs/components/tami4/coordinator.pyi +3 -5
  472. homeassistant-stubs/components/tami4/sensor.pyi +3 -3
  473. homeassistant-stubs/components/tautulli/__init__.pyi +3 -2
  474. homeassistant-stubs/components/tautulli/coordinator.pyi +2 -2
  475. homeassistant-stubs/components/tautulli/sensor.pyi +3 -3
  476. homeassistant-stubs/components/threshold/__init__.pyi +2 -1
  477. homeassistant-stubs/components/threshold/binary_sensor.pyi +11 -3
  478. homeassistant-stubs/components/threshold/config_flow.pyi +8 -0
  479. homeassistant-stubs/components/tibber/__init__.pyi +1 -0
  480. homeassistant-stubs/components/tibber/sensor.pyi +12 -6
  481. homeassistant-stubs/components/tibber/services.pyi +15 -0
  482. homeassistant-stubs/components/time_date/sensor.pyi +3 -3
  483. homeassistant-stubs/components/timer/__init__.pyi +2 -2
  484. homeassistant-stubs/components/todo/__init__.pyi +3 -2
  485. homeassistant-stubs/components/tplink/__init__.pyi +14 -8
  486. homeassistant-stubs/components/tplink/binary_sensor.pyi +22 -0
  487. homeassistant-stubs/components/tplink/button.pyi +22 -0
  488. homeassistant-stubs/components/tplink/climate.pyi +42 -0
  489. homeassistant-stubs/components/tplink/config_flow.pyi +5 -5
  490. homeassistant-stubs/components/tplink/const.pyi +5 -1
  491. homeassistant-stubs/components/tplink/coordinator.pyi +2 -2
  492. homeassistant-stubs/components/tplink/diagnostics.pyi +2 -4
  493. homeassistant-stubs/components/tplink/entity.pyi +49 -7
  494. homeassistant-stubs/components/tplink/fan.pyi +31 -0
  495. homeassistant-stubs/components/tplink/light.pyi +20 -19
  496. homeassistant-stubs/components/tplink/number.pyi +27 -0
  497. homeassistant-stubs/components/tplink/select.pyi +26 -0
  498. homeassistant-stubs/components/tplink/sensor.pyi +12 -23
  499. homeassistant-stubs/components/tplink/switch.pyi +12 -35
  500. homeassistant-stubs/components/tplink_omada/controller.pyi +4 -15
  501. homeassistant-stubs/components/tplink_omada/coordinator.pyi +20 -1
  502. homeassistant-stubs/components/tplink_omada/device_tracker.pyi +36 -0
  503. homeassistant-stubs/components/transmission/__init__.pyi +9 -3
  504. homeassistant-stubs/components/transmission/sensor.pyi +2 -2
  505. homeassistant-stubs/components/transmission/switch.pyi +2 -4
  506. homeassistant-stubs/components/trend/__init__.pyi +2 -1
  507. homeassistant-stubs/components/trend/binary_sensor.pyi +6 -2
  508. homeassistant-stubs/components/tts/notify.pyi +2 -1
  509. homeassistant-stubs/components/unifi/config_flow.pyi +1 -1
  510. homeassistant-stubs/components/unifi/sensor.pyi +2 -1
  511. homeassistant-stubs/components/unifi/services.pyi +1 -0
  512. homeassistant-stubs/components/unifiprotect/__init__.pyi +8 -9
  513. homeassistant-stubs/components/unifiprotect/binary_sensor.pyi +29 -21
  514. homeassistant-stubs/components/unifiprotect/button.pyi +8 -9
  515. homeassistant-stubs/components/unifiprotect/camera.pyi +10 -10
  516. homeassistant-stubs/components/unifiprotect/const.pyi +0 -1
  517. homeassistant-stubs/components/unifiprotect/data.pyi +27 -14
  518. homeassistant-stubs/components/unifiprotect/diagnostics.pyi +2 -4
  519. homeassistant-stubs/components/unifiprotect/entity.pyi +27 -17
  520. homeassistant-stubs/components/unifiprotect/light.pyi +3 -6
  521. homeassistant-stubs/components/unifiprotect/lock.pyi +3 -8
  522. homeassistant-stubs/components/unifiprotect/media_player.pyi +4 -8
  523. homeassistant-stubs/components/unifiprotect/media_source.pyi +2 -3
  524. homeassistant-stubs/components/unifiprotect/migrate.pyi +5 -5
  525. homeassistant-stubs/components/unifiprotect/models.pyi +16 -17
  526. homeassistant-stubs/components/unifiprotect/number.pyi +8 -12
  527. homeassistant-stubs/components/unifiprotect/repairs.pyi +5 -3
  528. homeassistant-stubs/components/unifiprotect/select.pyi +9 -11
  529. homeassistant-stubs/components/unifiprotect/sensor.pyi +25 -23
  530. homeassistant-stubs/components/unifiprotect/services.pyi +0 -4
  531. homeassistant-stubs/components/unifiprotect/switch.pyi +15 -24
  532. homeassistant-stubs/components/unifiprotect/text.pyi +8 -11
  533. homeassistant-stubs/components/unifiprotect/utils.pyi +6 -11
  534. homeassistant-stubs/components/unifiprotect/views.pyi +2 -4
  535. homeassistant-stubs/components/update/__init__.pyi +3 -1
  536. homeassistant-stubs/components/vacuum/__init__.pyi +2 -1
  537. homeassistant-stubs/components/vallox/sensor.pyi +5 -1
  538. homeassistant-stubs/components/valve/__init__.pyi +3 -2
  539. homeassistant-stubs/components/water_heater/__init__.pyi +4 -3
  540. homeassistant-stubs/components/weather/__init__.pyi +4 -5
  541. homeassistant-stubs/components/webhook/__init__.pyi +1 -1
  542. homeassistant-stubs/components/webostv/__init__.pyi +7 -0
  543. homeassistant-stubs/components/websocket_api/__init__.pyi +3 -4
  544. homeassistant-stubs/components/websocket_api/decorators.pyi +2 -1
  545. homeassistant-stubs/components/wemo/entity.pyi +2 -2
  546. homeassistant-stubs/components/wemo/fan.pyi +2 -1
  547. homeassistant-stubs/components/withings/coordinator.pyi +3 -3
  548. homeassistant-stubs/components/withings/sensor.pyi +6 -2
  549. homeassistant-stubs/components/worldclock/sensor.pyi +2 -1
  550. homeassistant-stubs/components/xiaomi_ble/sensor.pyi +1 -1
  551. homeassistant-stubs/components/zone/__init__.pyi +3 -3
  552. homeassistant-stubs/components/zwave_js/__init__.pyi +1 -1
  553. homeassistant-stubs/components/zwave_js/api.pyi +1 -5
  554. homeassistant-stubs/components/zwave_js/config_flow.pyi +8 -1
  555. homeassistant-stubs/components/zwave_js/const.pyi +5 -0
  556. homeassistant-stubs/components/zwave_js/discovery.pyi +4 -4
  557. homeassistant-stubs/components/zwave_js/helpers.pyi +2 -2
  558. homeassistant-stubs/components/zwave_js/sensor.pyi +2 -0
  559. homeassistant-stubs/components/zwave_js/services.pyi +3 -2
  560. homeassistant-stubs/config.pyi +4 -5
  561. homeassistant-stubs/config_entries.pyi +6 -3
  562. homeassistant-stubs/const.pyi +9 -3
  563. homeassistant-stubs/core.pyi +15 -10
  564. homeassistant-stubs/data_entry_flow.pyi +12 -2
  565. homeassistant-stubs/exceptions.pyi +6 -5
  566. homeassistant-stubs/helpers/__init__.pyi +0 -5
  567. homeassistant-stubs/helpers/collection.pyi +14 -11
  568. homeassistant-stubs/helpers/condition.pyi +3 -2
  569. homeassistant-stubs/helpers/config_validation.pyi +5 -4
  570. homeassistant-stubs/helpers/deprecation.pyi +10 -0
  571. homeassistant-stubs/helpers/device.pyi +8 -0
  572. homeassistant-stubs/helpers/device_registry.pyi +14 -2
  573. homeassistant-stubs/helpers/entity.pyi +3 -2
  574. homeassistant-stubs/helpers/entity_component.pyi +3 -4
  575. homeassistant-stubs/helpers/entity_platform.pyi +2 -3
  576. homeassistant-stubs/helpers/event.pyi +10 -4
  577. homeassistant-stubs/helpers/frame.pyi +1 -0
  578. homeassistant-stubs/helpers/http.pyi +1 -1
  579. homeassistant-stubs/helpers/intent.pyi +6 -4
  580. homeassistant-stubs/helpers/llm.pyi +17 -3
  581. homeassistant-stubs/helpers/schema_config_entry_flow.pyi +2 -2
  582. homeassistant-stubs/helpers/script.pyi +3 -2
  583. homeassistant-stubs/helpers/selector.pyi +10 -8
  584. homeassistant-stubs/helpers/service.pyi +6 -3
  585. homeassistant-stubs/helpers/template.pyi +8 -6
  586. homeassistant-stubs/helpers/trace.pyi +3 -2
  587. homeassistant-stubs/helpers/typing.pyi +6 -1
  588. homeassistant-stubs/helpers/update_coordinator.pyi +3 -3
  589. homeassistant-stubs/loader.pyi +1 -2
  590. homeassistant-stubs/requirements.pyi +0 -3
  591. homeassistant-stubs/setup.pyi +4 -3
  592. homeassistant-stubs/util/loop.pyi +5 -1
  593. homeassistant-stubs/util/unit_conversion.pyi +7 -1
  594. {homeassistant_stubs-2024.6.4.dist-info → homeassistant_stubs-2024.7.0.dist-info}/METADATA +2 -2
  595. {homeassistant_stubs-2024.6.4.dist-info → homeassistant_stubs-2024.7.0.dist-info}/RECORD +597 -560
  596. homeassistant-stubs/auth/providers/legacy_api_password.pyi +0 -30
  597. homeassistant-stubs/components/air_quality/group.pyi +0 -5
  598. homeassistant-stubs/components/aladdin_connect/api.pyi +0 -12
  599. homeassistant-stubs/components/aladdin_connect/application_credentials.pyi +0 -5
  600. homeassistant-stubs/components/aladdin_connect/const.pyi +0 -3
  601. homeassistant-stubs/components/aladdin_connect/coordinator.pyi +0 -15
  602. homeassistant-stubs/components/aladdin_connect/cover.pyi +0 -25
  603. homeassistant-stubs/components/aladdin_connect/entity.pyi +0 -12
  604. homeassistant-stubs/components/aladdin_connect/sensor.pyi +0 -27
  605. homeassistant-stubs/components/alarm_control_panel/group.pyi +0 -6
  606. homeassistant-stubs/components/climate/group.pyi +0 -6
  607. homeassistant-stubs/components/cover/group.pyi +0 -6
  608. homeassistant-stubs/components/device_tracker/group.pyi +0 -6
  609. homeassistant-stubs/components/fastdotcom/services.pyi +0 -7
  610. homeassistant-stubs/components/lock/group.pyi +0 -6
  611. homeassistant-stubs/components/media_player/group.pyi +0 -6
  612. homeassistant-stubs/components/sensor/group.pyi +0 -5
  613. homeassistant-stubs/components/vacuum/group.pyi +0 -6
  614. homeassistant-stubs/components/water_heater/group.pyi +0 -6
  615. homeassistant-stubs/components/weather/group.pyi +0 -5
  616. homeassistant-stubs/components/wled/binary_sensor.pyi +0 -20
  617. {homeassistant_stubs-2024.6.4.dist-info → homeassistant_stubs-2024.7.0.dist-info}/LICENSE +0 -0
  618. {homeassistant_stubs-2024.6.4.dist-info → homeassistant_stubs-2024.7.0.dist-info}/WHEEL +0 -0
@@ -1,18 +1,60 @@
1
- from .const import DOMAIN as DOMAIN
1
+ import abc
2
+ from . import get_device_name as get_device_name, legacy_device_id as legacy_device_id
3
+ from .const import ATTR_CURRENT_A as ATTR_CURRENT_A, ATTR_CURRENT_POWER_W as ATTR_CURRENT_POWER_W, ATTR_TODAY_ENERGY_KWH as ATTR_TODAY_ENERGY_KWH, ATTR_TOTAL_ENERGY_KWH as ATTR_TOTAL_ENERGY_KWH, DOMAIN as DOMAIN, PRIMARY_STATE_ID as PRIMARY_STATE_ID
2
4
  from .coordinator import TPLinkDataUpdateCoordinator as TPLinkDataUpdateCoordinator
3
5
  from _typeshed import Incomplete
4
- from collections.abc import Awaitable as Awaitable, Callable as Callable, Coroutine
6
+ from abc import ABC, abstractmethod
7
+ from collections.abc import Awaitable as Awaitable, Callable as Callable, Coroutine, Mapping
8
+ from dataclasses import dataclass
9
+ from homeassistant.const import EntityCategory as EntityCategory
10
+ from homeassistant.core import callback as callback
5
11
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
6
12
  from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
13
+ from homeassistant.helpers.entity import EntityDescription as EntityDescription
14
+ from homeassistant.helpers.typing import UNDEFINED as UNDEFINED, UndefinedType as UndefinedType
7
15
  from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
8
- from kasa import SmartDevice as SmartDevice
16
+ from kasa import Device, Feature
9
17
  from typing import Any, Concatenate
10
18
 
19
+ _LOGGER: Incomplete
20
+ FEATURE_CATEGORY_TO_ENTITY_CATEGORY: Incomplete
21
+ DEVICETYPES_WITH_SPECIALIZED_PLATFORMS: Incomplete
22
+ FEATURES_ALLOW_LIST: Incomplete
23
+ EXCLUDED_FEATURES: Incomplete
24
+ LEGACY_KEY_MAPPING: Incomplete
25
+
26
+ @dataclass(frozen=True, kw_only=True)
27
+ class TPLinkFeatureEntityDescription(EntityDescription):
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) -> None: ...
29
+
11
30
  def async_refresh_after(func: Callable[Concatenate[_T, _P], Awaitable[None]]) -> Callable[Concatenate[_T, _P], Coroutine[Any, Any, None]]: ...
12
31
 
13
- class CoordinatedTPLinkEntity(CoordinatorEntity[TPLinkDataUpdateCoordinator]):
32
+ class CoordinatedTPLinkEntity(CoordinatorEntity[TPLinkDataUpdateCoordinator], ABC, metaclass=abc.ABCMeta):
14
33
  _attr_has_entity_name: bool
15
- device: Incomplete
16
- _attr_unique_id: Incomplete
34
+ _device: Device
35
+ _feature: Incomplete
17
36
  _attr_device_info: Incomplete
18
- def __init__(self, device: SmartDevice, coordinator: TPLinkDataUpdateCoordinator) -> None: ...
37
+ _attr_unique_id: Incomplete
38
+ def __init__(self, device: Device, coordinator: TPLinkDataUpdateCoordinator, *, feature: Feature | None = None, parent: Device | None = None) -> None: ...
39
+ def _get_unique_id(self) -> str: ...
40
+ @abstractmethod
41
+ def _async_update_attrs(self) -> None: ...
42
+ _attr_available: bool
43
+ def _async_call_update_attrs(self) -> None: ...
44
+ def _handle_coordinator_update(self) -> None: ...
45
+ @property
46
+ def available(self) -> bool: ...
47
+
48
+ class CoordinatedTPLinkFeatureEntity(CoordinatedTPLinkEntity, ABC, metaclass=abc.ABCMeta):
49
+ entity_description: TPLinkFeatureEntityDescription
50
+ _feature: Feature
51
+ def __init__(self, device: Device, coordinator: TPLinkDataUpdateCoordinator, *, feature: Feature, description: TPLinkFeatureEntityDescription, parent: Device | None = None) -> None: ...
52
+ def _get_unique_id(self) -> str: ...
53
+ @classmethod
54
+ def _category_for_feature(cls, feature: Feature | None) -> EntityCategory | None: ...
55
+ @classmethod
56
+ def _description_for_feature(cls, feature: Feature, descriptions: Mapping[str, _D], *, device: Device, parent: Device | None = None) -> _D | None: ...
57
+ @classmethod
58
+ def _entities_for_device(cls, device: Device, coordinator: TPLinkDataUpdateCoordinator, *, feature_type: Feature.Type, entity_class: type[_E], descriptions: Mapping[str, _D], parent: Device | None = None) -> list[_E]: ...
59
+ @classmethod
60
+ def entities_for_device_and_its_children(cls, device: Device, coordinator: TPLinkDataUpdateCoordinator, *, feature_type: Feature.Type, entity_class: type[_E], descriptions: Mapping[str, _D], child_coordinators: list[TPLinkDataUpdateCoordinator] | None = None) -> list[_E]: ...
@@ -0,0 +1,31 @@
1
+ from . import TPLinkConfigEntry as TPLinkConfigEntry
2
+ from .coordinator import TPLinkDataUpdateCoordinator as TPLinkDataUpdateCoordinator
3
+ from .entity import CoordinatedTPLinkEntity as CoordinatedTPLinkEntity, async_refresh_after as async_refresh_after
4
+ from _typeshed import Incomplete
5
+ from homeassistant.components.fan import FanEntity as FanEntity, FanEntityFeature as FanEntityFeature
6
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
7
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
8
+ from homeassistant.util.percentage import percentage_to_ranged_value as percentage_to_ranged_value, ranged_value_to_percentage as ranged_value_to_percentage
9
+ from homeassistant.util.scaling import int_states_in_range as int_states_in_range
10
+ from kasa import Device as Device
11
+ from kasa.interfaces import Fan as FanInterface
12
+ from typing import Any
13
+
14
+ _LOGGER: Incomplete
15
+
16
+ async def async_setup_entry(hass: HomeAssistant, config_entry: TPLinkConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
17
+
18
+ SPEED_RANGE: Incomplete
19
+
20
+ class TPLinkFanEntity(CoordinatedTPLinkEntity, FanEntity):
21
+ _attr_speed_count: Incomplete
22
+ _attr_supported_features: Incomplete
23
+ fan_module: Incomplete
24
+ _attr_name: Incomplete
25
+ def __init__(self, device: Device, coordinator: TPLinkDataUpdateCoordinator, fan_module: FanInterface, parent: Device | None = None) -> None: ...
26
+ async def async_turn_on(self, percentage: int | None = None, preset_mode: str | None = None, **kwargs: Any) -> None: ...
27
+ async def async_turn_off(self, **kwargs: Any) -> None: ...
28
+ async def async_set_percentage(self, percentage: int) -> None: ...
29
+ _attr_is_on: Incomplete
30
+ _attr_percentage: Incomplete
31
+ def _async_update_attrs(self) -> None: ...
@@ -1,17 +1,16 @@
1
- from . import legacy_device_id as legacy_device_id
2
- from .const import DOMAIN as DOMAIN
1
+ from . import TPLinkConfigEntry as TPLinkConfigEntry, legacy_device_id as legacy_device_id
3
2
  from .coordinator import TPLinkDataUpdateCoordinator as TPLinkDataUpdateCoordinator
4
3
  from .entity import CoordinatedTPLinkEntity as CoordinatedTPLinkEntity, async_refresh_after as async_refresh_after
5
- from .models import TPLinkData as TPLinkData
6
4
  from _typeshed import Incomplete
7
5
  from collections.abc import Sequence
8
- from homeassistant.components.light import ATTR_BRIGHTNESS as ATTR_BRIGHTNESS, ATTR_COLOR_TEMP_KELVIN as ATTR_COLOR_TEMP_KELVIN, ATTR_EFFECT as ATTR_EFFECT, ATTR_HS_COLOR as ATTR_HS_COLOR, ATTR_TRANSITION as ATTR_TRANSITION, ColorMode as ColorMode, LightEntity as LightEntity, LightEntityFeature as LightEntityFeature, filter_supported_color_modes as filter_supported_color_modes
9
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
6
+ from homeassistant.components.light import ATTR_BRIGHTNESS as ATTR_BRIGHTNESS, ATTR_COLOR_TEMP_KELVIN as ATTR_COLOR_TEMP_KELVIN, ATTR_EFFECT as ATTR_EFFECT, ATTR_HS_COLOR as ATTR_HS_COLOR, ATTR_TRANSITION as ATTR_TRANSITION, ColorMode as ColorMode, EFFECT_OFF as EFFECT_OFF, LightEntity as LightEntity, LightEntityFeature as LightEntityFeature, filter_supported_color_modes as filter_supported_color_modes
10
7
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
11
8
  from homeassistant.helpers import entity_platform as entity_platform
12
9
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
13
- from kasa import SmartBulb, SmartLightStrip
14
- from typing import Any, Final
10
+ from homeassistant.helpers.typing import VolDictType as VolDictType
11
+ from kasa import Device as Device
12
+ from kasa.interfaces import Light as Light, LightEffect
13
+ from typing import Any
15
14
 
16
15
  _LOGGER: Incomplete
17
16
  SERVICE_RANDOM_EFFECT: str
@@ -21,23 +20,24 @@ SAT: Incomplete
21
20
  VAL: Incomplete
22
21
  TRANSITION: Incomplete
23
22
  HSV_SEQUENCE: Incomplete
24
- BASE_EFFECT_DICT: Final[Incomplete]
25
- SEQUENCE_EFFECT_DICT: Final[Incomplete]
26
- RANDOM_EFFECT_DICT: Final[Incomplete]
23
+ BASE_EFFECT_DICT: VolDictType
24
+ SEQUENCE_EFFECT_DICT: VolDictType
25
+ RANDOM_EFFECT_DICT: VolDictType
27
26
 
28
27
  def _async_build_base_effect(brightness: int, duration: int, transition: int, segments: list[int]) -> dict[str, Any]: ...
29
- async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
28
+ async def async_setup_entry(hass: HomeAssistant, config_entry: TPLinkConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
30
29
 
31
- class TPLinkSmartBulb(CoordinatedTPLinkEntity, LightEntity):
30
+ class TPLinkLightEntity(CoordinatedTPLinkEntity, LightEntity):
32
31
  _attr_supported_features: Incomplete
33
- _attr_name: Incomplete
34
32
  _fixed_color_mode: ColorMode | None
35
- device: SmartBulb
36
- _attr_unique_id: Incomplete
33
+ _parent: Incomplete
34
+ _light_module: Incomplete
35
+ _attr_name: Incomplete
37
36
  _attr_min_color_temp_kelvin: Incomplete
38
37
  _attr_max_color_temp_kelvin: Incomplete
39
38
  _attr_supported_color_modes: Incomplete
40
- def __init__(self, device: SmartBulb, coordinator: TPLinkDataUpdateCoordinator) -> None: ...
39
+ def __init__(self, device: Device, coordinator: TPLinkDataUpdateCoordinator, *, light_module: Light, parent: Device | None = None) -> None: ...
40
+ def _get_unique_id(self) -> str: ...
41
41
  def _async_extract_brightness_transition(self, **kwargs: Any) -> tuple[int | None, int | None]: ...
42
42
  async def _async_set_hsv(self, hs_color: tuple[int, int], brightness: int | None, transition: int | None) -> None: ...
43
43
  async def _async_set_color_temp(self, color_temp: float, brightness: int | None, transition: int | None) -> None: ...
@@ -51,12 +51,13 @@ class TPLinkSmartBulb(CoordinatedTPLinkEntity, LightEntity):
51
51
  _attr_color_temp_kelvin: Incomplete
52
52
  _attr_hs_color: Incomplete
53
53
  def _async_update_attrs(self) -> None: ...
54
- def _handle_coordinator_update(self) -> None: ...
55
54
 
56
- class TPLinkSmartLightStrip(TPLinkSmartBulb):
57
- device: SmartLightStrip
55
+ class TPLinkLightEffectEntity(TPLinkLightEntity):
56
+ _effect_module: Incomplete
57
+ def __init__(self, device: Device, coordinator: TPLinkDataUpdateCoordinator, *, light_module: Light, effect_module: LightEffect) -> None: ...
58
58
  _attr_supported_features: Incomplete
59
59
  _attr_effect: Incomplete
60
+ _attr_color_mode: Incomplete
60
61
  _attr_effect_list: Incomplete
61
62
  def _async_update_attrs(self) -> None: ...
62
63
  async def async_turn_on(self, **kwargs: Any) -> None: ...
@@ -0,0 +1,27 @@
1
+ from . import TPLinkConfigEntry as TPLinkConfigEntry
2
+ from .entity import CoordinatedTPLinkFeatureEntity as CoordinatedTPLinkFeatureEntity, TPLinkDataUpdateCoordinator as TPLinkDataUpdateCoordinator, TPLinkFeatureEntityDescription as TPLinkFeatureEntityDescription, async_refresh_after as async_refresh_after
3
+ from _typeshed import Incomplete
4
+ from homeassistant.components.number import NumberEntity as NumberEntity, NumberEntityDescription as NumberEntityDescription, NumberMode as NumberMode
5
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
6
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
7
+ from kasa import Device as Device, Feature
8
+ from typing import Final
9
+
10
+ _LOGGER: Incomplete
11
+
12
+ class TPLinkNumberEntityDescription(NumberEntityDescription, TPLinkFeatureEntityDescription):
13
+ 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) -> None: ...
14
+
15
+ NUMBER_DESCRIPTIONS: Final[Incomplete]
16
+ NUMBER_DESCRIPTIONS_MAP: Incomplete
17
+
18
+ async def async_setup_entry(hass: HomeAssistant, config_entry: TPLinkConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
19
+
20
+ class TPLinkNumberEntity(CoordinatedTPLinkFeatureEntity, NumberEntity):
21
+ entity_description: TPLinkNumberEntityDescription
22
+ _attr_native_min_value: Incomplete
23
+ _attr_native_max_value: Incomplete
24
+ def __init__(self, device: Device, coordinator: TPLinkDataUpdateCoordinator, *, feature: Feature, description: TPLinkFeatureEntityDescription, parent: Device | None = None) -> None: ...
25
+ async def async_set_native_value(self, value: float) -> None: ...
26
+ _attr_native_value: Incomplete
27
+ def _async_update_attrs(self) -> None: ...
@@ -0,0 +1,26 @@
1
+ from . import TPLinkConfigEntry as TPLinkConfigEntry
2
+ from .entity import CoordinatedTPLinkFeatureEntity as CoordinatedTPLinkFeatureEntity, TPLinkDataUpdateCoordinator as TPLinkDataUpdateCoordinator, TPLinkFeatureEntityDescription as TPLinkFeatureEntityDescription, async_refresh_after as async_refresh_after
3
+ from _typeshed import Incomplete
4
+ from dataclasses import dataclass
5
+ from homeassistant.components.select import SelectEntity as SelectEntity, SelectEntityDescription as SelectEntityDescription
6
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
7
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
8
+ from kasa import Device as Device, Feature
9
+ from typing import Final
10
+
11
+ @dataclass(frozen=True, kw_only=True)
12
+ class TPLinkSelectEntityDescription(SelectEntityDescription, TPLinkFeatureEntityDescription):
13
+ 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) -> None: ...
14
+
15
+ SELECT_DESCRIPTIONS: Final[Incomplete]
16
+ SELECT_DESCRIPTIONS_MAP: Incomplete
17
+
18
+ async def async_setup_entry(hass: HomeAssistant, config_entry: TPLinkConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
19
+
20
+ class TPLinkSelectEntity(CoordinatedTPLinkFeatureEntity, SelectEntity):
21
+ entity_description: TPLinkSelectEntityDescription
22
+ _attr_options: Incomplete
23
+ def __init__(self, device: Device, coordinator: TPLinkDataUpdateCoordinator, *, feature: Feature, description: TPLinkFeatureEntityDescription, parent: Device | None = None) -> None: ...
24
+ async def async_select_option(self, option: str) -> None: ...
25
+ _attr_current_option: Incomplete
26
+ def _async_update_attrs(self) -> None: ...
@@ -1,35 +1,24 @@
1
- from . import legacy_device_id as legacy_device_id
2
- from .const import ATTR_CURRENT_A as ATTR_CURRENT_A, ATTR_CURRENT_POWER_W as ATTR_CURRENT_POWER_W, ATTR_TODAY_ENERGY_KWH as ATTR_TODAY_ENERGY_KWH, ATTR_TOTAL_ENERGY_KWH as ATTR_TOTAL_ENERGY_KWH, DOMAIN as DOMAIN
3
- from .coordinator import TPLinkDataUpdateCoordinator as TPLinkDataUpdateCoordinator
4
- from .entity import CoordinatedTPLinkEntity as CoordinatedTPLinkEntity
5
- from .models import TPLinkData as TPLinkData
1
+ from . import TPLinkConfigEntry as TPLinkConfigEntry
2
+ from .const import UNIT_MAPPING as UNIT_MAPPING
3
+ from .entity import CoordinatedTPLinkFeatureEntity as CoordinatedTPLinkFeatureEntity, TPLinkFeatureEntityDescription as TPLinkFeatureEntityDescription
6
4
  from _typeshed import Incomplete
7
5
  from dataclasses import dataclass
8
6
  from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
9
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
10
- from homeassistant.const import ATTR_VOLTAGE as ATTR_VOLTAGE, UnitOfElectricCurrent as UnitOfElectricCurrent, UnitOfElectricPotential as UnitOfElectricPotential, UnitOfEnergy as UnitOfEnergy, UnitOfPower as UnitOfPower
11
7
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
12
8
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
13
- from kasa import SmartDevice as SmartDevice
14
9
 
15
- @dataclass(frozen=True)
16
- class TPLinkSensorEntityDescription(SensorEntityDescription):
17
- emeter_attr: str | None = ...
18
- precision: int | None = ...
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, emeter_attr, precision) -> None: ...
10
+ @dataclass(frozen=True, kw_only=True)
11
+ class TPLinkSensorEntityDescription(SensorEntityDescription, TPLinkFeatureEntityDescription):
12
+ 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) -> None: ...
20
13
 
21
- ENERGY_SENSORS: tuple[TPLinkSensorEntityDescription, ...]
14
+ SENSOR_DESCRIPTIONS: tuple[TPLinkSensorEntityDescription, ...]
15
+ SENSOR_DESCRIPTIONS_MAP: Incomplete
22
16
 
23
- def async_emeter_from_device(device: SmartDevice, description: TPLinkSensorEntityDescription) -> float | None: ...
24
- def _async_sensors_for_device(device: SmartDevice, coordinator: TPLinkDataUpdateCoordinator, has_parent: bool = False) -> list[SmartPlugSensor]: ...
25
- async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
17
+ async def async_setup_entry(hass: HomeAssistant, config_entry: TPLinkConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
26
18
 
27
- class SmartPlugSensor(CoordinatedTPLinkEntity, SensorEntity):
19
+ class TPLinkSensorEntity(CoordinatedTPLinkFeatureEntity, SensorEntity):
28
20
  entity_description: TPLinkSensorEntityDescription
29
- _attr_unique_id: Incomplete
30
- _attr_translation_placeholders: Incomplete
31
- _attr_translation_key: Incomplete
32
- def __init__(self, device: SmartDevice, coordinator: TPLinkDataUpdateCoordinator, description: TPLinkSensorEntityDescription, has_parent: bool = False) -> None: ...
21
+ _attr_suggested_display_precision: Incomplete
33
22
  _attr_native_value: Incomplete
23
+ _attr_native_unit_of_measurement: Incomplete
34
24
  def _async_update_attrs(self) -> None: ...
35
- def _handle_coordinator_update(self) -> None: ...
@@ -1,48 +1,25 @@
1
- from . import legacy_device_id as legacy_device_id
2
- from .const import DOMAIN as DOMAIN
3
- from .coordinator import TPLinkDataUpdateCoordinator as TPLinkDataUpdateCoordinator
4
- from .entity import CoordinatedTPLinkEntity as CoordinatedTPLinkEntity, async_refresh_after as async_refresh_after
5
- from .models import TPLinkData as TPLinkData
1
+ from . import TPLinkConfigEntry as TPLinkConfigEntry
2
+ from .entity import CoordinatedTPLinkFeatureEntity as CoordinatedTPLinkFeatureEntity, TPLinkFeatureEntityDescription as TPLinkFeatureEntityDescription, async_refresh_after as async_refresh_after
6
3
  from _typeshed import Incomplete
7
- from homeassistant.components.switch import SwitchEntity as SwitchEntity
8
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
9
- from homeassistant.const import EntityCategory as EntityCategory
4
+ from dataclasses import dataclass
5
+ from homeassistant.components.switch import SwitchEntity as SwitchEntity, SwitchEntityDescription as SwitchEntityDescription
10
6
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
11
7
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
12
- from kasa import SmartDevice as SmartDevice, SmartPlug
13
8
  from typing import Any
14
9
 
15
10
  _LOGGER: Incomplete
16
11
 
17
- async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
12
+ @dataclass(frozen=True, kw_only=True)
13
+ class TPLinkSwitchEntityDescription(SwitchEntityDescription, TPLinkFeatureEntityDescription):
14
+ 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) -> None: ...
18
15
 
19
- class SmartPlugLedSwitch(CoordinatedTPLinkEntity, SwitchEntity):
20
- device: SmartPlug
21
- _attr_translation_key: str
22
- _attr_entity_category: Incomplete
23
- _attr_unique_id: Incomplete
24
- def __init__(self, device: SmartPlug, coordinator: TPLinkDataUpdateCoordinator) -> None: ...
25
- async def async_turn_on(self, **kwargs: Any) -> None: ...
26
- async def async_turn_off(self, **kwargs: Any) -> None: ...
27
- _attr_is_on: Incomplete
28
- def _async_update_attrs(self) -> None: ...
29
- def _handle_coordinator_update(self) -> None: ...
16
+ SWITCH_DESCRIPTIONS: tuple[TPLinkSwitchEntityDescription, ...]
17
+ SWITCH_DESCRIPTIONS_MAP: Incomplete
30
18
 
31
- class SmartPlugSwitch(CoordinatedTPLinkEntity, SwitchEntity):
32
- _attr_name: str | None
33
- _attr_unique_id: Incomplete
34
- def __init__(self, device: SmartDevice, coordinator: TPLinkDataUpdateCoordinator) -> None: ...
35
- async def async_turn_on(self, **kwargs: Any) -> None: ...
36
- async def async_turn_off(self, **kwargs: Any) -> None: ...
37
- _attr_is_on: Incomplete
38
- def _async_update_attrs(self) -> None: ...
39
- def _handle_coordinator_update(self) -> None: ...
19
+ async def async_setup_entry(hass: HomeAssistant, config_entry: TPLinkConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
40
20
 
41
- class SmartPlugSwitchChild(SmartPlugSwitch):
42
- _plug: Incomplete
43
- _attr_unique_id: Incomplete
44
- _attr_name: Incomplete
45
- def __init__(self, device: SmartDevice, coordinator: TPLinkDataUpdateCoordinator, plug: SmartDevice) -> None: ...
21
+ class TPLinkSwitch(CoordinatedTPLinkFeatureEntity, SwitchEntity):
22
+ entity_description: TPLinkSwitchEntityDescription
46
23
  async def async_turn_on(self, **kwargs: Any) -> None: ...
47
24
  async def async_turn_off(self, **kwargs: Any) -> None: ...
48
25
  _attr_is_on: Incomplete
@@ -1,25 +1,13 @@
1
- from .coordinator import OmadaCoordinator as OmadaCoordinator
1
+ from .coordinator import OmadaClientsCoordinator as OmadaClientsCoordinator, OmadaGatewayCoordinator as OmadaGatewayCoordinator, OmadaSwitchPortCoordinator as OmadaSwitchPortCoordinator
2
2
  from _typeshed import Incomplete
3
3
  from homeassistant.core import HomeAssistant as HomeAssistant
4
4
  from tplink_omada_client import OmadaSiteClient as OmadaSiteClient
5
- from tplink_omada_client.devices import OmadaGateway, OmadaSwitch as OmadaSwitch, OmadaSwitchPortDetails
6
-
7
- POLL_SWITCH_PORT: int
8
- POLL_GATEWAY: int
9
-
10
- class OmadaSwitchPortCoordinator(OmadaCoordinator[OmadaSwitchPortDetails]):
11
- _network_switch: Incomplete
12
- def __init__(self, hass: HomeAssistant, omada_client: OmadaSiteClient, network_switch: OmadaSwitch) -> None: ...
13
- async def poll_update(self) -> dict[str, OmadaSwitchPortDetails]: ...
14
-
15
- class OmadaGatewayCoordinator(OmadaCoordinator[OmadaGateway]):
16
- mac: Incomplete
17
- def __init__(self, hass: HomeAssistant, omada_client: OmadaSiteClient, mac: str) -> None: ...
18
- async def poll_update(self) -> dict[str, OmadaGateway]: ...
5
+ from tplink_omada_client.devices import OmadaSwitch as OmadaSwitch
19
6
 
20
7
  class OmadaSiteController:
21
8
  _gateway_coordinator: OmadaGatewayCoordinator | None
22
9
  _initialized_gateway_coordinator: bool
10
+ _clients_coordinator: OmadaClientsCoordinator | None
23
11
  _hass: Incomplete
24
12
  _omada_client: Incomplete
25
13
  _switch_port_coordinators: Incomplete
@@ -28,3 +16,4 @@ class OmadaSiteController:
28
16
  def omada_client(self) -> OmadaSiteClient: ...
29
17
  def get_switch_port_coordinator(self, switch: OmadaSwitch) -> OmadaSwitchPortCoordinator: ...
30
18
  async def get_gateway_coordinator(self) -> OmadaGatewayCoordinator | None: ...
19
+ def get_clients_coordinator(self) -> OmadaClientsCoordinator: ...
@@ -1,12 +1,31 @@
1
1
  from _typeshed import Incomplete
2
2
  from homeassistant.core import HomeAssistant as HomeAssistant
3
3
  from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
4
- from tplink_omada_client import OmadaSiteClient as OmadaSiteClient
4
+ from tplink_omada_client import OmadaSiteClient as OmadaSiteClient, OmadaSwitchPortDetails
5
+ from tplink_omada_client.clients import OmadaWirelessClient
6
+ from tplink_omada_client.devices import OmadaGateway, OmadaSwitch as OmadaSwitch
5
7
 
6
8
  _LOGGER: Incomplete
9
+ POLL_SWITCH_PORT: int
10
+ POLL_GATEWAY: int
11
+ POLL_CLIENTS: int
7
12
 
8
13
  class OmadaCoordinator(DataUpdateCoordinator[dict[str, _T]]):
9
14
  omada_client: Incomplete
10
15
  def __init__(self, hass: HomeAssistant, omada_client: OmadaSiteClient, name: str, poll_delay: int = 300) -> None: ...
11
16
  async def _async_update_data(self) -> dict[str, _T]: ...
12
17
  async def poll_update(self) -> dict[str, _T]: ...
18
+
19
+ class OmadaSwitchPortCoordinator(OmadaCoordinator[OmadaSwitchPortDetails]):
20
+ _network_switch: Incomplete
21
+ def __init__(self, hass: HomeAssistant, omada_client: OmadaSiteClient, network_switch: OmadaSwitch) -> None: ...
22
+ async def poll_update(self) -> dict[str, OmadaSwitchPortDetails]: ...
23
+
24
+ class OmadaGatewayCoordinator(OmadaCoordinator[OmadaGateway]):
25
+ mac: Incomplete
26
+ def __init__(self, hass: HomeAssistant, omada_client: OmadaSiteClient, mac: str) -> None: ...
27
+ async def poll_update(self) -> dict[str, OmadaGateway]: ...
28
+
29
+ class OmadaClientsCoordinator(OmadaCoordinator[OmadaWirelessClient]):
30
+ def __init__(self, hass: HomeAssistant, omada_client: OmadaSiteClient) -> None: ...
31
+ async def poll_update(self) -> dict[str, OmadaWirelessClient]: ...
@@ -0,0 +1,36 @@
1
+ from .config_flow import CONF_SITE as CONF_SITE
2
+ from .const import DOMAIN as DOMAIN
3
+ from .controller import OmadaClientsCoordinator as OmadaClientsCoordinator, OmadaSiteController as OmadaSiteController
4
+ from _typeshed import Incomplete
5
+ from homeassistant.components.device_tracker import ScannerEntity as ScannerEntity, SourceType as SourceType
6
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
8
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
9
+ from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
10
+ from tplink_omada_client.clients import OmadaWirelessClient
11
+
12
+ _LOGGER: Incomplete
13
+
14
+ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
15
+
16
+ class OmadaClientScannerEntity(CoordinatorEntity[OmadaClientsCoordinator], ScannerEntity):
17
+ _client_details: OmadaWirelessClient | None
18
+ _site_id: Incomplete
19
+ _client_id: Incomplete
20
+ _attr_name: Incomplete
21
+ def __init__(self, site_id: str, client_id: str, display_name: str, coordinator: OmadaClientsCoordinator) -> None: ...
22
+ @property
23
+ def source_type(self) -> SourceType: ...
24
+ def _do_update(self) -> None: ...
25
+ async def async_added_to_hass(self) -> None: ...
26
+ def _handle_coordinator_update(self) -> None: ...
27
+ @property
28
+ def ip_address(self) -> str | None: ...
29
+ @property
30
+ def mac_address(self) -> str | None: ...
31
+ @property
32
+ def hostname(self) -> str | None: ...
33
+ @property
34
+ def is_connected(self) -> bool: ...
35
+ @property
36
+ def unique_id(self) -> str | None: ...
@@ -3,11 +3,12 @@ from .const import ATTR_DELETE_DATA as ATTR_DELETE_DATA, ATTR_TORRENT as ATTR_TO
3
3
  from .coordinator import TransmissionDataUpdateCoordinator as TransmissionDataUpdateCoordinator
4
4
  from .errors import AuthenticationError as AuthenticationError, CannotConnect as CannotConnect, UnknownError as UnknownError
5
5
  from _typeshed import Incomplete
6
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
6
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigEntryState as ConfigEntryState
7
7
  from homeassistant.const import CONF_HOST as CONF_HOST, CONF_ID as CONF_ID, CONF_NAME as CONF_NAME, CONF_PASSWORD as CONF_PASSWORD, CONF_PATH as CONF_PATH, CONF_PORT as CONF_PORT, CONF_SSL as CONF_SSL, CONF_USERNAME as CONF_USERNAME, Platform as Platform
8
8
  from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, callback as callback
9
- from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryNotReady as ConfigEntryNotReady
9
+ from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryNotReady as ConfigEntryNotReady, HomeAssistantError as HomeAssistantError
10
10
  from homeassistant.helpers import selector as selector
11
+ from homeassistant.helpers.typing import ConfigType as ConfigType
11
12
  from typing import Any
12
13
 
13
14
  _LOGGER: Incomplete
@@ -18,8 +19,13 @@ SERVICE_ADD_TORRENT_SCHEMA: Incomplete
18
19
  SERVICE_REMOVE_TORRENT_SCHEMA: Incomplete
19
20
  SERVICE_START_TORRENT_SCHEMA: Incomplete
20
21
  SERVICE_STOP_TORRENT_SCHEMA: Incomplete
22
+ CONFIG_SCHEMA: Incomplete
23
+ TransmissionConfigEntry = ConfigEntry[TransmissionDataUpdateCoordinator]
21
24
 
22
- async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> bool: ...
25
+ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
26
+ async def async_setup_entry(hass: HomeAssistant, config_entry: TransmissionConfigEntry) -> bool: ...
23
27
  async def async_unload_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> bool: ...
24
28
  async def async_migrate_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> bool: ...
29
+ def _get_coordinator_from_service_data(hass: HomeAssistant, entry_id: str) -> TransmissionDataUpdateCoordinator: ...
30
+ def setup_hass_services(hass: HomeAssistant) -> None: ...
25
31
  async def get_api(hass: HomeAssistant, entry: dict[str, Any]) -> transmission_rpc.Client: ...
@@ -1,10 +1,10 @@
1
+ from . import TransmissionConfigEntry as TransmissionConfigEntry
1
2
  from .const import DOMAIN as DOMAIN, STATE_ATTR_TORRENT_INFO as STATE_ATTR_TORRENT_INFO, STATE_DOWNLOADING as STATE_DOWNLOADING, STATE_SEEDING as STATE_SEEDING, STATE_UP_DOWN as STATE_UP_DOWN, SUPPORTED_ORDER_MODES as SUPPORTED_ORDER_MODES
2
3
  from .coordinator import TransmissionDataUpdateCoordinator as TransmissionDataUpdateCoordinator
3
4
  from _typeshed import Incomplete
4
5
  from collections.abc import Callable as Callable
5
6
  from dataclasses import dataclass
6
7
  from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription
7
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
8
  from homeassistant.const import STATE_IDLE as STATE_IDLE, UnitOfDataRate as UnitOfDataRate
9
9
  from homeassistant.core import HomeAssistant as HomeAssistant
10
10
  from homeassistant.helpers.device_registry import DeviceEntryType as DeviceEntryType, DeviceInfo as DeviceInfo
@@ -24,7 +24,7 @@ class TransmissionSensorEntityDescription(SensorEntityDescription):
24
24
 
25
25
  SENSOR_TYPES: tuple[TransmissionSensorEntityDescription, ...]
26
26
 
27
- async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
27
+ async def async_setup_entry(hass: HomeAssistant, config_entry: TransmissionConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
28
28
 
29
29
  class TransmissionSensor(CoordinatorEntity[TransmissionDataUpdateCoordinator], SensorEntity):
30
30
  entity_description: TransmissionSensorEntityDescription
@@ -1,18 +1,16 @@
1
+ from . import TransmissionConfigEntry as TransmissionConfigEntry
1
2
  from .const import DOMAIN as DOMAIN
2
3
  from .coordinator import TransmissionDataUpdateCoordinator as TransmissionDataUpdateCoordinator
3
4
  from _typeshed import Incomplete
4
5
  from collections.abc import Callable as Callable
5
6
  from dataclasses import dataclass
6
7
  from homeassistant.components.switch import SwitchEntity as SwitchEntity, SwitchEntityDescription as SwitchEntityDescription
7
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
8
  from homeassistant.core import HomeAssistant as HomeAssistant
9
9
  from homeassistant.helpers.device_registry import DeviceEntryType as DeviceEntryType, DeviceInfo as DeviceInfo
10
10
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
11
11
  from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
12
12
  from typing import Any
13
13
 
14
- _LOGGING: Incomplete
15
-
16
14
  @dataclass(frozen=True, kw_only=True)
17
15
  class TransmissionSwitchEntityDescription(SwitchEntityDescription):
18
16
  is_on_func: Callable[[TransmissionDataUpdateCoordinator], bool | None]
@@ -22,7 +20,7 @@ class TransmissionSwitchEntityDescription(SwitchEntityDescription):
22
20
 
23
21
  SWITCH_TYPES: tuple[TransmissionSwitchEntityDescription, ...]
24
22
 
25
- async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
23
+ async def async_setup_entry(hass: HomeAssistant, config_entry: TransmissionConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
26
24
 
27
25
  class TransmissionSwitch(CoordinatorEntity[TransmissionDataUpdateCoordinator], SwitchEntity):
28
26
  entity_description: TransmissionSwitchEntityDescription
@@ -1,7 +1,8 @@
1
1
  from _typeshed import Incomplete
2
2
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
3
- from homeassistant.const import Platform as Platform
3
+ from homeassistant.const import CONF_ENTITY_ID as CONF_ENTITY_ID, Platform as Platform
4
4
  from homeassistant.core import HomeAssistant as HomeAssistant
5
+ from homeassistant.helpers.device import async_remove_stale_devices_links_keep_entity_device as async_remove_stale_devices_links_keep_entity_device
5
6
 
6
7
  PLATFORMS: Incomplete
7
8
 
@@ -2,10 +2,12 @@ from . import PLATFORMS as PLATFORMS
2
2
  from .const import ATTR_GRADIENT as ATTR_GRADIENT, ATTR_INVERT as ATTR_INVERT, ATTR_MIN_GRADIENT as ATTR_MIN_GRADIENT, ATTR_SAMPLE_COUNT as ATTR_SAMPLE_COUNT, ATTR_SAMPLE_DURATION as ATTR_SAMPLE_DURATION, CONF_INVERT as CONF_INVERT, CONF_MAX_SAMPLES as CONF_MAX_SAMPLES, CONF_MIN_GRADIENT as CONF_MIN_GRADIENT, CONF_MIN_SAMPLES as CONF_MIN_SAMPLES, CONF_SAMPLE_DURATION as CONF_SAMPLE_DURATION, DEFAULT_MAX_SAMPLES as DEFAULT_MAX_SAMPLES, DEFAULT_MIN_GRADIENT as DEFAULT_MIN_GRADIENT, DEFAULT_MIN_SAMPLES as DEFAULT_MIN_SAMPLES, DEFAULT_SAMPLE_DURATION as DEFAULT_SAMPLE_DURATION, DOMAIN as DOMAIN
3
3
  from _typeshed import Incomplete
4
4
  from collections.abc import Mapping
5
- from homeassistant.components.binary_sensor import BinarySensorDeviceClass as BinarySensorDeviceClass, BinarySensorEntity as BinarySensorEntity, DEVICE_CLASSES_SCHEMA as DEVICE_CLASSES_SCHEMA, ENTITY_ID_FORMAT as ENTITY_ID_FORMAT, PLATFORM_SCHEMA as PLATFORM_SCHEMA
5
+ from homeassistant.components.binary_sensor import BinarySensorDeviceClass as BinarySensorDeviceClass, BinarySensorEntity as BinarySensorEntity, DEVICE_CLASSES_SCHEMA as DEVICE_CLASSES_SCHEMA, ENTITY_ID_FORMAT as ENTITY_ID_FORMAT
6
6
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
7
  from homeassistant.const import ATTR_ENTITY_ID as ATTR_ENTITY_ID, ATTR_FRIENDLY_NAME as ATTR_FRIENDLY_NAME, CONF_ATTRIBUTE as CONF_ATTRIBUTE, CONF_DEVICE_CLASS as CONF_DEVICE_CLASS, CONF_ENTITY_ID as CONF_ENTITY_ID, CONF_FRIENDLY_NAME as CONF_FRIENDLY_NAME, CONF_SENSORS as CONF_SENSORS, STATE_ON as STATE_ON, STATE_UNAVAILABLE as STATE_UNAVAILABLE, STATE_UNKNOWN as STATE_UNKNOWN
8
8
  from homeassistant.core import Event as Event, EventStateChangedData as EventStateChangedData, HomeAssistant as HomeAssistant, callback as callback
9
+ from homeassistant.helpers import device_registry as dr
10
+ from homeassistant.helpers.device import async_device_info_to_link_from_entity as async_device_info_to_link_from_entity
9
11
  from homeassistant.helpers.entity import generate_entity_id as generate_entity_id
10
12
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
11
13
  from homeassistant.helpers.event import async_track_state_change_event as async_track_state_change_event
@@ -20,6 +22,7 @@ _LOGGER: Incomplete
20
22
  def _validate_min_max(data: dict[str, Any]) -> dict[str, Any]: ...
21
23
 
22
24
  SENSOR_SCHEMA: Incomplete
25
+ PLATFORM_SCHEMA: Incomplete
23
26
 
24
27
  async def async_setup_platform(hass: HomeAssistant, config: ConfigType, async_add_entities: AddEntitiesCallback, discovery_info: DiscoveryInfoType | None = None) -> None: ...
25
28
  async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
@@ -38,8 +41,9 @@ class SensorTrend(BinarySensorEntity, RestoreEntity):
38
41
  _attr_name: Incomplete
39
42
  _attr_device_class: Incomplete
40
43
  _attr_unique_id: Incomplete
44
+ _attr_device_info: Incomplete
41
45
  entity_id: Incomplete
42
- def __init__(self, name: str, entity_id: str, attribute: str | None, invert: bool, sample_duration: int, min_gradient: float, min_samples: int, max_samples: int, unique_id: str | None = None, device_class: BinarySensorDeviceClass | None = None, sensor_entity_id: str | None = None) -> None: ...
46
+ def __init__(self, name: str, entity_id: str, attribute: str | None, invert: bool, sample_duration: int, min_gradient: float, min_samples: int, max_samples: int, unique_id: str | None = None, device_class: BinarySensorDeviceClass | None = None, sensor_entity_id: str | None = None, device_info: dr.DeviceInfo | None = None) -> None: ...
43
47
  @property
44
48
  def is_on(self) -> bool | None: ...
45
49
  @property
@@ -1,6 +1,6 @@
1
1
  from . import ATTR_LANGUAGE as ATTR_LANGUAGE, ATTR_MEDIA_PLAYER_ENTITY_ID as ATTR_MEDIA_PLAYER_ENTITY_ID, ATTR_MESSAGE as ATTR_MESSAGE, DOMAIN as DOMAIN
2
2
  from _typeshed import Incomplete
3
- from homeassistant.components.notify import BaseNotificationService as BaseNotificationService, PLATFORM_SCHEMA as PLATFORM_SCHEMA
3
+ from homeassistant.components.notify import BaseNotificationService as BaseNotificationService
4
4
  from homeassistant.const import ATTR_ENTITY_ID as ATTR_ENTITY_ID, CONF_ENTITY_ID as CONF_ENTITY_ID, CONF_NAME as CONF_NAME
5
5
  from homeassistant.core import HomeAssistant as HomeAssistant, split_entity_id as split_entity_id
6
6
  from homeassistant.helpers.typing import ConfigType as ConfigType, DiscoveryInfoType as DiscoveryInfoType
@@ -10,6 +10,7 @@ CONF_MEDIA_PLAYER: str
10
10
  CONF_TTS_SERVICE: str
11
11
  ENTITY_LEGACY_PROVIDER_GROUP: str
12
12
  _LOGGER: Incomplete
13
+ PLATFORM_SCHEMA: Incomplete
13
14
 
14
15
  async def async_get_service(hass: HomeAssistant, config: ConfigType, discovery_info: DiscoveryInfoType | None = None) -> TTSNotificationService: ...
15
16
 
@@ -6,7 +6,7 @@ from _typeshed import Incomplete
6
6
  from aiounifi.interfaces.sites import Sites as Sites
7
7
  from collections.abc import Mapping
8
8
  from homeassistant.components import ssdp as ssdp
9
- from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow
9
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigEntryState as ConfigEntryState, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow
10
10
  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
11
11
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
12
12
  from homeassistant.helpers.device_registry import format_mac as format_mac
@@ -25,8 +25,9 @@ def async_client_rx_value_fn(hub: UnifiHub, client: Client) -> float: ...
25
25
  def async_client_tx_value_fn(hub: UnifiHub, client: Client) -> float: ...
26
26
  def async_client_uptime_value_fn(hub: UnifiHub, client: Client) -> datetime: ...
27
27
  def async_wlan_client_value_fn(hub: UnifiHub, wlan: Wlan) -> int: ...
28
+ def async_device_clients_value_fn(hub: UnifiHub, device: Device) -> int: ...
28
29
  def async_device_uptime_value_fn(hub: UnifiHub, device: Device) -> datetime | None: ...
29
- def async_device_uptime_value_changed_fn(old: StateType | date | datetime | Decimal, new: datetime | float | str | None) -> bool: ...
30
+ def async_uptime_value_changed_fn(old: StateType | date | datetime | Decimal, new: datetime | float | str | None) -> bool: ...
30
31
  def async_device_outlet_power_supported_fn(hub: UnifiHub, obj_id: str) -> bool: ...
31
32
  def async_device_outlet_supported_fn(hub: UnifiHub, obj_id: str) -> bool: ...
32
33
  def device_system_stats_supported_fn(stat_index: int, hub: UnifiHub, obj_id: str) -> bool: ...
@@ -1,5 +1,6 @@
1
1
  from _typeshed import Incomplete
2
2
  from collections.abc import Mapping
3
+ from homeassistant.config_entries import ConfigEntryState as ConfigEntryState
3
4
  from homeassistant.const import ATTR_DEVICE_ID as ATTR_DEVICE_ID
4
5
  from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, callback as callback
5
6
  from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC as CONNECTION_NETWORK_MAC