homeassistant-stubs 2024.2.4__py3-none-any.whl → 2024.3.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 (302) hide show
  1. homeassistant-stubs/bootstrap.pyi +20 -5
  2. homeassistant-stubs/components/aftership/const.pyi +0 -1
  3. homeassistant-stubs/components/aftership/sensor.pyi +2 -2
  4. homeassistant-stubs/components/airthings_ble/config_flow.pyi +1 -0
  5. homeassistant-stubs/components/airzone_cloud/sensor.pyi +1 -1
  6. homeassistant-stubs/components/alexa/config.pyi +2 -0
  7. homeassistant-stubs/components/amberelectric/sensor.pyi +0 -1
  8. homeassistant-stubs/components/androidtv/entity.pyi +30 -0
  9. homeassistant-stubs/components/androidtv/media_player.pyi +5 -23
  10. homeassistant-stubs/components/anthemav/media_player.pyi +0 -1
  11. homeassistant-stubs/components/api/__init__.pyi +0 -1
  12. homeassistant-stubs/components/apple_tv/__init__.pyi +68 -0
  13. homeassistant-stubs/components/apple_tv/browse_media.pyi +5 -0
  14. homeassistant-stubs/components/apple_tv/config_flow.pyi +63 -0
  15. homeassistant-stubs/components/apple_tv/const.pyi +4 -0
  16. homeassistant-stubs/components/apple_tv/media_player.pyi +93 -0
  17. homeassistant-stubs/components/apple_tv/remote.pyi +23 -0
  18. homeassistant-stubs/components/assist_pipeline/__init__.pyi +1 -1
  19. homeassistant-stubs/components/assist_pipeline/const.pyi +1 -1
  20. homeassistant-stubs/components/assist_pipeline/error.pyi +4 -0
  21. homeassistant-stubs/components/assist_pipeline/pipeline.pyi +5 -5
  22. homeassistant-stubs/components/asterisk_mbox/__init__.pyi +1 -0
  23. homeassistant-stubs/components/asuswrt/router.pyi +1 -1
  24. homeassistant-stubs/components/auth/__init__.pyi +2 -2
  25. homeassistant-stubs/components/automation/__init__.pyi +2 -1
  26. homeassistant-stubs/components/axis/binary_sensor.pyi +4 -0
  27. homeassistant-stubs/components/backup/manager.pyi +5 -3
  28. homeassistant-stubs/components/backup/websocket.pyi +4 -2
  29. homeassistant-stubs/components/blue_current/__init__.pyi +4 -3
  30. homeassistant-stubs/components/blue_current/entity.pyi +5 -2
  31. homeassistant-stubs/components/bluetooth/manager.pyi +2 -2
  32. homeassistant-stubs/components/bluetooth/match.pyi +3 -0
  33. homeassistant-stubs/components/bmw_connected_drive/device_tracker.pyi +1 -0
  34. homeassistant-stubs/components/braviatv/coordinator.pyi +2 -0
  35. homeassistant-stubs/components/braviatv/media_player.pyi +5 -0
  36. homeassistant-stubs/components/brother/sensor.pyi +3 -3
  37. homeassistant-stubs/components/bthome/config_flow.pyi +4 -4
  38. homeassistant-stubs/components/calendar/trigger.pyi +2 -1
  39. homeassistant-stubs/components/camera/media_source.pyi +1 -0
  40. homeassistant-stubs/components/camera/prefs.pyi +2 -0
  41. homeassistant-stubs/components/cert_expiry/sensor.pyi +0 -1
  42. homeassistant-stubs/components/climate/__init__.pyi +3 -1
  43. homeassistant-stubs/components/cloud/const.pyi +2 -0
  44. homeassistant-stubs/components/cloud/google_config.pyi +7 -5
  45. homeassistant-stubs/components/cloud/http_api.pyi +1 -1
  46. homeassistant-stubs/components/cloud/prefs.pyi +6 -2
  47. homeassistant-stubs/components/cloud/tts.pyi +3 -2
  48. homeassistant-stubs/components/config/area_registry.pyi +1 -1
  49. homeassistant-stubs/components/config/auth.pyi +2 -2
  50. homeassistant-stubs/components/config/auth_provider_homeassistant.pyi +2 -2
  51. homeassistant-stubs/components/config/automation.pyi +2 -2
  52. homeassistant-stubs/components/config/config_entries.pyi +5 -4
  53. homeassistant-stubs/components/config/core.pyi +2 -2
  54. homeassistant-stubs/components/config/device_registry.pyi +1 -1
  55. homeassistant-stubs/components/config/entity_registry.pyi +1 -1
  56. homeassistant-stubs/components/config/floor_registry.pyi +12 -0
  57. homeassistant-stubs/components/config/label_registry.pyi +12 -0
  58. homeassistant-stubs/components/config/scene.pyi +2 -2
  59. homeassistant-stubs/components/config/script.pyi +2 -2
  60. homeassistant-stubs/components/cpuspeed/sensor.pyi +0 -1
  61. homeassistant-stubs/components/crownstone/light.pyi +1 -1
  62. homeassistant-stubs/components/deconz/light.pyi +1 -1
  63. homeassistant-stubs/components/demo/fan.pyi +1 -0
  64. homeassistant-stubs/components/dhcp/__init__.pyi +24 -32
  65. homeassistant-stubs/components/dlna_dmr/media_player.pyi +8 -3
  66. homeassistant-stubs/components/dnsip/sensor.pyi +1 -1
  67. homeassistant-stubs/components/dunehd/media_player.pyi +5 -2
  68. homeassistant-stubs/components/ecovacs/binary_sensor.pyi +3 -3
  69. homeassistant-stubs/components/ecovacs/button.pyi +5 -5
  70. homeassistant-stubs/components/ecovacs/controller.pyi +6 -3
  71. homeassistant-stubs/components/ecovacs/entity.pyi +11 -9
  72. homeassistant-stubs/components/ecovacs/image.pyi +2 -2
  73. homeassistant-stubs/components/ecovacs/lawn_mower.pyi +28 -0
  74. homeassistant-stubs/components/ecovacs/number.pyi +3 -3
  75. homeassistant-stubs/components/ecovacs/select.pyi +3 -3
  76. homeassistant-stubs/components/ecovacs/sensor.pyi +6 -6
  77. homeassistant-stubs/components/ecovacs/switch.pyi +4 -4
  78. homeassistant-stubs/components/ecovacs/vacuum.pyi +3 -3
  79. homeassistant-stubs/components/emulated_hue/config.pyi +1 -1
  80. homeassistant-stubs/components/enphase_envoy/sensor.pyi +39 -4
  81. homeassistant-stubs/components/esphome/bluetooth.pyi +1 -1
  82. homeassistant-stubs/components/esphome/camera.pyi +2 -2
  83. homeassistant-stubs/components/esphome/entry_data.pyi +3 -5
  84. homeassistant-stubs/components/esphome/manager.pyi +6 -7
  85. homeassistant-stubs/components/esphome/sensor.pyi +4 -2
  86. homeassistant-stubs/components/esphome/update.pyi +0 -1
  87. homeassistant-stubs/components/esphome/voice_assistant.pyi +1 -1
  88. homeassistant-stubs/components/fastdotcom/sensor.pyi +0 -1
  89. homeassistant-stubs/components/filesize/sensor.pyi +0 -1
  90. homeassistant-stubs/components/flexit_bacnet/climate.pyi +4 -2
  91. homeassistant-stubs/components/flexit_bacnet/number.pyi +31 -0
  92. homeassistant-stubs/components/flux_led/__init__.pyi +2 -2
  93. homeassistant-stubs/components/fritz/common.pyi +2 -1
  94. homeassistant-stubs/components/fully_kiosk/media_player.pyi +2 -1
  95. homeassistant-stubs/components/generic_thermostat/climate.pyi +1 -1
  96. homeassistant-stubs/components/goalzero/__init__.pyi +1 -0
  97. homeassistant-stubs/components/gpsd/sensor.pyi +15 -9
  98. homeassistant-stubs/components/group/__init__.pyi +1 -1
  99. homeassistant-stubs/components/group/light.pyi +3 -3
  100. homeassistant-stubs/components/hardkernel/__init__.pyi +1 -1
  101. homeassistant-stubs/components/hardware/hardware.pyi +2 -2
  102. homeassistant-stubs/components/hardware/websocket_api.pyi +1 -1
  103. homeassistant-stubs/components/homeassistant_green/__init__.pyi +1 -1
  104. homeassistant-stubs/components/homeassistant_sky_connect/__init__.pyi +2 -1
  105. homeassistant-stubs/components/homeassistant_yellow/__init__.pyi +3 -2
  106. homeassistant-stubs/components/homekit/__init__.pyi +1 -1
  107. homeassistant-stubs/components/homekit/accessories.pyi +1 -1
  108. homeassistant-stubs/components/homekit/config_flow.pyi +13 -4
  109. homeassistant-stubs/components/homekit/type_cameras.pyi +1 -1
  110. homeassistant-stubs/components/homekit/type_covers.pyi +1 -1
  111. homeassistant-stubs/components/homekit/type_humidifiers.pyi +1 -1
  112. homeassistant-stubs/components/homekit/type_triggers.pyi +3 -1
  113. homeassistant-stubs/components/homekit_controller/__init__.pyi +1 -0
  114. homeassistant-stubs/components/homekit_controller/alarm_control_panel.pyi +0 -1
  115. homeassistant-stubs/components/homekit_controller/button.pyi +8 -4
  116. homeassistant-stubs/components/homekit_controller/utils.pyi +4 -0
  117. homeassistant-stubs/components/http/__init__.pyi +3 -3
  118. homeassistant-stubs/components/http/auth.pyi +1 -1
  119. homeassistant-stubs/components/http/ban.pyi +0 -1
  120. homeassistant-stubs/components/http/const.pyi +1 -1
  121. homeassistant-stubs/components/http/request_context.pyi +1 -2
  122. homeassistant-stubs/components/http/view.pyi +1 -29
  123. homeassistant-stubs/components/huawei_lte/binary_sensor.pyi +0 -6
  124. homeassistant-stubs/components/huawei_lte/switch.pyi +0 -4
  125. homeassistant-stubs/components/idasen_desk/sensor.pyi +2 -1
  126. homeassistant-stubs/components/image/__init__.pyi +13 -3
  127. homeassistant-stubs/components/image/media_source.pyi +18 -0
  128. homeassistant-stubs/components/imap/coordinator.pyi +8 -0
  129. homeassistant-stubs/components/imap/diagnostics.pyi +13 -0
  130. homeassistant-stubs/components/intent/__init__.pyi +7 -2
  131. homeassistant-stubs/components/islamic_prayer_times/config_flow.pyi +1 -1
  132. homeassistant-stubs/components/knx/config_flow.pyi +1 -1
  133. homeassistant-stubs/components/knx/schema.pyi +3 -18
  134. homeassistant-stubs/components/knx/validation.pyi +19 -0
  135. homeassistant-stubs/components/lamarzocco/calendar.pyi +21 -0
  136. homeassistant-stubs/components/lamarzocco/entity.pyi +7 -4
  137. homeassistant-stubs/components/lamarzocco/number.pyi +26 -1
  138. homeassistant-stubs/components/light/__init__.pyi +3 -0
  139. homeassistant-stubs/components/local_todo/todo.pyi +3 -1
  140. homeassistant-stubs/components/logbook/__init__.pyi +1 -1
  141. homeassistant-stubs/components/logbook/helpers.pyi +2 -2
  142. homeassistant-stubs/components/logbook/models.pyi +2 -2
  143. homeassistant-stubs/components/mailbox/__init__.pyi +1 -0
  144. homeassistant-stubs/components/matter/light.pyi +6 -5
  145. homeassistant-stubs/components/media_player/intent.pyi +11 -0
  146. homeassistant-stubs/components/minecraft_server/__init__.pyi +1 -1
  147. homeassistant-stubs/components/modbus/__init__.pyi +1 -1
  148. homeassistant-stubs/components/modbus/climate.pyi +1 -0
  149. homeassistant-stubs/components/modbus/validators.pyi +4 -4
  150. homeassistant-stubs/components/mqtt/__init__.pyi +3 -3
  151. homeassistant-stubs/components/mqtt/climate.pyi +1 -8
  152. homeassistant-stubs/components/mqtt/const.pyi +2 -0
  153. homeassistant-stubs/components/mqtt/event.pyi +1 -1
  154. homeassistant-stubs/components/mqtt/image.pyi +1 -1
  155. homeassistant-stubs/components/mqtt/mixins.pyi +2 -2
  156. homeassistant-stubs/components/mqtt/models.pyi +10 -0
  157. homeassistant-stubs/components/mqtt/tag.pyi +1 -1
  158. homeassistant-stubs/components/myuplink/__init__.pyi +2 -1
  159. homeassistant-stubs/components/myuplink/binary_sensor.pyi +24 -0
  160. homeassistant-stubs/components/myuplink/config_flow.pyi +7 -0
  161. homeassistant-stubs/components/myuplink/coordinator.pyi +1 -2
  162. homeassistant-stubs/components/myuplink/diagnostics.pyi +11 -0
  163. homeassistant-stubs/components/myuplink/helpers.pyi +6 -0
  164. homeassistant-stubs/components/myuplink/number.pyi +30 -0
  165. homeassistant-stubs/components/myuplink/sensor.pyi +20 -3
  166. homeassistant-stubs/components/myuplink/switch.pyi +29 -0
  167. homeassistant-stubs/components/myuplink/update.pyi +20 -0
  168. homeassistant-stubs/components/notion/__init__.pyi +10 -6
  169. homeassistant-stubs/components/notion/config_flow.pyi +11 -3
  170. homeassistant-stubs/components/notion/const.pyi +2 -0
  171. homeassistant-stubs/components/notion/diagnostics.pyi +2 -2
  172. homeassistant-stubs/components/notion/model.pyi +1 -1
  173. homeassistant-stubs/components/notion/util.pyi +7 -0
  174. homeassistant-stubs/components/overkiz/climate.pyi +1 -1
  175. homeassistant-stubs/components/overkiz/climate_entities/__init__.pyi +8 -0
  176. homeassistant-stubs/components/overkiz/climate_entities/atlantic_pass_apc_heating_zone.pyi +1 -1
  177. homeassistant-stubs/components/overkiz/climate_entities/atlantic_pass_apc_zone_control.pyi +5 -1
  178. homeassistant-stubs/components/overkiz/climate_entities/atlantic_pass_apc_zone_control_zone.pyi +33 -0
  179. homeassistant-stubs/components/overkiz/climate_entities/hitachi_air_to_air_heat_pump_ovp.pyi +61 -0
  180. homeassistant-stubs/components/overkiz/number.pyi +7 -1
  181. homeassistant-stubs/components/proximity/config_flow.pyi +1 -1
  182. homeassistant-stubs/components/rainmachine/util.pyi +1 -1
  183. homeassistant-stubs/components/raspberry_pi/__init__.pyi +1 -1
  184. homeassistant-stubs/components/recorder/__init__.pyi +1 -1
  185. homeassistant-stubs/components/recorder/core.pyi +1 -0
  186. homeassistant-stubs/components/recorder/websocket_api.pyi +1 -5
  187. homeassistant-stubs/components/repairs/issue_handler.pyi +1 -1
  188. homeassistant-stubs/components/rfxtrx/__init__.pyi +3 -1
  189. homeassistant-stubs/components/samsungtv/__init__.pyi +1 -1
  190. homeassistant-stubs/components/samsungtv/config_flow.pyi +1 -0
  191. homeassistant-stubs/components/sensor/recorder.pyi +0 -2
  192. homeassistant-stubs/components/shelly/binary_sensor.pyi +1 -1
  193. homeassistant-stubs/components/shelly/button.pyi +1 -1
  194. homeassistant-stubs/components/shelly/climate.pyi +1 -3
  195. homeassistant-stubs/components/shelly/entity.pyi +1 -2
  196. homeassistant-stubs/components/shelly/number.pyi +1 -1
  197. homeassistant-stubs/components/shelly/sensor.pyi +2 -2
  198. homeassistant-stubs/components/shelly/switch.pyi +4 -5
  199. homeassistant-stubs/components/shelly/utils.pyi +2 -0
  200. homeassistant-stubs/components/shelly/valve.pyi +1 -1
  201. homeassistant-stubs/components/ssdp/__init__.pyi +1 -0
  202. homeassistant-stubs/components/statistics/sensor.pyi +4 -1
  203. homeassistant-stubs/components/steamist/__init__.pyi +1 -1
  204. homeassistant-stubs/components/system_health/__init__.pyi +1 -1
  205. homeassistant-stubs/components/systemmonitor/__init__.pyi +3 -0
  206. homeassistant-stubs/components/systemmonitor/binary_sensor.pyi +48 -0
  207. homeassistant-stubs/components/systemmonitor/config_flow.pyi +2 -0
  208. homeassistant-stubs/components/systemmonitor/const.pyi +1 -0
  209. homeassistant-stubs/components/systemmonitor/coordinator.pyi +14 -10
  210. homeassistant-stubs/components/systemmonitor/diagnostics.pyi +7 -0
  211. homeassistant-stubs/components/systemmonitor/repairs.pyi +15 -0
  212. homeassistant-stubs/components/systemmonitor/sensor.pyi +5 -4
  213. homeassistant-stubs/components/systemmonitor/util.pyi +6 -5
  214. homeassistant-stubs/components/technove/helpers.pyi +9 -0
  215. homeassistant-stubs/components/technove/switch.pyi +33 -0
  216. homeassistant-stubs/components/tedee/config_flow.pyi +1 -0
  217. homeassistant-stubs/components/tedee/sensor.pyi +1 -1
  218. homeassistant-stubs/components/tibber/sensor.pyi +7 -4
  219. homeassistant-stubs/components/tplink/__init__.pyi +1 -1
  220. homeassistant-stubs/components/tplink/config_flow.pyi +2 -2
  221. homeassistant-stubs/components/tplink/light.pyi +1 -0
  222. homeassistant-stubs/components/tplink_omada/binary_sensor.pyi +2 -2
  223. homeassistant-stubs/components/tplink_omada/config_flow.pyi +1 -1
  224. homeassistant-stubs/components/tplink_omada/controller.pyi +1 -1
  225. homeassistant-stubs/components/tplink_omada/coordinator.pyi +1 -1
  226. homeassistant-stubs/components/tplink_omada/update.pyi +1 -1
  227. homeassistant-stubs/components/tractive/device_tracker.pyi +0 -1
  228. homeassistant-stubs/components/unifi/__init__.pyi +1 -1
  229. homeassistant-stubs/components/unifi/button.pyi +1 -1
  230. homeassistant-stubs/components/unifi/config_flow.pyi +2 -2
  231. homeassistant-stubs/components/unifi/device_tracker.pyi +6 -6
  232. homeassistant-stubs/components/unifi/diagnostics.pyi +1 -1
  233. homeassistant-stubs/components/unifi/entity.pyi +13 -13
  234. homeassistant-stubs/components/unifi/hub/__init__.pyi +2 -0
  235. homeassistant-stubs/components/unifi/hub/api.pyi +10 -0
  236. homeassistant-stubs/components/unifi/{controller.pyi → hub/hub.pyi} +9 -19
  237. homeassistant-stubs/components/unifi/hub/websocket.pyi +25 -0
  238. homeassistant-stubs/components/unifi/image.pyi +4 -4
  239. homeassistant-stubs/components/unifi/sensor.pyi +14 -14
  240. homeassistant-stubs/components/unifi/switch.pyi +14 -14
  241. homeassistant-stubs/components/unifi/update.pyi +1 -1
  242. homeassistant-stubs/components/unifiprotect/__init__.pyi +4 -2
  243. homeassistant-stubs/components/unifiprotect/const.pyi +1 -0
  244. homeassistant-stubs/components/unifiprotect/data.pyi +3 -2
  245. homeassistant-stubs/components/unifiprotect/media_source.pyi +6 -3
  246. homeassistant-stubs/components/unifiprotect/migrate.pyi +3 -5
  247. homeassistant-stubs/components/unifiprotect/repairs.pyi +8 -2
  248. homeassistant-stubs/components/usb/__init__.pyi +1 -1
  249. homeassistant-stubs/components/vacuum/intent.pyi +8 -0
  250. homeassistant-stubs/components/vallox/__init__.pyi +5 -23
  251. homeassistant-stubs/components/vallox/fan.pyi +1 -1
  252. homeassistant-stubs/components/wake_word/models.pyi +4 -2
  253. homeassistant-stubs/components/water_heater/__init__.pyi +2 -0
  254. homeassistant-stubs/components/websocket_api/connection.pyi +1 -1
  255. homeassistant-stubs/components/websocket_api/http.pyi +1 -0
  256. homeassistant-stubs/components/wiz/light.pyi +3 -2
  257. homeassistant-stubs/components/xiaomi_ble/const.pyi +9 -0
  258. homeassistant-stubs/components/xiaomi_ble/device_trigger.pyi +1 -1
  259. homeassistant-stubs/components/xiaomi_ble/event.pyi +1 -1
  260. homeassistant-stubs/components/yalexs_ble/__init__.pyi +1 -1
  261. homeassistant-stubs/components/yalexs_ble/config_flow.pyi +1 -1
  262. homeassistant-stubs/components/zwave_js/climate.pyi +4 -0
  263. homeassistant-stubs/components/zwave_js/sensor.pyi +0 -1
  264. homeassistant-stubs/config.pyi +4 -2
  265. homeassistant-stubs/config_entries.pyi +40 -26
  266. homeassistant-stubs/const.pyi +1 -0
  267. homeassistant-stubs/core.pyi +11 -7
  268. homeassistant-stubs/data_entry_flow.pyi +1 -0
  269. homeassistant-stubs/helpers/area_registry.pyi +9 -4
  270. homeassistant-stubs/helpers/collection.pyi +19 -0
  271. homeassistant-stubs/helpers/config_validation.pyi +5 -0
  272. homeassistant-stubs/helpers/data_entry_flow.pyi +2 -1
  273. homeassistant-stubs/helpers/debounce.pyi +3 -1
  274. homeassistant-stubs/helpers/device_registry.pyi +13 -6
  275. homeassistant-stubs/helpers/entity.pyi +4 -2
  276. homeassistant-stubs/helpers/entity_component.pyi +1 -1
  277. homeassistant-stubs/helpers/entity_platform.pyi +7 -3
  278. homeassistant-stubs/helpers/entity_registry.pyi +10 -4
  279. homeassistant-stubs/helpers/event.pyi +28 -2
  280. homeassistant-stubs/helpers/floor_registry.pyi +59 -0
  281. homeassistant-stubs/helpers/frame.pyi +3 -1
  282. homeassistant-stubs/helpers/http.pyi +32 -0
  283. homeassistant-stubs/helpers/icon.pyi +1 -1
  284. homeassistant-stubs/helpers/integration_platform.pyi +12 -8
  285. homeassistant-stubs/helpers/intent.pyi +20 -6
  286. homeassistant-stubs/helpers/json.pyi +1 -0
  287. homeassistant-stubs/helpers/label_registry.pyi +59 -0
  288. homeassistant-stubs/helpers/redact.pyi +13 -0
  289. homeassistant-stubs/helpers/service.pyi +1 -0
  290. homeassistant-stubs/helpers/storage.pyi +7 -3
  291. homeassistant-stubs/helpers/template.pyi +7 -0
  292. homeassistant-stubs/helpers/translation.pyi +18 -4
  293. homeassistant-stubs/helpers/update_coordinator.pyi +1 -0
  294. homeassistant-stubs/loader.pyi +35 -13
  295. homeassistant-stubs/setup.pyi +9 -3
  296. homeassistant-stubs/util/async_.pyi +3 -3
  297. homeassistant-stubs/util/file.pyi +2 -2
  298. homeassistant-stubs/util/yaml/loader.pyi +3 -0
  299. {homeassistant_stubs-2024.2.4.dist-info → homeassistant_stubs-2024.3.0.dist-info}/METADATA +2 -2
  300. {homeassistant_stubs-2024.2.4.dist-info → homeassistant_stubs-2024.3.0.dist-info}/RECORD +302 -264
  301. {homeassistant_stubs-2024.2.4.dist-info → homeassistant_stubs-2024.3.0.dist-info}/LICENSE +0 -0
  302. {homeassistant_stubs-2024.2.4.dist-info → homeassistant_stubs-2024.3.0.dist-info}/WHEEL +0 -0
