homeassistant-stubs 2023.3.6__py3-none-any.whl → 2023.4.0b1__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 (333) hide show
  1. homeassistant-stubs/auth/__init__.pyi +1 -1
  2. homeassistant-stubs/auth/jwt_wrapper.pyi +14 -0
  3. homeassistant-stubs/auth/permissions/models.pyi +3 -3
  4. homeassistant-stubs/bootstrap.pyi +1 -1
  5. homeassistant-stubs/components/aladdin_connect/config_flow.pyi +0 -2
  6. homeassistant-stubs/components/aladdin_connect/cover.pyi +5 -7
  7. homeassistant-stubs/components/alarm_control_panel/device_action.pyi +0 -1
  8. homeassistant-stubs/components/alarm_control_panel/device_condition.pyi +1 -1
  9. homeassistant-stubs/components/alarm_control_panel/device_trigger.pyi +0 -1
  10. homeassistant-stubs/components/amazon_polly/tts.pyi +2 -2
  11. homeassistant-stubs/components/amcrest/camera.pyi +0 -1
  12. homeassistant-stubs/components/awair/sensor.pyi +2 -1
  13. homeassistant-stubs/components/backup/manager.pyi +2 -1
  14. homeassistant-stubs/components/bayesian/issues.pyi +0 -1
  15. homeassistant-stubs/components/bluetooth/wrappers.pyi +1 -0
  16. homeassistant-stubs/components/bmw_connected_drive/config_flow.pyi +3 -0
  17. homeassistant-stubs/components/bmw_connected_drive/coordinator.pyi +1 -0
  18. homeassistant-stubs/components/braviatv/media_player.pyi +2 -2
  19. homeassistant-stubs/components/button/device_action.pyi +0 -1
  20. homeassistant-stubs/components/button/device_trigger.pyi +0 -1
  21. homeassistant-stubs/components/calendar/__init__.pyi +8 -4
  22. homeassistant-stubs/components/calendar/const.pyi +2 -2
  23. homeassistant-stubs/components/calendar/trigger.pyi +25 -8
  24. homeassistant-stubs/components/camera/__init__.pyi +1 -1
  25. homeassistant-stubs/components/cover/device_action.pyi +0 -1
  26. homeassistant-stubs/components/cover/device_condition.pyi +1 -1
  27. homeassistant-stubs/components/cover/device_trigger.pyi +0 -1
  28. homeassistant-stubs/components/demo/sensor.pyi +2 -1
  29. homeassistant-stubs/components/demo/stt.pyi +2 -2
  30. homeassistant-stubs/components/device_automation/condition.pyi +2 -4
  31. homeassistant-stubs/components/device_tracker/device_condition.pyi +1 -1
  32. homeassistant-stubs/components/device_tracker/device_trigger.pyi +0 -1
  33. homeassistant-stubs/components/devolo_home_network/device_tracker.pyi +0 -1
  34. homeassistant-stubs/components/devolo_home_network/entity.pyi +1 -0
  35. homeassistant-stubs/components/dlna_dmr/config_flow.pyi +0 -1
  36. homeassistant-stubs/components/dlna_dmr/media_player.pyi +1 -2
  37. homeassistant-stubs/components/dormakaba_dkey/__init__.pyi +1 -1
  38. homeassistant-stubs/components/dormakaba_dkey/config_flow.pyi +5 -1
  39. homeassistant-stubs/components/efergy/sensor.pyi +2 -2
  40. homeassistant-stubs/components/emulated_hue/hue_api.pyi +1 -0
  41. homeassistant-stubs/components/energy/types.pyi +2 -2
  42. homeassistant-stubs/components/energy/websocket_api.pyi +1 -0
  43. homeassistant-stubs/components/esphome/bluetooth/client.pyi +3 -1
  44. homeassistant-stubs/components/esphome/entry_data.pyi +1 -0
  45. homeassistant-stubs/components/esphome/media_player.pyi +1 -1
  46. homeassistant-stubs/components/fan/device_condition.pyi +1 -1
  47. homeassistant-stubs/components/filesize/__init__.pyi +1 -2
  48. homeassistant-stubs/components/fitbit/sensor.pyi +1 -1
  49. homeassistant-stubs/components/fritz/binary_sensor.pyi +7 -11
  50. homeassistant-stubs/components/fritz/common.pyi +25 -3
  51. homeassistant-stubs/components/fritz/sensor.pyi +6 -15
  52. homeassistant-stubs/components/fritzbox/sensor.pyi +0 -1
  53. homeassistant-stubs/components/fronius/coordinator.pyi +2 -3
  54. homeassistant-stubs/components/fronius/sensor.pyi +13 -8
  55. homeassistant-stubs/components/fully_kiosk/media_player.pyi +3 -3
  56. homeassistant-stubs/components/fully_kiosk/sensor.pyi +3 -3
  57. homeassistant-stubs/components/gios/__init__.pyi +3 -3
  58. homeassistant-stubs/components/gios/const.pyi +0 -2
  59. homeassistant-stubs/components/gios/sensor.pyi +10 -13
  60. homeassistant-stubs/components/google/__init__.pyi +1 -1
  61. homeassistant-stubs/components/google/calendar.pyi +1 -1
  62. homeassistant-stubs/components/google/const.pyi +1 -0
  63. homeassistant-stubs/components/group/media_player.pyi +4 -3
  64. homeassistant-stubs/components/group/notify.pyi +1 -1
  65. homeassistant-stubs/components/group/sensor.pyi +2 -0
  66. homeassistant-stubs/components/guardian/util.pyi +0 -1
  67. homeassistant-stubs/components/history/websocket_api.pyi +2 -1
  68. homeassistant-stubs/components/homeassistant_alerts/__init__.pyi +4 -2
  69. homeassistant-stubs/components/homeassistant_hardware/silabs_multiprotocol_addon.pyi +7 -2
  70. homeassistant-stubs/components/homeassistant_sky_connect/__init__.pyi +2 -8
  71. homeassistant-stubs/components/homeassistant_yellow/__init__.pyi +3 -7
  72. homeassistant-stubs/components/homekit/__init__.pyi +6 -6
  73. homeassistant-stubs/components/homekit/config_flow.pyi +2 -2
  74. homeassistant-stubs/components/homekit/type_triggers.pyi +0 -1
  75. homeassistant-stubs/components/http/__init__.pyi +18 -1
  76. homeassistant-stubs/components/http/auth.pyi +1 -0
  77. homeassistant-stubs/components/http/security_filter.pyi +1 -0
  78. homeassistant-stubs/components/huawei_lte/__init__.pyi +1 -1
  79. homeassistant-stubs/components/huawei_lte/device_tracker.pyi +0 -1
  80. homeassistant-stubs/components/isy994/lock.pyi +8 -3
  81. homeassistant-stubs/components/isy994/services.pyi +6 -0
  82. homeassistant-stubs/components/jellyfin/coordinator.pyi +4 -2
  83. homeassistant-stubs/components/jellyfin/media_player.pyi +3 -3
  84. homeassistant-stubs/components/knx/__init__.pyi +3 -2
  85. homeassistant-stubs/components/knx/device.pyi +18 -0
  86. homeassistant-stubs/components/knx/light.pyi +2 -2
  87. homeassistant-stubs/components/knx/sensor.pyi +33 -2
  88. homeassistant-stubs/components/kraken/sensor.pyi +0 -1
  89. homeassistant-stubs/components/lametric/__init__.pyi +1 -2
  90. homeassistant-stubs/components/lidarr/const.pyi +0 -2
  91. homeassistant-stubs/components/lifx/__init__.pyi +2 -2
  92. homeassistant-stubs/components/light/intent.pyi +1 -1
  93. homeassistant-stubs/components/litejet/__init__.pyi +14 -0
  94. homeassistant-stubs/components/litejet/config_flow.pyi +18 -0
  95. homeassistant-stubs/components/litejet/const.pyi +8 -0
  96. homeassistant-stubs/components/litejet/diagnostics.pyi +7 -0
  97. homeassistant-stubs/components/litejet/light.pyi +39 -0
  98. homeassistant-stubs/components/litejet/scene.pyi +32 -0
  99. homeassistant-stubs/components/litejet/switch.pyi +37 -0
  100. homeassistant-stubs/components/litejet/trigger.pyi +16 -0
  101. homeassistant-stubs/components/litterrobot/select.pyi +11 -6
  102. homeassistant-stubs/components/lock/device_action.pyi +0 -1
  103. homeassistant-stubs/components/lock/device_condition.pyi +1 -1
  104. homeassistant-stubs/components/lock/device_trigger.pyi +0 -1
  105. homeassistant-stubs/components/logbook/__init__.pyi +3 -3
  106. homeassistant-stubs/components/logbook/const.pyi +0 -2
  107. homeassistant-stubs/components/logbook/helpers.pyi +1 -1
  108. homeassistant-stubs/components/logbook/models.pyi +25 -7
  109. homeassistant-stubs/components/logbook/processor.pyi +8 -7
  110. homeassistant-stubs/components/logbook/queries/__init__.pyi +3 -1
  111. homeassistant-stubs/components/logbook/queries/all.pyi +4 -4
  112. homeassistant-stubs/components/logbook/queries/common.pyi +2 -2
  113. homeassistant-stubs/components/logbook/queries/devices.pyi +1 -1
  114. homeassistant-stubs/components/logbook/queries/entities.pyi +6 -6
  115. homeassistant-stubs/components/logbook/queries/entities_and_devices.pyi +5 -5
  116. homeassistant-stubs/components/logbook/websocket_api.pyi +2 -2
  117. homeassistant-stubs/components/logger/helpers.pyi +1 -1
  118. homeassistant-stubs/components/logger/websocket_api.pyi +1 -1
  119. homeassistant-stubs/components/matter/binary_sensor.pyi +5 -1
  120. homeassistant-stubs/components/matter/entity.pyi +5 -1
  121. homeassistant-stubs/components/matter/lock.pyi +44 -0
  122. homeassistant-stubs/components/matter/models.pyi +2 -9
  123. homeassistant-stubs/components/matter/sensor.pyi +5 -1
  124. homeassistant-stubs/components/media_player/__init__.pyi +2 -2
  125. homeassistant-stubs/components/media_player/device_condition.pyi +1 -1
  126. homeassistant-stubs/components/media_player/device_trigger.pyi +0 -1
  127. homeassistant-stubs/components/metoffice/__init__.pyi +0 -2
  128. homeassistant-stubs/components/metoffice/sensor.pyi +2 -1
  129. homeassistant-stubs/components/mikrotik/const.pyi +2 -0
  130. homeassistant-stubs/components/mikrotik/device_tracker.pyi +0 -1
  131. homeassistant-stubs/components/mikrotik/hub.pyi +2 -1
  132. homeassistant-stubs/components/modbus/__init__.pyi +1 -1
  133. homeassistant-stubs/components/modbus/climate.pyi +3 -1
  134. homeassistant-stubs/components/modbus/const.pyi +1 -0
  135. homeassistant-stubs/components/modbus/modbus.pyi +1 -1
  136. homeassistant-stubs/components/modem_callerid/button.pyi +2 -2
  137. homeassistant-stubs/components/modem_callerid/sensor.pyi +2 -2
  138. homeassistant-stubs/components/moon/config_flow.pyi +0 -2
  139. homeassistant-stubs/components/moon/sensor.pyi +2 -7
  140. homeassistant-stubs/components/mqtt/__init__.pyi +5 -7
  141. homeassistant-stubs/components/mqtt/client.pyi +24 -2
  142. homeassistant-stubs/components/mqtt/config_integration.pyi +1 -1
  143. homeassistant-stubs/components/mqtt/const.pyi +0 -1
  144. homeassistant-stubs/components/mqtt/models.pyi +2 -1
  145. homeassistant-stubs/components/mysensors/__init__.pyi +4 -9
  146. homeassistant-stubs/components/mysensors/const.pyi +1 -3
  147. homeassistant-stubs/components/mysensors/device.pyi +1 -1
  148. homeassistant-stubs/components/mysensors/light.pyi +1 -1
  149. homeassistant-stubs/components/mysensors/switch.pyi +6 -20
  150. homeassistant-stubs/components/nam/__init__.pyi +0 -2
  151. homeassistant-stubs/components/nam/sensor.pyi +0 -1
  152. homeassistant-stubs/components/netatmo/device_trigger.pyi +0 -1
  153. homeassistant-stubs/components/nissan_leaf/sensor.pyi +2 -3
  154. homeassistant-stubs/components/notify/legacy.pyi +2 -2
  155. homeassistant-stubs/components/number/const.pyi +2 -0
  156. homeassistant-stubs/components/number/device_action.pyi +0 -1
  157. homeassistant-stubs/components/otbr/__init__.pyi +3 -0
  158. homeassistant-stubs/components/otbr/config_flow.pyi +3 -2
  159. homeassistant-stubs/components/otbr/util.pyi +6 -0
  160. homeassistant-stubs/components/otbr/websocket_api.pyi +7 -3
  161. homeassistant-stubs/components/overkiz/climate_entities/__init__.pyi +1 -0
  162. homeassistant-stubs/components/overkiz/climate_entities/atlantic_electrical_heater.pyi +2 -0
  163. homeassistant-stubs/components/overkiz/climate_entities/atlantic_electrical_heater_with_adjustable_temperature_setpoint.pyi +2 -0
  164. homeassistant-stubs/components/overkiz/climate_entities/atlantic_electrical_towel_dryer.pyi +2 -0
  165. homeassistant-stubs/components/overkiz/climate_entities/atlantic_heat_recovery_ventilation.pyi +2 -0
  166. homeassistant-stubs/components/overkiz/climate_entities/atlantic_pass_apc_heating_zone.pyi +2 -0
  167. homeassistant-stubs/components/overkiz/climate_entities/somfy_thermostat.pyi +2 -2
  168. homeassistant-stubs/components/overkiz/climate_entities/valve_heating_temperature_interface.pyi +37 -0
  169. homeassistant-stubs/components/overkiz/const.pyi +2 -1
  170. homeassistant-stubs/components/overkiz/sensor.pyi +3 -1
  171. homeassistant-stubs/components/overkiz/switch.pyi +2 -2
  172. homeassistant-stubs/components/pi_hole/sensor.pyi +2 -2
  173. homeassistant-stubs/components/rainmachine/util.pyi +0 -1
  174. homeassistant-stubs/components/recorder/__init__.pyi +3 -3
  175. homeassistant-stubs/components/recorder/auto_repairs/__init__.pyi +0 -0
  176. homeassistant-stubs/components/recorder/auto_repairs/events/__init__.pyi +0 -0
  177. homeassistant-stubs/components/recorder/auto_repairs/events/schema.pyi +6 -0
  178. homeassistant-stubs/components/recorder/auto_repairs/schema.pyi +23 -0
  179. homeassistant-stubs/components/recorder/auto_repairs/states/schema.pyi +9 -0
  180. homeassistant-stubs/components/recorder/auto_repairs/statistics/__init__.pyi +0 -0
  181. homeassistant-stubs/components/recorder/auto_repairs/statistics/duplicates.pyi +19 -0
  182. homeassistant-stubs/components/recorder/auto_repairs/statistics/schema.pyi +9 -0
  183. homeassistant-stubs/components/recorder/const.pyi +10 -0
  184. homeassistant-stubs/components/recorder/core.pyi +33 -29
  185. homeassistant-stubs/components/recorder/db_schema.pyi +36 -6
  186. homeassistant-stubs/components/recorder/entity_registry.pyi +10 -0
  187. homeassistant-stubs/components/recorder/filters.pyi +13 -11
  188. homeassistant-stubs/components/recorder/history/__init__.pyi +13 -0
  189. homeassistant-stubs/components/recorder/history/common.pyi +4 -0
  190. homeassistant-stubs/components/recorder/history/const.pyi +9 -0
  191. homeassistant-stubs/components/recorder/{history.pyi → history/legacy.pyi} +9 -14
  192. homeassistant-stubs/components/recorder/history/modern.pyi +41 -0
  193. homeassistant-stubs/components/recorder/migration.pyi +34 -6
  194. homeassistant-stubs/components/recorder/models/__init__.pyi +5 -0
  195. homeassistant-stubs/components/recorder/models/context.pyi +6 -0
  196. homeassistant-stubs/components/recorder/models/database.pyi +14 -0
  197. homeassistant-stubs/components/recorder/models/legacy.pyi +39 -0
  198. homeassistant-stubs/components/recorder/models/state.pyi +43 -0
  199. homeassistant-stubs/components/recorder/models/state_attributes.pyi +9 -0
  200. homeassistant-stubs/components/recorder/models/statistics.pyi +50 -0
  201. homeassistant-stubs/components/recorder/models/time.pyi +20 -0
  202. homeassistant-stubs/components/recorder/purge.pyi +9 -12
  203. homeassistant-stubs/components/recorder/queries.pyi +19 -3
  204. homeassistant-stubs/components/recorder/services.pyi +1 -1
  205. homeassistant-stubs/components/recorder/statistics.pyi +40 -42
  206. homeassistant-stubs/components/recorder/table_managers/__init__.pyi +20 -0
  207. homeassistant-stubs/components/recorder/table_managers/event_data.pyi +26 -0
  208. homeassistant-stubs/components/recorder/table_managers/event_types.pyi +20 -0
  209. homeassistant-stubs/components/recorder/{run_history.pyi → table_managers/recorder_runs.pyi} +3 -3
  210. homeassistant-stubs/components/recorder/table_managers/state_attributes.pyi +29 -0
  211. homeassistant-stubs/components/recorder/table_managers/states.pyi +14 -0
  212. homeassistant-stubs/components/recorder/table_managers/states_meta.pyi +23 -0
  213. homeassistant-stubs/components/recorder/table_managers/statistics_meta.pyi +35 -0
  214. homeassistant-stubs/components/recorder/tasks.pyi +39 -4
  215. homeassistant-stubs/components/recorder/util.pyi +2 -1
  216. homeassistant-stubs/components/recorder/websocket_api.pyi +2 -2
  217. homeassistant-stubs/components/renault/renault_vehicle.pyi +1 -0
  218. homeassistant-stubs/components/rest/__init__.pyi +1 -1
  219. homeassistant-stubs/components/rest/const.pyi +2 -0
  220. homeassistant-stubs/components/rest/data.pyi +3 -2
  221. homeassistant-stubs/components/rest/schema.pyi +1 -1
  222. homeassistant-stubs/components/ridwell/calendar.pyi +22 -0
  223. homeassistant-stubs/components/ridwell/coordinator.pyi +2 -2
  224. homeassistant-stubs/components/ridwell/entity.pyi +2 -4
  225. homeassistant-stubs/components/ridwell/sensor.pyi +2 -1
  226. homeassistant-stubs/components/ridwell/switch.pyi +4 -0
  227. homeassistant-stubs/components/roku/media_player.pyi +4 -4
  228. homeassistant-stubs/components/samsungtv/device_trigger.pyi +19 -0
  229. homeassistant-stubs/components/samsungtv/helpers.pyi +8 -0
  230. homeassistant-stubs/components/samsungtv/media_player.pyi +7 -2
  231. homeassistant-stubs/components/samsungtv/trigger.pyi +12 -0
  232. homeassistant-stubs/components/samsungtv/triggers/__init__.pyi +0 -0
  233. homeassistant-stubs/components/samsungtv/triggers/turn_on.pyi +14 -0
  234. homeassistant-stubs/components/scrape/config_flow.pyi +1 -1
  235. homeassistant-stubs/components/scrape/const.pyi +2 -0
  236. homeassistant-stubs/components/scrape/sensor.pyi +3 -6
  237. homeassistant-stubs/components/select/device_action.pyi +0 -1
  238. homeassistant-stubs/components/select/device_condition.pyi +1 -1
  239. homeassistant-stubs/components/select/device_trigger.pyi +0 -1
  240. homeassistant-stubs/components/sensor/const.pyi +2 -0
  241. homeassistant-stubs/components/sensor/recorder.pyi +3 -1
  242. homeassistant-stubs/components/sfr_box/__init__.pyi +1 -1
  243. homeassistant-stubs/components/sfr_box/binary_sensor.pyi +3 -1
  244. homeassistant-stubs/components/sfr_box/models.pyi +4 -2
  245. homeassistant-stubs/components/sfr_box/sensor.pyi +2 -1
  246. homeassistant-stubs/components/sleepiq/entity.pyi +0 -1
  247. homeassistant-stubs/components/statistics/sensor.pyi +2 -2
  248. homeassistant-stubs/components/sun/__init__.pyi +1 -1
  249. homeassistant-stubs/components/sun/sensor.pyi +36 -0
  250. homeassistant-stubs/components/switcher_kis/__init__.pyi +1 -1
  251. homeassistant-stubs/components/switcher_kis/button.pyi +0 -1
  252. homeassistant-stubs/components/switcher_kis/climate.pyi +0 -1
  253. homeassistant-stubs/components/switcher_kis/cover.pyi +0 -1
  254. homeassistant-stubs/components/switcher_kis/sensor.pyi +0 -1
  255. homeassistant-stubs/components/switcher_kis/switch.pyi +1 -1
  256. homeassistant-stubs/components/synology_dsm/sensor.pyi +5 -4
  257. homeassistant-stubs/components/threshold/__init__.pyi +7 -0
  258. homeassistant-stubs/components/threshold/binary_sensor.pyi +55 -0
  259. homeassistant-stubs/components/threshold/config_flow.pyi +19 -0
  260. homeassistant-stubs/components/threshold/const.pyi +5 -0
  261. homeassistant-stubs/components/tibber/config_flow.pyi +3 -0
  262. homeassistant-stubs/components/tibber/sensor.pyi +2 -1
  263. homeassistant-stubs/components/tplink/light.pyi +1 -1
  264. homeassistant-stubs/components/tplink_omada/__init__.pyi +1 -0
  265. homeassistant-stubs/components/tplink_omada/controller.pyi +21 -0
  266. homeassistant-stubs/components/tplink_omada/coordinator.pyi +3 -4
  267. homeassistant-stubs/components/tplink_omada/entity.pyi +6 -4
  268. homeassistant-stubs/components/tplink_omada/switch.pyi +4 -6
  269. homeassistant-stubs/components/tplink_omada/update.pyi +43 -0
  270. homeassistant-stubs/components/tradfri/sensor.pyi +0 -1
  271. homeassistant-stubs/components/tts/__init__.pyi +2 -1
  272. homeassistant-stubs/components/unifi/__init__.pyi +33 -0
  273. homeassistant-stubs/components/unifi/config_flow.pyi +46 -0
  274. homeassistant-stubs/components/unifi/const.pyi +30 -0
  275. homeassistant-stubs/components/unifi/controller.pyi +77 -0
  276. homeassistant-stubs/components/unifi/device_tracker.pyi +70 -0
  277. homeassistant-stubs/components/unifi/diagnostics.pyi +19 -0
  278. homeassistant-stubs/components/unifi/entity.pyi +58 -0
  279. homeassistant-stubs/components/unifi/errors.pyi +8 -0
  280. homeassistant-stubs/components/unifi/sensor.pyi +37 -0
  281. homeassistant-stubs/components/unifi/services.pyi +17 -0
  282. homeassistant-stubs/components/unifi/switch.pyi +55 -0
  283. homeassistant-stubs/components/unifi/update.pyi +1 -1
  284. homeassistant-stubs/components/unifiprotect/select.pyi +2 -2
  285. homeassistant-stubs/components/vacuum/device_action.pyi +0 -1
  286. homeassistant-stubs/components/vacuum/device_condition.pyi +1 -1
  287. homeassistant-stubs/components/vacuum/device_trigger.pyi +0 -1
  288. homeassistant-stubs/components/velbus/__init__.pyi +0 -2
  289. homeassistant-stubs/components/velbus/light.pyi +1 -1
  290. homeassistant-stubs/components/velbus/select.pyi +21 -0
  291. homeassistant-stubs/components/water_heater/device_action.pyi +0 -1
  292. homeassistant-stubs/components/weather/__init__.pyi +2 -23
  293. homeassistant-stubs/components/weather/const.pyi +25 -0
  294. homeassistant-stubs/components/weather/websocket_api.pyi +7 -0
  295. homeassistant-stubs/components/webostv/trigger.pyi +3 -3
  296. homeassistant-stubs/components/webostv/triggers/__init__.pyi +0 -5
  297. homeassistant-stubs/components/websocket_api/commands.pyi +2 -2
  298. homeassistant-stubs/components/websocket_api/connection.pyi +7 -1
  299. homeassistant-stubs/components/zwave_js/__init__.pyi +4 -4
  300. homeassistant-stubs/components/zwave_js/api.pyi +0 -1
  301. homeassistant-stubs/components/zwave_js/device_action.pyi +0 -1
  302. homeassistant-stubs/components/zwave_js/device_trigger.pyi +0 -1
  303. homeassistant-stubs/components/zwave_js/diagnostics.pyi +2 -1
  304. homeassistant-stubs/components/zwave_js/discovery.pyi +1 -1
  305. homeassistant-stubs/components/zwave_js/update.pyi +18 -8
  306. homeassistant-stubs/config_entries.pyi +4 -1
  307. homeassistant-stubs/core.pyi +4 -3
  308. homeassistant-stubs/helpers/condition.pyi +11 -3
  309. homeassistant-stubs/helpers/config_validation.pyi +1 -1
  310. homeassistant-stubs/helpers/debounce.pyi +1 -0
  311. homeassistant-stubs/helpers/device_registry.pyi +1 -1
  312. homeassistant-stubs/helpers/entity.pyi +1 -0
  313. homeassistant-stubs/helpers/entity_platform.pyi +2 -1
  314. homeassistant-stubs/helpers/entity_registry.pyi +9 -1
  315. homeassistant-stubs/helpers/event.pyi +3 -1
  316. homeassistant-stubs/helpers/httpx_client.pyi +1 -0
  317. homeassistant-stubs/helpers/integration_platform.pyi +3 -3
  318. homeassistant-stubs/helpers/script.pyi +5 -3
  319. homeassistant-stubs/helpers/selector.pyi +29 -12
  320. homeassistant-stubs/helpers/service.pyi +11 -0
  321. homeassistant-stubs/helpers/template.pyi +24 -3
  322. homeassistant-stubs/scripts/check_config.pyi +0 -1
  323. homeassistant-stubs/util/ssl.pyi +8 -0
  324. homeassistant-stubs/util/ulid.pyi +2 -1
  325. homeassistant-stubs/util/yaml/dumper.pyi +1 -1
  326. homeassistant-stubs/util/yaml/loader.pyi +4 -5
  327. homeassistant-stubs/util/yaml/objects.pyi +1 -0
  328. {homeassistant_stubs-2023.3.6.dist-info → homeassistant_stubs-2023.4.0b1.dist-info}/METADATA +2 -2
  329. {homeassistant_stubs-2023.3.6.dist-info → homeassistant_stubs-2023.4.0b1.dist-info}/RECORD +331 -265
  330. homeassistant-stubs/components/mysensors/notify.pyi +0 -23
  331. homeassistant-stubs/components/recorder/models.pyi +0 -148
  332. {homeassistant_stubs-2023.3.6.dist-info → homeassistant_stubs-2023.4.0b1.dist-info}/LICENSE +0 -0
  333. {homeassistant_stubs-2023.3.6.dist-info → homeassistant_stubs-2023.4.0b1.dist-info}/WHEEL +0 -0
