homeassistant-stubs 2024.4.4__py3-none-any.whl → 2024.5.0b0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (360) hide show
  1. homeassistant-stubs/auth/__init__.pyi +3 -1
  2. homeassistant-stubs/auth/jwt_wrapper.pyi +1 -1
  3. homeassistant-stubs/auth/permissions/__init__.pyi +1 -2
  4. homeassistant-stubs/auth/permissions/events.pyi +3 -2
  5. homeassistant-stubs/auth/session.pyi +46 -0
  6. homeassistant-stubs/backports/enum.pyi +6 -2
  7. homeassistant-stubs/backports/functools.pyi +5 -15
  8. homeassistant-stubs/block_async_io.pyi +8 -1
  9. homeassistant-stubs/bootstrap.pyi +7 -1
  10. homeassistant-stubs/components/accuweather/__init__.pyi +9 -13
  11. homeassistant-stubs/components/accuweather/config_flow.pyi +2 -10
  12. homeassistant-stubs/components/accuweather/const.pyi +2 -2
  13. homeassistant-stubs/components/accuweather/coordinator.pyi +27 -0
  14. homeassistant-stubs/components/accuweather/diagnostics.pyi +1 -1
  15. homeassistant-stubs/components/accuweather/sensor.pyi +29 -8
  16. homeassistant-stubs/components/accuweather/weather.pyi +9 -5
  17. homeassistant-stubs/components/adax/climate.pyi +3 -1
  18. homeassistant-stubs/components/adguard/__init__.pyi +9 -1
  19. homeassistant-stubs/components/adguard/const.pyi +0 -2
  20. homeassistant-stubs/components/adguard/entity.pyi +4 -3
  21. homeassistant-stubs/components/adguard/sensor.pyi +3 -3
  22. homeassistant-stubs/components/adguard/switch.pyi +3 -3
  23. homeassistant-stubs/components/airtouch5/config_flow.pyi +3 -3
  24. homeassistant-stubs/components/airzone_cloud/entity.pyi +7 -0
  25. homeassistant-stubs/components/airzone_cloud/select.pyi +38 -0
  26. homeassistant-stubs/components/airzone_cloud/water_heater.pyi +35 -0
  27. homeassistant-stubs/components/alert/__init__.pyi +2 -2
  28. homeassistant-stubs/components/alexa/config.pyi +2 -0
  29. homeassistant-stubs/components/alexa/entities.pyi +0 -2
  30. homeassistant-stubs/components/alexa/intent.pyi +2 -1
  31. homeassistant-stubs/components/alexa/resources.pyi +3 -3
  32. homeassistant-stubs/components/alexa/state_report.pyi +3 -4
  33. homeassistant-stubs/components/ambient_network/__init__.pyi +10 -0
  34. homeassistant-stubs/components/ambient_network/config_flow.pyi +22 -0
  35. homeassistant-stubs/components/ambient_network/const.pyi +12 -0
  36. homeassistant-stubs/components/ambient_network/coordinator.pyi +18 -0
  37. homeassistant-stubs/components/ambient_network/entity.pyi +20 -0
  38. homeassistant-stubs/components/ambient_network/helper.pyi +4 -0
  39. homeassistant-stubs/components/ambient_network/sensor.pyi +46 -0
  40. homeassistant-stubs/components/ambient_station/sensor.pyi +3 -1
  41. homeassistant-stubs/components/apache_kafka/__init__.pyi +1 -2
  42. homeassistant-stubs/components/apcupsd/binary_sensor.pyi +1 -0
  43. homeassistant-stubs/components/apcupsd/sensor.pyi +1 -0
  44. homeassistant-stubs/components/api/__init__.pyi +2 -2
  45. homeassistant-stubs/components/apple_tv/remote.pyi +1 -1
  46. homeassistant-stubs/components/arris_tg2492lg/device_tracker.pyi +5 -4
  47. homeassistant-stubs/components/assist_pipeline/__init__.pyi +2 -2
  48. homeassistant-stubs/components/assist_pipeline/const.pyi +1 -0
  49. homeassistant-stubs/components/assist_pipeline/pipeline.pyi +5 -3
  50. homeassistant-stubs/components/auth/__init__.pyi +9 -2
  51. homeassistant-stubs/components/auth/login_flow.pyi +2 -2
  52. homeassistant-stubs/components/auth/mfa_setup_flow.pyi +1 -1
  53. homeassistant-stubs/components/automation/__init__.pyi +7 -9
  54. homeassistant-stubs/components/automation/logbook.pyi +3 -1
  55. homeassistant-stubs/components/axis/hub/event_source.pyi +23 -0
  56. homeassistant-stubs/components/axis/hub/hub.pyi +4 -9
  57. homeassistant-stubs/components/baf/fan.pyi +1 -0
  58. homeassistant-stubs/components/bayesian/binary_sensor.pyi +2 -2
  59. homeassistant-stubs/components/bluetooth/config_flow.pyi +6 -0
  60. homeassistant-stubs/components/bluetooth/diagnostics.pyi +1 -1
  61. homeassistant-stubs/components/bluetooth/util.pyi +2 -1
  62. homeassistant-stubs/components/bmw_connected_drive/binary_sensor.pyi +2 -1
  63. homeassistant-stubs/components/bmw_connected_drive/const.pyi +1 -0
  64. homeassistant-stubs/components/bmw_connected_drive/sensor.pyi +4 -3
  65. homeassistant-stubs/components/camera/__init__.pyi +2 -2
  66. homeassistant-stubs/components/cloud/__init__.pyi +9 -4
  67. homeassistant-stubs/components/cloud/alexa_config.pyi +2 -2
  68. homeassistant-stubs/components/cloud/const.pyi +2 -1
  69. homeassistant-stubs/components/cloud/google_config.pyi +3 -3
  70. homeassistant-stubs/components/cloud/http_api.pyi +2 -2
  71. homeassistant-stubs/components/cloud/prefs.pyi +5 -3
  72. homeassistant-stubs/components/cloud/stt.pyi +1 -0
  73. homeassistant-stubs/components/cloud/tts.pyi +1 -0
  74. homeassistant-stubs/components/cloud/util.pyi +7 -0
  75. homeassistant-stubs/components/command_line/binary_sensor.pyi +4 -4
  76. homeassistant-stubs/components/command_line/const.pyi +4 -1
  77. homeassistant-stubs/components/command_line/cover.pyi +3 -3
  78. homeassistant-stubs/components/command_line/sensor.pyi +4 -5
  79. homeassistant-stubs/components/command_line/switch.pyi +3 -3
  80. homeassistant-stubs/components/config/__init__.pyi +1 -1
  81. homeassistant-stubs/components/deconz/binary_sensor.pyi +0 -1
  82. homeassistant-stubs/components/demo/notify.pyi +12 -10
  83. homeassistant-stubs/components/demo/sensor.pyi +1 -1
  84. homeassistant-stubs/components/derivative/sensor.pyi +2 -2
  85. homeassistant-stubs/components/device_tracker/config_entry.pyi +1 -1
  86. homeassistant-stubs/components/device_tracker/legacy.pyi +2 -1
  87. homeassistant-stubs/components/dhcp/__init__.pyi +2 -2
  88. homeassistant-stubs/components/dlna_dms/dms.pyi +2 -1
  89. homeassistant-stubs/components/ecovacs/event.pyi +1 -0
  90. homeassistant-stubs/components/ecovacs/select.pyi +1 -1
  91. homeassistant-stubs/components/ecovacs/util.pyi +5 -1
  92. homeassistant-stubs/components/ecovacs/vacuum.pyi +1 -0
  93. homeassistant-stubs/components/emulated_hue/config.pyi +2 -2
  94. homeassistant-stubs/components/emulated_hue/hue_api.pyi +2 -2
  95. homeassistant-stubs/components/energenie_power_sockets/__init__.pyi +12 -0
  96. homeassistant-stubs/components/energenie_power_sockets/config_flow.pyi +6 -0
  97. homeassistant-stubs/components/energenie_power_sockets/const.pyi +5 -0
  98. homeassistant-stubs/components/energenie_power_sockets/switch.pyi +27 -0
  99. homeassistant-stubs/components/energy/data.pyi +1 -0
  100. homeassistant-stubs/components/energy/sensor.pyi +4 -4
  101. homeassistant-stubs/components/energy/websocket_api.pyi +1 -1
  102. homeassistant-stubs/components/enigma2/__init__.pyi +11 -0
  103. homeassistant-stubs/components/enigma2/config_flow.pyi +17 -0
  104. homeassistant-stubs/components/enigma2/const.pyi +1 -0
  105. homeassistant-stubs/components/enigma2/media_player.pyi +9 -6
  106. homeassistant-stubs/components/enphase_envoy/coordinator.pyi +1 -0
  107. homeassistant-stubs/components/eq3btsmart/__init__.pyi +18 -0
  108. homeassistant-stubs/components/eq3btsmart/climate.pyi +55 -0
  109. homeassistant-stubs/components/eq3btsmart/config_flow.pyi +17 -0
  110. homeassistant-stubs/components/eq3btsmart/const.pyi +38 -0
  111. homeassistant-stubs/components/eq3btsmart/entity.pyi +10 -0
  112. homeassistant-stubs/components/eq3btsmart/models.pyi +20 -0
  113. homeassistant-stubs/components/eq3btsmart/schemas.pyi +6 -0
  114. homeassistant-stubs/components/esphome/datetime.pyi +14 -0
  115. homeassistant-stubs/components/esphome/entry_data.pyi +4 -5
  116. homeassistant-stubs/components/esphome/event.pyi +16 -0
  117. homeassistant-stubs/components/esphome/manager.pyi +5 -4
  118. homeassistant-stubs/components/esphome/update.pyi +0 -1
  119. homeassistant-stubs/components/esphome/valve.pyi +30 -0
  120. homeassistant-stubs/components/esphome/voice_assistant.pyi +24 -8
  121. homeassistant-stubs/components/filter/sensor.pyi +2 -2
  122. homeassistant-stubs/components/fritz/__init__.pyi +2 -2
  123. homeassistant-stubs/components/fritz/button.pyi +16 -3
  124. homeassistant-stubs/components/fritz/common.pyi +6 -3
  125. homeassistant-stubs/components/fritz/config_flow.pyi +7 -2
  126. homeassistant-stubs/components/fritz/const.pyi +5 -1
  127. homeassistant-stubs/components/fritzbox/climate.pyi +1 -1
  128. homeassistant-stubs/components/fritzbox/config_flow.pyi +2 -0
  129. homeassistant-stubs/components/fritzbox/coordinator.pyi +4 -2
  130. homeassistant-stubs/components/generic_hygrostat/humidifier.pyi +4 -2
  131. homeassistant-stubs/components/generic_thermostat/climate.pyi +2 -2
  132. homeassistant-stubs/components/geo_location/trigger.pyi +2 -2
  133. homeassistant-stubs/components/glances/coordinator.pyi +1 -0
  134. homeassistant-stubs/components/glances/sensor.pyi +6 -5
  135. homeassistant-stubs/components/group/entity.pyi +9 -13
  136. homeassistant-stubs/components/group/event.pyi +2 -2
  137. homeassistant-stubs/components/group/media_player.pyi +2 -2
  138. homeassistant-stubs/components/group/notify.pyi +2 -1
  139. homeassistant-stubs/components/group/registry.pyi +7 -4
  140. homeassistant-stubs/components/history/websocket_api.pyi +6 -6
  141. homeassistant-stubs/components/history_stats/coordinator.pyi +2 -2
  142. homeassistant-stubs/components/history_stats/data.pyi +1 -2
  143. homeassistant-stubs/components/homeassistant/logbook.pyi +5 -3
  144. homeassistant-stubs/components/homeassistant/triggers/numeric_state.pyi +2 -2
  145. homeassistant-stubs/components/homeassistant/triggers/state.pyi +2 -2
  146. homeassistant-stubs/components/homeassistant/triggers/time.pyi +2 -2
  147. homeassistant-stubs/components/homeassistant_alerts/__init__.pyi +3 -1
  148. homeassistant-stubs/components/homeassistant_sky_connect/__init__.pyi +7 -9
  149. homeassistant-stubs/components/homeassistant_sky_connect/config_flow.pyi +60 -6
  150. homeassistant-stubs/components/homeassistant_sky_connect/const.pyi +8 -0
  151. homeassistant-stubs/components/homeassistant_sky_connect/util.pyi +23 -2
  152. homeassistant-stubs/components/homekit/accessories.pyi +2 -2
  153. homeassistant-stubs/components/homekit/type_cameras.pyi +3 -2
  154. homeassistant-stubs/components/homekit/type_covers.pyi +2 -2
  155. homeassistant-stubs/components/homekit/type_humidifiers.pyi +2 -2
  156. homeassistant-stubs/components/homekit/type_thermostats.pyi +2 -2
  157. homeassistant-stubs/components/homekit/util.pyi +3 -4
  158. homeassistant-stubs/components/homeworks/__init__.pyi +7 -2
  159. homeassistant-stubs/components/homeworks/button.pyi +1 -1
  160. homeassistant-stubs/components/http/__init__.pyi +11 -7
  161. homeassistant-stubs/components/http/auth.pyi +11 -3
  162. homeassistant-stubs/components/http/const.pyi +7 -0
  163. homeassistant-stubs/components/http/session.pyi +29 -0
  164. homeassistant-stubs/components/hydrawise/__init__.pyi +3 -6
  165. homeassistant-stubs/components/hydrawise/binary_sensor.pyi +1 -4
  166. homeassistant-stubs/components/hydrawise/config_flow.pyi +8 -9
  167. homeassistant-stubs/components/hydrawise/sensor.pyi +2 -4
  168. homeassistant-stubs/components/hydrawise/switch.pyi +2 -5
  169. homeassistant-stubs/components/image/__init__.pyi +2 -2
  170. homeassistant-stubs/components/imap/__init__.pyi +20 -4
  171. homeassistant-stubs/components/imap/config_flow.pyi +2 -1
  172. homeassistant-stubs/components/imap/const.pyi +5 -2
  173. homeassistant-stubs/components/imap/coordinator.pyi +5 -2
  174. homeassistant-stubs/components/integration/sensor.pyi +12 -13
  175. homeassistant-stubs/components/islamic_prayer_times/config_flow.pyi +1 -3
  176. homeassistant-stubs/components/islamic_prayer_times/coordinator.pyi +2 -2
  177. homeassistant-stubs/components/isy994/helpers.pyi +1 -1
  178. homeassistant-stubs/components/jvc_projector/select.pyi +30 -0
  179. homeassistant-stubs/components/knx/expose.pyi +2 -2
  180. homeassistant-stubs/components/knx/helpers/__init__.pyi +0 -0
  181. homeassistant-stubs/components/knx/notify.pyi +16 -3
  182. homeassistant-stubs/components/knx/repairs.pyi +7 -0
  183. homeassistant-stubs/components/logbook/__init__.pyi +1 -0
  184. homeassistant-stubs/components/logbook/helpers.pyi +5 -4
  185. homeassistant-stubs/components/logbook/models.pyi +4 -3
  186. homeassistant-stubs/components/logbook/processor.pyi +3 -2
  187. homeassistant-stubs/components/logger/helpers.pyi +4 -1
  188. homeassistant-stubs/components/media_extractor/__init__.pyi +4 -4
  189. homeassistant-stubs/components/media_extractor/const.pyi +5 -0
  190. homeassistant-stubs/components/min_max/sensor.pyi +2 -2
  191. homeassistant-stubs/components/minecraft_server/sensor.pyi +2 -2
  192. homeassistant-stubs/components/modbus/__init__.pyi +2 -2
  193. homeassistant-stubs/components/modbus/base_platform.pyi +1 -1
  194. homeassistant-stubs/components/modbus/climate.pyi +9 -3
  195. homeassistant-stubs/components/modbus/const.pyi +7 -0
  196. homeassistant-stubs/components/modbus/modbus.pyi +1 -0
  197. homeassistant-stubs/components/modbus/validators.pyi +2 -1
  198. homeassistant-stubs/components/mqtt/__init__.pyi +1 -2
  199. homeassistant-stubs/components/mqtt/client.pyi +30 -9
  200. homeassistant-stubs/components/mqtt/config_flow.pyi +9 -1
  201. homeassistant-stubs/components/mqtt/mixins.pyi +7 -4
  202. homeassistant-stubs/components/mqtt/models.pyi +1 -1
  203. homeassistant-stubs/components/mqtt/notify.pyi +31 -0
  204. homeassistant-stubs/components/netatmo/__init__.pyi +2 -0
  205. homeassistant-stubs/components/netatmo/binary_sensor.pyi +20 -0
  206. homeassistant-stubs/components/netatmo/camera.pyi +8 -11
  207. homeassistant-stubs/components/netatmo/climate.pyi +11 -19
  208. homeassistant-stubs/components/netatmo/cover.pyi +5 -7
  209. homeassistant-stubs/components/netatmo/entity.pyi +40 -10
  210. homeassistant-stubs/components/netatmo/fan.pyi +5 -8
  211. homeassistant-stubs/components/netatmo/light.pyi +11 -19
  212. homeassistant-stubs/components/netatmo/select.pyi +4 -7
  213. homeassistant-stubs/components/netatmo/sensor.pyi +36 -49
  214. homeassistant-stubs/components/netatmo/switch.pyi +5 -7
  215. homeassistant-stubs/components/nextdns/__init__.pyi +1 -38
  216. homeassistant-stubs/components/nextdns/binary_sensor.pyi +1 -1
  217. homeassistant-stubs/components/nextdns/button.pyi +1 -1
  218. homeassistant-stubs/components/nextdns/coordinator.pyi +42 -0
  219. homeassistant-stubs/components/nextdns/sensor.pyi +1 -1
  220. homeassistant-stubs/components/nextdns/switch.pyi +1 -1
  221. homeassistant-stubs/components/nfandroidtv/notify.pyi +2 -1
  222. homeassistant-stubs/components/notify/__init__.pyi +31 -2
  223. homeassistant-stubs/components/notify/const.pyi +2 -0
  224. homeassistant-stubs/components/number/const.pyi +1 -0
  225. homeassistant-stubs/components/number/significant_change.pyi +1 -1
  226. homeassistant-stubs/components/oncue/__init__.pyi +2 -1
  227. homeassistant-stubs/components/oncue/config_flow.pyi +7 -1
  228. homeassistant-stubs/components/open_meteo/weather.pyi +2 -1
  229. homeassistant-stubs/components/prometheus/__init__.pyi +1 -2
  230. homeassistant-stubs/components/proximity/__init__.pyi +1 -1
  231. homeassistant-stubs/components/proximity/coordinator.pyi +2 -2
  232. homeassistant-stubs/components/purpleair/config_flow.pyi +2 -2
  233. homeassistant-stubs/components/rabbitair/config_flow.pyi +4 -4
  234. homeassistant-stubs/components/recorder/__init__.pyi +1 -0
  235. homeassistant-stubs/components/recorder/auto_repairs/states/__init__.pyi +0 -0
  236. homeassistant-stubs/components/recorder/core.pyi +6 -5
  237. homeassistant-stubs/components/recorder/db_schema.pyi +3 -3
  238. homeassistant-stubs/components/recorder/history/__init__.pyi +5 -6
  239. homeassistant-stubs/components/recorder/history/legacy.pyi +7 -7
  240. homeassistant-stubs/components/recorder/history/modern.pyi +7 -7
  241. homeassistant-stubs/components/recorder/models/event.pyi +4 -1
  242. homeassistant-stubs/components/recorder/pool.pyi +1 -1
  243. homeassistant-stubs/components/recorder/services.pyi +1 -0
  244. homeassistant-stubs/components/recorder/statistics.pyi +4 -4
  245. homeassistant-stubs/components/recorder/table_managers/__init__.pyi +4 -3
  246. homeassistant-stubs/components/recorder/table_managers/event_types.pyi +5 -3
  247. homeassistant-stubs/components/recorder/table_managers/state_attributes.pyi +3 -3
  248. homeassistant-stubs/components/recorder/table_managers/states_meta.pyi +2 -2
  249. homeassistant-stubs/components/recorder/table_managers/statistics_meta.pyi +3 -3
  250. homeassistant-stubs/components/recorder/tasks.pyi +2 -1
  251. homeassistant-stubs/components/recorder/websocket_api.pyi +1 -1
  252. homeassistant-stubs/components/rest/__init__.pyi +2 -2
  253. homeassistant-stubs/components/rest/const.pyi +1 -0
  254. homeassistant-stubs/components/rest/data.pyi +1 -0
  255. homeassistant-stubs/components/rest/schema.pyi +1 -1
  256. homeassistant-stubs/components/rfxtrx/__init__.pyi +1 -1
  257. homeassistant-stubs/components/rfxtrx/config_flow.pyi +2 -2
  258. homeassistant-stubs/components/ring/__init__.pyi +25 -0
  259. homeassistant-stubs/components/ring/binary_sensor.pyi +35 -0
  260. homeassistant-stubs/components/ring/button.pyi +20 -0
  261. homeassistant-stubs/components/ring/camera.pyi +43 -0
  262. homeassistant-stubs/components/ring/config_flow.pyi +26 -0
  263. homeassistant-stubs/components/ring/const.pyi +12 -0
  264. homeassistant-stubs/components/ring/coordinator.pyi +25 -0
  265. homeassistant-stubs/components/ring/diagnostics.pyi +11 -0
  266. homeassistant-stubs/components/ring/entity.pyi +33 -0
  267. homeassistant-stubs/components/ring/light.pyi +34 -0
  268. homeassistant-stubs/components/ring/sensor.pyi +39 -0
  269. homeassistant-stubs/components/ring/siren.pyi +23 -0
  270. homeassistant-stubs/components/ring/switch.pyi +31 -0
  271. homeassistant-stubs/components/romy/binary_sensor.pyi +19 -0
  272. homeassistant-stubs/components/romy/config_flow.pyi +7 -7
  273. homeassistant-stubs/components/romy/sensor.pyi +20 -0
  274. homeassistant-stubs/components/sensor/__init__.pyi +1 -1
  275. homeassistant-stubs/components/sensor/significant_change.pyi +1 -1
  276. homeassistant-stubs/components/shelly/__init__.pyi +2 -4
  277. homeassistant-stubs/components/shelly/coordinator.pyi +8 -7
  278. homeassistant-stubs/components/starlink/coordinator.pyi +1 -0
  279. homeassistant-stubs/components/statistics/sensor.pyi +2 -2
  280. homeassistant-stubs/components/switch/light.pyi +2 -2
  281. homeassistant-stubs/components/synology_dsm/__init__.pyi +2 -2
  282. homeassistant-stubs/components/synology_dsm/camera.pyi +3 -2
  283. homeassistant-stubs/components/synology_dsm/common.pyi +6 -2
  284. homeassistant-stubs/components/synology_dsm/coordinator.pyi +4 -4
  285. homeassistant-stubs/components/synology_dsm/diagnostics.pyi +0 -1
  286. homeassistant-stubs/components/system_log/__init__.pyi +3 -3
  287. homeassistant-stubs/components/threshold/binary_sensor.pyi +2 -2
  288. homeassistant-stubs/components/tibber/sensor.pyi +1 -0
  289. homeassistant-stubs/components/tplink/coordinator.pyi +2 -0
  290. homeassistant-stubs/components/tplink/entity.pyi +1 -0
  291. homeassistant-stubs/components/tplink/light.pyi +1 -1
  292. homeassistant-stubs/components/tplink/sensor.pyi +4 -3
  293. homeassistant-stubs/components/tplink_omada/switch.pyi +12 -14
  294. homeassistant-stubs/components/trend/binary_sensor.pyi +2 -2
  295. homeassistant-stubs/components/unifi/__init__.pyi +2 -0
  296. homeassistant-stubs/components/unifi/button.pyi +2 -1
  297. homeassistant-stubs/components/unifi/hub/entity_helper.pyi +44 -0
  298. homeassistant-stubs/components/unifi/hub/hub.pyi +8 -13
  299. homeassistant-stubs/components/unifi/sensor.pyi +2 -1
  300. homeassistant-stubs/components/velbus/cover.pyi +2 -0
  301. homeassistant-stubs/components/weather/significant_change.pyi +1 -1
  302. homeassistant-stubs/components/websocket_api/commands.pyi +2 -2
  303. homeassistant-stubs/components/websocket_api/messages.pyi +1 -2
  304. homeassistant-stubs/components/websocket_api/sensor.pyi +3 -7
  305. homeassistant-stubs/components/withings/__init__.pyi +2 -8
  306. homeassistant-stubs/components/withings/config_flow.pyi +1 -1
  307. homeassistant-stubs/components/withings/const.pyi +0 -2
  308. homeassistant-stubs/components/zone/__init__.pyi +8 -10
  309. homeassistant-stubs/components/zone/trigger.pyi +2 -2
  310. homeassistant-stubs/components/zwave_js/config_flow.pyi +1 -1
  311. homeassistant-stubs/config.pyi +1 -1
  312. homeassistant-stubs/config_entries.pyi +32 -29
  313. homeassistant-stubs/const.pyi +11 -6
  314. homeassistant-stubs/core.pyi +56 -24
  315. homeassistant-stubs/data_entry_flow.pyi +3 -3
  316. homeassistant-stubs/exceptions.pyi +4 -2
  317. homeassistant-stubs/helpers/aiohttp_client.pyi +1 -0
  318. homeassistant-stubs/helpers/area_registry.pyi +28 -6
  319. homeassistant-stubs/helpers/backports/__init__.pyi +0 -0
  320. homeassistant-stubs/helpers/backports/aiohttp_resolver.pyi +21 -0
  321. homeassistant-stubs/helpers/category_registry.pyi +16 -6
  322. homeassistant-stubs/helpers/data_entry_flow.pyi +1 -1
  323. homeassistant-stubs/helpers/deprecation.pyi +5 -0
  324. homeassistant-stubs/helpers/device_registry.pyi +25 -12
  325. homeassistant-stubs/helpers/dispatcher.pyi +1 -1
  326. homeassistant-stubs/helpers/entity.pyi +6 -3
  327. homeassistant-stubs/helpers/entity_registry.pyi +24 -16
  328. homeassistant-stubs/helpers/event.pyi +10 -17
  329. homeassistant-stubs/helpers/floor_registry.pyi +14 -3
  330. homeassistant-stubs/helpers/frame.pyi +2 -2
  331. homeassistant-stubs/helpers/httpx_client.pyi +1 -1
  332. homeassistant-stubs/helpers/icon.pyi +3 -2
  333. homeassistant-stubs/helpers/intent.pyi +1 -2
  334. homeassistant-stubs/helpers/label_registry.pyi +14 -3
  335. homeassistant-stubs/helpers/network.pyi +2 -2
  336. homeassistant-stubs/helpers/normalized_name_base_registry.pyi +4 -6
  337. homeassistant-stubs/helpers/registry.pyi +19 -4
  338. homeassistant-stubs/helpers/reload.pyi +1 -1
  339. homeassistant-stubs/helpers/schema_config_entry_flow.pyi +2 -2
  340. homeassistant-stubs/helpers/service.pyi +4 -1
  341. homeassistant-stubs/helpers/significant_change.pyi +4 -4
  342. homeassistant-stubs/helpers/start.pyi +3 -1
  343. homeassistant-stubs/helpers/template.pyi +6 -3
  344. homeassistant-stubs/helpers/translation.pyi +5 -9
  345. homeassistant-stubs/helpers/typing.pyi +11 -7
  346. homeassistant-stubs/requirements.pyi +2 -0
  347. homeassistant-stubs/setup.pyi +1 -0
  348. homeassistant-stubs/util/async_.pyi +1 -6
  349. homeassistant-stubs/util/dt.pyi +5 -4
  350. homeassistant-stubs/util/event_type.pyi +14 -0
  351. homeassistant-stubs/util/logging.pyi +3 -4
  352. homeassistant-stubs/util/loop.pyi +15 -0
  353. homeassistant-stubs/util/signal_type.pyi +1 -1
  354. homeassistant-stubs/util/timeout.pyi +6 -6
  355. homeassistant-stubs/util/yaml/loader.pyi +3 -4
  356. homeassistant-stubs/util/yaml/objects.pyi +12 -2
  357. {homeassistant_stubs-2024.4.4.dist-info → homeassistant_stubs-2024.5.0b0.dist-info}/METADATA +2 -2
  358. {homeassistant_stubs-2024.4.4.dist-info → homeassistant_stubs-2024.5.0b0.dist-info}/RECORD +360 -303
  359. {homeassistant_stubs-2024.4.4.dist-info → homeassistant_stubs-2024.5.0b0.dist-info}/LICENSE +0 -0
  360. {homeassistant_stubs-2024.4.4.dist-info → homeassistant_stubs-2024.5.0b0.dist-info}/WHEEL +0 -0