@@ -1,11 +1,12 @@
1
1
  import abc
2
- import psutil
2
+ import psutil_home_assistant as ha_psutil
3
3
  from _typeshed import Incomplete
4
4
  from abc import abstractmethod
5
5
  from datetime import datetime
6
6
  from homeassistant.core import HomeAssistant as HomeAssistant
7
7
  from homeassistant.helpers.entity_component import DEFAULT_SCAN_INTERVAL as DEFAULT_SCAN_INTERVAL
8
- from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
8
+ from homeassistant.helpers.update_coordinator import TimestampDataUpdateCoordinator as TimestampDataUpdateCoordinator, UpdateFailed as UpdateFailed
9
+ from psutil import Process
9
10
  from psutil._common import sdiskusage, shwtemp, snetio, snicaddr, sswap
10
11
  from typing import NamedTuple, TypeVar
11
12
 
@@ -17,17 +18,18 @@ class VirtualMemory(NamedTuple):
17
18
  percent: float
18
19
  used: float
19
20
  free: float
20
- dataT = TypeVar('dataT', bound=datetime | dict[str, list[shwtemp]] | dict[str, list[snicaddr]] | dict[str, snetio] | float | list[psutil.Process] | sswap | VirtualMemory | tuple[float, float, float] | sdiskusage | None)
21
+ dataT = TypeVar('dataT', bound=datetime | dict[str, list[shwtemp]] | dict[str, list[snicaddr]] | dict[str, snetio] | float | list[Process] | sswap | VirtualMemory | tuple[float, float, float] | sdiskusage | None)
21
22
 