@@ -48,7 +48,7 @@ class TPLinkSmartBulb(CoordinatedTPLinkEntity, LightEntity):
48
48
  @property
49
49
  def hs_color(self) -> Union[tuple[int, int], None]: ...
50
50
  @property
51
- def supported_color_modes(self) -> Union[set[Union[ColorMode, str]], None]: ...
51
+ def supported_color_modes(self) -> set[ColorMode]: ...
52
52
  @property
53
53
  def color_mode(self) -> ColorMode: ...
54
54
 
@@ -1,5 +1,6 @@
1
1
  from .config_flow import CONF_SITE as CONF_SITE, create_omada_client as create_omada_client
2
2
  from .const import DOMAIN as DOMAIN
3
+ from .controller import OmadaSiteController as OmadaSiteController
3
4
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
4
5
  from homeassistant.const import Platform as Platform
5
6
  from homeassistant.core import HomeAssistant as HomeAssistant
@@ -0,0 +1,21 @@
1
+ from .coordinator import OmadaCoordinator as OmadaCoordinator
2
+ from _typeshed import Incomplete
3
+ from homeassistant.core import HomeAssistant as HomeAssistant
4
+ from tplink_omada_client.devices import OmadaSwitch as OmadaSwitch, OmadaSwitchPortDetails
5
+ from tplink_omada_client.omadasiteclient import OmadaSiteClient as OmadaSiteClient
6
+
7
+ POLL_SWITCH_PORT: int
8
+
9
+ class OmadaSwitchPortCoordinator(OmadaCoordinator[OmadaSwitchPortDetails]):
10
+ _network_switch: Incomplete
11
+ def __init__(self, hass: HomeAssistant, omada_client: OmadaSiteClient, network_switch: OmadaSwitch) -> None: ...
12
+ async def poll_update(self) -> dict[str, OmadaSwitchPortDetails]: ...
13
+
14
+ class OmadaSiteController:
15
+ _hass: Incomplete
16
+ _omada_client: Incomplete
17
+ _switch_port_coordinators: Incomplete
18
+ def __init__(self, hass: HomeAssistant, omada_client: OmadaSiteClient) -> None: ...
19
+ @property
20
+ def omada_client(self) -> OmadaSiteClient: ...
21
+ def get_switch_port_coordinator(self, switch: OmadaSwitch) -> OmadaSwitchPortCoordinator: ...
@@ -1,8 +1,7 @@
1
1
  from _typeshed import Incomplete