@@ -1,13 +1,13 @@
1
1
  from .bluetooth import async_connect_scanner as async_connect_scanner
2
2
  from .const import ATTR_CHANNEL as ATTR_CHANNEL, ATTR_CLICK_TYPE as ATTR_CLICK_TYPE, ATTR_DEVICE as ATTR_DEVICE, ATTR_GENERATION as ATTR_GENERATION, BATTERY_DEVICES_WITH_PERMANENT_CONNECTION as BATTERY_DEVICES_WITH_PERMANENT_CONNECTION, BLEScannerMode as BLEScannerMode, CONF_BLE_SCANNER_MODE as CONF_BLE_SCANNER_MODE, CONF_SLEEP_PERIOD as CONF_SLEEP_PERIOD, DATA_CONFIG_ENTRY as DATA_CONFIG_ENTRY, DOMAIN as DOMAIN, DUAL_MODE_LIGHT_MODELS as DUAL_MODE_LIGHT_MODELS, ENTRY_RELOAD_COOLDOWN as ENTRY_RELOAD_COOLDOWN, EVENT_SHELLY_CLICK as EVENT_SHELLY_CLICK, INPUTS_EVENTS_DICT as INPUTS_EVENTS_DICT, LOGGER as LOGGER, MAX_PUSH_UPDATE_FAILURES as MAX_PUSH_UPDATE_FAILURES, MODELS_SUPPORTING_LIGHT_EFFECTS as MODELS_SUPPORTING_LIGHT_EFFECTS, OTA_BEGIN as OTA_BEGIN, OTA_ERROR as OTA_ERROR, OTA_PROGRESS as OTA_PROGRESS, OTA_SUCCESS as OTA_SUCCESS, PUSH_UPDATE_ISSUE_ID as PUSH_UPDATE_ISSUE_ID, REST_SENSORS_UPDATE_INTERVAL as REST_SENSORS_UPDATE_INTERVAL, RPC_INPUTS_EVENTS_TYPES as RPC_INPUTS_EVENTS_TYPES, RPC_RECONNECT_INTERVAL as RPC_RECONNECT_INTERVAL, RPC_SENSORS_POLLING_INTERVAL as RPC_SENSORS_POLLING_INTERVAL, SHBTN_MODELS as SHBTN_MODELS, SLEEP_PERIOD_MULTIPLIER as SLEEP_PERIOD_MULTIPLIER, UPDATE_PERIOD_MULTIPLIER as UPDATE_PERIOD_MULTIPLIER