22
- class MonitorCoordinator(DataUpdateCoordinator[dataT], metaclass=abc.ABCMeta):
23
- def __init__(self, hass: HomeAssistant, name: str) -> None: ...
23
+ class MonitorCoordinator(TimestampDataUpdateCoordinator[dataT], metaclass=abc.ABCMeta):
24
+ _psutil: Incomplete
25
+ def __init__(self, hass: HomeAssistant, psutil_wrapper: ha_psutil.PsutilWrapper, name: str) -> None: ...
24
26
  async def _async_update_data(self) -> dataT: ...
25
27
  @abstractmethod
26
28
  def update_data(self) -> dataT: ...
27
29
 
28
30
  class SystemMonitorDiskCoordinator(MonitorCoordinator[sdiskusage]):
29
31
  _argument: Incomplete
30
- def __init__(self, hass: HomeAssistant, name: str, argument: str) -> None: ...
32
+ def __init__(self, hass: HomeAssistant, psutil_wrapper: ha_psutil.PsutilWrapper, name: str, argument: str) -> None: ...
31
33
  def update_data(self) -> sdiskusage: ...
32
34
 
33
35
  class SystemMonitorSwapCoordinator(MonitorCoordinator[sswap]):
@@ -42,17 +44,19 @@ class SystemMonitorNetIOCoordinator(MonitorCoordinator[dict[str, snetio]]):
42
44
  class SystemMonitorNetAddrCoordinator(MonitorCoordinator[dict[str, list[snicaddr]]]):