2
- from collections.abc import Awaitable, Callable as Callable
3
2
  from homeassistant.core import HomeAssistant as HomeAssistant
4
3
  from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
5
- from tplink_omada_client.omadaclient import OmadaClient as OmadaClient
4
+ from tplink_omada_client.omadaclient import OmadaSiteClient as OmadaSiteClient
6
5
  from typing import TypeVar
7
6
 
8
7
  _LOGGER: Incomplete
@@ -10,6 +9,6 @@ T = TypeVar('T')
10
9
 
11
10
  class OmadaCoordinator(DataUpdateCoordinator[dict[str, T]]):
12
11
  omada_client: Incomplete
13
- _update_func: Incomplete
14
- def __init__(self, hass: HomeAssistant, omada_client: OmadaClient, update_func: Callable[[OmadaClient], Awaitable[dict[str, T]]]) -> None: ...
12
+ def __init__(self, hass: HomeAssistant, omada_client: OmadaSiteClient, name: str, poll_delay: int = ...) -> None: ...
15
13
  async def _async_update_data(self) -> dict[str, T]: ...
14
+ async def poll_update(self) -> dict[str, T]: ...
@@ -1,13 +1,15 @@
1
1
  from .const import DOMAIN as DOMAIN
2
2
  from .coordinator import OmadaCoordinator as OmadaCoordinator