3
- from .utils import async_shutdown_device as async_shutdown_device, get_device_entry_gen as get_device_entry_gen, get_http_port as get_http_port, get_rpc_device_wakeup_period as get_rpc_device_wakeup_period, update_device_fw_info as update_device_fw_info
3
+ from .utils import async_create_issue_unsupported_firmware as async_create_issue_unsupported_firmware, async_shutdown_device as async_shutdown_device, get_block_device_sleep_period as get_block_device_sleep_period, get_device_entry_gen as get_device_entry_gen, get_http_port as get_http_port, get_rpc_device_wakeup_period as get_rpc_device_wakeup_period, update_device_fw_info as update_device_fw_info
4
4
  from _typeshed import Incomplete
5
5
  from aioshelly.block_device import BlockDevice, BlockUpdateType
6
6
  from aioshelly.rpc_device import RpcDevice, RpcUpdateType
7
7
  from collections.abc import Callable as Callable
8
8
  from dataclasses import dataclass
9
9
  from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigEntryState as ConfigEntryState
10
- from homeassistant.const import ATTR_DEVICE_ID as ATTR_DEVICE_ID, CONF_HOST as CONF_HOST, EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP
10
+ from homeassistant.const import ATTR_DEVICE_ID as ATTR_DEVICE_ID, CONF_HOST as CONF_HOST, EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP, Platform as Platform
11
11
  from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, Event as Event, HomeAssistant as HomeAssistant, callback as callback