43
45
  def update_data(self) -> dict[str, list[snicaddr]]: ...
44
46
 
45
- class SystemMonitorLoadCoordinator(MonitorCoordinator[tuple[float, float, float]]):
46
- def update_data(self) -> tuple[float, float, float]: ...
47
+ class SystemMonitorLoadCoordinator(MonitorCoordinator[tuple[float, float, float] | None]):
48
+ def update_data(self) -> tuple[float, float, float] | None: ...
49
+ async def _async_update_data(self) -> tuple[float, float, float] | None: ...
47
50
 
48
51
  class SystemMonitorProcessorCoordinator(MonitorCoordinator[float | None]):
49
52
  def update_data(self) -> float | None: ...
53
+ async def _async_update_data(self) -> float | None: ...
50
54
 
51
55
  class SystemMonitorBootTimeCoordinator(MonitorCoordinator[datetime]):
52
56
  def update_data(self) -> datetime: ...
53
57
 
54
- class SystemMonitorProcessCoordinator(MonitorCoordinator[list[psutil.Process]]):
55
- def update_data(self) -> list[psutil.Process]: ...
58
+ class SystemMonitorProcessCoordinator(MonitorCoordinator[list[Process]]):
59
+ def update_data(self) -> list[Process]: ...
56
60
 
57
61
  class SystemMonitorCPUtempCoordinator(MonitorCoordinator[dict[str, list[shwtemp]]]):
58
62
  def update_data(self) -> dict[str, list[shwtemp]]: ...
@@ -0,0 +1,7 @@
1
+ from .const import DOMAIN_COORDINATORS as DOMAIN_COORDINATORS
2
+ from .coordinator import MonitorCoordinator as MonitorCoordinator
3
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
4
+ from homeassistant.core import HomeAssistant as HomeAssistant
5
+ from typing import Any
6
+
7
+ async def async_get_config_entry_diagnostics(hass: HomeAssistant, entry: ConfigEntry) -> dict[str, Any]: ...
@@ -0,0 +1,15 @@
1
+ from _typeshed import Incomplete
2
+ from homeassistant import data_entry_flow as data_entry_flow
3
+ from homeassistant.components.repairs import ConfirmRepairFlow as ConfirmRepairFlow, RepairsFlow as RepairsFlow
4
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
5
+ from homeassistant.core import HomeAssistant as HomeAssistant
6
+ from typing import Any
7
+
8
+ class ProcessFixFlow(RepairsFlow):
9
+ entry: Incomplete
10
+ _processes: Incomplete
11
+ def __init__(self, entry: ConfigEntry, processes: list[str]) -> None: ...
12
+ async def async_step_init(self, user_input: dict[str, str] | None = None) -> data_entry_flow.FlowResult: ...
13
+ async def async_step_migrate_process_sensor(self, user_input: dict[str, Any] | None = None) -> data_entry_flow.FlowResult: ...
14
+
15
+ async def async_create_fix_flow(hass: HomeAssistant, issue_id: str, data: dict[str, Any] | None) -> RepairsFlow: ...
@@ -1,5 +1,4 @@
1
- import psutil
2
- from .const import CONF_PROCESS as CONF_PROCESS, DOMAIN as DOMAIN, NET_IO_TYPES as NET_IO_TYPES
1
+ from .const import CONF_PROCESS as CONF_PROCESS, DOMAIN as DOMAIN, DOMAIN_COORDINATORS as DOMAIN_COORDINATORS, NET_IO_TYPES as NET_IO_TYPES
3
2
  from .coordinator import MonitorCoordinator as MonitorCoordinator, SystemMonitorBootTimeCoordinator as SystemMonitorBootTimeCoordinator, SystemMonitorCPUtempCoordinator as SystemMonitorCPUtempCoordinator, SystemMonitorDiskCoordinator as SystemMonitorDiskCoordinator, SystemMonitorLoadCoordinator as SystemMonitorLoadCoordinator, SystemMonitorMemoryCoordinator as SystemMonitorMemoryCoordinator, SystemMonitorNetAddrCoordinator as SystemMonitorNetAddrCoordinator, SystemMonitorNetIOCoordinator as SystemMonitorNetIOCoordinator, SystemMonitorProcessCoordinator as SystemMonitorProcessCoordinator, SystemMonitorProcessorCoordinator as SystemMonitorProcessorCoordinator, SystemMonitorSwapCoordinator as SystemMonitorSwapCoordinator, VirtualMemory as VirtualMemory, dataT as dataT
4
3
  from .util import get_all_disk_mounts as get_all_disk_mounts, get_all_network_interfaces as get_all_network_interfaces, read_cpu_temperature as read_cpu_temperature
5
4
  from _typeshed import Incomplete
@@ -9,12 +8,14 @@ from datetime import datetime
9
8
  from homeassistant.components.sensor import PLATFORM_SCHEMA as PLATFORM_SCHEMA, SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
10
9
  from homeassistant.config_entries import ConfigEntry as ConfigEntry, SOURCE_IMPORT as SOURCE_IMPORT
11
10
  from homeassistant.const import CONF_RESOURCES as CONF_RESOURCES, CONF_TYPE as CONF_TYPE, EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE, STATE_OFF as STATE_OFF, STATE_ON as STATE_ON, UnitOfDataRate as UnitOfDataRate, UnitOfInformation as UnitOfInformation, UnitOfTemperature as UnitOfTemperature
12
- from homeassistant.core import HomeAssistant as HomeAssistant
11
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
13
12
  from homeassistant.helpers.device_registry import DeviceEntryType as DeviceEntryType, DeviceInfo as DeviceInfo
14
13
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
14
+ from homeassistant.helpers.issue_registry import IssueSeverity as IssueSeverity, async_create_issue as async_create_issue
15
15
  from homeassistant.helpers.typing import ConfigType as ConfigType, DiscoveryInfoType as DiscoveryInfoType, StateType as StateType
16
16
  from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
17
17
  from homeassistant.util import slugify as slugify
18
+ from psutil import Process
18
19
  from psutil._common import shwtemp, snetio, snicaddr
19
20
  from typing import Any, Generic, Literal
20
21
 
@@ -29,7 +30,7 @@ SIGNAL_SYSTEMMONITOR_UPDATE: str
29
30
 
30
31
  def get_cpu_icon() -> Literal['mdi:cpu-64-bit', 'mdi:cpu-32-bit']: ...
31
32
  def get_processor_temperature(entity: SystemMonitorSensor[dict[str, list[shwtemp]]]) -> float | None: ...
32
- def get_process(entity: SystemMonitorSensor[list[psutil.Process]]) -> str: ...
33
+ def get_process(entity: SystemMonitorSensor[list[Process]]) -> str: ...
33
34
  def get_network(entity: SystemMonitorSensor[dict[str, snetio]]) -> float | None: ...
34
35
  def get_packets(entity: SystemMonitorSensor[dict[str, snetio]]) -> float | None: ...
35
36
  def get_throughput(entity: SystemMonitorSensor[dict[str, snetio]]) -> float | None: ...
@@ -1,11 +1,12 @@
1
- from .const import CPU_SENSOR_PREFIXES as CPU_SENSOR_PREFIXES
1
+ from .const import CPU_SENSOR_PREFIXES as CPU_SENSOR_PREFIXES, DOMAIN as DOMAIN
2
2
  from _typeshed import Incomplete
3
+ from homeassistant.core import HomeAssistant as HomeAssistant
3
4
  from psutil._common import shwtemp as shwtemp
4
5
 
5
6
  _LOGGER: Incomplete
6
7
  SKIP_DISK_TYPES: Incomplete
7
8
 