3
3
  from _typeshed import Incomplete
4
- from homeassistant.helpers import device_registry as device_registry
5
4
  from homeassistant.helpers.entity import DeviceInfo as DeviceInfo
6
5
  from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
7
- from tplink_omada_client.devices import OmadaSwitch as OmadaSwitch, OmadaSwitchPortDetails
6
+ from tplink_omada_client.devices import OmadaDevice as OmadaDevice
7
+ from typing import TypeVar
8
8
 
9
- class OmadaSwitchDeviceEntity(CoordinatorEntity[OmadaCoordinator[OmadaSwitchPortDetails]]):
9
+ T = TypeVar('T')
10
+
11
+ class OmadaDeviceEntity(CoordinatorEntity[OmadaCoordinator[T]]):
10
12
  device: Incomplete
11
- def __init__(self, coordinator: OmadaCoordinator[OmadaSwitchPortDetails], device: OmadaSwitch) -> None: ...
13
+ def __init__(self, coordinator: OmadaCoordinator[T], device: OmadaDevice) -> None: ...
12
14
  @property
13
15
  def device_info(self) -> DeviceInfo: ...
@@ -1,6 +1,6 @@
1
1
  from .const import DOMAIN as DOMAIN
2
- from .coordinator import OmadaCoordinator as OmadaCoordinator
3
- from .entity import OmadaSwitchDeviceEntity as OmadaSwitchDeviceEntity
2
+ from .controller import OmadaSiteController as OmadaSiteController, OmadaSwitchPortCoordinator as OmadaSwitchPortCoordinator
3
+ from .entity import OmadaDeviceEntity as OmadaDeviceEntity
4
4
  from _typeshed import Incomplete