12
12
  from homeassistant.helpers.debounce import Debouncer as Debouncer
13
13
  from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC as CONNECTION_NETWORK_MAC
@@ -19,11 +19,10 @@ _DeviceT = TypeVar('_DeviceT', bound='BlockDevice|RpcDevice')
19
19
  @dataclass
20
20
  class ShellyEntryData:
21
21
  block: ShellyBlockCoordinator | None = ...
22
- device: BlockDevice | RpcDevice | None = ...
23
22
  rest: ShellyRestCoordinator | None = ...
24
23
  rpc: ShellyRpcCoordinator | None = ...
25
24
  rpc_poll: ShellyRpcPollingCoordinator | None = ...
26
- def __init__(self, block, device, rest, rpc, rpc_poll) -> None: ...
25
+ def __init__(self, block, rest, rpc, rpc_poll) -> None: ...
27
26
 
28
27
  def get_entry_data(hass: HomeAssistant) -> dict[str, ShellyEntryData]: ...
29
28
 
@@ -31,6 +30,7 @@ class ShellyCoordinatorBase(DataUpdateCoordinator[None], Generic[_DeviceT]):
31
30
  entry: Incomplete
32
31
  device: Incomplete
33
32
  device_id: Incomplete
33
+ _pending_platforms: Incomplete
34
34
  _debounced_reload: Incomplete
35
35
  def __init__(self, hass: HomeAssistant, entry: ConfigEntry, device: _DeviceT, update_interval: float) -> None: ...
36
36
  @property
@@ -41,7 +41,8 @@ class ShellyCoordinatorBase(DataUpdateCoordinator[None], Generic[_DeviceT]):
41
41
  def sw_version(self) -> str: ...
42
42
  @property
43
43
  def sleep_period(self) -> int: ...
44
- def async_setup(self) -> None: ...
44
+ def async_setup(self, pending_platforms: list[Platform] | None = None) -> None: ...
45
+ async def _async_device_connect(self) -> None: ...
45
46
  async def _async_reload_entry(self) -> None: ...
46
47
  last_update_success: bool
47
48
  async def async_shutdown_device_and_start_reauth(self) -> None: ...
@@ -60,7 +61,7 @@ class ShellyBlockCoordinator(ShellyCoordinatorBase[BlockDevice]):
60
61
  def _async_device_updates_handler(self) -> None: ...
61
62
  async def _async_update_data(self) -> None: ...
62
63
  def _async_handle_update(self, device_: BlockDevice, update_type: BlockUpdateType) -> None: ...
63
- def async_setup(self) -> None: ...
64
+ def async_setup(self, pending_platforms: list[Platform] | None = None) -> None: ...
64
65
  def shutdown(self) -> None: ...
65
66
  def _handle_ha_stop(self, _event: Event) -> None: ...
66
67
 
@@ -91,7 +92,7 @@ class ShellyRpcCoordinator(ShellyCoordinatorBase[RpcDevice]):
91
92
  async def _async_run_connected_events(self) -> None: ...
92
93
  async def _async_connect_ble_scanner(self) -> None: ...
93
94
  def _async_handle_update(self, device_: RpcDevice, update_type: RpcUpdateType) -> None: ...
94
- def async_setup(self) -> None: ...
95
+ def async_setup(self, pending_platforms: list[Platform] | None = None) -> None: ...
95
96
  async def shutdown(self) -> None: ...
96
97
  async def _handle_ha_stop(self, _event: Event) -> None: ...
97
98
 
@@ -20,6 +20,7 @@ class StarlinkUpdateCoordinator(DataUpdateCoordinator[StarlinkData]):
20
20
  channel_context: Incomplete
21
21
  timezone: Incomplete
22
22
  def __init__(self, hass: HomeAssistant, name: str, url: str) -> None: ...
23
+ def _get_starlink_data(self) -> StarlinkData: ...
23
24
  async def _async_update_data(self) -> StarlinkData: ...
24
25
  async def async_stow_starlink(self, stow: bool) -> None: ...
25
26
  async def async_reboot_starlink(self) -> None: ...
@@ -5,9 +5,9 @@ from datetime import datetime, timedelta
5
5
  from homeassistant.components.recorder import get_instance as get_instance, history as history
6
6
  from homeassistant.components.sensor import DEVICE_CLASS_STATE_CLASSES as DEVICE_CLASS_STATE_CLASSES, PLATFORM_SCHEMA as PLATFORM_SCHEMA, SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorStateClass as SensorStateClass
7
7
  from homeassistant.const import ATTR_DEVICE_CLASS as ATTR_DEVICE_CLASS, ATTR_UNIT_OF_MEASUREMENT as ATTR_UNIT_OF_MEASUREMENT, CONF_ENTITY_ID as CONF_ENTITY_ID, CONF_NAME as CONF_NAME, CONF_UNIQUE_ID as CONF_UNIQUE_ID, PERCENTAGE as PERCENTAGE, STATE_UNAVAILABLE as STATE_UNAVAILABLE, STATE_UNKNOWN as STATE_UNKNOWN
8
- from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, Event as Event, HomeAssistant as HomeAssistant, State as State, callback as callback, split_entity_id as split_entity_id
8
+ from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, Event as Event, EventStateChangedData as EventStateChangedData, HomeAssistant as HomeAssistant, State as State, callback as callback, split_entity_id as split_entity_id
9
9
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
10
- from homeassistant.helpers.event import EventStateChangedData as EventStateChangedData, async_track_point_in_utc_time as async_track_point_in_utc_time, async_track_state_change_event as async_track_state_change_event
10
+ from homeassistant.helpers.event import async_track_point_in_utc_time as async_track_point_in_utc_time, async_track_state_change_event as async_track_state_change_event
11
11
  from homeassistant.helpers.reload import async_setup_reload_service as async_setup_reload_service