8
- def get_all_disk_mounts() -> set[str]: ...
9
- def get_all_network_interfaces() -> set[str]: ...
10
- def get_all_running_processes() -> set[str]: ...
11
- def read_cpu_temperature(temps: dict[str, list[shwtemp]] | None = None) -> float | None: ...
9
+ def get_all_disk_mounts(hass: HomeAssistant) -> set[str]: ...
10
+ def get_all_network_interfaces(hass: HomeAssistant) -> set[str]: ...
11
+ def get_all_running_processes(hass: HomeAssistant) -> set[str]: ...
12
+ def read_cpu_temperature(hass: HomeAssistant, temps: dict[str, list[shwtemp]] | None = None) -> float | None: ...
@@ -0,0 +1,9 @@
1
+ from .entity import TechnoVEEntity as TechnoVEEntity
2
+ from collections.abc import Callable as Callable, Coroutine
3
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
4
+ from typing import Any, Concatenate, ParamSpec, TypeVar
5
+
6
+ _TechnoVEEntityT = TypeVar('_TechnoVEEntityT', bound=TechnoVEEntity)
7
+ _P = ParamSpec('_P')
8
+
9
+ def technove_exception_handler(func: Callable[Concatenate[_TechnoVEEntityT, _P], Coroutine[Any, Any, Any]]) -> Callable[Concatenate[_TechnoVEEntityT, _P], Coroutine[Any, Any, None]]: ...
@@ -0,0 +1,33 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from .coordinator import TechnoVEDataUpdateCoordinator as TechnoVEDataUpdateCoordinator
3
+ from .entity import TechnoVEEntity as TechnoVEEntity
4
+ from .helpers import technove_exception_handler as technove_exception_handler
5
+ from _typeshed import Incomplete
6
+ from collections.abc import Awaitable, Callable as Callable
7
+ from dataclasses import dataclass
8
+ from homeassistant.components.switch import SwitchEntity as SwitchEntity, SwitchEntityDescription as SwitchEntityDescription
9
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
10
+ from homeassistant.const import EntityCategory as EntityCategory
11
+ from homeassistant.core import HomeAssistant as HomeAssistant
12
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
13
+ from technove import Station as TechnoVEStation, TechnoVE as TechnoVE
14
+ from typing import Any
15
+
16
+ @dataclass(frozen=True, kw_only=True)
17
+ class TechnoVESwitchDescription(SwitchEntityDescription):
18
+ is_on_fn: Callable[[TechnoVEStation], bool]
19
+ turn_on_fn: Callable[[TechnoVE], Awaitable[dict[str, Any]]]
20
+ turn_off_fn: Callable[[TechnoVE], Awaitable[dict[str, Any]]]
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, is_on_fn, turn_on_fn, turn_off_fn) -> None: ...
22
+
23
+ SWITCHES: Incomplete
24
+
25
+ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
26
+
27
+ class TechnoVESwitchEntity(TechnoVEEntity, SwitchEntity):
28
+ entity_description: TechnoVESwitchDescription
29
+ def __init__(self, coordinator: TechnoVEDataUpdateCoordinator, description: TechnoVESwitchDescription) -> None: ...
30
+ @property
31
+ def is_on(self) -> bool: ...
32
+ async def async_turn_on(self, **kwargs: Any) -> None: ...
33
+ async def async_turn_off(self, **kwargs: Any) -> None: ...
@@ -10,3 +10,4 @@ class TedeeConfigFlow(ConfigFlow, domain=DOMAIN):
10
10
  reauth_entry: ConfigEntry | None
11
11
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> FlowResult: ...
12
12
  async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> FlowResult: ...
13
+ async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> FlowResult: ...
@@ -4,7 +4,7 @@ from collections.abc import Callable as Callable
4
4
  from dataclasses import dataclass
5
5
  from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
6
6
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
- from homeassistant.const import PERCENTAGE as PERCENTAGE, UnitOfTime as UnitOfTime
7
+ from homeassistant.const import EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE, UnitOfTime as UnitOfTime
8
8
  from homeassistant.core import HomeAssistant as HomeAssistant
9
9
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
10
10
  from pytedee_async import TedeeLock as TedeeLock
@@ -21,12 +21,15 @@ ICON: str
21
21
  SCAN_INTERVAL: Incomplete
22
22
  MIN_TIME_BETWEEN_UPDATES: Incomplete
23
23
  PARALLEL_UPDATES: int
24
+ RT_SENSORS_UNIQUE_ID_MIGRATION: Incomplete
25
+ RT_SENSORS_UNIQUE_ID_MIGRATION_SIMPLE: Incomplete
24
26
  RT_SENSORS: tuple[SensorEntityDescription, ...]
25
27
  SENSORS: tuple[SensorEntityDescription, ...]
26
28
 
27
29
  async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
28
30
 
29
31
  class TibberSensor(SensorEntity):
32
+ _attr_has_entity_name: bool
30
33
  _tibber_home: Incomplete
31
34
  _home_name: Incomplete
32
35
  _device_name: Incomplete
@@ -36,13 +39,13 @@ class TibberSensor(SensorEntity):
36
39
  def device_info(self) -> DeviceInfo: ...
37
40
 
38
41
  class TibberSensorElPrice(TibberSensor):
42
+ _attr_state_class: Incomplete
43
+ _attr_translation_key: str
39
44
  _last_updated: Incomplete
40
45
  _spread_load_constant: Incomplete
41
46
  _attr_available: bool
42
47
  _attr_extra_state_attributes: Incomplete
43
48
  _attr_icon: Incomplete
44
- _attr_name: Incomplete
45
- _attr_state_class: Incomplete
46
49
  _attr_unique_id: Incomplete
47
50
  _model: str
48
51
  _device_name: Incomplete
@@ -54,7 +57,6 @@ class TibberSensorElPrice(TibberSensor):
54
57
  class TibberDataSensor(TibberSensor, CoordinatorEntity['TibberDataCoordinator']):
55
58
  entity_description: Incomplete
56
59
  _attr_unique_id: Incomplete
57
- _attr_name: Incomplete
58
60
  _attr_native_unit_of_measurement: Incomplete
59
61
  _device_name: Incomplete
60
62
  def __init__(self, tibber_home: tibber.TibberHome, coordinator: TibberDataCoordinator, entity_description: SensorEntityDescription) -> None: ...
@@ -65,7 +67,6 @@ class TibberSensorRT(TibberSensor, CoordinatorEntity['TibberRtDataCoordinator'])
65
67
  entity_description: Incomplete
66
68
  _model: str
67
69
  _device_name: Incomplete
68
- _attr_name: Incomplete
69
70
  _attr_native_value: Incomplete
70
71
  _attr_unique_id: Incomplete
71
72
  _attr_native_unit_of_measurement: Incomplete
@@ -81,8 +82,10 @@ class TibberRtDataCoordinator(DataUpdateCoordinator):
81
82
  hass: Incomplete
82
83
  _added_sensors: Incomplete
83
84
  _async_remove_device_updates_handler: Incomplete
85
+ entity_registry: Incomplete
84
86
  def __init__(self, async_add_entities: AddEntitiesCallback, tibber_home: tibber.TibberHome, hass: HomeAssistant) -> None: ...
85
87
  def _handle_ha_stop(self, _event: Event) -> None: ...
88
+ def _migrate_unique_id(self, sensor_description: SensorEntityDescription) -> None: ...
86
89
  def _add_sensors(self) -> None: ...
87
90
  def get_live_measurement(self) -> Any: ...
88
91
 
@@ -6,7 +6,7 @@ from aiohttp import ClientSession as ClientSession
6
6
  from homeassistant import config_entries as config_entries
7
7
  from homeassistant.components import network as network
8
8
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
9
- from homeassistant.const import CONF_ALIAS as CONF_ALIAS, CONF_AUTHENTICATION as CONF_AUTHENTICATION, CONF_HOST as CONF_HOST, CONF_MAC as CONF_MAC, CONF_MODEL as CONF_MODEL, CONF_PASSWORD as CONF_PASSWORD, CONF_USERNAME as CONF_USERNAME, EVENT_HOMEASSISTANT_STARTED as EVENT_HOMEASSISTANT_STARTED
9
+ from homeassistant.const import CONF_ALIAS as CONF_ALIAS, CONF_AUTHENTICATION as CONF_AUTHENTICATION, CONF_HOST as CONF_HOST, CONF_MAC as CONF_MAC, CONF_MODEL as CONF_MODEL, CONF_PASSWORD as CONF_PASSWORD, CONF_USERNAME as CONF_USERNAME
10
10
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
11
11
  from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryNotReady as ConfigEntryNotReady
12
12
  from homeassistant.helpers import discovery_flow as discovery_flow
@@ -7,7 +7,7 @@ from homeassistant.components import dhcp as dhcp
7
7
  from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigEntryState as ConfigEntryState, SOURCE_REAUTH as SOURCE_REAUTH