5
5
  from homeassistant.components.switch import SwitchEntity as SwitchEntity
6
6
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
@@ -8,16 +8,14 @@ from homeassistant.const import EntityCategory as EntityCategory
8
8
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
9
9
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
10
10
  from tplink_omada_client.devices import OmadaSwitch as OmadaSwitch, OmadaSwitchPortDetails
11
- from tplink_omada_client.omadasiteclient import OmadaSiteClient as OmadaSiteClient
12
11
  from typing import Any
13
12
 
14
13
  POE_SWITCH_ICON: str
15
14
 
16
- async def poll_switch_state(client: OmadaSiteClient, network_switch: OmadaSwitch) -> dict[str, OmadaSwitchPortDetails]: ...
17
15
  async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
18
16
  def get_port_base_name(port: OmadaSwitchPortDetails) -> str: ...
19
17
 
20
- class OmadaNetworkSwitchPortPoEControl(OmadaSwitchDeviceEntity, SwitchEntity):
18
+ class OmadaNetworkSwitchPortPoEControl(OmadaDeviceEntity[OmadaSwitchPortDetails], SwitchEntity):
21
19
  _attr_has_entity_name: bool
22
20
  _attr_entity_category: Incomplete
23
21
  _attr_icon: Incomplete
@@ -26,7 +24,7 @@ class OmadaNetworkSwitchPortPoEControl(OmadaSwitchDeviceEntity, SwitchEntity):
26
24
  omada_client: Incomplete
27
25
  _attr_unique_id: Incomplete
28
26
  _attr_name: Incomplete
29
- def __init__(self, coordinator: OmadaCoordinator[OmadaSwitchPortDetails], device: OmadaSwitch, port_id: str) -> None: ...
27
+ def __init__(self, coordinator: OmadaSwitchPortCoordinator, device: OmadaSwitch, port_id: str) -> None: ...
30
28
  async def async_added_to_hass(self) -> None: ...
31
29
  async def _async_turn_on_off_poe(self, enable: bool) -> None: ...
32
30
  async def async_turn_on(self, **kwargs: Any) -> None: ...
@@ -0,0 +1,43 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from .controller import OmadaSiteController as OmadaSiteController
3
+ from .coordinator import OmadaCoordinator as OmadaCoordinator
4
+ from .entity import OmadaDeviceEntity as OmadaDeviceEntity
5
+ from _typeshed import Incomplete
6
+ from homeassistant.components.update import UpdateEntity as UpdateEntity, UpdateEntityFeature as UpdateEntityFeature
7
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
9
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
10
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
11
+ from tplink_omada_client.devices import OmadaFirmwareUpdate as OmadaFirmwareUpdate, OmadaListDevice as OmadaListDevice
12
+ from tplink_omada_client.omadasiteclient import OmadaSiteClient as OmadaSiteClient
13
+ from typing import Any, NamedTuple
14
+
15
+ POLL_DELAY_IDLE: Incomplete
16
+ POLL_DELAY_UPGRADE: int
17
+
18
+ class FirmwareUpdateStatus(NamedTuple):
19
+ device: OmadaListDevice
20
+ firmware: Union[OmadaFirmwareUpdate, None]
21
+
22
+ class OmadaFirmwareUpdateCoodinator(OmadaCoordinator[FirmwareUpdateStatus]):
23
+ def __init__(self, hass: HomeAssistant, omada_client: OmadaSiteClient) -> None: ...
24
+ update_interval: Incomplete
25
+ async def _get_firmware_updates(self) -> list[FirmwareUpdateStatus]: ...
26
+ async def poll_update(self) -> dict[str, FirmwareUpdateStatus]: ...
27
+
28
+ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
29
+
30
+ class OmadaDeviceUpdate(OmadaDeviceEntity[FirmwareUpdateStatus], UpdateEntity):
31
+ _attr_supported_features: Incomplete
32
+ _attr_has_entity_name: bool
33
+ _attr_name: str
34
+ _mac: Incomplete
35
+ _omada_client: Incomplete
36
+ _attr_unique_id: Incomplete
37
+ def __init__(self, coordinator: OmadaFirmwareUpdateCoodinator, device: OmadaListDevice) -> None: ...
38
+ def release_notes(self) -> Union[str, None]: ...
39
+ async def async_install(self, version: Union[str, None], backup: bool, **kwargs: Any) -> None: ...
40
+ _attr_installed_version: Incomplete
41
+ _attr_latest_version: Incomplete
42
+ _attr_in_progress: Incomplete
43
+ def _handle_coordinator_update(self) -> None: ...
@@ -7,7 +7,6 @@ from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceCla
7
7
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
8
  from homeassistant.const import CONCENTRATION_MICROGRAMS_PER_CUBIC_METER as CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, PERCENTAGE as PERCENTAGE, Platform as Platform, UnitOfTime as UnitOfTime
9
9
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
10
- from homeassistant.helpers import entity_registry as entity_registry
11
10
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
12
11
  from pytradfri.command import Command as Command
13
12
  from pytradfri.device import Device as Device
@@ -2,6 +2,7 @@ from .const import DOMAIN as DOMAIN
2
2
  from .media_source import generate_media_source_id as generate_media_source_id, media_source_id_to_kwargs as media_source_id_to_kwargs
3
3
  from _typeshed import Incomplete
4
4
  from aiohttp import web
5
+ from collections.abc import Mapping
5
6
  from homeassistant.components.http import HomeAssistantView as HomeAssistantView
6
7
  from homeassistant.components.media_player import ATTR_MEDIA_ANNOUNCE as ATTR_MEDIA_ANNOUNCE, ATTR_MEDIA_CONTENT_ID as ATTR_MEDIA_CONTENT_ID, ATTR_MEDIA_CONTENT_TYPE as ATTR_MEDIA_CONTENT_TYPE, MediaType as MediaType, SERVICE_PLAY_MEDIA as SERVICE_PLAY_MEDIA
7
8
  from homeassistant.const import ATTR_ENTITY_ID as ATTR_ENTITY_ID, CONF_DESCRIPTION as CONF_DESCRIPTION, CONF_NAME as CONF_NAME, CONF_PLATFORM as CONF_PLATFORM, PLATFORM_FORMAT as PLATFORM_FORMAT
@@ -90,7 +91,7 @@ class Provider:
90
91
  @property
91
92
  def supported_options(self) -> Union[list[str], None]: ...
92
93
  @property