12
12
  from homeassistant.helpers.start import async_at_start as async_at_start
13
13
  from homeassistant.helpers.typing import ConfigType as ConfigType, DiscoveryInfoType as DiscoveryInfoType, StateType as StateType
@@ -1,9 +1,9 @@
1
1
  from _typeshed import Incomplete
2
2
  from homeassistant.components.light import ColorMode as ColorMode, LightEntity as LightEntity, PLATFORM_SCHEMA as PLATFORM_SCHEMA
3
3
  from homeassistant.const import ATTR_ENTITY_ID as ATTR_ENTITY_ID, CONF_ENTITY_ID as CONF_ENTITY_ID, CONF_NAME as CONF_NAME, SERVICE_TURN_OFF as SERVICE_TURN_OFF, SERVICE_TURN_ON as SERVICE_TURN_ON, STATE_ON as STATE_ON, STATE_UNAVAILABLE as STATE_UNAVAILABLE
4
- from homeassistant.core import Event as Event, HomeAssistant as HomeAssistant, callback as callback
4
+ from homeassistant.core import Event as Event, EventStateChangedData as EventStateChangedData, HomeAssistant as HomeAssistant, callback as callback
5
5
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
6
- from homeassistant.helpers.event import EventStateChangedData as EventStateChangedData, async_track_state_change_event as async_track_state_change_event
6
+ from homeassistant.helpers.event import async_track_state_change_event as async_track_state_change_event
7
7
  from homeassistant.helpers.typing import ConfigType as ConfigType, DiscoveryInfoType as DiscoveryInfoType
8
8
  from typing import Any
9
9
 
@@ -1,4 +1,4 @@
1
- from .common import SynoApi as SynoApi
1
+ from .common import SynoApi as SynoApi, raise_config_entry_auth_error as raise_config_entry_auth_error
2
2
  from .const import DEFAULT_VERIFY_SSL as DEFAULT_VERIFY_SSL, DOMAIN as DOMAIN, EXCEPTION_DETAILS as EXCEPTION_DETAILS, EXCEPTION_UNKNOWN as EXCEPTION_UNKNOWN, PLATFORMS as PLATFORMS, SYNOLOGY_AUTH_FAILED_EXCEPTIONS as SYNOLOGY_AUTH_FAILED_EXCEPTIONS, SYNOLOGY_CONNECTION_EXCEPTIONS as SYNOLOGY_CONNECTION_EXCEPTIONS
3
3
  from .coordinator import SynologyDSMCameraUpdateCoordinator as SynologyDSMCameraUpdateCoordinator, SynologyDSMCentralUpdateCoordinator as SynologyDSMCentralUpdateCoordinator, SynologyDSMSwitchUpdateCoordinator as SynologyDSMSwitchUpdateCoordinator
4
4
  from .models import SynologyDSMData as SynologyDSMData
@@ -7,7 +7,7 @@ from _typeshed import Incomplete
7
7
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
8
  from homeassistant.const import CONF_MAC as CONF_MAC, CONF_VERIFY_SSL as CONF_VERIFY_SSL
9
9
  from homeassistant.core import HomeAssistant as HomeAssistant
10
- from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryNotReady as ConfigEntryNotReady
10
+ from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady
11
11
  from homeassistant.helpers import device_registry as dr
12
12
  from synology_dsm.api.surveillance_station.camera import SynoCamera as SynoCamera
13
13
 
@@ -17,7 +17,8 @@ _LOGGER: Incomplete
17
17
 
18
18
  @dataclass(frozen=True, kw_only=True)
19
19
  class SynologyDSMCameraEntityDescription(CameraEntityDescription, SynologyDSMEntityDescription):
20
- def __init__(self, *, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, translation_placeholders, unit_of_measurement, api_key) -> None: ...
20
+ camera_id: int
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, api_key, camera_id) -> None: ...
21
22
 
22
23
  async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
23
24
 