8
8
  from homeassistant.const import CONF_ALIAS as CONF_ALIAS, CONF_DEVICE as CONF_DEVICE, CONF_HOST as CONF_HOST, CONF_MAC as CONF_MAC, CONF_MODEL as CONF_MODEL, CONF_PASSWORD as CONF_PASSWORD, CONF_USERNAME as CONF_USERNAME
9
9
  from homeassistant.core import callback as callback
10
- from homeassistant.data_entry_flow import AbortFlow as AbortFlow, FlowResult as FlowResult
10
+ from homeassistant.data_entry_flow import FlowResult as FlowResult
11
11
  from homeassistant.helpers.typing import DiscoveryInfoType as DiscoveryInfoType
12
12
  from kasa import Credentials, SmartDevice
13
13
  from typing import Any
@@ -23,7 +23,7 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
23
23
  def __init__(self) -> None: ...
24
24
  async def async_step_dhcp(self, discovery_info: dhcp.DhcpServiceInfo) -> FlowResult: ...
25
25
  async def async_step_integration_discovery(self, discovery_info: DiscoveryInfoType) -> FlowResult: ...
26
- def _update_config_if_entry_in_setup_error(self, entry: ConfigEntry, host: str, config: dict) -> None: ...
26
+ def _update_config_if_entry_in_setup_error(self, entry: ConfigEntry, host: str, config: dict) -> FlowResult | None: ...
27
27
  async def _async_handle_discovery(self, host: str, formatted_mac: str, config: dict | None = None) -> FlowResult: ...
28
28
  async def async_step_discovery_auth_confirm(self, user_input: dict[str, Any] | None = None) -> FlowResult: ...
29
29
  def _async_make_placeholders_from_discovery(self) -> dict[str, str]: ...
@@ -31,6 +31,7 @@ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, asyn
31
31
  class TPLinkSmartBulb(CoordinatedTPLinkEntity, LightEntity):
32
32
  _attr_supported_features: Incomplete
33
33
  _attr_name: Incomplete
34
+ _fixed_color_mode: ColorMode | None
34
35
  device: SmartBulb
35
36
  _attr_unique_id: Incomplete
36
37
  _attr_min_color_temp_kelvin: Incomplete
@@ -7,7 +7,7 @@ from homeassistant.components.binary_sensor import BinarySensorDeviceClass as Bi
7
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.entity_platform import AddEntitiesCallback as AddEntitiesCallback
10
- from tplink_omada_client.devices import OmadaDevice as OmadaDevice, OmadaGateway, OmadaGatewayPort as OmadaGatewayPort
10
+ from tplink_omada_client.devices import OmadaDevice as OmadaDevice, OmadaGateway, OmadaGatewayPortStatus as OmadaGatewayPortStatus
11
11
 
12
12
  async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
13
13
  def get_gateway_port_status_sensors(gateway: OmadaGateway, hass: HomeAssistant, coordinator: OmadaGatewayCoordinator) -> Generator[BinarySensorEntity, None, None]: ...
@@ -17,7 +17,7 @@ class GatewayPortBinarySensorConfig:
17
17
  id_suffix: str
18
18
  name_suffix: str
19
19
  device_class: BinarySensorDeviceClass
20
- update_func: Callable[[OmadaGatewayPort], bool]
20
+ update_func: Callable[[OmadaGatewayPortStatus], bool]
21
21
  def __init__(self, port_number, id_suffix, name_suffix, device_class, update_func) -> None: ...
22
22
  def __lt__(self, other): ...
23
23
  def __le__(self, other): ...
@@ -7,7 +7,7 @@ from homeassistant.core import HomeAssistant as HomeAssistant
7
7
  from homeassistant.data_entry_flow import FlowResult as FlowResult
8
8
  from homeassistant.helpers import selector as selector
9
9
  from homeassistant.helpers.aiohttp_client import async_create_clientsession as async_create_clientsession, async_get_clientsession as async_get_clientsession
10
- from tplink_omada_client.omadaclient import OmadaClient, OmadaSite as OmadaSite
10
+ from tplink_omada_client import OmadaClient, OmadaSite as OmadaSite
11
11
  from types import MappingProxyType
12
12
  from typing import Any, NamedTuple
13
13
 
@@ -1,8 +1,8 @@
1
1
  from .coordinator import OmadaCoordinator as OmadaCoordinator
2
2
  from _typeshed import Incomplete
3
3
  from homeassistant.core import HomeAssistant as HomeAssistant
4
+ from tplink_omada_client import OmadaSiteClient as OmadaSiteClient
4
5
  from tplink_omada_client.devices import OmadaGateway, OmadaSwitch as OmadaSwitch, OmadaSwitchPortDetails
5
- from tplink_omada_client.omadasiteclient import OmadaSiteClient as OmadaSiteClient
6
6
 
7
7
  POLL_SWITCH_PORT: int
8
8
  POLL_GATEWAY: int
@@ -1,7 +1,7 @@
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.omadaclient import OmadaSiteClient as OmadaSiteClient
4
+ from tplink_omada_client import OmadaSiteClient as OmadaSiteClient
5
5
  from typing import Generic, TypeVar
6
6
 
7
7
  _LOGGER: Incomplete
@@ -8,8 +8,8 @@ from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
8
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
9
9
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
10
10
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
11
+ from tplink_omada_client import OmadaSiteClient as OmadaSiteClient
11
12
  from tplink_omada_client.devices import OmadaFirmwareUpdate as OmadaFirmwareUpdate, OmadaListDevice as OmadaListDevice
12
- from tplink_omada_client.omadasiteclient import OmadaSiteClient as OmadaSiteClient
13
13
  from typing import Any, NamedTuple
14
14
 
15
15
  POLL_DELAY_IDLE: Incomplete
@@ -12,7 +12,6 @@ from typing import Any
12
12
  async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
13
13
 
14
14
  class TractiveDeviceTracker(TractiveEntity, TrackerEntity):
15
- _attr_icon: str
16
15
  _attr_translation_key: str
17
16
  _battery_level: Incomplete
18
17
  _latitude: Incomplete
@@ -1,6 +1,6 @@
1
1
  from .const import PLATFORMS as PLATFORMS, UNIFI_WIRELESS_CLIENTS as UNIFI_WIRELESS_CLIENTS
2
- from .controller import UniFiController as UniFiController, get_unifi_controller as get_unifi_controller
3
2
  from .errors import AuthenticationRequired as AuthenticationRequired, CannotConnect as CannotConnect
3
+ from .hub import UnifiHub as UnifiHub, get_unifi_api as get_unifi_api
4
4
  from .services import async_setup_services as async_setup_services, async_unload_services as async_unload_services
5
5
  from _typeshed import Incomplete
6
6
  from aiounifi.models.client import Client as Client
@@ -1,6 +1,6 @@
1
1
  import aiounifi
2
- from .controller import UniFiController as UniFiController
3
2
  from .entity import HandlerT as HandlerT, UnifiEntity as UnifiEntity, UnifiEntityDescription as UnifiEntityDescription, async_device_available_fn as async_device_available_fn, async_device_device_info_fn as async_device_device_info_fn
3
+ from .hub import UnifiHub as UnifiHub
4
4
  from aiounifi.interfaces.api_handlers import ItemEvent as ItemEvent
5
5
  from aiounifi.models.api import ApiItemT
6
6
  from collections.abc import Callable as Callable, Coroutine
@@ -1,6 +1,6 @@
1
1
  from .const import CONF_ALLOW_BANDWIDTH_SENSORS as CONF_ALLOW_BANDWIDTH_SENSORS, CONF_ALLOW_UPTIME_SENSORS as CONF_ALLOW_UPTIME_SENSORS, CONF_BLOCK_CLIENT as CONF_BLOCK_CLIENT, CONF_CLIENT_SOURCE as CONF_CLIENT_SOURCE, CONF_DETECTION_TIME as CONF_DETECTION_TIME, CONF_DPI_RESTRICTIONS as CONF_DPI_RESTRICTIONS, CONF_IGNORE_WIRED_BUG as CONF_IGNORE_WIRED_BUG, CONF_SITE_ID as CONF_SITE_ID, CONF_SSID_FILTER as CONF_SSID_FILTER, CONF_TRACK_CLIENTS as CONF_TRACK_CLIENTS, CONF_TRACK_DEVICES as CONF_TRACK_DEVICES, CONF_TRACK_WIRED_CLIENTS as CONF_TRACK_WIRED_CLIENTS, DEFAULT_DPI_RESTRICTIONS as DEFAULT_DPI_RESTRICTIONS, DOMAIN as UNIFI_DOMAIN
2
- from .controller import UniFiController as UniFiController, get_unifi_controller as get_unifi_controller
3
2
  from .errors import AuthenticationRequired as AuthenticationRequired, CannotConnect as CannotConnect
3
+ from .hub import UnifiHub as UnifiHub, get_unifi_api as get_unifi_api
4
4
  from _typeshed import Incomplete
5
5
  from aiounifi.interfaces.sites import Sites as Sites
6
6
  from collections.abc import Mapping