93
- def default_options(self) -> Union[dict[str, Any], None]: ...
94
+ def default_options(self) -> Union[Mapping[str, Any], None]: ...
94
95
  def get_tts_audio(self, message: str, language: str, options: Union[dict[str, Any], None] = ...) -> TtsAudioType: ...
95
96
  async def async_get_tts_audio(self, message: str, language: str, options: Union[dict[str, Any], None] = ...) -> TtsAudioType: ...
96
97
 
@@ -0,0 +1,33 @@
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
+ from .errors import AuthenticationRequired as AuthenticationRequired, CannotConnect as CannotConnect
4
+ from .services import async_setup_services as async_setup_services, async_unload_services as async_unload_services
5
+ from _typeshed import Incomplete
6
+ from aiounifi.models.client import Client as Client
7
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
+ from homeassistant.const import EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP
9
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
10
+ from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryNotReady as ConfigEntryNotReady
11
+ from homeassistant.helpers.storage import Store as Store
12
+ from homeassistant.helpers.typing import ConfigType as ConfigType
13
+
14
+ SAVE_DELAY: int
15
+ STORAGE_KEY: str
16
+ STORAGE_VERSION: int
17
+
18
+ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
19
+ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> bool: ...
20
+ async def async_unload_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> bool: ...
21
+ def async_remove_poe_client_entities(hass: HomeAssistant, config_entry: ConfigEntry) -> None: ...
22
+
23
+ class UnifiWirelessClients:
24
+ hass: Incomplete
25
+ data: Incomplete
26
+ wireless_clients: Incomplete
27
+ _store: Incomplete
28
+ def __init__(self, hass: HomeAssistant) -> None: ...
29
+ async def async_load(self) -> None: ...
30
+ def is_wireless(self, client: Client) -> bool: ...
31
+ def update_clients(self, clients: set[Client]) -> None: ...
32
+ def _data_to_save(self) -> dict[str, Union[dict[str, list[str]], list[str]]]: ...
33
+ def __contains__(self, obj_id: Union[int, str]) -> bool: ...
@@ -0,0 +1,46 @@
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_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
2
+ from .controller import UniFiController as UniFiController, get_unifi_controller as get_unifi_controller
3
+ from .errors import AuthenticationRequired as AuthenticationRequired, CannotConnect as CannotConnect
4
+ from _typeshed import Incomplete
5
+ from collections.abc import Mapping
6
+ from homeassistant import config_entries as config_entries
7
+ from homeassistant.components import ssdp as ssdp
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
9
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
10
+ from homeassistant.data_entry_flow import FlowResult as FlowResult
11
+ from homeassistant.helpers.device_registry import format_mac as format_mac
12
+ from typing import Any
13
+
14
+ DEFAULT_PORT: int
15
+ DEFAULT_SITE_ID: str
16
+ DEFAULT_VERIFY_SSL: bool
17
+ MODEL_PORTS: Incomplete
18
+
19
+ class UnifiFlowHandler(config_entries.ConfigFlow):
20
+ VERSION: int
21
+ @staticmethod
22
+ def async_get_options_flow(config_entry: config_entries.ConfigEntry) -> UnifiOptionsFlowHandler: ...
23
+ config: Incomplete
24
+ site_ids: Incomplete
25
+ site_names: Incomplete
26
+ reauth_config_entry: Incomplete
27
+ reauth_schema: Incomplete
28
+ def __init__(self) -> None: ...
29
+ async def async_step_user(self, user_input: Union[dict[str, Any], None] = ...) -> FlowResult: ...
30
+ async def async_step_site(self, user_input: Union[dict[str, Any], None] = ...) -> FlowResult: ...
31
+ async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> FlowResult: ...
32
+ async def async_step_ssdp(self, discovery_info: ssdp.SsdpServiceInfo) -> FlowResult: ...
33
+
34
+ class UnifiOptionsFlowHandler(config_entries.OptionsFlow):
35
+ controller: UniFiController
36
+ config_entry: Incomplete
37
+ options: Incomplete
38
+ def __init__(self, config_entry: config_entries.ConfigEntry) -> None: ...
39
+ async def async_step_init(self, user_input: Union[dict[str, Any], None] = ...) -> FlowResult: ...
40
+ async def async_step_simple_options(self, user_input: Union[dict[str, Any], None] = ...) -> FlowResult: ...
41
+ async def async_step_device_tracker(self, user_input: Union[dict[str, Any], None] = ...) -> FlowResult: ...
42
+ async def async_step_client_control(self, user_input: Union[dict[str, Any], None] = ...) -> FlowResult: ...
43
+ async def async_step_statistics_sensors(self, user_input: Union[dict[str, Any], None] = ...) -> FlowResult: ...
44
+ async def _update_options(self) -> FlowResult: ...
45
+
46
+ async def _async_discover_unifi(hass: HomeAssistant) -> Union[str, None]: ...
@@ -0,0 +1,30 @@
1
+ from _typeshed import Incomplete
2
+ from homeassistant.const import Platform as Platform
3
+
4
+ LOGGER: Incomplete
5
+ DOMAIN: str
6
+ PLATFORMS: Incomplete
7
+ CONF_SITE_ID: str
8
+ UNIFI_WIRELESS_CLIENTS: str
9
+ CONF_ALLOW_BANDWIDTH_SENSORS: str
10
+ CONF_ALLOW_UPTIME_SENSORS: str
11
+ CONF_BLOCK_CLIENT: str
12
+ CONF_DETECTION_TIME: str
13
+ CONF_DPI_RESTRICTIONS: str
14
+ CONF_IGNORE_WIRED_BUG: str
15
+ CONF_TRACK_CLIENTS: str
16
+ CONF_TRACK_DEVICES: str
17
+ CONF_TRACK_WIRED_CLIENTS: str
18
+ CONF_SSID_FILTER: str
19
+ DEFAULT_ALLOW_BANDWIDTH_SENSORS: bool
20
+ DEFAULT_ALLOW_UPTIME_SENSORS: bool
21
+ DEFAULT_DPI_RESTRICTIONS: bool
22
+ DEFAULT_IGNORE_WIRED_BUG: bool
23
+ DEFAULT_TRACK_CLIENTS: bool
24
+ DEFAULT_TRACK_DEVICES: bool
25
+ DEFAULT_TRACK_WIRED_CLIENTS: bool
26
+ DEFAULT_DETECTION_TIME: int
27
+ ATTR_MANUFACTURER: str
28
+ BLOCK_SWITCH: str
29
+ DPI_SWITCH: str
30
+ OUTLET_SWITCH: str
@@ -0,0 +1,77 @@
1
+ import aiounifi
2
+ from .const import ATTR_MANUFACTURER as ATTR_MANUFACTURER, BLOCK_SWITCH as BLOCK_SWITCH, 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_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
5
+ from _typeshed import Incomplete
6
+ from aiounifi.websocket import WebsocketState
7
+ from datetime import datetime
8
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
9
+ 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
10
+ from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, Event as Event, HomeAssistant as HomeAssistant, callback as callback
11
+ from homeassistant.helpers import aiohttp_client as aiohttp_client
12
+ from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC as CONNECTION_NETWORK_MAC
13
+ from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect, async_dispatcher_send as async_dispatcher_send
14
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
15
+ from homeassistant.helpers.entity_registry import async_entries_for_config_entry as async_entries_for_config_entry
16
+ from homeassistant.helpers.event import async_track_time_interval as async_track_time_interval
17
+ from types import MappingProxyType
18
+ from typing import Any
19
+
20
+ RETRY_TIMER: int
21
+ CHECK_HEARTBEAT_INTERVAL: Incomplete
22
+
23
+ class UniFiController:
24
+ hass: Incomplete
25
+ config_entry: Incomplete
26
+ api: Incomplete
27
+ available: bool
28
+ wireless_clients: Incomplete
29
+ site_id: str
30
+ _site_name: Incomplete
31
+ _site_role: Incomplete
32
+ _cancel_heartbeat_check: Incomplete
33
+ _heartbeat_time: Incomplete
34
+ entities: Incomplete
35
+ known_objects: Incomplete
36
+ def __init__(self, hass: HomeAssistant, config_entry: ConfigEntry, api: aiounifi.Controller) -> None: ...
37
+ option_track_clients: Incomplete
38
+ option_track_wired_clients: Incomplete
39
+ option_track_devices: Incomplete
40
+ option_ssid_filter: Incomplete
41
+ option_detection_time: Incomplete
42
+ option_ignore_wired_bug: Incomplete
43
+ option_block_clients: Incomplete
44
+ option_dpi_restrictions: Incomplete
45
+ option_allow_bandwidth_sensors: Incomplete
46
+ option_allow_uptime_sensors: Incomplete
47
+ def load_config_entry_options(self) -> None: ...
48
+ @property
49
+ def host(self) -> str: ...
50
+ @property
51
+ def site(self) -> str: ...
52
+ @property
53
+ def site_name(self) -> Union[str, None]: ...
54
+ @property
55
+ def site_role(self) -> Union[str, None]: ...
56
+ @property
57
+ def mac(self) -> Union[str, None]: ...
58
+ def register_platform_add_entities(self, unifi_platform_entity: type[UnifiEntity], descriptions: tuple[UnifiEntityDescription, ...], async_add_entities: AddEntitiesCallback) -> None: ...
59
+ def async_unifi_ws_state_callback(self, state: WebsocketState) -> None: ...
60
+ @property
61
+ def signal_reachable(self) -> str: ...
62
+ @property
63
+ def signal_options_update(self) -> str: ...
64
+ @property
65
+ def signal_heartbeat_missed(self) -> str: ...
66
+ async def initialize(self) -> None: ...
67
+ def async_heartbeat(self, unique_id: str, heartbeat_expire_time: Union[datetime, None] = ...) -> None: ...
68
+ def _async_check_for_stale(self, *_: datetime) -> None: ...
69
+ async def async_update_device_registry(self) -> None: ...
70
+ @staticmethod
71
+ async def async_config_entry_updated(hass: HomeAssistant, config_entry: ConfigEntry) -> None: ...
72
+ def reconnect(self, log: bool = ...) -> None: ...
73
+ async def async_reconnect(self) -> None: ...
74
+ def shutdown(self, event: Event) -> None: ...
75
+ async def async_reset(self) -> bool: ...
76
+
77
+ async def get_unifi_controller(hass: HomeAssistant, config: MappingProxyType[str, Any]) -> aiounifi.Controller: ...
@@ -0,0 +1,70 @@
1
+ import aiounifi
2
+ from .controller import UniFiController as UniFiController
3
+ from .entity import HandlerT as HandlerT, UnifiEntity as UnifiEntity, UnifiEntityDescription as UnifiEntityDescription, async_device_available_fn as async_device_available_fn
4
+ from _typeshed import Incomplete
5
+ from aiounifi.interfaces.api_handlers import ItemEvent
6
+ from aiounifi.models.api import ApiItemT
7
+ from aiounifi.models.event import Event, EventKey
8
+ from collections.abc import Callable as Callable, Mapping
9
+ from datetime import timedelta
10
+ from homeassistant.components.device_tracker import ScannerEntity as ScannerEntity, SourceType as SourceType
11
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
12
+ from homeassistant.core import Event as core_Event, HomeAssistant as HomeAssistant, callback as callback
13
+ from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
14
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
15
+ from typing import Any
16
+
17
+ LOGGER: Incomplete
18
+ CLIENT_TRACKER: str
19
+ DEVICE_TRACKER: str
20
+ CLIENT_CONNECTED_ATTRIBUTES: Incomplete
21
+ CLIENT_STATIC_ATTRIBUTES: Incomplete
22
+ CLIENT_CONNECTED_ALL_ATTRIBUTES: Incomplete
23
+ WIRED_CONNECTION: Incomplete
24
+ WIRED_DISCONNECTION: Incomplete
25
+ WIRELESS_CONNECTION: Incomplete
26
+ WIRELESS_DISCONNECTION: Incomplete
27
+
28
+ def async_client_allowed_fn(controller: UniFiController, obj_id: str) -> bool: ...
29
+ def async_client_is_connected_fn(controller: UniFiController, obj_id: str) -> bool: ...
30
+ def async_device_heartbeat_timedelta_fn(controller: UniFiController, obj_id: str) -> timedelta: ...
31
+
32
+ class UnifiEntityTrackerDescriptionMixin:
33
+ heartbeat_timedelta_fn: Callable[[UniFiController, str], timedelta]
34
+ ip_address_fn: Callable[[aiounifi.Controller, str], str]
35
+ is_connected_fn: Callable[[UniFiController, str], bool]
36
+ hostname_fn: Callable[[aiounifi.Controller, str], Union[str, None]]
37
+ def __init__(self, heartbeat_timedelta_fn, ip_address_fn, is_connected_fn, hostname_fn) -> None: ...
38
+
39
+ class UnifiTrackerEntityDescription(UnifiEntityDescription[HandlerT, ApiItemT], UnifiEntityTrackerDescriptionMixin[HandlerT, ApiItemT]):
40
+ def __init__(self, heartbeat_timedelta_fn, ip_address_fn, is_connected_fn, hostname_fn, allowed_fn, api_handler_fn, available_fn, device_info_fn, event_is_on, event_to_subscribe, name_fn, object_fn, supported_fn, unique_id_fn, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, unit_of_measurement) -> None: ...
41
+
42
+ ENTITY_DESCRIPTIONS: tuple[UnifiTrackerEntityDescription, ...]
43
+
44
+ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
45
+
46
+ class UnifiScannerEntity(UnifiEntity[HandlerT, ApiItemT], ScannerEntity):
47
+ entity_description: UnifiTrackerEntityDescription
48
+ _event_is_on: tuple[EventKey, ...]
49
+ _ignore_events: bool
50
+ _is_connected: bool
51
+ def async_initiate_state(self) -> None: ...
52
+ @property
53
+ def is_connected(self) -> bool: ...
54
+ @property
55
+ def hostname(self) -> Union[str, None]: ...
56
+ @property
57
+ def ip_address(self) -> str: ...
58
+ @property
59
+ def mac_address(self) -> str: ...
60
+ @property
61
+ def source_type(self) -> SourceType: ...
62
+ @property
63
+ def unique_id(self) -> str: ...
64
+ def _make_disconnected(self, *_: core_Event) -> None: ...
65
+ def async_update_state(self, event: ItemEvent, obj_id: str) -> None: ...
66
+ def async_event_callback(self, event: Event) -> None: ...
67
+ async def async_added_to_hass(self) -> None: ...
68
+ async def async_will_remove_from_hass(self) -> None: ...
69
+ @property
70
+ def extra_state_attributes(self) -> Union[Mapping[str, Any], None]: ...
@@ -0,0 +1,19 @@
1
+ from .controller import UniFiController as UniFiController
2
+ from _typeshed import Incomplete
3
+ from collections.abc import Mapping
4
+ from homeassistant.components.diagnostics import REDACTED as REDACTED, async_redact_data as async_redact_data
5
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
6
+ from homeassistant.const import CONF_HOST as CONF_HOST, CONF_PASSWORD as CONF_PASSWORD, CONF_USERNAME as CONF_USERNAME
7
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
8
+ from homeassistant.helpers.device_registry import format_mac as format_mac
9
+ from typing import Any
10
+
11
+ TO_REDACT: Incomplete
12
+ REDACT_CONFIG: Incomplete
13
+ REDACT_CLIENTS: Incomplete
14
+ REDACT_DEVICES: Incomplete
15
+ REDACT_WLANS: Incomplete
16
+
17
+ def async_replace_dict_data(data: Mapping, to_replace: dict[str, str]) -> dict[str, Any]: ...
18
+ def async_replace_list_data(data: Union[list, set, tuple], to_replace: dict[str, str]) -> list[Any]: ...
19
+ async def async_get_config_entry_diagnostics(hass: HomeAssistant, config_entry: ConfigEntry) -> dict[str, Any]: ...
@@ -0,0 +1,58 @@
1
+ import abc
2
+ import aiounifi
3
+ from .const import ATTR_MANUFACTURER as ATTR_MANUFACTURER
4
+ from .controller import UniFiController as UniFiController
5
+ from _typeshed import Incomplete
6
+ from abc import abstractmethod
7
+ from aiounifi.interfaces.api_handlers import APIHandler, CallbackType, ItemEvent, UnsubscribeType
8
+ from aiounifi.models.api import ApiItemT
9
+ from aiounifi.models.event import Event as Event, EventKey as EventKey
10
+ from collections.abc import Callable
11
+ from homeassistant.core import callback as callback
12
+ from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC as CONNECTION_NETWORK_MAC
13
+ from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
14
+ from homeassistant.helpers.entity import DeviceInfo as DeviceInfo, Entity as Entity, EntityDescription as EntityDescription
15
+ from typing import TypeVar
16
+
17
+ HandlerT = TypeVar('HandlerT', bound=APIHandler)
18
+ SubscriptionT = Callable[[CallbackType, ItemEvent], UnsubscribeType]
19
+
20
+ def async_device_available_fn(controller: UniFiController, obj_id: str) -> bool: ...
21
+ def async_device_device_info_fn(api: aiounifi.Controller, obj_id: str) -> DeviceInfo: ...
22
+
23
+ class UnifiDescription:
24
+ allowed_fn: Callable[[UniFiController, str], bool]
25
+ api_handler_fn: Callable[[aiounifi.Controller], HandlerT]
26
+ available_fn: Callable[[UniFiController, str], bool]
27
+ device_info_fn: Callable[[aiounifi.Controller, str], Union[DeviceInfo, None]]
28
+ event_is_on: Union[tuple[EventKey, ...], None]
29
+ event_to_subscribe: Union[tuple[EventKey, ...], None]
30
+ name_fn: Callable[[ApiItemT], Union[str, None]]
31
+ object_fn: Callable[[aiounifi.Controller, str], ApiItemT]
32
+ supported_fn: Callable[[UniFiController, str], Union[bool, None]]
33
+ unique_id_fn: Callable[[UniFiController, str], str]
34
+ def __init__(self, allowed_fn, api_handler_fn, available_fn, device_info_fn, event_is_on, event_to_subscribe, name_fn, object_fn, supported_fn, unique_id_fn) -> None: ...
35
+
36
+ class UnifiEntityDescription(EntityDescription, UnifiDescription[HandlerT, ApiItemT]):
37
+ def __init__(self, allowed_fn, api_handler_fn, available_fn, device_info_fn, event_is_on, event_to_subscribe, name_fn, object_fn, supported_fn, unique_id_fn, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, unit_of_measurement) -> None: ...
38
+
39
+ class UnifiEntity(Entity, metaclass=abc.ABCMeta):
40
+ entity_description: UnifiEntityDescription[HandlerT, ApiItemT]
41
+ _attr_should_poll: bool
42
+ _attr_unique_id: str
43
+ _obj_id: Incomplete
44
+ controller: Incomplete
45
+ _removed: bool
46
+ _attr_available: Incomplete
47
+ _attr_device_info: Incomplete
48
+ _attr_name: Incomplete
49
+ def __init__(self, obj_id: str, controller: UniFiController, description: UnifiEntityDescription[HandlerT, ApiItemT]) -> None: ...
50
+ async def async_added_to_hass(self) -> None: ...
51
+ def async_signalling_callback(self, event: ItemEvent, obj_id: str) -> None: ...
52
+ def async_signal_reachable_callback(self) -> None: ...
53
+ async def async_signal_options_updated(self) -> None: ...
54
+ async def remove_item(self, keys: set) -> None: ...
55
+ def async_initiate_state(self) -> None: ...
56
+ @abstractmethod
57
+ def async_update_state(self, event: ItemEvent, obj_id: str) -> None: ...
58
+ def async_event_callback(self, event: Event) -> None: ...
@@ -0,0 +1,8 @@
1
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
2
+
3
+ class UnifiException(HomeAssistantError): ...
4
+ class AlreadyConfigured(UnifiException): ...
5
+ class AuthenticationRequired(UnifiException): ...
6
+ class CannotConnect(UnifiException): ...
7
+ class LoginRequired(UnifiException): ...
8
+ class UserLevel(UnifiException): ...
@@ -0,0 +1,37 @@
1
+ import aiounifi
2
+ from .controller import UniFiController as UniFiController
3
+ 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
4
+ from _typeshed import Incomplete
5
+ from aiounifi.interfaces.api_handlers import ItemEvent as ItemEvent
6
+ from aiounifi.models.api import ApiItemT
7
+ from aiounifi.models.client import Client
8
+ from collections.abc import Callable as Callable
9
+ from datetime import datetime
10
+ from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription
11
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
12
+ from homeassistant.const import EntityCategory as EntityCategory, UnitOfInformation as UnitOfInformation, UnitOfPower as UnitOfPower
13
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
14
+ from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC as CONNECTION_NETWORK_MAC
15
+ from homeassistant.helpers.entity import DeviceInfo as DeviceInfo
16
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
17
+
18
+ def async_client_rx_value_fn(controller: UniFiController, client: Client) -> float: ...
19
+ def async_client_tx_value_fn(controller: UniFiController, client: Client) -> float: ...
20
+ def async_client_uptime_value_fn(controller: UniFiController, client: Client) -> datetime: ...
21
+ def async_client_device_info_fn(api: aiounifi.Controller, obj_id: str) -> DeviceInfo: ...
22
+
23
+ class UnifiSensorEntityDescriptionMixin:
24
+ value_fn: Callable[[UniFiController, ApiItemT], Union[datetime, float, str, None]]
25
+ def __init__(self, value_fn) -> None: ...
26
+
27
+ class UnifiSensorEntityDescription(SensorEntityDescription, UnifiEntityDescription[HandlerT, ApiItemT], UnifiSensorEntityDescriptionMixin[HandlerT, ApiItemT]):
28
+ def __init__(self, value_fn, allowed_fn, api_handler_fn, available_fn, device_info_fn, event_is_on, event_to_subscribe, name_fn, object_fn, supported_fn, unique_id_fn, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, unit_of_measurement, last_reset, native_unit_of_measurement, options, state_class, suggested_display_precision, suggested_unit_of_measurement) -> None: ...
29
+
30
+ ENTITY_DESCRIPTIONS: tuple[UnifiSensorEntityDescription, ...]
31
+
32
+ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
33
+
34
+ class UnifiSensorEntity(UnifiEntity[HandlerT, ApiItemT], SensorEntity):
35
+ entity_description: UnifiSensorEntityDescription[HandlerT, ApiItemT]
36
+ _attr_native_value: Incomplete
37
+ def async_update_state(self, event: ItemEvent, obj_id: str) -> None: ...
@@ -0,0 +1,17 @@
1
+ from _typeshed import Incomplete
2
+ from collections.abc import Mapping
3
+ from homeassistant.const import ATTR_DEVICE_ID as ATTR_DEVICE_ID
4
+ from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, callback as callback
5
+ from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC as CONNECTION_NETWORK_MAC
6
+ from typing import Any
7
+
8
+ SERVICE_RECONNECT_CLIENT: str
9
+ SERVICE_REMOVE_CLIENTS: str
10
+ SERVICE_RECONNECT_CLIENT_SCHEMA: Incomplete
11
+ SUPPORTED_SERVICES: Incomplete
12
+ SERVICE_TO_SCHEMA: Incomplete
13
+
14
+ def async_setup_services(hass: HomeAssistant) -> None: ...
15
+ def async_unload_services(hass: HomeAssistant) -> None: ...
16
+ async def async_reconnect_client(hass: HomeAssistant, data: Mapping[str, Any]) -> None: ...
17
+ async def async_remove_clients(hass: HomeAssistant, data: Mapping[str, Any]) -> None: ...