@@ -25,7 +26,7 @@ class SynoDSMCamera(SynologyDSMBaseEntity[SynologyDSMCameraUpdateCoordinator], C
25
26
  _attr_supported_features: Incomplete
26
27
  entity_description: SynologyDSMCameraEntityDescription
27
28
  snapshot_quality: Incomplete
28
- def __init__(self, api: SynoApi, coordinator: SynologyDSMCameraUpdateCoordinator, camera_id: str) -> None: ...
29
+ def __init__(self, api: SynoApi, coordinator: SynologyDSMCameraUpdateCoordinator, camera_id: int) -> None: ...
29
30
  @property
30
31
  def camera_data(self) -> SynoCamera: ...
31
32
  @property
@@ -1,20 +1,22 @@
1
- from .const import CONF_DEVICE_TOKEN as CONF_DEVICE_TOKEN, SYNOLOGY_CONNECTION_EXCEPTIONS as SYNOLOGY_CONNECTION_EXCEPTIONS
1
+ from .const import CONF_DEVICE_TOKEN as CONF_DEVICE_TOKEN, EXCEPTION_DETAILS as EXCEPTION_DETAILS, EXCEPTION_UNKNOWN as EXCEPTION_UNKNOWN, SYNOLOGY_CONNECTION_EXCEPTIONS as SYNOLOGY_CONNECTION_EXCEPTIONS
2
2
  from _typeshed import Incomplete
3
3
  from collections.abc import Callable as Callable
4
4
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
5
5
  from homeassistant.const import CONF_HOST as CONF_HOST, CONF_PASSWORD as CONF_PASSWORD, CONF_PORT as CONF_PORT, CONF_SSL as CONF_SSL, CONF_TIMEOUT as CONF_TIMEOUT, CONF_USERNAME as CONF_USERNAME, CONF_VERIFY_SSL as CONF_VERIFY_SSL
6
6
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
7
+ from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed
7
8
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
9
+ from synology_dsm import SynologyDSM
8
10
  from synology_dsm.api.dsm.network import SynoDSMNetwork as SynoDSMNetwork
9
11
  from synology_dsm.api.photos import SynoPhotos as SynoPhotos
10
12
 
11
13
  LOGGER: Incomplete
12
14
 
13
15
  class SynoApi:
16
+ dsm: SynologyDSM
14
17
  _hass: Incomplete
15
18
  _entry: Incomplete
16
19
  config_url: Incomplete
17
- dsm: Incomplete
18
20
  information: Incomplete
19
21
  network: Incomplete
20
22
  security: Incomplete
@@ -44,3 +46,5 @@ class SynoApi:
44
46
  async def async_unload(self) -> None: ...
45
47
  async def async_update(self) -> None: ...
46
48
  async def _update(self) -> None: ...
49
+
50
+ def raise_config_entry_auth_error(err: Exception) -> None: ...
@@ -1,5 +1,5 @@
1
- from .common import SynoApi as SynoApi
2
- from .const import DEFAULT_SCAN_INTERVAL as DEFAULT_SCAN_INTERVAL, SIGNAL_CAMERA_SOURCE_CHANGED as SIGNAL_CAMERA_SOURCE_CHANGED, SYNOLOGY_CONNECTION_EXCEPTIONS as SYNOLOGY_CONNECTION_EXCEPTIONS
1
+ from .common import SynoApi as SynoApi, raise_config_entry_auth_error as raise_config_entry_auth_error
2
+ from .const import DEFAULT_SCAN_INTERVAL as DEFAULT_SCAN_INTERVAL, SIGNAL_CAMERA_SOURCE_CHANGED as SIGNAL_CAMERA_SOURCE_CHANGED, SYNOLOGY_AUTH_FAILED_EXCEPTIONS as SYNOLOGY_AUTH_FAILED_EXCEPTIONS, SYNOLOGY_CONNECTION_EXCEPTIONS as SYNOLOGY_CONNECTION_EXCEPTIONS
3
3
  from _typeshed import Incomplete
4
4
  from datetime import timedelta
5
5
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
@@ -28,6 +28,6 @@ class SynologyDSMCentralUpdateCoordinator(SynologyDSMUpdateCoordinator[None]):
28
28
  def __init__(self, hass: HomeAssistant, entry: ConfigEntry, api: SynoApi) -> None: ...
29
29
  async def _async_update_data(self) -> None: ...
30
30
 
31
- class SynologyDSMCameraUpdateCoordinator(SynologyDSMUpdateCoordinator[dict[str, dict[str, SynoCamera]]]):
31
+ class SynologyDSMCameraUpdateCoordinator(SynologyDSMUpdateCoordinator[dict[str, dict[int, SynoCamera]]]):
32
32
  def __init__(self, hass: HomeAssistant, entry: ConfigEntry, api: SynoApi) -> None: ...
33
- async def _async_update_data(self) -> dict[str, dict[str, SynoCamera]]: ...
33
+ async def _async_update_data(self) -> dict[str, dict[int, SynoCamera]]: ...
@@ -5,7 +5,6 @@ from homeassistant.components.diagnostics import async_redact_data as async_reda
5
5
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
6
6
  from homeassistant.const import CONF_PASSWORD as CONF_PASSWORD, CONF_USERNAME as CONF_USERNAME
7
7
  from homeassistant.core import HomeAssistant as HomeAssistant
8
- from synology_dsm.api.surveillance_station.camera import SynoCamera as SynoCamera
9
8
  from typing import Any
10
9
 
11
10
  TO_REDACT: Incomplete
@@ -1,12 +1,12 @@
1
1
  import logging
2
2
  import re
3
- import traceback
4
3
  from _typeshed import Incomplete
5
4
  from collections import OrderedDict
6
5
  from homeassistant.components import websocket_api as websocket_api
7
6
  from homeassistant.const import EVENT_HOMEASSISTANT_CLOSE as EVENT_HOMEASSISTANT_CLOSE
8
7
  from homeassistant.core import Event as Event, HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, callback as callback
9
8
  from homeassistant.helpers.typing import ConfigType as ConfigType
9
+ from types import FrameType
10
10
  from typing import Any
11
11
 
12
12
  KeyType: Incomplete
@@ -26,7 +26,7 @@ CONFIG_SCHEMA: Incomplete
26
26
  SERVICE_CLEAR_SCHEMA: Incomplete
27
27
  SERVICE_WRITE_SCHEMA: Incomplete
28
28
 
29
- def _figure_out_source(record: logging.LogRecord, paths_re: re.Pattern[str], extracted_tb: traceback.StackSummary | None = None) -> tuple[str, int]: ...
29
+ def _figure_out_source(record: logging.LogRecord, paths_re: re.Pattern[str], extracted_tb: list[tuple[FrameType, int]] | None = None) -> tuple[str, int]: ...
30
30
  def _safe_get_message(record: logging.LogRecord) -> str: ...
31
31
 
32
32
  class LogEntry:
@@ -40,7 +40,7 @@ class LogEntry:
40
40
  source: Incomplete
41
41
  count: int
42
42
  key: Incomplete
43
- def __init__(self, record: logging.LogRecord, paths_re: re.Pattern, figure_out_source: bool = False) -> None: ...
43
+ def __init__(self, record: logging.LogRecord, paths_re: re.Pattern, formatter: logging.Formatter | None = None, figure_out_source: bool = False) -> None: ...
44
44
  def to_dict(self) -> dict[str, Any]: ...
45
45
 
46
46
  class DedupStore(OrderedDict[KeyType, LogEntry]):
@@ -3,10 +3,10 @@ from _typeshed import Incomplete
3
3
  from homeassistant.components.binary_sensor import BinarySensorDeviceClass as BinarySensorDeviceClass, BinarySensorEntity as BinarySensorEntity, DEVICE_CLASSES_SCHEMA as DEVICE_CLASSES_SCHEMA, PLATFORM_SCHEMA as PLATFORM_SCHEMA
4
4
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
5
5
  from homeassistant.const import ATTR_ENTITY_ID as ATTR_ENTITY_ID, CONF_DEVICE_CLASS as CONF_DEVICE_CLASS, CONF_ENTITY_ID as CONF_ENTITY_ID, CONF_NAME as CONF_NAME, STATE_UNAVAILABLE as STATE_UNAVAILABLE, STATE_UNKNOWN as STATE_UNKNOWN
6
- from homeassistant.core import Event as Event, HomeAssistant as HomeAssistant, callback as callback
6
+ from homeassistant.core import Event as Event, EventStateChangedData as EventStateChangedData, HomeAssistant as HomeAssistant, callback as callback
7
7
  from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
8
8
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
9
- from homeassistant.helpers.event import EventStateChangedData as EventStateChangedData, async_track_state_change_event as async_track_state_change_event
9
+ from homeassistant.helpers.event import async_track_state_change_event as async_track_state_change_event
10
10
  from homeassistant.helpers.typing import ConfigType as ConfigType, DiscoveryInfoType as DiscoveryInfoType
11
11
  from typing import Any
12
12
 
@@ -16,6 +16,7 @@ from homeassistant.helpers.update_coordinator import CoordinatorEntity as Coordi
16
16
  from homeassistant.util import Throttle as Throttle
17
17
  from typing import Any
18
18
 
19
+ FIVE_YEARS: Incomplete
19
20
  _LOGGER: Incomplete
20
21
  ICON: str
21
22
  SCAN_INTERVAL: Incomplete
@@ -1,5 +1,6 @@
1
1
  from _typeshed import Incomplete
2
2
  from datetime import timedelta
3
+ from homeassistant import config_entries as config_entries
3
4
  from homeassistant.core import HomeAssistant as HomeAssistant
4
5
  from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed
5
6
  from homeassistant.helpers.debounce import Debouncer as Debouncer
@@ -10,6 +11,7 @@ _LOGGER: Incomplete
10
11
  REQUEST_REFRESH_DELAY: float
11
12
 
12
13
  class TPLinkDataUpdateCoordinator(DataUpdateCoordinator[None]):
14
+ config_entry: config_entries.ConfigEntry
13
15
  device: Incomplete
14
16
  def __init__(self, hass: HomeAssistant, device: SmartDevice, update_interval: timedelta) -> None: ...
15
17
  async def _async_update_data(self) -> None: ...
@@ -2,6 +2,7 @@ from .const import DOMAIN as DOMAIN
2
2
  from .coordinator import TPLinkDataUpdateCoordinator as TPLinkDataUpdateCoordinator
3
3
  from _typeshed import Incomplete
4
4
  from collections.abc import Awaitable, Callable as Callable, Coroutine
5
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
5
6
  from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
6
7
  from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
7
8
  from kasa import SmartDevice as SmartDevice
@@ -40,7 +40,7 @@ class TPLinkSmartBulb(CoordinatedTPLinkEntity, LightEntity):
40
40
  def __init__(self, device: SmartBulb, coordinator: TPLinkDataUpdateCoordinator) -> None: ...
41
41
  def _async_extract_brightness_transition(self, **kwargs: Any) -> tuple[int | None, int | None]: ...
42
42
  async def _async_set_hsv(self, hs_color: tuple[int, int], brightness: int | None, transition: int | None) -> None: ...
43
- async def _async_set_color_temp(self, color_temp: float | int, brightness: int | None, transition: int | None) -> None: ...
43
+ async def _async_set_color_temp(self, color_temp: float, brightness: int | None, transition: int | None) -> None: ...
44
44
  async def _async_turn_on_with_brightness(self, brightness: int | None, transition: int | None) -> None: ...
45
45
  async def async_turn_on(self, **kwargs: Any) -> None: ...
46
46
  async def async_turn_off(self, **kwargs: Any) -> None: ...
@@ -8,7 +8,7 @@ from dataclasses import dataclass
8
8
  from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
9
9
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
10
10
  from homeassistant.const import ATTR_VOLTAGE as ATTR_VOLTAGE, UnitOfElectricCurrent as UnitOfElectricCurrent, UnitOfElectricPotential as UnitOfElectricPotential, UnitOfEnergy as UnitOfEnergy, UnitOfPower as UnitOfPower
11
- from homeassistant.core import HomeAssistant as HomeAssistant
11
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
12
12
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
13
13
  from kasa import SmartDevice as SmartDevice
14
14
 
@@ -30,5 +30,6 @@ class SmartPlugSensor(CoordinatedTPLinkEntity, SensorEntity):
30
30
  _attr_translation_placeholders: Incomplete
31
31
  _attr_translation_key: Incomplete
32
32
  def __init__(self, device: SmartDevice, coordinator: TPLinkDataUpdateCoordinator, description: TPLinkSensorEntityDescription, has_parent: bool = False) -> None: ...
33
- @property
34
- def native_value(self) -> float | None: ...
33
+ _attr_native_value: Incomplete
34
+ def _async_update_attrs(self) -> None: ...
35
+ def _handle_coordinator_update(self) -> None: ...
@@ -24,28 +24,27 @@ def _get_switch_port_base_name(port: OmadaSwitchPortDetails) -> str: ...
24
24
  @dataclass(frozen=True, kw_only=True)
25
25
  class OmadaDevicePortSwitchEntityDescription(SwitchEntityDescription, Generic[TCoordinator, TDevice, TPort]):
26
26
  exists_func: Callable[[TDevice, TPort], bool] = ...
27
- coordinator_update_func: Callable[[TCoordinator, TDevice, int | str], TPort | None] = ...
28
- set_func: Callable[[OmadaSiteClient, TDevice, TPort, bool], Awaitable[TPort]]
27
+ coordinator_update_func: Callable[[TCoordinator, TDevice, TPort], TPort | None]
28
+ set_func: Callable[[OmadaSiteClient, TDevice, TPort, bool], Awaitable[TPort | None]]
29
29
  update_func: Callable[[TPort], bool]
30
- refresh_after_set: bool = ...
31
- def __init__(self, *, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, translation_placeholders, unit_of_measurement, exists_func, coordinator_update_func, set_func, update_func, refresh_after_set) -> None: ...
30
+ 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, exists_func, coordinator_update_func, set_func, update_func) -> None: ...
32
31
 
33
32
  @dataclass(frozen=True, kw_only=True)
34
33
  class OmadaSwitchPortSwitchEntityDescription(OmadaDevicePortSwitchEntityDescription[OmadaSwitchPortCoordinator, OmadaSwitch, OmadaSwitchPortDetails]):
35
- coordinator_update_func: Callable[[OmadaSwitchPortCoordinator, OmadaSwitch, int | str], OmadaSwitchPortDetails | None] = ...
36
- 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, exists_func, coordinator_update_func, set_func, update_func, refresh_after_set) -> None: ...
34
+ coordinator_update_func: Callable[[OmadaSwitchPortCoordinator, OmadaSwitch, OmadaSwitchPortDetails], OmadaSwitchPortDetails | None] = ...
35
+ 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, exists_func, coordinator_update_func, set_func, update_func) -> None: ...
37
36
 
38
37
  @dataclass(frozen=True, kw_only=True)
39
38
  class OmadaGatewayPortConfigSwitchEntityDescription(OmadaDevicePortSwitchEntityDescription[OmadaGatewayCoordinator, OmadaGateway, OmadaGatewayPortConfig]):
40
- coordinator_update_func: Callable[[OmadaGatewayCoordinator, OmadaGateway, int | str], OmadaGatewayPortConfig | None] = ...
41
- def __init__(self, *, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, translation_placeholders, unit_of_measurement, exists_func, coordinator_update_func, set_func, update_func, refresh_after_set) -> None: ...
39
+ coordinator_update_func: Callable[[OmadaGatewayCoordinator, OmadaGateway, OmadaGatewayPortConfig], OmadaGatewayPortConfig | None] = ...
40
+ 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, exists_func, coordinator_update_func, set_func, update_func) -> None: ...
42
41
 