@@ -32,7 +32,7 @@ class UnifiFlowHandler(config_entries.ConfigFlow, domain=UNIFI_DOMAIN):
32
32
  async def async_step_ssdp(self, discovery_info: ssdp.SsdpServiceInfo) -> FlowResult: ...
33
33
 
34
34
  class UnifiOptionsFlowHandler(config_entries.OptionsFlow):
35
- controller: UniFiController
35
+ hub: UnifiHub
36
36
  config_entry: Incomplete
37
37
  options: Incomplete
38
38
  def __init__(self, config_entry: config_entries.ConfigEntry) -> None: ...
@@ -1,6 +1,6 @@
1
1
  import aiounifi
2
- from .controller import UNIFI_DOMAIN as UNIFI_DOMAIN, UniFiController as UniFiController
3
2
  from .entity import HandlerT as HandlerT, UnifiEntity as UnifiEntity, UnifiEntityDescription as UnifiEntityDescription, async_device_available_fn as async_device_available_fn
3
+ from .hub import UnifiHub as UnifiHub
4
4
  from _typeshed import Incomplete
5
5
  from aiounifi.interfaces.api_handlers import ItemEvent
6
6
  from aiounifi.models.api import ApiItemT
@@ -26,15 +26,15 @@ WIRED_DISCONNECTION: Incomplete
26
26
  WIRELESS_CONNECTION: Incomplete
27
27
  WIRELESS_DISCONNECTION: Incomplete
28
28
 
29
- def async_client_allowed_fn(controller: UniFiController, obj_id: str) -> bool: ...
30
- def async_client_is_connected_fn(controller: UniFiController, obj_id: str) -> bool: ...
31
- def async_device_heartbeat_timedelta_fn(controller: UniFiController, obj_id: str) -> timedelta: ...
29
+ def async_client_allowed_fn(hub: UnifiHub, obj_id: str) -> bool: ...
30
+ def async_client_is_connected_fn(hub: UnifiHub, obj_id: str) -> bool: ...
31
+ def async_device_heartbeat_timedelta_fn(hub: UnifiHub, obj_id: str) -> timedelta: ...
32
32
 
33
33
  @dataclass(frozen=True)
34
34
  class UnifiEntityTrackerDescriptionMixin(Generic[HandlerT, ApiItemT]):
35
- heartbeat_timedelta_fn: Callable[[UniFiController, str], timedelta]
35
+ heartbeat_timedelta_fn: Callable[[UnifiHub, str], timedelta]
36
36
  ip_address_fn: Callable[[aiounifi.Controller, str], str | None]
37
- is_connected_fn: Callable[[UniFiController, str], bool]
37
+ is_connected_fn: Callable[[UnifiHub, str], bool]
38
38
  hostname_fn: Callable[[aiounifi.Controller, str], str | None]
39
39
  def __init__(self, heartbeat_timedelta_fn, ip_address_fn, is_connected_fn, hostname_fn) -> None: ...
40
40
 
@@ -1,4 +1,4 @@
1
- from .controller import UniFiController as UniFiController
1
+ from .hub import UnifiHub as UnifiHub
2
2
  from _typeshed import Incomplete
3
3
  from collections.abc import Mapping
4
4
  from homeassistant.components.diagnostics import REDACTED as REDACTED, async_redact_data as async_redact_data
@@ -1,7 +1,7 @@
1
1
  import abc
2
2
  import aiounifi
3
3
  from .const import ATTR_MANUFACTURER as ATTR_MANUFACTURER, DOMAIN as DOMAIN
4
- from .controller import UniFiController as UniFiController
4
+ from .hub import UnifiHub as UnifiHub
5
5
  from _typeshed import Incomplete
6
6
  from abc import abstractmethod
7
7
  from aiounifi.interfaces.api_handlers import APIHandler, CallbackType, ItemEvent, UnsubscribeType
@@ -18,25 +18,25 @@ from typing import Generic, TypeVar
18
18
  HandlerT = TypeVar('HandlerT', bound=APIHandler)
19
19
  SubscriptionT = Callable[[CallbackType, ItemEvent], UnsubscribeType]
20
20
 
21
- def async_device_available_fn(controller: UniFiController, obj_id: str) -> bool: ...
22
- def async_wlan_available_fn(controller: UniFiController, obj_id: str) -> bool: ...
23
- def async_device_device_info_fn(controller: UniFiController, obj_id: str) -> DeviceInfo: ...
24
- def async_wlan_device_info_fn(controller: UniFiController, obj_id: str) -> DeviceInfo: ...
25
- def async_client_device_info_fn(controller: UniFiController, obj_id: str) -> DeviceInfo: ...
21
+ def async_device_available_fn(hub: UnifiHub, obj_id: str) -> bool: ...
22
+ def async_wlan_available_fn(hub: UnifiHub, obj_id: str) -> bool: ...
23
+ def async_device_device_info_fn(hub: UnifiHub, obj_id: str) -> DeviceInfo: ...
24
+ def async_wlan_device_info_fn(hub: UnifiHub, obj_id: str) -> DeviceInfo: ...
25
+ def async_client_device_info_fn(hub: UnifiHub, obj_id: str) -> DeviceInfo: ...
26
26
 
27
27
  @dataclass(frozen=True)
28
28
  class UnifiDescription(Generic[HandlerT, ApiItemT]):
29
- allowed_fn: Callable[[UniFiController, str], bool]
29
+ allowed_fn: Callable[[UnifiHub, str], bool]
30
30
  api_handler_fn: Callable[[aiounifi.Controller], HandlerT]
31
- available_fn: Callable[[UniFiController, str], bool]
32
- device_info_fn: Callable[[UniFiController, str], DeviceInfo | None]
31
+ available_fn: Callable[[UnifiHub, str], bool]
32
+ device_info_fn: Callable[[UnifiHub, str], DeviceInfo | None]
33
33
  event_is_on: tuple[EventKey, ...] | None
34
34
  event_to_subscribe: tuple[EventKey, ...] | None
35
35
  name_fn: Callable[[ApiItemT], str | None]
36
36
  object_fn: Callable[[aiounifi.Controller, str], ApiItemT]
37
37
  should_poll: bool
38
- supported_fn: Callable[[UniFiController, str], bool | None]
39
- unique_id_fn: Callable[[UniFiController, str], str]
38
+ supported_fn: Callable[[UnifiHub, str], bool | None]
39
+ unique_id_fn: Callable[[UnifiHub, str], str]
40
40
  def __init__(self, allowed_fn, api_handler_fn, available_fn, device_info_fn, event_is_on, event_to_subscribe, name_fn, object_fn, should_poll, supported_fn, unique_id_fn) -> None: ...
41
41
 
42
42
  @dataclass(frozen=True)
@@ -47,13 +47,13 @@ class UnifiEntity(Entity, Generic[HandlerT, ApiItemT], metaclass=abc.ABCMeta):
47
47
  entity_description: UnifiEntityDescription[HandlerT, ApiItemT]
48
48
  _attr_unique_id: str
49
49
  _obj_id: Incomplete
50
- controller: Incomplete
50
+ hub: Incomplete
51
51
  _removed: bool
52
52
  _attr_available: Incomplete
53
53
  _attr_device_info: Incomplete
54
54
  _attr_should_poll: Incomplete
55
55
  _attr_name: Incomplete
56
- def __init__(self, obj_id: str, controller: UniFiController, description: UnifiEntityDescription[HandlerT, ApiItemT]) -> None: ...
56
+ def __init__(self, obj_id: str, hub: UnifiHub, description: UnifiEntityDescription[HandlerT, ApiItemT]) -> None: ...
57
57
  async def async_added_to_hass(self) -> None: ...
58
58
  def async_signalling_callback(self, event: ItemEvent, obj_id: str) -> None: ...
59
59
  def async_signal_reachable_callback(self) -> None: ...
@@ -0,0 +1,2 @@
1
+ from .api import get_unifi_api as get_unifi_api
2
+ from .hub import UnifiHub as UnifiHub
@@ -0,0 +1,10 @@
1
+ import aiounifi
2
+ from ..const import CONF_SITE_ID as CONF_SITE_ID, LOGGER as LOGGER
3
+ from ..errors import AuthenticationRequired as AuthenticationRequired, CannotConnect as CannotConnect
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
5
+ from homeassistant.core import HomeAssistant as HomeAssistant
6
+ from homeassistant.helpers import aiohttp_client as aiohttp_client
7
+ from types import MappingProxyType
8
+ from typing import Any
9
+
10
+ async def get_unifi_api(hass: HomeAssistant, config: MappingProxyType[str, Any]) -> aiounifi.Controller: ...
@@ -1,32 +1,25 @@
1
1
  import aiounifi