43
42
  @dataclass(frozen=True, kw_only=True)
44
43
  class OmadaGatewayPortStatusSwitchEntityDescription(OmadaDevicePortSwitchEntityDescription[OmadaGatewayCoordinator, OmadaGateway, OmadaGatewayPortStatus]):
45
- coordinator_update_func: Callable[[OmadaGatewayCoordinator, OmadaGateway, int | str], OmadaGatewayPortStatus] = ...
46
- 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, exists_func, coordinator_update_func, set_func, update_func, refresh_after_set) -> None: ...
44
+ coordinator_update_func: Callable[[OmadaGatewayCoordinator, OmadaGateway, OmadaGatewayPortStatus], OmadaGatewayPortStatus] = ...
45
+ def __init__(self, *, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, translation_placeholders, unit_of_measurement, exists_func, coordinator_update_func, set_func, update_func) -> None: ...
47
46
 
48
- def _wan_connect_disconnect(client: OmadaSiteClient, device: OmadaDevice, port: OmadaGatewayPortStatus, enable: bool, ipv6: bool) -> Awaitable[OmadaGatewayPortStatus]: ...
47
+ async def _wan_connect_disconnect(client: OmadaSiteClient, device: OmadaDevice, port: OmadaGatewayPortStatus, enable: bool, ipv6: bool) -> None: ...
49
48
 
50
49
  SWITCH_PORT_DETAILS_SWITCHES: list[OmadaSwitchPortSwitchEntityDescription]
51
50
  GATEWAY_PORT_STATUS_SWITCHES: list[OmadaGatewayPortStatusSwitchEntityDescription]