2
- from .const import ATTR_MANUFACTURER as ATTR_MANUFACTURER, CONF_ALLOW_BANDWIDTH_SENSORS as CONF_ALLOW_BANDWIDTH_SENSORS, CONF_ALLOW_UPTIME_SENSORS as CONF_ALLOW_UPTIME_SENSORS, CONF_BLOCK_CLIENT as CONF_BLOCK_CLIENT, CONF_CLIENT_SOURCE as CONF_CLIENT_SOURCE, CONF_DETECTION_TIME as CONF_DETECTION_TIME, CONF_DPI_RESTRICTIONS as CONF_DPI_RESTRICTIONS, CONF_IGNORE_WIRED_BUG as CONF_IGNORE_WIRED_BUG, CONF_SITE_ID as CONF_SITE_ID, CONF_SSID_FILTER as CONF_SSID_FILTER, CONF_TRACK_CLIENTS as CONF_TRACK_CLIENTS, CONF_TRACK_DEVICES as CONF_TRACK_DEVICES, CONF_TRACK_WIRED_CLIENTS as CONF_TRACK_WIRED_CLIENTS, DEFAULT_ALLOW_BANDWIDTH_SENSORS as DEFAULT_ALLOW_BANDWIDTH_SENSORS, DEFAULT_ALLOW_UPTIME_SENSORS as DEFAULT_ALLOW_UPTIME_SENSORS, DEFAULT_DETECTION_TIME as DEFAULT_DETECTION_TIME, DEFAULT_DPI_RESTRICTIONS as DEFAULT_DPI_RESTRICTIONS, DEFAULT_IGNORE_WIRED_BUG as DEFAULT_IGNORE_WIRED_BUG, DEFAULT_TRACK_CLIENTS as DEFAULT_TRACK_CLIENTS, DEFAULT_TRACK_DEVICES as DEFAULT_TRACK_DEVICES, DEFAULT_TRACK_WIRED_CLIENTS as DEFAULT_TRACK_WIRED_CLIENTS, LOGGER as LOGGER, PLATFORMS as PLATFORMS, UNIFI_WIRELESS_CLIENTS as UNIFI_WIRELESS_CLIENTS
3
- from .entity import UnifiEntity as UnifiEntity, UnifiEntityDescription as UnifiEntityDescription
4
- from .errors import AuthenticationRequired as AuthenticationRequired, CannotConnect as CannotConnect
2
+ from ..const import ATTR_MANUFACTURER as ATTR_MANUFACTURER, CONF_ALLOW_BANDWIDTH_SENSORS as CONF_ALLOW_BANDWIDTH_SENSORS, CONF_ALLOW_UPTIME_SENSORS as CONF_ALLOW_UPTIME_SENSORS, CONF_BLOCK_CLIENT as CONF_BLOCK_CLIENT, CONF_CLIENT_SOURCE as CONF_CLIENT_SOURCE, CONF_DETECTION_TIME as CONF_DETECTION_TIME, CONF_DPI_RESTRICTIONS as CONF_DPI_RESTRICTIONS, CONF_IGNORE_WIRED_BUG as CONF_IGNORE_WIRED_BUG, CONF_SITE_ID as CONF_SITE_ID, CONF_SSID_FILTER as CONF_SSID_FILTER, CONF_TRACK_CLIENTS as CONF_TRACK_CLIENTS, CONF_TRACK_DEVICES as CONF_TRACK_DEVICES, CONF_TRACK_WIRED_CLIENTS as CONF_TRACK_WIRED_CLIENTS, DEFAULT_ALLOW_BANDWIDTH_SENSORS as DEFAULT_ALLOW_BANDWIDTH_SENSORS, DEFAULT_ALLOW_UPTIME_SENSORS as DEFAULT_ALLOW_UPTIME_SENSORS, DEFAULT_DETECTION_TIME as DEFAULT_DETECTION_TIME, DEFAULT_DPI_RESTRICTIONS as DEFAULT_DPI_RESTRICTIONS, DEFAULT_IGNORE_WIRED_BUG as DEFAULT_IGNORE_WIRED_BUG, DEFAULT_TRACK_CLIENTS as DEFAULT_TRACK_CLIENTS, DEFAULT_TRACK_DEVICES as DEFAULT_TRACK_DEVICES, DEFAULT_TRACK_WIRED_CLIENTS as DEFAULT_TRACK_WIRED_CLIENTS, PLATFORMS as PLATFORMS, UNIFI_WIRELESS_CLIENTS as UNIFI_WIRELESS_CLIENTS
3
+ from ..entity import UnifiEntity as UnifiEntity, UnifiEntityDescription as UnifiEntityDescription
4
+ from .websocket import UnifiWebsocket as UnifiWebsocket
5
5
  from _typeshed import Incomplete
6
6
  from datetime import datetime
7
7
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
- 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, Platform as Platform
8
+ from homeassistant.const import CONF_HOST as CONF_HOST, Platform as Platform
9
9
  from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, Event as Event, HomeAssistant as HomeAssistant, callback as callback
10
- from homeassistant.helpers import aiohttp_client as aiohttp_client
11
10
  from homeassistant.helpers.device_registry import DeviceEntry as DeviceEntry, DeviceEntryType as DeviceEntryType, DeviceInfo as DeviceInfo
12
11
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect, async_dispatcher_send as async_dispatcher_send
13
12
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
14
13
  from homeassistant.helpers.entity_registry import async_entries_for_config_entry as async_entries_for_config_entry
15
14
  from homeassistant.helpers.event import async_call_later as async_call_later, async_track_time_interval as async_track_time_interval
16
- from types import MappingProxyType
17
- from typing import Any
18
15
 
19
- RETRY_TIMER: int
20
16
  CHECK_HEARTBEAT_INTERVAL: Incomplete
21
- CHECK_WEBSOCKET_INTERVAL: Incomplete
22
17
 
23
- class UniFiController:
18
+ class UnifiHub:
24
19
  hass: Incomplete
25
20
  config_entry: Incomplete
26
21
  api: Incomplete
27
- ws_task: Incomplete
28
- _cancel_websocket_check: Incomplete
29
- available: bool
22
+ websocket: Incomplete
30
23
  wireless_clients: Incomplete
31
24
  site: Incomplete
32
25
  is_admin: bool
@@ -51,8 +44,11 @@ class UniFiController:
51
44
  def load_config_entry_options(self) -> None: ...
52
45
  @property
53
46
  def host(self) -> str: ...
47
+ @property
48
+ def available(self) -> bool: ...
54
49
  @staticmethod
55
50
  def register_platform(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddEntitiesCallback, entity_class: type[UnifiEntity], descriptions: tuple[UnifiEntityDescription, ...], requires_admin: bool = False) -> None: ...
51
+ def _async_should_add_entity(self, description: UnifiEntityDescription, obj_id: str) -> bool: ...
56
52
  def register_platform_add_entities(self, unifi_platform_entity: type[UnifiEntity], descriptions: tuple[UnifiEntityDescription, ...], async_add_entities: AddEntitiesCallback) -> None: ...
57
53
  @property
58
54
  def signal_reachable(self) -> str: ...
@@ -69,11 +65,5 @@ class UniFiController:
69
65
  def async_update_device_registry(self) -> DeviceEntry: ...
70
66
  @staticmethod
71
67
  async def async_config_entry_updated(hass: HomeAssistant, config_entry: ConfigEntry) -> None: ...
72
- def start_websocket(self) -> None: ...
73
- def reconnect(self, log: bool = False) -> None: ...
74
- async def async_reconnect(self) -> None: ...
75
- def _async_watch_websocket(self, now: datetime) -> None: ...
76
68
  def shutdown(self, event: Event) -> None: ...
77
69
  async def async_reset(self) -> bool: ...
78
-
79
- async def get_unifi_controller(hass: HomeAssistant, config: MappingProxyType[str, Any]) -> aiounifi.Controller: ...
@@ -0,0 +1,25 @@
1
+ import aiounifi
2
+ from ..const import LOGGER as LOGGER
3
+ from _typeshed import Incomplete
4
+ from datetime import datetime
5
+ from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, HomeAssistant as HomeAssistant, callback as callback
6
+ from homeassistant.helpers.dispatcher import async_dispatcher_send as async_dispatcher_send
7
+ from homeassistant.helpers.event import async_track_time_interval as async_track_time_interval
8
+
9
+ RETRY_TIMER: int
10
+ CHECK_WEBSOCKET_INTERVAL: Incomplete
11
+
12
+ class UnifiWebsocket:
13
+ hass: Incomplete
14
+ api: Incomplete
15
+ signal: Incomplete
16
+ ws_task: Incomplete
17
+ _cancel_websocket_check: Incomplete
18
+ available: bool
19
+ def __init__(self, hass: HomeAssistant, api: aiounifi.Controller, signal: str) -> None: ...
20
+ def start(self) -> None: ...
21
+ def stop(self) -> None: ...
22
+ async def stop_and_wait(self) -> None: ...
23
+ def start_websocket(self) -> None: ...
24
+ def reconnect(self, log: bool = False) -> None: ...
25
+ def _async_watch_websocket(self, now: datetime) -> None: ...