@@ -53,13 +52,12 @@ GATEWAY_PORT_CONFIG_SWITCHES: list[OmadaGatewayPortConfigSwitchEntityDescription
53
52
 
54
53
  class OmadaDevicePortSwitchEntity(OmadaDeviceEntity[TCoordinator], SwitchEntity, Generic[TCoordinator, TDevice, TPort]):
55
54
  _attr_has_entity_name: bool
56
- _port_details: TPort | None
57
55
  entity_description: OmadaDevicePortSwitchEntityDescription[TCoordinator, TDevice, TPort]
58
56
  _device: Incomplete
59
- _port_id: Incomplete
57
+ _port_details: Incomplete
60
58
  _attr_unique_id: Incomplete
61
59
  _attr_translation_placeholders: Incomplete
62
- def __init__(self, coordinator: TCoordinator, device: TDevice, port_id: int | str, entity_description: OmadaDevicePortSwitchEntityDescription[TCoordinator, TDevice, TPort], port_name: str | None = None) -> None: ...
60
+ def __init__(self, coordinator: TCoordinator, device: TDevice, port_details: TPort, port_id: str, entity_description: OmadaDevicePortSwitchEntityDescription[TCoordinator, TDevice, TPort], port_name: str | None = None) -> None: ...
63
61
  async def async_added_to_hass(self) -> None: ...
64
62
  _attr_is_on: Incomplete
65
63
  async def _async_turn_on_off(self, enable: bool) -> None: ...
@@ -5,10 +5,10 @@ from collections.abc import Mapping
5
5
  from homeassistant.components.binary_sensor import BinarySensorDeviceClass as BinarySensorDeviceClass, BinarySensorEntity as BinarySensorEntity, DEVICE_CLASSES_SCHEMA as DEVICE_CLASSES_SCHEMA, ENTITY_ID_FORMAT as ENTITY_ID_FORMAT, PLATFORM_SCHEMA as PLATFORM_SCHEMA
6
6
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
7
  from homeassistant.const import ATTR_ENTITY_ID as ATTR_ENTITY_ID, ATTR_FRIENDLY_NAME as ATTR_FRIENDLY_NAME, CONF_ATTRIBUTE as CONF_ATTRIBUTE, CONF_DEVICE_CLASS as CONF_DEVICE_CLASS, CONF_ENTITY_ID as CONF_ENTITY_ID, CONF_FRIENDLY_NAME as CONF_FRIENDLY_NAME, CONF_SENSORS as CONF_SENSORS, STATE_ON as STATE_ON, STATE_UNAVAILABLE as STATE_UNAVAILABLE, STATE_UNKNOWN as STATE_UNKNOWN
8
- from homeassistant.core import Event as Event, HomeAssistant as HomeAssistant, callback as callback
8
+ from homeassistant.core import Event as Event, EventStateChangedData as EventStateChangedData, HomeAssistant as HomeAssistant, callback as callback
9
9
  from homeassistant.helpers.entity import generate_entity_id as generate_entity_id
10
10
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
11
- from homeassistant.helpers.event import EventStateChangedData as EventStateChangedData, async_track_state_change_event as async_track_state_change_event
11
+ from homeassistant.helpers.event import async_track_state_change_event as async_track_state_change_event
12
12
  from homeassistant.helpers.reload import async_setup_reload_service as async_setup_reload_service
13
13
  from homeassistant.helpers.restore_state import RestoreEntity as RestoreEntity
14
14
  from homeassistant.helpers.typing import ConfigType as ConfigType, DiscoveryInfoType as DiscoveryInfoType
@@ -8,6 +8,7 @@ from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
8
  from homeassistant.const import EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP
9
9
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
10
10
  from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryNotReady as ConfigEntryNotReady
11
+ from homeassistant.helpers.device_registry import DeviceEntry as DeviceEntry
11
12
  from homeassistant.helpers.storage import Store as Store
12
13
  from homeassistant.helpers.typing import ConfigType as ConfigType
13
14
 
@@ -19,6 +20,7 @@ CONFIG_SCHEMA: Incomplete
19
20
  async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
20
21
  async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> bool: ...
21
22
  async def async_unload_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> bool: ...
23
+ async def async_remove_config_entry_device(hass: HomeAssistant, config_entry: ConfigEntry, device_entry: DeviceEntry) -> bool: ...
22
24
 
23
25
  class UnifiWirelessClients:
24
26
  hass: Incomplete
@@ -1,5 +1,5 @@
1
1
  import aiounifi
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
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, async_wlan_available_fn as async_wlan_available_fn, async_wlan_device_info_fn as async_wlan_device_info_fn
3
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
@@ -14,6 +14,7 @@ from typing import Any
14
14
 
15
15
  async def async_restart_device_control_fn(api: aiounifi.Controller, obj_id: str) -> None: ...
16
16
  async def async_power_cycle_port_control_fn(api: aiounifi.Controller, obj_id: str) -> None: ...
17
+ async def async_regenerate_password_control_fn(api: aiounifi.Controller, obj_id: str) -> None: ...
17
18
 
18
19
  @dataclass(frozen=True, kw_only=True)
19
20
  class UnifiButtonEntityDescription(ButtonEntityDescription, UnifiEntityDescription[HandlerT, ApiItemT]):
@@ -0,0 +1,44 @@
1
+ import aiounifi
2
+ from _typeshed import Incomplete
3
+ from datetime import datetime
4
+ from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, HomeAssistant as HomeAssistant, callback as callback
5
+ from homeassistant.helpers.dispatcher import async_dispatcher_send as async_dispatcher_send
6
+ from homeassistant.helpers.event import async_call_later as async_call_later, async_track_time_interval as async_track_time_interval
7
+
8
+ class UnifiEntityHelper:
9
+ hass: Incomplete
10
+ api: Incomplete
11
+ _device_command: Incomplete
12
+ _heartbeat: Incomplete
13
+ def __init__(self, hass: HomeAssistant, api: aiounifi.Controller) -> None: ...
14
+ def reset(self) -> None: ...
15
+ def initialize(self) -> None: ...
16
+ @property
17
+ def signal_heartbeat(self) -> str: ...
18
+ def update_heartbeat(self, unique_id: str, heartbeat_expire_time: datetime) -> None: ...
19
+ def remove_heartbeat(self, unique_id: str) -> None: ...
20
+ def queue_poe_port_command(self, device_id: str, port_idx: int, poe_mode: str) -> None: ...
21
+
22
+ class UnifiEntityHeartbeat:
23
+ CHECK_HEARTBEAT_INTERVAL: Incomplete
24
+ hass: Incomplete
25
+ _cancel_heartbeat_check: Incomplete
26
+ _heartbeat_time: Incomplete
27
+ def __init__(self, hass: HomeAssistant) -> None: ...
28
+ def reset(self) -> None: ...
29
+ def initialize(self) -> None: ...
30
+ @property
31
+ def signal(self) -> str: ...
32
+ def update(self, unique_id: str, heartbeat_expire_time: datetime) -> None: ...
33
+ def remove(self, unique_id: str) -> None: ...
34
+ def _check_for_stale(self, *_: datetime) -> None: ...
35
+
36
+ class UnifiDeviceCommand:
37
+ COMMAND_DELAY: int
38
+ hass: Incomplete
39
+ api: Incomplete
40
+ _command_queue: Incomplete
41
+ _cancel_command: Incomplete
42
+ def __init__(self, hass: HomeAssistant, api: aiounifi.Controller) -> None: ...
43
+ def reset(self) -> None: ...
44
+ def queue_poe_command(self, device_id: str, port_idx: int, poe_mode: str) -> None: ...
@@ -1,45 +1,40 @@
1
1
  import aiounifi
2
2
  from ..const import ATTR_MANUFACTURER as ATTR_MANUFACTURER, CONF_SITE_ID as CONF_SITE_ID, PLATFORMS as PLATFORMS
3
3
  from .config import UnifiConfig as UnifiConfig
4
+ from .entity_helper import UnifiEntityHelper as UnifiEntityHelper
4
5
  from .entity_loader import UnifiEntityLoader as UnifiEntityLoader
5
6
  from .websocket import UnifiWebsocket as UnifiWebsocket
6
7
  from _typeshed import Incomplete
7
8
  from datetime import datetime
8
9
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
9
- from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, Event as Event, HomeAssistant as HomeAssistant, callback as callback
10
+ from homeassistant.core import Event as Event, HomeAssistant as HomeAssistant, callback as callback
10
11
  from homeassistant.helpers.device_registry import DeviceEntry as DeviceEntry, DeviceEntryType as DeviceEntryType, DeviceInfo as DeviceInfo
11
12
  from homeassistant.helpers.dispatcher import async_dispatcher_send as async_dispatcher_send
12
- from homeassistant.helpers.event import async_call_later as async_call_later, async_track_time_interval as async_track_time_interval
13
-
14
- CHECK_HEARTBEAT_INTERVAL: Incomplete
15
13
 
16
14
  class UnifiHub:
17
15
  hass: Incomplete
18
16
  api: Incomplete
19
17
  config: Incomplete
20
18
  entity_loader: Incomplete
19
+ _entity_helper: Incomplete
21
20
  websocket: Incomplete
22
21
  site: Incomplete
23
22
  is_admin: bool
24
- _cancel_heartbeat_check: Incomplete
25
- _heartbeat_time: Incomplete
26
- poe_command_queue: Incomplete
27
- _cancel_poe_command: Incomplete
28
23
  def __init__(self, hass: HomeAssistant, config_entry: ConfigEntry, api: aiounifi.Controller) -> None: ...
29
24
  @staticmethod
30
25
  def get_hub(hass: HomeAssistant, config_entry: ConfigEntry) -> UnifiHub: ...
31
26
  @property
32
27
  def available(self) -> bool: ...
33
28
  @property
29
+ def signal_heartbeat_missed(self) -> str: ...
30
+ def update_heartbeat(self, unique_id: str, heartbeat_expire_time: datetime) -> None: ...
31
+ def remove_heartbeat(self, unique_id: str) -> None: ...
32
+ def queue_poe_port_command(self, device_id: str, port_idx: int, poe_mode: str) -> None: ...
33
+ @property
34
34
  def signal_reachable(self) -> str: ...
35
35
  @property
36
36
  def signal_options_update(self) -> str: ...
37
- @property
38
- def signal_heartbeat_missed(self) -> str: ...
39
37
  async def initialize(self) -> None: ...
40
- def async_heartbeat(self, unique_id: str, heartbeat_expire_time: datetime | None = None) -> None: ...
41
- def _async_check_for_stale(self, *_: datetime) -> None: ...
42
- def async_queue_poe_port_command(self, device_id: str, port_idx: int, poe_mode: str) -> None: ...
43
38
  @property
44
39
  def device_info(self) -> DeviceInfo: ...
45
40
  def async_update_device_registry(self) -> DeviceEntry: ...
@@ -13,7 +13,7 @@ from datetime import date, datetime
13
13
  from decimal import Decimal
14
14
  from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass, UnitOfTemperature as UnitOfTemperature
15
15
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
16
- from homeassistant.const import EntityCategory as EntityCategory, UnitOfDataRate as UnitOfDataRate, UnitOfPower as UnitOfPower
16
+ from homeassistant.const import EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE, UnitOfDataRate as UnitOfDataRate, UnitOfPower as UnitOfPower
17
17
  from homeassistant.core import Event as core_Event, HomeAssistant as HomeAssistant, callback as callback
18
18
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
19
19
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
@@ -29,6 +29,7 @@ def async_device_uptime_value_fn(hub: UnifiHub, device: Device) -> datetime | No
29
29
  def async_device_uptime_value_changed_fn(old: StateType | date | datetime | Decimal, new: datetime | float | str | None) -> bool: ...
30
30
  def async_device_outlet_power_supported_fn(hub: UnifiHub, obj_id: str) -> bool: ...
31
31
  def async_device_outlet_supported_fn(hub: UnifiHub, obj_id: str) -> bool: ...
32
+ def device_system_stats_supported_fn(stat_index: int, hub: UnifiHub, obj_id: str) -> bool: ...
32
33
  def async_client_is_connected_fn(hub: UnifiHub, obj_id: str) -> bool: ...
33
34
  def async_device_state_value_fn(hub: UnifiHub, device: Device) -> str: ...
34
35
 
@@ -12,7 +12,9 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_e
12
12
 
13
13
  class VelbusCover(VelbusEntity, CoverEntity):
14
14
  _channel: VelbusBlind
15
+ _assumed_closed: bool
15
16
  _attr_supported_features: Incomplete
17
+ _attr_assumed_state: bool
16
18
  def __init__(self, channel: VelbusBlind) -> None: ...
17
19
  @property
18
20
  def is_closed(self) -> bool | None: ...
@@ -7,5 +7,5 @@ from typing import Any
7
7
  SIGNIFICANT_ATTRIBUTES: set[str]
8
8
  VALID_CARDINAL_DIRECTIONS: list[str]
9
9
 
10
- def _cardinal_to_degrees(value: str | int | float | None) -> int | float | None: ...
10
+ def _cardinal_to_degrees(value: str | float | None) -> int | float | None: ...
11
11
  def async_check_significant_change(hass: HomeAssistant, old_state: str, old_attrs: dict, new_state: str, new_attrs: dict, **kwargs: Any) -> bool | None: ...
@@ -7,11 +7,11 @@ from homeassistant.auth.models import User as User
7
7
  from homeassistant.auth.permissions.const import POLICY_READ as POLICY_READ
8
8
  from homeassistant.auth.permissions.events import SUBSCRIBE_ALLOWLIST as SUBSCRIBE_ALLOWLIST
9
9
  from homeassistant.const import EVENT_STATE_CHANGED as EVENT_STATE_CHANGED, MATCH_ALL as MATCH_ALL, SIGNAL_BOOTSTRAP_INTEGRATIONS as SIGNAL_BOOTSTRAP_INTEGRATIONS
10
- from homeassistant.core import Context as Context, Event as Event, HomeAssistant as HomeAssistant, ServiceResponse as ServiceResponse, State as State, callback as callback
10
+ from homeassistant.core import Context as Context, Event as Event, EventStateChangedData as EventStateChangedData, HomeAssistant as HomeAssistant, ServiceResponse as ServiceResponse, State as State, callback as callback
11
11
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, ServiceNotFound as ServiceNotFound, ServiceValidationError as ServiceValidationError, TemplateError as TemplateError, Unauthorized as Unauthorized
12
12
  from homeassistant.helpers import entity as entity, template as template
13
13
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
14
- from homeassistant.helpers.event import EventStateChangedData as EventStateChangedData, TrackTemplate as TrackTemplate, TrackTemplateResult as TrackTemplateResult, async_track_template_result as async_track_template_result
14
+ from homeassistant.helpers.event import TrackTemplate as TrackTemplate, TrackTemplateResult as TrackTemplateResult, async_track_template_result as async_track_template_result
15
15
  from homeassistant.helpers.json import ExtendedJSONEncoder as ExtendedJSONEncoder, JSON_DUMP as JSON_DUMP, find_paths_unserializable_data as find_paths_unserializable_data, json_bytes as json_bytes
16
16
  from homeassistant.helpers.service import async_get_all_descriptions as async_get_all_descriptions
17
17
  from homeassistant.loader import Integration as Integration, IntegrationNotFound as IntegrationNotFound, async_get_integration as async_get_integration, async_get_integration_descriptions as async_get_integration_descriptions, async_get_integrations as async_get_integrations
@@ -1,8 +1,7 @@
1
1
  from . import const as const
2
2
  from _typeshed import Incomplete
3
3
  from homeassistant.const import COMPRESSED_STATE_ATTRIBUTES as COMPRESSED_STATE_ATTRIBUTES, COMPRESSED_STATE_CONTEXT as COMPRESSED_STATE_CONTEXT, COMPRESSED_STATE_LAST_CHANGED as COMPRESSED_STATE_LAST_CHANGED, COMPRESSED_STATE_LAST_UPDATED as COMPRESSED_STATE_LAST_UPDATED, COMPRESSED_STATE_STATE as COMPRESSED_STATE_STATE
4
- from homeassistant.core import Event as Event, State as State
5
- from homeassistant.helpers.event import EventStateChangedData as EventStateChangedData
4
+ from homeassistant.core import Event as Event, EventStateChangedData as EventStateChangedData, State as State
6
5
  from homeassistant.helpers.json import JSON_DUMP as JSON_DUMP, find_paths_unserializable_data as find_paths_unserializable_data, json_bytes as json_bytes
7
6
  from homeassistant.util.json import format_unserializable_data as format_unserializable_data
8
7
  from typing import Any, Final
@@ -8,13 +8,9 @@ from homeassistant.helpers.typing import ConfigType as ConfigType, DiscoveryInfo
8
8
  async def async_setup_platform(hass: HomeAssistant, config: ConfigType, async_add_entities: AddEntitiesCallback, discovery_info: DiscoveryInfoType | None = None) -> None: ...
9
9
 
10
10
  class APICount(SensorEntity):
11
- count: int
11
+ _attr_name: str
12
+ _attr_native_unit_of_measurement: str
13
+ _attr_native_value: int
12
14
  def __init__(self) -> None: ...
13
15
  async def async_added_to_hass(self) -> None: ...
14
- @property
15
- def name(self) -> str: ...
16
- @property
17
- def native_value(self) -> int: ...
18
- @property
19
- def native_unit_of_measurement(self) -> str: ...
20
16
  def _update_count(self) -> None: ...