homeassistant-stubs 2024.9.3__py3-none-any.whl → 2024.10.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (858) hide show
  1. homeassistant-stubs/components/__init__.pyi +0 -8
  2. homeassistant-stubs/components/abode/binary_sensor.pyi +1 -1
  3. homeassistant-stubs/components/accuweather/sensor.pyi +1 -1
  4. homeassistant-stubs/components/acmeda/__init__.pyi +1 -0
  5. homeassistant-stubs/components/acmeda/cover.pyi +2 -2
  6. homeassistant-stubs/components/acmeda/{base.pyi → entity.pyi} +1 -1
  7. homeassistant-stubs/components/acmeda/sensor.pyi +2 -2
  8. homeassistant-stubs/components/actiontec/device_tracker.pyi +1 -1
  9. homeassistant-stubs/components/air_quality/__init__.pyi +2 -0
  10. homeassistant-stubs/components/airgradient/__init__.pyi +2 -10
  11. homeassistant-stubs/components/airgradient/button.pyi +4 -4
  12. homeassistant-stubs/components/airgradient/coordinator.pyi +13 -11
  13. homeassistant-stubs/components/airgradient/diagnostics.pyi +5 -0
  14. homeassistant-stubs/components/airgradient/number.pyi +2 -3
  15. homeassistant-stubs/components/airgradient/select.pyi +2 -3
  16. homeassistant-stubs/components/airgradient/sensor.pyi +9 -9
  17. homeassistant-stubs/components/airgradient/switch.pyi +2 -3
  18. homeassistant-stubs/components/airgradient/update.pyi +2 -3
  19. homeassistant-stubs/components/airnow/__init__.pyi +0 -1
  20. homeassistant-stubs/components/airnow/const.pyi +4 -1
  21. homeassistant-stubs/components/airnow/coordinator.pyi +1 -1
  22. homeassistant-stubs/components/airnow/sensor.pyi +2 -1
  23. homeassistant-stubs/components/airvisual/__init__.pyi +6 -14
  24. homeassistant-stubs/components/airvisual/diagnostics.pyi +3 -4
  25. homeassistant-stubs/components/airvisual/entity.pyi +13 -0
  26. homeassistant-stubs/components/airvisual/sensor.pyi +4 -3
  27. homeassistant-stubs/components/airvisual_pro/__init__.pyi +2 -11
  28. homeassistant-stubs/components/airvisual_pro/entity.pyi +12 -0
  29. homeassistant-stubs/components/airvisual_pro/sensor.pyi +2 -1
  30. homeassistant-stubs/components/airzone/diagnostics.pyi +1 -1
  31. homeassistant-stubs/components/airzone_cloud/diagnostics.pyi +1 -1
  32. homeassistant-stubs/components/airzone_cloud/sensor.pyi +1 -1
  33. homeassistant-stubs/components/alarm_control_panel/__init__.pyi +2 -0
  34. homeassistant-stubs/components/alert/__init__.pyi +3 -43
  35. homeassistant-stubs/components/alert/entity.pyi +45 -0
  36. homeassistant-stubs/components/alexa/capabilities.pyi +2 -1
  37. homeassistant-stubs/components/alexa/config.pyi +1 -1
  38. homeassistant-stubs/components/alexa/smart_home.pyi +1 -1
  39. homeassistant-stubs/components/amazon_polly/tts.pyi +3 -1
  40. homeassistant-stubs/components/amberelectric/__init__.pyi +5 -3
  41. homeassistant-stubs/components/amberelectric/binary_sensor.pyi +3 -3
  42. homeassistant-stubs/components/amberelectric/sensor.pyi +3 -3
  43. homeassistant-stubs/components/ambient_network/__init__.pyi +3 -3
  44. homeassistant-stubs/components/ambient_network/sensor.pyi +2 -3
  45. homeassistant-stubs/components/androidtv_remote/media_player.pyi +1 -2
  46. homeassistant-stubs/components/anova/__init__.pyi +3 -5
  47. homeassistant-stubs/components/anova/models.pyi +3 -0
  48. homeassistant-stubs/components/anova/sensor.pyi +2 -4
  49. homeassistant-stubs/components/anthemav/__init__.pyi +4 -3
  50. homeassistant-stubs/components/anthemav/media_player.pyi +2 -3
  51. homeassistant-stubs/components/apcupsd/__init__.pyi +3 -4
  52. homeassistant-stubs/components/apcupsd/binary_sensor.pyi +2 -4
  53. homeassistant-stubs/components/apcupsd/diagnostics.pyi +2 -4
  54. homeassistant-stubs/components/apcupsd/sensor.pyi +3 -3
  55. homeassistant-stubs/components/apple_tv/__init__.pyi +2 -19
  56. homeassistant-stubs/components/apple_tv/const.pyi +2 -0
  57. homeassistant-stubs/components/apple_tv/entity.pyi +21 -0
  58. homeassistant-stubs/components/apple_tv/media_player.pyi +2 -1
  59. homeassistant-stubs/components/apple_tv/remote.pyi +2 -1
  60. homeassistant-stubs/components/arcam_fmj/media_player.pyi +1 -2
  61. homeassistant-stubs/components/arris_tg2492lg/device_tracker.pyi +1 -1
  62. homeassistant-stubs/components/aruba/device_tracker.pyi +1 -1
  63. homeassistant-stubs/components/assist_pipeline/__init__.pyi +4 -3
  64. homeassistant-stubs/components/assist_pipeline/const.pyi +1 -0
  65. homeassistant-stubs/components/assist_pipeline/pipeline.pyi +1 -1
  66. homeassistant-stubs/components/assist_pipeline/repair_flows.pyi +11 -0
  67. homeassistant-stubs/components/assist_pipeline/select.pyi +1 -3
  68. homeassistant-stubs/components/assist_satellite/__init__.pyi +5 -0
  69. homeassistant-stubs/components/assist_satellite/connection_test.pyi +15 -0
  70. homeassistant-stubs/components/assist_satellite/const.pyi +12 -0
  71. homeassistant-stubs/components/assist_satellite/entity.pyi +88 -0
  72. homeassistant-stubs/components/assist_satellite/errors.pyi +4 -0
  73. homeassistant-stubs/components/assist_satellite/websocket_api.pyi +16 -0
  74. homeassistant-stubs/components/asuswrt/bridge.pyi +8 -1
  75. homeassistant-stubs/components/asuswrt/const.pyi +3 -0
  76. homeassistant-stubs/components/asuswrt/device_tracker.pyi +1 -3
  77. homeassistant-stubs/components/asuswrt/sensor.pyi +3 -2
  78. homeassistant-stubs/components/autarco/coordinator.pyi +6 -4
  79. homeassistant-stubs/components/autarco/sensor.pyi +18 -2
  80. homeassistant-stubs/components/automation/__init__.pyi +5 -3
  81. homeassistant-stubs/components/automation/config.pyi +6 -2
  82. homeassistant-stubs/components/automation/const.pyi +2 -0
  83. homeassistant-stubs/components/axis/hub/__init__.pyi +2 -0
  84. homeassistant-stubs/components/axis/hub/event_source.pyi +1 -1
  85. homeassistant-stubs/components/bang_olufsen/config_flow.pyi +1 -0
  86. homeassistant-stubs/components/bang_olufsen/const.pyi +6 -0
  87. homeassistant-stubs/components/bang_olufsen/media_player.pyi +21 -4
  88. homeassistant-stubs/components/bang_olufsen/util.pyi +1 -0
  89. homeassistant-stubs/components/bang_olufsen/websocket.pyi +2 -1
  90. homeassistant-stubs/components/bayesian/binary_sensor.pyi +9 -4
  91. homeassistant-stubs/components/bayesian/const.pyi +1 -0
  92. homeassistant-stubs/components/bayesian/helpers.pyi +2 -1
  93. homeassistant-stubs/components/binary_sensor/__init__.pyi +2 -0
  94. homeassistant-stubs/components/blueprint/__init__.pyi +1 -1
  95. homeassistant-stubs/components/blueprint/importer.pyi +1 -1
  96. homeassistant-stubs/components/blueprint/models.pyi +4 -3
  97. homeassistant-stubs/components/blueprint/websocket_api.pyi +1 -0
  98. homeassistant-stubs/components/bluesound/__init__.pyi +25 -0
  99. homeassistant-stubs/components/bluesound/config_flow.pyi +24 -0
  100. homeassistant-stubs/components/bluesound/const.pyi +8 -0
  101. homeassistant-stubs/components/bluesound/media_player.pyi +136 -0
  102. homeassistant-stubs/components/bluesound/utils.pyi +3 -0
  103. homeassistant-stubs/components/bluetooth/manager.pyi +3 -0
  104. homeassistant-stubs/components/bmw_connected_drive/device_tracker.pyi +1 -3
  105. homeassistant-stubs/components/bmw_connected_drive/diagnostics.pyi +1 -1
  106. homeassistant-stubs/components/braviatv/entity.pyi +1 -1
  107. homeassistant-stubs/components/braviatv/media_player.pyi +1 -2
  108. homeassistant-stubs/components/bryant_evolution/config_flow.pyi +3 -1
  109. homeassistant-stubs/components/bthome/device_trigger.pyi +4 -3
  110. homeassistant-stubs/components/button/__init__.pyi +2 -0
  111. homeassistant-stubs/components/calendar/__init__.pyi +7 -5
  112. homeassistant-stubs/components/calendar/const.pyi +5 -0
  113. homeassistant-stubs/components/calendar/trigger.pyi +2 -1
  114. homeassistant-stubs/components/camera/__init__.pyi +4 -4
  115. homeassistant-stubs/components/camera/const.pyi +12 -2
  116. homeassistant-stubs/components/camera/media_source.pyi +2 -4
  117. homeassistant-stubs/components/cert_expiry/entity.pyi +8 -0
  118. homeassistant-stubs/components/cert_expiry/sensor.pyi +3 -8
  119. homeassistant-stubs/components/climate/__init__.pyi +6 -2
  120. homeassistant-stubs/components/climate/const.pyi +1 -0
  121. homeassistant-stubs/components/climate/intent.pyi +1 -3
  122. homeassistant-stubs/components/cloud/alexa_config.pyi +1 -1
  123. homeassistant-stubs/components/cloud/google_config.pyi +1 -1
  124. homeassistant-stubs/components/co2signal/__init__.pyi +0 -1
  125. homeassistant-stubs/components/co2signal/config_flow.pyi +2 -1
  126. homeassistant-stubs/components/config/automation.pyi +1 -1
  127. homeassistant-stubs/components/config/category_registry.pyi +1 -1
  128. homeassistant-stubs/components/config/device_registry.pyi +1 -1
  129. homeassistant-stubs/components/config/entity_registry.pyi +1 -2
  130. homeassistant-stubs/components/config/floor_registry.pyi +1 -1
  131. homeassistant-stubs/components/config/label_registry.pyi +1 -1
  132. homeassistant-stubs/components/config/scene.pyi +1 -1
  133. homeassistant-stubs/components/config/script.pyi +0 -1
  134. homeassistant-stubs/components/cover/__init__.pyi +3 -1
  135. homeassistant-stubs/components/cover/const.pyi +2 -0
  136. homeassistant-stubs/components/cover/intent.pyi +1 -4
  137. homeassistant-stubs/components/crownstone/{devices.pyi → entity.pyi} +1 -1
  138. homeassistant-stubs/components/crownstone/light.pyi +2 -2
  139. homeassistant-stubs/components/deako/__init__.pyi +14 -0
  140. homeassistant-stubs/components/deako/config_flow.pyi +6 -0
  141. homeassistant-stubs/components/deako/const.pyi +2 -0
  142. homeassistant-stubs/components/deako/light.pyi +32 -0
  143. homeassistant-stubs/components/deconz/alarm_control_panel.pyi +3 -3
  144. homeassistant-stubs/components/deconz/binary_sensor.pyi +3 -3
  145. homeassistant-stubs/components/deconz/button.pyi +4 -4
  146. homeassistant-stubs/components/deconz/climate.pyi +3 -3
  147. homeassistant-stubs/components/deconz/cover.pyi +3 -3
  148. homeassistant-stubs/components/deconz/deconz_event.pyi +1 -1
  149. homeassistant-stubs/components/deconz/device_trigger.pyi +1 -2
  150. homeassistant-stubs/components/deconz/fan.pyi +3 -3
  151. homeassistant-stubs/components/deconz/hub/__init__.pyi +2 -0
  152. homeassistant-stubs/components/deconz/light.pyi +3 -3
  153. homeassistant-stubs/components/deconz/lock.pyi +3 -3
  154. homeassistant-stubs/components/deconz/number.pyi +3 -3
  155. homeassistant-stubs/components/deconz/scene.pyi +3 -3
  156. homeassistant-stubs/components/deconz/select.pyi +6 -6
  157. homeassistant-stubs/components/deconz/sensor.pyi +6 -5
  158. homeassistant-stubs/components/deconz/siren.pyi +3 -3
  159. homeassistant-stubs/components/deconz/switch.pyi +3 -3
  160. homeassistant-stubs/components/demo/lock.pyi +1 -2
  161. homeassistant-stubs/components/demo/notify.pyi +1 -1
  162. homeassistant-stubs/components/derivative/sensor.pyi +1 -1
  163. homeassistant-stubs/components/device_automation/__init__.pyi +1 -1
  164. homeassistant-stubs/components/device_tracker/__init__.pyi +1 -1
  165. homeassistant-stubs/components/device_tracker/config_entry.pyi +30 -4
  166. homeassistant-stubs/components/devolo_home_control/binary_sensor.pyi +1 -1
  167. homeassistant-stubs/components/devolo_home_control/devolo_multi_level_switch.pyi +1 -1
  168. homeassistant-stubs/components/devolo_home_control/sensor.pyi +1 -1
  169. homeassistant-stubs/components/devolo_home_control/switch.pyi +1 -1
  170. homeassistant-stubs/components/devolo_home_network/__init__.pyi +1 -1
  171. homeassistant-stubs/components/devolo_home_network/const.pyi +1 -0
  172. homeassistant-stubs/components/devolo_home_network/device_tracker.pyi +2 -6
  173. homeassistant-stubs/components/devolo_home_network/entity.pyi +1 -1
  174. homeassistant-stubs/components/devolo_home_network/sensor.pyi +19 -14
  175. homeassistant-stubs/components/dhcp/__init__.pyi +7 -1
  176. homeassistant-stubs/components/discovergy/config_flow.pyi +1 -0
  177. homeassistant-stubs/components/dlna_dmr/config_flow.pyi +0 -1
  178. homeassistant-stubs/components/dlna_dms/dms.pyi +1 -2
  179. homeassistant-stubs/components/dlna_dms/media_source.pyi +1 -2
  180. homeassistant-stubs/components/downloader/__init__.pyi +1 -9
  181. homeassistant-stubs/components/downloader/config_flow.pyi +0 -1
  182. homeassistant-stubs/components/dsmr/const.pyi +1 -0
  183. homeassistant-stubs/components/dsmr/sensor.pyi +4 -2
  184. homeassistant-stubs/components/efergy/__init__.pyi +0 -9
  185. homeassistant-stubs/components/efergy/entity.pyi +11 -0
  186. homeassistant-stubs/components/efergy/sensor.pyi +2 -1
  187. homeassistant-stubs/components/elevenlabs/__init__.pyi +1 -0
  188. homeassistant-stubs/components/elevenlabs/config_flow.pyi +8 -2
  189. homeassistant-stubs/components/elevenlabs/const.pyi +11 -0
  190. homeassistant-stubs/components/elevenlabs/tts.pyi +7 -3
  191. homeassistant-stubs/components/elkm1/__init__.pyi +1 -34
  192. homeassistant-stubs/components/elkm1/alarm_control_panel.pyi +2 -1
  193. homeassistant-stubs/components/elkm1/binary_sensor.pyi +2 -1
  194. homeassistant-stubs/components/elkm1/climate.pyi +4 -1
  195. homeassistant-stubs/components/elkm1/entity.pyi +43 -0
  196. homeassistant-stubs/components/elkm1/light.pyi +2 -1
  197. homeassistant-stubs/components/elkm1/scene.pyi +2 -1
  198. homeassistant-stubs/components/elkm1/sensor.pyi +2 -1
  199. homeassistant-stubs/components/elkm1/switch.pyi +19 -1
  200. homeassistant-stubs/components/enphase_envoy/config_flow.pyi +3 -1
  201. homeassistant-stubs/components/enphase_envoy/coordinator.pyi +2 -0
  202. homeassistant-stubs/components/enphase_envoy/sensor.pyi +13 -1
  203. homeassistant-stubs/components/enphase_envoy/switch.pyi +1 -1
  204. homeassistant-stubs/components/esphome/__init__.pyi +3 -2
  205. homeassistant-stubs/components/esphome/assist_satellite.pyi +75 -0
  206. homeassistant-stubs/components/esphome/binary_sensor.pyi +3 -0
  207. homeassistant-stubs/components/esphome/const.pyi +1 -0
  208. homeassistant-stubs/components/esphome/entry_data.pyi +3 -2
  209. homeassistant-stubs/components/esphome/ffmpeg_proxy.pyi +49 -0
  210. homeassistant-stubs/components/esphome/manager.pyi +2 -9
  211. homeassistant-stubs/components/esphome/media_player.pyi +7 -1
  212. homeassistant-stubs/components/esphome/repairs.pyi +5 -0
  213. homeassistant-stubs/components/evil_genius_labs/__init__.pyi +0 -7
  214. homeassistant-stubs/components/evil_genius_labs/entity.pyi +9 -0
  215. homeassistant-stubs/components/evil_genius_labs/light.pyi +1 -1
  216. homeassistant-stubs/components/evil_genius_labs/util.pyi +1 -1
  217. homeassistant-stubs/components/evohome/const.pyi +5 -5
  218. homeassistant-stubs/components/fan/__init__.pyi +2 -0
  219. homeassistant-stubs/components/forecast_solar/coordinator.pyi +1 -1
  220. homeassistant-stubs/components/fritz/device_tracker.pyi +1 -3
  221. homeassistant-stubs/components/fritz/switch.pyi +1 -1
  222. homeassistant-stubs/components/fritzbox/__init__.pyi +1 -27
  223. homeassistant-stubs/components/fritzbox/binary_sensor.pyi +1 -1
  224. homeassistant-stubs/components/fritzbox/button.pyi +1 -1
  225. homeassistant-stubs/components/fritzbox/climate.pyi +1 -1
  226. homeassistant-stubs/components/fritzbox/cover.pyi +1 -1
  227. homeassistant-stubs/components/fritzbox/entity.pyi +29 -0
  228. homeassistant-stubs/components/fritzbox/light.pyi +2 -2
  229. homeassistant-stubs/components/fritzbox/sensor.pyi +1 -1
  230. homeassistant-stubs/components/fritzbox/switch.pyi +1 -1
  231. homeassistant-stubs/components/frontend/__init__.pyi +1 -1
  232. homeassistant-stubs/components/frontend/storage.pyi +1 -1
  233. homeassistant-stubs/components/fujitsu_fglair/__init__.pyi +2 -1
  234. homeassistant-stubs/components/fujitsu_fglair/config_flow.pyi +3 -1
  235. homeassistant-stubs/components/fujitsu_fglair/const.pyi +3 -1
  236. homeassistant-stubs/components/fully_kiosk/diagnostics.pyi +1 -1
  237. homeassistant-stubs/components/generic_hygrostat/humidifier.pyi +6 -6
  238. homeassistant-stubs/components/geo_location/__init__.pyi +2 -0
  239. homeassistant-stubs/components/google/calendar.pyi +20 -6
  240. homeassistant-stubs/components/google_cloud/__init__.pyi +10 -0
  241. homeassistant-stubs/components/google_cloud/config_flow.pyi +27 -0
  242. homeassistant-stubs/components/google_cloud/const.pyi +19 -0
  243. homeassistant-stubs/components/google_cloud/helpers.pyi +14 -0
  244. homeassistant-stubs/components/google_cloud/stt.pyi +34 -0
  245. homeassistant-stubs/components/google_cloud/tts.pyi +47 -0
  246. homeassistant-stubs/components/google_photos/__init__.pyi +3 -0
  247. homeassistant-stubs/components/google_photos/api.pyi +15 -0
  248. homeassistant-stubs/components/google_photos/application_credentials.pyi +6 -0
  249. homeassistant-stubs/components/google_photos/config_flow.pyi +19 -0
  250. homeassistant-stubs/components/google_photos/const.pyi +8 -0
  251. homeassistant-stubs/components/google_photos/coordinator.pyi +17 -0
  252. homeassistant-stubs/components/google_photos/media_source.pyi +54 -0
  253. homeassistant-stubs/components/google_photos/services.pyi +15 -0
  254. homeassistant-stubs/components/google_photos/types.pyi +4 -0
  255. homeassistant-stubs/components/group/__init__.pyi +1 -3
  256. homeassistant-stubs/components/group/button.pyi +1 -1
  257. homeassistant-stubs/components/group/const.pyi +7 -3
  258. homeassistant-stubs/components/group/cover.pyi +1 -1
  259. homeassistant-stubs/components/group/entity.pyi +1 -1
  260. homeassistant-stubs/components/group/event.pyi +1 -1
  261. homeassistant-stubs/components/group/fan.pyi +1 -1
  262. homeassistant-stubs/components/group/lock.pyi +2 -2
  263. homeassistant-stubs/components/group/media_player.pyi +1 -1
  264. homeassistant-stubs/components/group/notify.pyi +1 -1
  265. homeassistant-stubs/components/group/registry.pyi +2 -1
  266. homeassistant-stubs/components/group/sensor.pyi +1 -1
  267. homeassistant-stubs/components/group/switch.pyi +1 -1
  268. homeassistant-stubs/components/guardian/__init__.pyi +0 -24
  269. homeassistant-stubs/components/guardian/binary_sensor.pyi +2 -1
  270. homeassistant-stubs/components/guardian/button.pyi +2 -1
  271. homeassistant-stubs/components/guardian/entity.pyi +29 -0
  272. homeassistant-stubs/components/guardian/sensor.pyi +2 -1
  273. homeassistant-stubs/components/guardian/switch.pyi +2 -1
  274. homeassistant-stubs/components/guardian/util.pyi +1 -1
  275. homeassistant-stubs/components/guardian/valve.pyi +2 -1
  276. homeassistant-stubs/components/history/websocket_api.pyi +1 -2
  277. homeassistant-stubs/components/homeassistant/__init__.pyi +1 -1
  278. homeassistant-stubs/components/homeassistant/triggers/time.pyi +9 -1
  279. homeassistant-stubs/components/homekit/config_flow.pyi +3 -3
  280. homeassistant-stubs/components/homekit/type_covers.pyi +1 -1
  281. homeassistant-stubs/components/homekit/type_fans.pyi +1 -1
  282. homeassistant-stubs/components/homekit/type_humidifiers.pyi +1 -1
  283. homeassistant-stubs/components/homekit/type_lights.pyi +1 -1
  284. homeassistant-stubs/components/homekit/type_locks.pyi +1 -1
  285. homeassistant-stubs/components/homekit/type_media_players.pyi +1 -1
  286. homeassistant-stubs/components/homekit/type_security_systems.pyi +1 -1
  287. homeassistant-stubs/components/homekit/type_switches.pyi +0 -1
  288. homeassistant-stubs/components/homekit/util.pyi +1 -0
  289. homeassistant-stubs/components/homekit_controller/config_flow.pyi +0 -1
  290. homeassistant-stubs/components/homekit_controller/lock.pyi +3 -3
  291. homeassistant-stubs/components/homeworks/__init__.pyi +0 -15
  292. homeassistant-stubs/components/homeworks/binary_sensor.pyi +2 -1
  293. homeassistant-stubs/components/homeworks/button.pyi +2 -1
  294. homeassistant-stubs/components/homeworks/config_flow.pyi +6 -2
  295. homeassistant-stubs/components/homeworks/entity.pyi +16 -0
  296. homeassistant-stubs/components/homeworks/light.pyi +2 -1
  297. homeassistant-stubs/components/homeworks/util.pyi +1 -0
  298. homeassistant-stubs/components/http/__init__.pyi +1 -1
  299. homeassistant-stubs/components/huawei_lte/__init__.pyi +1 -24
  300. homeassistant-stubs/components/huawei_lte/binary_sensor.pyi +1 -1
  301. homeassistant-stubs/components/huawei_lte/button.pyi +1 -1
  302. homeassistant-stubs/components/huawei_lte/device_tracker.pyi +3 -4
  303. homeassistant-stubs/components/huawei_lte/entity.pyi +31 -0
  304. homeassistant-stubs/components/huawei_lte/select.pyi +2 -1
  305. homeassistant-stubs/components/huawei_lte/sensor.pyi +2 -1
  306. homeassistant-stubs/components/huawei_lte/switch.pyi +1 -1
  307. homeassistant-stubs/components/humidifier/__init__.pyi +7 -2
  308. homeassistant-stubs/components/husqvarna_automower/__init__.pyi +2 -0
  309. homeassistant-stubs/components/husqvarna_automower/button.pyi +20 -6
  310. homeassistant-stubs/components/husqvarna_automower/calendar.pyi +21 -0
  311. homeassistant-stubs/components/husqvarna_automower/coordinator.pyi +1 -0
  312. homeassistant-stubs/components/husqvarna_automower/device_tracker.pyi +1 -3
  313. homeassistant-stubs/components/husqvarna_automower/entity.pyi +16 -2
  314. homeassistant-stubs/components/husqvarna_automower/number.pyi +4 -10
  315. homeassistant-stubs/components/husqvarna_automower/switch.pyi +12 -1
  316. homeassistant-stubs/components/image/__init__.pyi +1 -1
  317. homeassistant-stubs/components/image/const.pyi +4 -0
  318. homeassistant-stubs/components/image/media_source.pyi +2 -5
  319. homeassistant-stubs/components/ios/__init__.pyi +1 -15
  320. homeassistant-stubs/components/ios/const.pyi +16 -0
  321. homeassistant-stubs/components/ios/notify.pyi +1 -1
  322. homeassistant-stubs/components/ios/sensor.pyi +2 -2
  323. homeassistant-stubs/components/iotty/cover.pyi +36 -0
  324. homeassistant-stubs/components/iotty/entity.pyi +19 -0
  325. homeassistant-stubs/components/iotty/switch.pyi +2 -11
  326. homeassistant-stubs/components/iqvia/__init__.pyi +2 -15
  327. homeassistant-stubs/components/iqvia/entity.pyi +18 -0
  328. homeassistant-stubs/components/iqvia/sensor.pyi +1 -1
  329. homeassistant-stubs/components/isy994/const.pyi +2 -1
  330. homeassistant-stubs/components/jellyfin/browse_media.pyi +1 -2
  331. homeassistant-stubs/components/jellyfin/media_player.pyi +1 -2
  332. homeassistant-stubs/components/jellyfin/media_source.pyi +1 -1
  333. homeassistant-stubs/components/jellyfin/sensor.pyi +1 -0
  334. homeassistant-stubs/components/knx/__init__.pyi +4 -2
  335. homeassistant-stubs/components/knx/binary_sensor.pyi +2 -2
  336. homeassistant-stubs/components/knx/button.pyi +2 -2
  337. homeassistant-stubs/components/knx/climate.pyi +9 -3
  338. homeassistant-stubs/components/knx/config_flow.pyi +1 -1
  339. homeassistant-stubs/components/knx/const.pyi +9 -3
  340. homeassistant-stubs/components/knx/cover.pyi +2 -2
  341. homeassistant-stubs/components/knx/date.pyi +2 -2
  342. homeassistant-stubs/components/knx/datetime.pyi +2 -2
  343. homeassistant-stubs/components/knx/device_trigger.pyi +3 -5
  344. homeassistant-stubs/components/knx/diagnostics.pyi +1 -1
  345. homeassistant-stubs/components/knx/fan.pyi +2 -2
  346. homeassistant-stubs/components/knx/light.pyi +2 -2
  347. homeassistant-stubs/components/knx/notify.pyi +2 -2
  348. homeassistant-stubs/components/knx/number.pyi +2 -2
  349. homeassistant-stubs/components/knx/scene.pyi +2 -2
  350. homeassistant-stubs/components/knx/schema.pyi +8 -2
  351. homeassistant-stubs/components/knx/select.pyi +2 -2
  352. homeassistant-stubs/components/knx/sensor.pyi +2 -2
  353. homeassistant-stubs/components/knx/services.pyi +1 -1
  354. homeassistant-stubs/components/knx/switch.pyi +2 -2
  355. homeassistant-stubs/components/knx/text.pyi +2 -2
  356. homeassistant-stubs/components/knx/time.pyi +2 -2
  357. homeassistant-stubs/components/knx/weather.pyi +2 -2
  358. homeassistant-stubs/components/knx/websocket.pyi +1 -1
  359. homeassistant-stubs/components/lamarzocco/config_flow.pyi +5 -1
  360. homeassistant-stubs/components/laundrify/__init__.pyi +2 -0
  361. homeassistant-stubs/components/laundrify/binary_sensor.pyi +0 -1
  362. homeassistant-stubs/components/laundrify/config_flow.pyi +1 -0
  363. homeassistant-stubs/components/laundrify/sensor.pyi +41 -0
  364. homeassistant-stubs/components/lawn_mower/__init__.pyi +2 -0
  365. homeassistant-stubs/components/lcn/__init__.pyi +8 -30
  366. homeassistant-stubs/components/lcn/binary_sensor.pyi +7 -7
  367. homeassistant-stubs/components/lcn/climate.pyi +5 -5
  368. homeassistant-stubs/components/lcn/config_flow.pyi +8 -3
  369. homeassistant-stubs/components/lcn/const.pyi +1 -0
  370. homeassistant-stubs/components/lcn/cover.pyi +6 -6
  371. homeassistant-stubs/components/lcn/entity.pyi +28 -0
  372. homeassistant-stubs/components/lcn/helpers.pyi +2 -2
  373. homeassistant-stubs/components/lcn/light.pyi +6 -6
  374. homeassistant-stubs/components/lcn/scene.pyi +4 -5
  375. homeassistant-stubs/components/lcn/sensor.pyi +6 -6
  376. homeassistant-stubs/components/lcn/services.pyi +16 -0
  377. homeassistant-stubs/components/lcn/switch.pyi +6 -6
  378. homeassistant-stubs/components/lcn/websocket.pyi +3 -1
  379. homeassistant-stubs/components/lektrico/__init__.pyi +12 -0
  380. homeassistant-stubs/components/lektrico/button.pyi +27 -0
  381. homeassistant-stubs/components/lektrico/config_flow.pyi +24 -0
  382. homeassistant-stubs/components/lektrico/const.pyi +4 -0
  383. homeassistant-stubs/components/lektrico/coordinator.pyi +19 -0
  384. homeassistant-stubs/components/lektrico/entity.pyi +10 -0
  385. homeassistant-stubs/components/lektrico/number.pyi +29 -0
  386. homeassistant-stubs/components/lektrico/select.pyi +30 -0
  387. homeassistant-stubs/components/lektrico/sensor.pyi +34 -0
  388. homeassistant-stubs/components/lidarr/__init__.pyi +2 -11
  389. homeassistant-stubs/components/lidarr/entity.pyi +13 -0
  390. homeassistant-stubs/components/lidarr/sensor.pyi +2 -1
  391. homeassistant-stubs/components/light/__init__.pyi +4 -2
  392. homeassistant-stubs/components/linkplay/const.pyi +1 -1
  393. homeassistant-stubs/components/linkplay/media_player.pyi +9 -3
  394. homeassistant-stubs/components/linkplay/utils.pyi +1 -1
  395. homeassistant-stubs/components/local_todo/todo.pyi +1 -0
  396. homeassistant-stubs/components/lock/__init__.pyi +4 -2
  397. homeassistant-stubs/components/lock/const.pyi +11 -0
  398. homeassistant-stubs/components/lock/device_condition.pyi +2 -2
  399. homeassistant-stubs/components/lock/device_trigger.pyi +2 -2
  400. homeassistant-stubs/components/lock/reproduce_state.pyi +2 -2
  401. homeassistant-stubs/components/logbook/websocket_api.pyi +1 -2
  402. homeassistant-stubs/components/logger/websocket_api.pyi +1 -1
  403. homeassistant-stubs/components/madvr/__init__.pyi +1 -1
  404. homeassistant-stubs/components/madvr/config_flow.pyi +2 -1
  405. homeassistant-stubs/components/madvr/diagnostics.pyi +10 -0
  406. homeassistant-stubs/components/matter/button.pyi +25 -0
  407. homeassistant-stubs/components/matter/entity.pyi +1 -4
  408. homeassistant-stubs/components/matter/light.pyi +0 -1
  409. homeassistant-stubs/components/matter/models.pyi +5 -3
  410. homeassistant-stubs/components/matter/number.pyi +2 -2
  411. homeassistant-stubs/components/matter/sensor.pyi +9 -0
  412. homeassistant-stubs/components/matter/valve.pyi +33 -0
  413. homeassistant-stubs/components/media_player/__init__.pyi +11 -4
  414. homeassistant-stubs/components/media_player/const.pyi +67 -63
  415. homeassistant-stubs/components/mikrotik/device_tracker.pyi +1 -3
  416. homeassistant-stubs/components/minecraft_server/__init__.pyi +1 -0
  417. homeassistant-stubs/components/minecraft_server/diagnostics.pyi +1 -1
  418. homeassistant-stubs/components/modbus/binary_sensor.pyi +1 -1
  419. homeassistant-stubs/components/modbus/climate.pyi +1 -1
  420. homeassistant-stubs/components/modbus/cover.pyi +1 -1
  421. homeassistant-stubs/components/modbus/fan.pyi +1 -1
  422. homeassistant-stubs/components/modbus/light.pyi +1 -1
  423. homeassistant-stubs/components/modbus/sensor.pyi +1 -1
  424. homeassistant-stubs/components/modbus/switch.pyi +1 -1
  425. homeassistant-stubs/components/mold_indicator/__init__.pyi +10 -0
  426. homeassistant-stubs/components/mold_indicator/config_flow.pyi +20 -0
  427. homeassistant-stubs/components/mold_indicator/const.pyi +6 -0
  428. homeassistant-stubs/components/mold_indicator/sensor.pyi +60 -0
  429. homeassistant-stubs/components/mopeka/__init__.pyi +1 -1
  430. homeassistant-stubs/components/motionmount/entity.pyi +3 -0
  431. homeassistant-stubs/components/motionmount/number.pyi +1 -0
  432. homeassistant-stubs/components/motionmount/select.pyi +5 -0
  433. homeassistant-stubs/components/mqtt/alarm_control_panel.pyi +1 -1
  434. homeassistant-stubs/components/mqtt/binary_sensor.pyi +1 -1
  435. homeassistant-stubs/components/mqtt/button.pyi +1 -1
  436. homeassistant-stubs/components/mqtt/camera.pyi +1 -1
  437. homeassistant-stubs/components/mqtt/climate.pyi +1 -6
  438. homeassistant-stubs/components/mqtt/config_flow.pyi +1 -2
  439. homeassistant-stubs/components/mqtt/cover.pyi +1 -1
  440. homeassistant-stubs/components/mqtt/device_automation.pyi +1 -1
  441. homeassistant-stubs/components/mqtt/device_tracker.pyi +3 -3
  442. homeassistant-stubs/components/mqtt/device_trigger.pyi +1 -1
  443. homeassistant-stubs/components/mqtt/discovery.pyi +1 -1
  444. homeassistant-stubs/components/mqtt/{mixins.pyi → entity.pyi} +0 -3
  445. homeassistant-stubs/components/mqtt/event.pyi +1 -1
  446. homeassistant-stubs/components/mqtt/fan.pyi +1 -1
  447. homeassistant-stubs/components/mqtt/humidifier.pyi +1 -1
  448. homeassistant-stubs/components/mqtt/image.pyi +1 -1
  449. homeassistant-stubs/components/mqtt/lawn_mower.pyi +1 -1
  450. homeassistant-stubs/components/mqtt/light/__init__.pyi +1 -1
  451. homeassistant-stubs/components/mqtt/light/schema_basic.pyi +1 -1
  452. homeassistant-stubs/components/mqtt/light/schema_json.pyi +1 -1
  453. homeassistant-stubs/components/mqtt/light/schema_template.pyi +1 -1
  454. homeassistant-stubs/components/mqtt/lock.pyi +1 -1
  455. homeassistant-stubs/components/mqtt/notify.pyi +1 -1
  456. homeassistant-stubs/components/mqtt/number.pyi +1 -1
  457. homeassistant-stubs/components/mqtt/scene.pyi +1 -1
  458. homeassistant-stubs/components/mqtt/select.pyi +1 -1
  459. homeassistant-stubs/components/mqtt/sensor.pyi +1 -1
  460. homeassistant-stubs/components/mqtt/siren.pyi +1 -1
  461. homeassistant-stubs/components/mqtt/switch.pyi +1 -1
  462. homeassistant-stubs/components/mqtt/tag.pyi +1 -1
  463. homeassistant-stubs/components/mqtt/text.pyi +1 -1
  464. homeassistant-stubs/components/mqtt/trigger.pyi +3 -2
  465. homeassistant-stubs/components/mqtt/update.pyi +1 -1
  466. homeassistant-stubs/components/mqtt/vacuum.pyi +1 -1
  467. homeassistant-stubs/components/mqtt/valve.pyi +3 -3
  468. homeassistant-stubs/components/mqtt/water_heater.pyi +1 -1
  469. homeassistant-stubs/components/mysensors/__init__.pyi +1 -1
  470. homeassistant-stubs/components/mysensors/binary_sensor.pyi +3 -2
  471. homeassistant-stubs/components/mysensors/climate.pyi +3 -2
  472. homeassistant-stubs/components/mysensors/cover.pyi +3 -2
  473. homeassistant-stubs/components/mysensors/device_tracker.pyi +5 -10
  474. homeassistant-stubs/components/mysensors/handler.pyi +1 -1
  475. homeassistant-stubs/components/mysensors/light.pyi +3 -3
  476. homeassistant-stubs/components/mysensors/remote.pyi +1 -1
  477. homeassistant-stubs/components/mysensors/sensor.pyi +4 -3
  478. homeassistant-stubs/components/mysensors/switch.pyi +1 -1
  479. homeassistant-stubs/components/mysensors/text.pyi +2 -2
  480. homeassistant-stubs/components/nanoleaf/device_trigger.pyi +1 -2
  481. homeassistant-stubs/components/nest/device_trigger.pyi +1 -2
  482. homeassistant-stubs/components/nest/media_source.pyi +1 -2
  483. homeassistant-stubs/components/netatmo/device_trigger.pyi +1 -2
  484. homeassistant-stubs/components/netatmo/media_source.pyi +1 -2
  485. homeassistant-stubs/components/network/websocket.pyi +1 -1
  486. homeassistant-stubs/components/nextdns/__init__.pyi +1 -1
  487. homeassistant-stubs/components/nextdns/config_flow.pyi +11 -1
  488. homeassistant-stubs/components/nextdns/coordinator.pyi +1 -0
  489. homeassistant-stubs/components/nissan_leaf/__init__.pyi +3 -14
  490. homeassistant-stubs/components/nissan_leaf/binary_sensor.pyi +2 -1
  491. homeassistant-stubs/components/nissan_leaf/button.pyi +2 -1
  492. homeassistant-stubs/components/nissan_leaf/const.pyi +1 -0
  493. homeassistant-stubs/components/nissan_leaf/entity.pyi +18 -0
  494. homeassistant-stubs/components/nissan_leaf/sensor.pyi +2 -1
  495. homeassistant-stubs/components/nissan_leaf/switch.pyi +2 -1
  496. homeassistant-stubs/components/notify/__init__.pyi +3 -2
  497. homeassistant-stubs/components/notify/legacy.pyi +5 -6
  498. homeassistant-stubs/components/notify/repairs.pyi +1 -2
  499. homeassistant-stubs/components/notion/__init__.pyi +1 -23
  500. homeassistant-stubs/components/notion/binary_sensor.pyi +1 -2
  501. homeassistant-stubs/components/notion/entity.pyi +33 -0
  502. homeassistant-stubs/components/notion/sensor.pyi +1 -2
  503. homeassistant-stubs/components/onewire/binary_sensor.pyi +1 -1
  504. homeassistant-stubs/components/onewire/sensor.pyi +1 -1
  505. homeassistant-stubs/components/onewire/switch.pyi +1 -1
  506. homeassistant-stubs/components/onkyo/media_player.pyi +84 -0
  507. homeassistant-stubs/components/onkyo/receiver.pyi +19 -0
  508. homeassistant-stubs/components/openuv/__init__.pyi +0 -11
  509. homeassistant-stubs/components/openuv/binary_sensor.pyi +1 -1
  510. homeassistant-stubs/components/openuv/entity.pyi +14 -0
  511. homeassistant-stubs/components/openuv/sensor.pyi +1 -1
  512. homeassistant-stubs/components/otbr/config_flow.pyi +3 -2
  513. homeassistant-stubs/components/overkiz/{climate_entities → climate}/__init__.pyi +9 -0
  514. homeassistant-stubs/components/overkiz/{water_heater.pyi → cover/__init__.pyi} +5 -4
  515. homeassistant-stubs/components/overkiz/executor.pyi +1 -1
  516. homeassistant-stubs/components/overkiz/water_heater/__init__.pyi +17 -0
  517. homeassistant-stubs/components/pi_hole/__init__.pyi +1 -10
  518. homeassistant-stubs/components/pi_hole/binary_sensor.pyi +2 -1
  519. homeassistant-stubs/components/pi_hole/entity.pyi +13 -0
  520. homeassistant-stubs/components/pi_hole/sensor.pyi +2 -1
  521. homeassistant-stubs/components/pi_hole/switch.pyi +2 -1
  522. homeassistant-stubs/components/pi_hole/update.pyi +2 -1
  523. homeassistant-stubs/components/ping/binary_sensor.pyi +0 -8
  524. homeassistant-stubs/components/ping/device_tracker.pyi +1 -3
  525. homeassistant-stubs/components/plugwise/binary_sensor.pyi +1 -1
  526. homeassistant-stubs/components/prusalink/__init__.pyi +1 -8
  527. homeassistant-stubs/components/prusalink/binary_sensor.pyi +1 -1
  528. homeassistant-stubs/components/prusalink/button.pyi +1 -1
  529. homeassistant-stubs/components/prusalink/camera.pyi +1 -1
  530. homeassistant-stubs/components/prusalink/entity.pyi +9 -0
  531. homeassistant-stubs/components/prusalink/sensor.pyi +1 -1
  532. homeassistant-stubs/components/purpleair/__init__.pyi +1 -17
  533. homeassistant-stubs/components/purpleair/entity.pyi +21 -0
  534. homeassistant-stubs/components/purpleair/sensor.pyi +1 -1
  535. homeassistant-stubs/components/qnap_qsw/diagnostics.pyi +1 -1
  536. homeassistant-stubs/components/radarr/__init__.pyi +2 -15
  537. homeassistant-stubs/components/radarr/binary_sensor.pyi +2 -1
  538. homeassistant-stubs/components/radarr/calendar.pyi +2 -1
  539. homeassistant-stubs/components/radarr/entity.pyi +16 -0
  540. homeassistant-stubs/components/radarr/sensor.pyi +2 -1
  541. homeassistant-stubs/components/rainmachine/__init__.pyi +1 -18
  542. homeassistant-stubs/components/rainmachine/binary_sensor.pyi +2 -2
  543. homeassistant-stubs/components/rainmachine/button.pyi +2 -2
  544. homeassistant-stubs/components/rainmachine/entity.pyi +30 -0
  545. homeassistant-stubs/components/rainmachine/select.pyi +2 -2
  546. homeassistant-stubs/components/rainmachine/sensor.pyi +2 -2
  547. homeassistant-stubs/components/rainmachine/switch.pyi +2 -2
  548. homeassistant-stubs/components/rainmachine/update.pyi +2 -2
  549. homeassistant-stubs/components/recorder/const.pyi +2 -2
  550. homeassistant-stubs/components/recorder/core.pyi +3 -7
  551. homeassistant-stubs/components/recorder/history/legacy.pyi +9 -10
  552. homeassistant-stubs/components/recorder/history/modern.pyi +1 -1
  553. homeassistant-stubs/components/recorder/migration.pyi +28 -25
  554. homeassistant-stubs/components/recorder/models/__init__.pyi +2 -2
  555. homeassistant-stubs/components/recorder/models/legacy.pyi +1 -37
  556. homeassistant-stubs/components/recorder/models/time.pyi +0 -1
  557. homeassistant-stubs/components/recorder/statistics.pyi +2 -1
  558. homeassistant-stubs/components/recorder/tasks.pyi +4 -17
  559. homeassistant-stubs/components/recorder/util.pyi +6 -2
  560. homeassistant-stubs/components/recorder/websocket_api.pyi +6 -3
  561. homeassistant-stubs/components/remote/__init__.pyi +2 -0
  562. homeassistant-stubs/components/renault/device_tracker.pyi +8 -4
  563. homeassistant-stubs/components/renault/renault_hub.pyi +1 -1
  564. homeassistant-stubs/components/renault/renault_vehicle.pyi +2 -0
  565. homeassistant-stubs/components/renault/services.pyi +4 -0
  566. homeassistant-stubs/components/rfxtrx/__init__.pyi +2 -27
  567. homeassistant-stubs/components/rfxtrx/binary_sensor.pyi +2 -1
  568. homeassistant-stubs/components/rfxtrx/const.pyi +1 -0
  569. homeassistant-stubs/components/rfxtrx/cover.pyi +2 -1
  570. homeassistant-stubs/components/rfxtrx/device_action.pyi +1 -1
  571. homeassistant-stubs/components/rfxtrx/device_trigger.pyi +1 -2
  572. homeassistant-stubs/components/rfxtrx/entity.pyi +33 -0
  573. homeassistant-stubs/components/rfxtrx/event.pyi +2 -1
  574. homeassistant-stubs/components/rfxtrx/light.pyi +2 -1
  575. homeassistant-stubs/components/rfxtrx/sensor.pyi +2 -1
  576. homeassistant-stubs/components/rfxtrx/siren.pyi +2 -1
  577. homeassistant-stubs/components/rfxtrx/switch.pyi +3 -2
  578. homeassistant-stubs/components/ring/__init__.pyi +10 -9
  579. homeassistant-stubs/components/ring/binary_sensor.pyi +24 -20
  580. homeassistant-stubs/components/ring/button.pyi +2 -4
  581. homeassistant-stubs/components/ring/camera.pyi +2 -4
  582. homeassistant-stubs/components/ring/config_flow.pyi +2 -1
  583. homeassistant-stubs/components/ring/const.pyi +1 -1
  584. homeassistant-stubs/components/ring/coordinator.pyi +22 -7
  585. homeassistant-stubs/components/ring/diagnostics.pyi +2 -4
  586. homeassistant-stubs/components/ring/entity.pyi +27 -7
  587. homeassistant-stubs/components/ring/event.pyi +30 -0
  588. homeassistant-stubs/components/ring/light.pyi +2 -4
  589. homeassistant-stubs/components/ring/number.pyi +33 -0
  590. homeassistant-stubs/components/ring/sensor.pyi +6 -8
  591. homeassistant-stubs/components/ring/siren.pyi +30 -14
  592. homeassistant-stubs/components/ring/switch.pyi +25 -17
  593. homeassistant-stubs/components/roborock/binary_sensor.pyi +1 -1
  594. homeassistant-stubs/components/roborock/button.pyi +1 -1
  595. homeassistant-stubs/components/roborock/diagnostics.pyi +1 -1
  596. homeassistant-stubs/components/roborock/image.pyi +1 -1
  597. homeassistant-stubs/components/roborock/number.pyi +3 -2
  598. homeassistant-stubs/components/roborock/select.pyi +2 -1
  599. homeassistant-stubs/components/roborock/sensor.pyi +1 -1
  600. homeassistant-stubs/components/roborock/switch.pyi +3 -2
  601. homeassistant-stubs/components/roborock/time.pyi +3 -2
  602. homeassistant-stubs/components/roborock/vacuum.pyi +1 -1
  603. homeassistant-stubs/components/samsungtv/device_trigger.pyi +1 -2
  604. homeassistant-stubs/components/scene/__init__.pyi +2 -0
  605. homeassistant-stubs/components/schedule/__init__.pyi +5 -1
  606. homeassistant-stubs/components/schedule/const.pyi +1 -0
  607. homeassistant-stubs/components/script/helpers.pyi +1 -1
  608. homeassistant-stubs/components/sensibo/diagnostics.pyi +1 -1
  609. homeassistant-stubs/components/sensor/device_condition.pyi +1 -2
  610. homeassistant-stubs/components/sensor/device_trigger.pyi +1 -2
  611. homeassistant-stubs/components/sensor/recorder.pyi +10 -6
  612. homeassistant-stubs/components/sensoterra/__init__.pyi +10 -0
  613. homeassistant-stubs/components/sensoterra/config_flow.pyi +11 -0
  614. homeassistant-stubs/components/sensoterra/const.pyi +9 -0
  615. homeassistant-stubs/components/sensoterra/coordinator.pyi +15 -0
  616. homeassistant-stubs/components/sensoterra/sensor.pyi +39 -0
  617. homeassistant-stubs/components/shelly/cover.pyi +7 -1
  618. homeassistant-stubs/components/shelly/device_trigger.pyi +1 -2
  619. homeassistant-stubs/components/shelly/update.pyi +1 -0
  620. homeassistant-stubs/components/simplisafe/__init__.pyi +4 -38
  621. homeassistant-stubs/components/simplisafe/alarm_control_panel.pyi +2 -1
  622. homeassistant-stubs/components/simplisafe/binary_sensor.pyi +2 -1
  623. homeassistant-stubs/components/simplisafe/button.pyi +2 -1
  624. homeassistant-stubs/components/simplisafe/const.pyi +6 -0
  625. homeassistant-stubs/components/simplisafe/entity.pyi +38 -0
  626. homeassistant-stubs/components/simplisafe/lock.pyi +2 -1
  627. homeassistant-stubs/components/simplisafe/sensor.pyi +2 -1
  628. homeassistant-stubs/components/siren/__init__.pyi +2 -0
  629. homeassistant-stubs/components/slack/__init__.pyi +1 -13
  630. homeassistant-stubs/components/slack/entity.pyi +15 -0
  631. homeassistant-stubs/components/slack/sensor.pyi +1 -1
  632. homeassistant-stubs/components/smlight/__init__.pyi +18 -0
  633. homeassistant-stubs/components/smlight/binary_sensor.pyi +46 -0
  634. homeassistant-stubs/components/smlight/button.pyi +32 -0
  635. homeassistant-stubs/components/smlight/config_flow.pyi +27 -0
  636. homeassistant-stubs/components/smlight/const.pyi +11 -0
  637. homeassistant-stubs/components/smlight/coordinator.pyi +49 -0
  638. homeassistant-stubs/components/smlight/diagnostics.pyi +5 -0
  639. homeassistant-stubs/components/smlight/entity.pyi +10 -0
  640. homeassistant-stubs/components/smlight/sensor.pyi +56 -0
  641. homeassistant-stubs/components/smlight/switch.pyi +39 -0
  642. homeassistant-stubs/components/smlight/update.pyi +48 -0
  643. homeassistant-stubs/components/solarlog/__init__.pyi +14 -0
  644. homeassistant-stubs/components/solarlog/config_flow.pyi +27 -0
  645. homeassistant-stubs/components/solarlog/const.pyi +4 -0
  646. homeassistant-stubs/components/solarlog/coordinator.pyi +19 -0
  647. homeassistant-stubs/components/solarlog/diagnostics.pyi +10 -0
  648. homeassistant-stubs/components/solarlog/entity.pyi +23 -0
  649. homeassistant-stubs/components/solarlog/sensor.pyi +36 -0
  650. homeassistant-stubs/components/squeezebox/__init__.pyi +24 -0
  651. homeassistant-stubs/components/squeezebox/binary_sensor.pyi +17 -0
  652. homeassistant-stubs/components/squeezebox/browse_media.pyi +18 -0
  653. homeassistant-stubs/components/squeezebox/config_flow.pyi +27 -0
  654. homeassistant-stubs/components/squeezebox/const.pyi +29 -0
  655. homeassistant-stubs/components/squeezebox/coordinator.pyi +14 -0
  656. homeassistant-stubs/components/squeezebox/entity.pyi +14 -0
  657. homeassistant-stubs/components/squeezebox/media_player.pyi +111 -0
  658. homeassistant-stubs/components/squeezebox/sensor.pyi +18 -0
  659. homeassistant-stubs/components/ssdp/__init__.pyi +3 -1
  660. homeassistant-stubs/components/starlink/device_tracker.pyi +2 -5
  661. homeassistant-stubs/components/starlink/diagnostics.pyi +1 -1
  662. homeassistant-stubs/components/stt/const.pyi +6 -2
  663. homeassistant-stubs/components/surepetcare/lock.pyi +3 -4
  664. homeassistant-stubs/components/switch/__init__.pyi +2 -0
  665. homeassistant-stubs/components/switchbot_cloud/__init__.pyi +2 -1
  666. homeassistant-stubs/components/switchbot_cloud/const.pyi +4 -0
  667. homeassistant-stubs/components/switchbot_cloud/entity.pyi +1 -1
  668. homeassistant-stubs/components/switchbot_cloud/vacuum.pyi +32 -0
  669. homeassistant-stubs/components/switcher_kis/__init__.pyi +1 -1
  670. homeassistant-stubs/components/switcher_kis/config_flow.pyi +23 -2
  671. homeassistant-stubs/components/switcher_kis/coordinator.pyi +2 -0
  672. homeassistant-stubs/components/switcher_kis/cover.pyi +2 -1
  673. homeassistant-stubs/components/switcher_kis/utils.pyi +1 -1
  674. homeassistant-stubs/components/tailscale/__init__.pyi +0 -13
  675. homeassistant-stubs/components/tailscale/binary_sensor.pyi +1 -1
  676. homeassistant-stubs/components/tailscale/config_flow.pyi +2 -0
  677. homeassistant-stubs/components/tailscale/entity.pyi +15 -0
  678. homeassistant-stubs/components/tailscale/sensor.pyi +1 -1
  679. homeassistant-stubs/components/tailwind/cover.pyi +1 -1
  680. homeassistant-stubs/components/tami4/button.pyi +14 -1
  681. homeassistant-stubs/components/tautulli/__init__.pyi +0 -13
  682. homeassistant-stubs/components/tautulli/entity.pyi +15 -0
  683. homeassistant-stubs/components/tautulli/sensor.pyi +2 -1
  684. homeassistant-stubs/components/tcp/binary_sensor.pyi +2 -1
  685. homeassistant-stubs/components/tcp/common.pyi +0 -17
  686. homeassistant-stubs/components/tcp/entity.pyi +21 -0
  687. homeassistant-stubs/components/tcp/sensor.pyi +2 -1
  688. homeassistant-stubs/components/threshold/binary_sensor.pyi +3 -17
  689. homeassistant-stubs/components/threshold/const.pyi +20 -5
  690. homeassistant-stubs/components/tibber/services.pyi +2 -2
  691. homeassistant-stubs/components/tile/device_tracker.pyi +1 -3
  692. homeassistant-stubs/components/todo/__init__.pyi +1 -1
  693. homeassistant-stubs/components/todo/const.pyi +4 -0
  694. homeassistant-stubs/components/todo/intent.pyi +2 -2
  695. homeassistant-stubs/components/tolo/__init__.pyi +3 -22
  696. homeassistant-stubs/components/tolo/binary_sensor.pyi +2 -1
  697. homeassistant-stubs/components/tolo/button.pyi +2 -1
  698. homeassistant-stubs/components/tolo/climate.pyi +2 -1
  699. homeassistant-stubs/components/tolo/coordinator.pyi +20 -0
  700. homeassistant-stubs/components/tolo/entity.pyi +11 -0
  701. homeassistant-stubs/components/tolo/fan.pyi +2 -1
  702. homeassistant-stubs/components/tolo/light.pyi +2 -1
  703. homeassistant-stubs/components/tolo/number.pyi +2 -1
  704. homeassistant-stubs/components/tolo/select.pyi +2 -1
  705. homeassistant-stubs/components/tolo/sensor.pyi +2 -1
  706. homeassistant-stubs/components/tolo/switch.pyi +2 -1
  707. homeassistant-stubs/components/tplink/binary_sensor.pyi +1 -1
  708. homeassistant-stubs/components/tplink/button.pyi +2 -1
  709. homeassistant-stubs/components/tplink/deprecate.pyi +18 -0
  710. homeassistant-stubs/components/tplink/entity.pyi +8 -4
  711. homeassistant-stubs/components/tplink/number.pyi +3 -1
  712. homeassistant-stubs/components/tplink/select.pyi +1 -1
  713. homeassistant-stubs/components/tplink/sensor.pyi +2 -1
  714. homeassistant-stubs/components/tplink/siren.pyi +22 -0
  715. homeassistant-stubs/components/tplink/switch.pyi +1 -1
  716. homeassistant-stubs/components/tplink_omada/__init__.pyi +2 -0
  717. homeassistant-stubs/components/tplink_omada/controller.pyi +10 -5
  718. homeassistant-stubs/components/tplink_omada/coordinator.pyi +7 -2
  719. homeassistant-stubs/components/tplink_omada/device_tracker.pyi +1 -3
  720. homeassistant-stubs/components/tplink_omada/entity.pyi +0 -1
  721. homeassistant-stubs/components/tplink_omada/update.pyi +8 -7
  722. homeassistant-stubs/components/trace/__init__.pyi +1 -2
  723. homeassistant-stubs/components/trace/const.pyi +7 -3
  724. homeassistant-stubs/components/tractive/device_tracker.pyi +3 -9
  725. homeassistant-stubs/components/tradfri/cover.pyi +1 -1
  726. homeassistant-stubs/components/tradfri/fan.pyi +1 -1
  727. homeassistant-stubs/components/tradfri/light.pyi +1 -1
  728. homeassistant-stubs/components/tradfri/sensor.pyi +1 -1
  729. homeassistant-stubs/components/tradfri/switch.pyi +1 -1
  730. homeassistant-stubs/components/tts/__init__.pyi +2 -1
  731. homeassistant-stubs/components/tts/const.pyi +6 -1
  732. homeassistant-stubs/components/tts/helper.pyi +2 -3
  733. homeassistant-stubs/components/tts/legacy.pyi +0 -1
  734. homeassistant-stubs/components/tts/media_source.pyi +3 -3
  735. homeassistant-stubs/components/unifi/device_tracker.pyi +2 -4
  736. homeassistant-stubs/components/unifi/hub/__init__.pyi +2 -0
  737. homeassistant-stubs/components/unifi/switch.pyi +1 -1
  738. homeassistant-stubs/components/unifiprotect/binary_sensor.pyi +1 -2
  739. homeassistant-stubs/components/unifiprotect/button.pyi +1 -2
  740. homeassistant-stubs/components/unifiprotect/entity.pyi +40 -3
  741. homeassistant-stubs/components/unifiprotect/event.pyi +1 -2
  742. homeassistant-stubs/components/unifiprotect/media_source.pyi +1 -1
  743. homeassistant-stubs/components/unifiprotect/number.pyi +1 -2
  744. homeassistant-stubs/components/unifiprotect/select.pyi +1 -2
  745. homeassistant-stubs/components/unifiprotect/sensor.pyi +1 -2
  746. homeassistant-stubs/components/unifiprotect/switch.pyi +1 -2
  747. homeassistant-stubs/components/unifiprotect/text.pyi +1 -2
  748. homeassistant-stubs/components/upcloud/__init__.pyi +2 -37
  749. homeassistant-stubs/components/upcloud/binary_sensor.pyi +2 -1
  750. homeassistant-stubs/components/upcloud/const.pyi +1 -0
  751. homeassistant-stubs/components/upcloud/entity.pyi +38 -0
  752. homeassistant-stubs/components/upcloud/switch.pyi +4 -1
  753. homeassistant-stubs/components/update/__init__.pyi +1 -0
  754. homeassistant-stubs/components/uvc/__init__.pyi +0 -0
  755. homeassistant-stubs/components/uvc/camera.pyi +54 -0
  756. homeassistant-stubs/components/vacuum/__init__.pyi +21 -14
  757. homeassistant-stubs/components/vallox/__init__.pyi +6 -9
  758. homeassistant-stubs/components/vallox/binary_sensor.pyi +1 -1
  759. homeassistant-stubs/components/vallox/config_flow.pyi +5 -2
  760. homeassistant-stubs/components/vallox/const.pyi +3 -3
  761. homeassistant-stubs/components/vallox/date.pyi +1 -1
  762. homeassistant-stubs/components/vallox/entity.pyi +12 -0
  763. homeassistant-stubs/components/vallox/fan.pyi +2 -2
  764. homeassistant-stubs/components/vallox/number.pyi +1 -1
  765. homeassistant-stubs/components/vallox/sensor.pyi +2 -2
  766. homeassistant-stubs/components/vallox/switch.pyi +1 -1
  767. homeassistant-stubs/components/valve/__init__.pyi +3 -1
  768. homeassistant-stubs/components/valve/const.pyi +9 -0
  769. homeassistant-stubs/components/velbus/climate.pyi +4 -1
  770. homeassistant-stubs/components/wallbox/const.pyi +4 -0
  771. homeassistant-stubs/components/wallbox/coordinator.pyi +3 -1
  772. homeassistant-stubs/components/wallbox/number.pyi +1 -1
  773. homeassistant-stubs/components/wallbox/sensor.pyi +1 -1
  774. homeassistant-stubs/components/water_heater/__init__.pyi +2 -0
  775. homeassistant-stubs/components/weather/__init__.pyi +1 -1
  776. homeassistant-stubs/components/weather/const.pyi +5 -0
  777. homeassistant-stubs/components/weather/intent.pyi +1 -3
  778. homeassistant-stubs/components/weather/websocket_api.pyi +1 -2
  779. homeassistant-stubs/components/webostv/device_trigger.pyi +1 -2
  780. homeassistant-stubs/components/withings/config_flow.pyi +1 -1
  781. homeassistant-stubs/components/yale_smart_alarm/coordinator.pyi +1 -0
  782. homeassistant-stubs/components/yale_smart_alarm/entity.pyi +9 -1
  783. homeassistant-stubs/components/yale_smart_alarm/lock.pyi +10 -6
  784. homeassistant-stubs/components/yale_smart_alarm/switch.pyi +20 -0
  785. homeassistant-stubs/components/youtube/const.pyi +1 -0
  786. homeassistant-stubs/components/youtube/coordinator.pyi +1 -1
  787. homeassistant-stubs/components/youtube/sensor.pyi +1 -1
  788. homeassistant-stubs/components/zeroconf/__init__.pyi +4 -0
  789. homeassistant-stubs/components/zwave_js/__init__.pyi +1 -1
  790. homeassistant-stubs/components/zwave_js/binary_sensor.pyi +1 -0
  791. homeassistant-stubs/components/zwave_js/const.pyi +1 -0
  792. homeassistant-stubs/components/zwave_js/cover.pyi +5 -0
  793. homeassistant-stubs/components/zwave_js/device_condition.pyi +1 -1
  794. homeassistant-stubs/components/zwave_js/device_trigger.pyi +1 -2
  795. homeassistant-stubs/components/zwave_js/diagnostics.pyi +1 -2
  796. homeassistant-stubs/components/zwave_js/entity.pyi +1 -2
  797. homeassistant-stubs/components/zwave_js/lock.pyi +2 -3
  798. homeassistant-stubs/components/zwave_js/migrate.pyi +8 -7
  799. homeassistant-stubs/components/zwave_js/sensor.pyi +8 -4
  800. homeassistant-stubs/components/zwave_js/triggers/value_updated.pyi +1 -1
  801. homeassistant-stubs/config_entries.pyi +9 -4
  802. homeassistant-stubs/const.pyi +19 -8
  803. homeassistant-stubs/helpers/aiohttp_client.pyi +8 -7
  804. homeassistant-stubs/helpers/condition.pyi +2 -0
  805. homeassistant-stubs/helpers/config_validation.pyi +5 -1
  806. homeassistant-stubs/helpers/discovery.pyi +1 -1
  807. homeassistant-stubs/helpers/discovery_flow.pyi +12 -2
  808. homeassistant-stubs/helpers/frame.pyi +1 -1
  809. homeassistant-stubs/helpers/llm.pyi +5 -5
  810. homeassistant-stubs/helpers/script.pyi +1 -1
  811. homeassistant-stubs/helpers/state.pyi +2 -1
  812. homeassistant-stubs/helpers/template.pyi +5 -1
  813. homeassistant-stubs/util/aiohttp.pyi +10 -0
  814. homeassistant-stubs/util/package.pyi +3 -0
  815. homeassistant-stubs/util/ssl.pyi +8 -4
  816. homeassistant-stubs/util/unit_conversion.pyi +2 -0
  817. homeassistant-stubs/util/unit_system.pyi +1 -0
  818. {homeassistant_stubs-2024.9.3.dist-info → homeassistant_stubs-2024.10.0.dist-info}/METADATA +2 -2
  819. {homeassistant_stubs-2024.9.3.dist-info → homeassistant_stubs-2024.10.0.dist-info}/RECORD +850 -725
  820. homeassistant-stubs/components/esphome/voice_assistant.pyi +0 -66
  821. homeassistant-stubs/components/notion/model.pyi +0 -7
  822. homeassistant-stubs/components/overkiz/climate.pyi +0 -10
  823. homeassistant-stubs/components/overkiz/cover.pyi +0 -11
  824. homeassistant-stubs/components/overkiz/water_heater_entities/__init__.pyi +0 -8
  825. homeassistant-stubs/components/rainmachine/model.pyi +0 -7
  826. homeassistant-stubs/components/recorder/history/common.pyi +0 -4
  827. homeassistant-stubs/components/unifiprotect/models.pyi +0 -44
  828. /homeassistant-stubs/components/deconz/{deconz_device.pyi → entity.pyi} +0 -0
  829. /homeassistant-stubs/components/devolo_home_control/{devolo_device.pyi → entity.pyi} +0 -0
  830. /homeassistant-stubs/components/knx/{knx_entity.pyi → entity.pyi} +0 -0
  831. /homeassistant-stubs/components/modbus/{base_platform.pyi → entity.pyi} +0 -0
  832. /homeassistant-stubs/components/mysensors/{device.pyi → entity.pyi} +0 -0
  833. /homeassistant-stubs/components/onewire/{onewire_entities.pyi → entity.pyi} +0 -0
  834. /homeassistant-stubs/components/{overkiz/cover_entities → onkyo}/__init__.pyi +0 -0
  835. /homeassistant-stubs/components/overkiz/{climate_entities → climate}/atlantic_electrical_heater.pyi +0 -0
  836. /homeassistant-stubs/components/overkiz/{climate_entities → climate}/atlantic_electrical_heater_with_adjustable_temperature_setpoint.pyi +0 -0
  837. /homeassistant-stubs/components/overkiz/{climate_entities → climate}/atlantic_electrical_towel_dryer.pyi +0 -0
  838. /homeassistant-stubs/components/overkiz/{climate_entities → climate}/atlantic_heat_recovery_ventilation.pyi +0 -0
  839. /homeassistant-stubs/components/overkiz/{climate_entities → climate}/atlantic_pass_apc_heat_pump_main_component.pyi +0 -0
  840. /homeassistant-stubs/components/overkiz/{climate_entities → climate}/atlantic_pass_apc_heating_zone.pyi +0 -0
  841. /homeassistant-stubs/components/overkiz/{climate_entities → climate}/atlantic_pass_apc_zone_control.pyi +0 -0
  842. /homeassistant-stubs/components/overkiz/{climate_entities → climate}/atlantic_pass_apc_zone_control_zone.pyi +0 -0
  843. /homeassistant-stubs/components/overkiz/{climate_entities → climate}/hitachi_air_to_air_heat_pump_hlrrwifi.pyi +0 -0
  844. /homeassistant-stubs/components/overkiz/{climate_entities → climate}/hitachi_air_to_air_heat_pump_ovp.pyi +0 -0
  845. /homeassistant-stubs/components/overkiz/{climate_entities → climate}/somfy_heating_temperature_interface.pyi +0 -0
  846. /homeassistant-stubs/components/overkiz/{climate_entities → climate}/somfy_thermostat.pyi +0 -0
  847. /homeassistant-stubs/components/overkiz/{climate_entities → climate}/valve_heating_temperature_interface.pyi +0 -0
  848. /homeassistant-stubs/components/overkiz/{cover_entities → cover}/awning.pyi +0 -0
  849. /homeassistant-stubs/components/overkiz/{cover_entities → cover}/generic_cover.pyi +0 -0
  850. /homeassistant-stubs/components/overkiz/{cover_entities → cover}/vertical_cover.pyi +0 -0
  851. /homeassistant-stubs/components/overkiz/{water_heater_entities → water_heater}/atlantic_domestic_hot_water_production_mlb_component.pyi +0 -0
  852. /homeassistant-stubs/components/overkiz/{water_heater_entities → water_heater}/atlantic_pass_apc_dhw.pyi +0 -0
  853. /homeassistant-stubs/components/overkiz/{water_heater_entities → water_heater}/domestic_hot_water_production.pyi +0 -0
  854. /homeassistant-stubs/components/overkiz/{water_heater_entities → water_heater}/hitachi_dhw.pyi +0 -0
  855. /homeassistant-stubs/components/roborock/{device.pyi → entity.pyi} +0 -0
  856. /homeassistant-stubs/components/tradfri/{base_class.pyi → entity.pyi} +0 -0
  857. {homeassistant_stubs-2024.9.3.dist-info → homeassistant_stubs-2024.10.0.dist-info}/WHEEL +0 -0
  858. {homeassistant_stubs-2024.9.3.dist-info → homeassistant_stubs-2024.10.0.dist-info}/licenses/LICENSE +0 -0
@@ -2,12 +2,13 @@ import abc
2
2
  from . import get_device_name as get_device_name, legacy_device_id as legacy_device_id
3
3
  from .const import ATTR_CURRENT_A as ATTR_CURRENT_A, ATTR_CURRENT_POWER_W as ATTR_CURRENT_POWER_W, ATTR_TODAY_ENERGY_KWH as ATTR_TODAY_ENERGY_KWH, ATTR_TOTAL_ENERGY_KWH as ATTR_TOTAL_ENERGY_KWH, DOMAIN as DOMAIN, PRIMARY_STATE_ID as PRIMARY_STATE_ID
4
4
  from .coordinator import TPLinkDataUpdateCoordinator as TPLinkDataUpdateCoordinator
5
+ from .deprecate import DeprecatedInfo as DeprecatedInfo, async_check_create_deprecated as async_check_create_deprecated
5
6
  from _typeshed import Incomplete
6
7
  from abc import ABC, abstractmethod
7
8
  from collections.abc import Awaitable as Awaitable, Callable as Callable, Coroutine, Mapping
8
9
  from dataclasses import dataclass
9
10
  from homeassistant.const import EntityCategory as EntityCategory
10
- from homeassistant.core import callback as callback
11
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
11
12
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
12
13
  from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
13
14
  from homeassistant.helpers.entity import EntityDescription as EntityDescription
@@ -25,7 +26,8 @@ LEGACY_KEY_MAPPING: Incomplete
25
26
 
26
27
  @dataclass(frozen=True, kw_only=True)
27
28
  class TPLinkFeatureEntityDescription(EntityDescription):
28
- def __init__(self, *, key, device_class=..., entity_category=..., entity_registry_enabled_default=..., entity_registry_visible_default=..., force_update=..., icon=..., has_entity_name=..., name=..., translation_key=..., translation_placeholders=..., unit_of_measurement=...) -> None: ...
29
+ deprecated_info: DeprecatedInfo | 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=..., deprecated_info=...) -> None: ...
29
31
 
30
32
  def async_refresh_after(func: Callable[Concatenate[_T, _P], Awaitable[None]]) -> Callable[Concatenate[_T, _P], Coroutine[Any, Any, None]]: ...
31
33
 
@@ -50,11 +52,13 @@ class CoordinatedTPLinkFeatureEntity(CoordinatedTPLinkEntity, ABC, metaclass=abc
50
52
  _feature: Feature
51
53
  def __init__(self, device: Device, coordinator: TPLinkDataUpdateCoordinator, *, feature: Feature, description: TPLinkFeatureEntityDescription, parent: Device | None = None) -> None: ...
52
54
  def _get_unique_id(self) -> str: ...
55
+ @staticmethod
56
+ def _get_feature_unique_id(device: Device, entity_description: TPLinkFeatureEntityDescription) -> str: ...
53
57
  @classmethod
54
58
  def _category_for_feature(cls, feature: Feature | None) -> EntityCategory | None: ...
55
59
  @classmethod
56
60
  def _description_for_feature(cls, feature: Feature, descriptions: Mapping[str, _D], *, device: Device, parent: Device | None = None) -> _D | None: ...
57
61
  @classmethod
58
- def _entities_for_device(cls, device: Device, coordinator: TPLinkDataUpdateCoordinator, *, feature_type: Feature.Type, entity_class: type[_E], descriptions: Mapping[str, _D], parent: Device | None = None) -> list[_E]: ...
62
+ def _entities_for_device(cls, hass: HomeAssistant, device: Device, coordinator: TPLinkDataUpdateCoordinator, *, feature_type: Feature.Type, entity_class: type[_E], descriptions: Mapping[str, _D], parent: Device | None = None) -> list[_E]: ...
59
63
  @classmethod
60
- def entities_for_device_and_its_children(cls, device: Device, coordinator: TPLinkDataUpdateCoordinator, *, feature_type: Feature.Type, entity_class: type[_E], descriptions: Mapping[str, _D], child_coordinators: list[TPLinkDataUpdateCoordinator] | None = None) -> list[_E]: ...
64
+ def entities_for_device_and_its_children(cls, hass: HomeAssistant, device: Device, coordinator: TPLinkDataUpdateCoordinator, *, feature_type: Feature.Type, entity_class: type[_E], descriptions: Mapping[str, _D], child_coordinators: list[TPLinkDataUpdateCoordinator] | None = None) -> list[_E]: ...
@@ -1,6 +1,7 @@
1
1
  from . import TPLinkConfigEntry as TPLinkConfigEntry
2
2
  from .entity import CoordinatedTPLinkFeatureEntity as CoordinatedTPLinkFeatureEntity, TPLinkDataUpdateCoordinator as TPLinkDataUpdateCoordinator, TPLinkFeatureEntityDescription as TPLinkFeatureEntityDescription, async_refresh_after as async_refresh_after
3
3
  from _typeshed import Incomplete
4
+ from dataclasses import dataclass
4
5
  from homeassistant.components.number import NumberEntity as NumberEntity, NumberEntityDescription as NumberEntityDescription, NumberMode as NumberMode
5
6
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
6
7
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
@@ -9,8 +10,9 @@ from typing import Final
9
10
 
10
11
  _LOGGER: Incomplete
11
12
 
13
+ @dataclass(frozen=True, kw_only=True)
12
14
  class TPLinkNumberEntityDescription(NumberEntityDescription, TPLinkFeatureEntityDescription):
13
- def __init__(self, *, key, device_class=..., entity_category=..., entity_registry_enabled_default=..., entity_registry_visible_default=..., force_update=..., icon=..., has_entity_name=..., name=..., translation_key=..., translation_placeholders=..., unit_of_measurement=..., max_value=..., min_value=..., mode=..., native_max_value=..., native_min_value=..., native_step=..., native_unit_of_measurement=..., step=...) -> None: ...
15
+ def __init__(self, *, key, device_class=..., entity_category=..., entity_registry_enabled_default=..., entity_registry_visible_default=..., force_update=..., icon=..., has_entity_name=..., name=..., translation_key=..., translation_placeholders=..., unit_of_measurement=..., deprecated_info=..., max_value=..., min_value=..., mode=..., native_max_value=..., native_min_value=..., native_step=..., native_unit_of_measurement=..., step=...) -> None: ...
14
16
 
15
17
  NUMBER_DESCRIPTIONS: Final[Incomplete]
16
18
  NUMBER_DESCRIPTIONS_MAP: Incomplete
@@ -10,7 +10,7 @@ from typing import Final
10
10
 
11
11
  @dataclass(frozen=True, kw_only=True)
12
12
  class TPLinkSelectEntityDescription(SelectEntityDescription, TPLinkFeatureEntityDescription):
13
- def __init__(self, *, key, device_class=..., entity_category=..., entity_registry_enabled_default=..., entity_registry_visible_default=..., force_update=..., icon=..., has_entity_name=..., name=..., translation_key=..., translation_placeholders=..., unit_of_measurement=..., options=...) -> None: ...
13
+ def __init__(self, *, key, device_class=..., entity_category=..., entity_registry_enabled_default=..., entity_registry_visible_default=..., force_update=..., icon=..., has_entity_name=..., name=..., translation_key=..., translation_placeholders=..., unit_of_measurement=..., deprecated_info=..., options=...) -> None: ...
14
14
 
15
15
  SELECT_DESCRIPTIONS: Final[Incomplete]
16
16
  SELECT_DESCRIPTIONS_MAP: Incomplete
@@ -1,5 +1,6 @@
1
1
  from . import TPLinkConfigEntry as TPLinkConfigEntry
2
2
  from .const import UNIT_MAPPING as UNIT_MAPPING
3
+ from .deprecate import async_cleanup_deprecated as async_cleanup_deprecated
3
4
  from .entity import CoordinatedTPLinkFeatureEntity as CoordinatedTPLinkFeatureEntity, TPLinkFeatureEntityDescription as TPLinkFeatureEntityDescription
4
5
  from _typeshed import Incomplete
5
6
  from dataclasses import dataclass
@@ -9,7 +10,7 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEnti
9
10
 
10
11
  @dataclass(frozen=True, kw_only=True)
11
12
  class TPLinkSensorEntityDescription(SensorEntityDescription, TPLinkFeatureEntityDescription):
12
- def __init__(self, *, key, device_class=..., entity_category=..., entity_registry_enabled_default=..., entity_registry_visible_default=..., force_update=..., icon=..., has_entity_name=..., name=..., translation_key=..., translation_placeholders=..., unit_of_measurement=..., last_reset=..., native_unit_of_measurement=..., options=..., state_class=..., suggested_display_precision=..., suggested_unit_of_measurement=...) -> None: ...
13
+ def __init__(self, *, key, device_class=..., entity_category=..., entity_registry_enabled_default=..., entity_registry_visible_default=..., force_update=..., icon=..., has_entity_name=..., name=..., translation_key=..., translation_placeholders=..., unit_of_measurement=..., deprecated_info=..., last_reset=..., native_unit_of_measurement=..., options=..., state_class=..., suggested_display_precision=..., suggested_unit_of_measurement=...) -> None: ...
13
14
 
14
15
  SENSOR_DESCRIPTIONS: tuple[TPLinkSensorEntityDescription, ...]
15
16
  SENSOR_DESCRIPTIONS_MAP: Incomplete
@@ -0,0 +1,22 @@
1
+ from . import TPLinkConfigEntry as TPLinkConfigEntry
2
+ from .coordinator import TPLinkDataUpdateCoordinator as TPLinkDataUpdateCoordinator
3
+ from .entity import CoordinatedTPLinkEntity as CoordinatedTPLinkEntity, async_refresh_after as async_refresh_after
4
+ from _typeshed import Incomplete
5
+ from homeassistant.components.siren import SirenEntity as SirenEntity, SirenEntityFeature as SirenEntityFeature
6
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
7
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
8
+ from kasa import Device as Device
9
+ from kasa.smart.modules.alarm import Alarm as Alarm
10
+ from typing import Any
11
+
12
+ async def async_setup_entry(hass: HomeAssistant, config_entry: TPLinkConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
13
+
14
+ class TPLinkSirenEntity(CoordinatedTPLinkEntity, SirenEntity):
15
+ _attr_name: Incomplete
16
+ _attr_supported_features: Incomplete
17
+ _alarm_module: Incomplete
18
+ def __init__(self, device: Device, coordinator: TPLinkDataUpdateCoordinator) -> None: ...
19
+ async def async_turn_on(self, **kwargs: Any) -> None: ...
20
+ async def async_turn_off(self, **kwargs: Any) -> None: ...
21
+ _attr_is_on: Incomplete
22
+ def _async_update_attrs(self) -> None: ...
@@ -11,7 +11,7 @@ _LOGGER: Incomplete
11
11
 
12
12
  @dataclass(frozen=True, kw_only=True)
13
13
  class TPLinkSwitchEntityDescription(SwitchEntityDescription, TPLinkFeatureEntityDescription):
14
- def __init__(self, *, key, device_class=..., entity_category=..., entity_registry_enabled_default=..., entity_registry_visible_default=..., force_update=..., icon=..., has_entity_name=..., name=..., translation_key=..., translation_placeholders=..., unit_of_measurement=...) -> None: ...
14
+ def __init__(self, *, key, device_class=..., entity_category=..., entity_registry_enabled_default=..., entity_registry_visible_default=..., force_update=..., icon=..., has_entity_name=..., name=..., translation_key=..., translation_placeholders=..., unit_of_measurement=..., deprecated_info=...) -> None: ...
15
15
 
16
16
  SWITCH_DESCRIPTIONS: tuple[TPLinkSwitchEntityDescription, ...]
17
17
  SWITCH_DESCRIPTIONS_MAP: Incomplete
@@ -5,8 +5,10 @@ from homeassistant.config_entries import ConfigEntry as ConfigEntry
5
5
  from homeassistant.const import Platform as Platform
6
6
  from homeassistant.core import HomeAssistant as HomeAssistant
7
7
  from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryNotReady as ConfigEntryNotReady
8
+ from tplink_omada_client.devices import OmadaListDevice as OmadaListDevice
8
9
 
9
10
  PLATFORMS: list[Platform]
10
11
 
11
12
  async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
12
13
  async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
14
+ def _remove_old_devices(hass: HomeAssistant, entry: ConfigEntry, omada_devices: dict[str, OmadaListDevice]) -> None: ...
@@ -1,4 +1,4 @@
1
- from .coordinator import OmadaClientsCoordinator as OmadaClientsCoordinator, OmadaGatewayCoordinator as OmadaGatewayCoordinator, OmadaSwitchPortCoordinator as OmadaSwitchPortCoordinator
1
+ from .coordinator import OmadaClientsCoordinator as OmadaClientsCoordinator, OmadaDevicesCoordinator as OmadaDevicesCoordinator, OmadaGatewayCoordinator as OmadaGatewayCoordinator, OmadaSwitchPortCoordinator as OmadaSwitchPortCoordinator
2
2
  from _typeshed import Incomplete
3
3
  from homeassistant.core import HomeAssistant as HomeAssistant
4
4
  from tplink_omada_client import OmadaSiteClient as OmadaSiteClient
@@ -6,14 +6,19 @@ from tplink_omada_client.devices import OmadaSwitch as OmadaSwitch
6
6
 
7
7
  class OmadaSiteController:
8
8
  _gateway_coordinator: OmadaGatewayCoordinator | None
9
- _initialized_gateway_coordinator: bool
10
- _clients_coordinator: OmadaClientsCoordinator | None
11
9
  _hass: Incomplete
12
10
  _omada_client: Incomplete
13
11
  _switch_port_coordinators: Incomplete
12
+ _devices_coordinator: Incomplete
13
+ _clients_coordinator: Incomplete
14
14
  def __init__(self, hass: HomeAssistant, omada_client: OmadaSiteClient) -> None: ...
15
+ async def initialize_first_refresh(self) -> None: ...
15
16
  @property
16
17
  def omada_client(self) -> OmadaSiteClient: ...
17
18
  def get_switch_port_coordinator(self, switch: OmadaSwitch) -> OmadaSwitchPortCoordinator: ...
18
- async def get_gateway_coordinator(self) -> OmadaGatewayCoordinator | None: ...
19
- def get_clients_coordinator(self) -> OmadaClientsCoordinator: ...
19
+ @property
20
+ def gateway_coordinator(self) -> OmadaGatewayCoordinator | None: ...
21
+ @property
22
+ def devices_coordinator(self) -> OmadaDevicesCoordinator: ...
23
+ @property
24
+ def clients_coordinator(self) -> OmadaClientsCoordinator: ...
@@ -3,16 +3,17 @@ from homeassistant.core import HomeAssistant as HomeAssistant
3
3
  from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
4
4
  from tplink_omada_client import OmadaSiteClient as OmadaSiteClient, OmadaSwitchPortDetails
5
5
  from tplink_omada_client.clients import OmadaWirelessClient
6
- from tplink_omada_client.devices import OmadaGateway, OmadaSwitch as OmadaSwitch
6
+ from tplink_omada_client.devices import OmadaGateway, OmadaListDevice, OmadaSwitch as OmadaSwitch
7
7
 
8
8
  _LOGGER: Incomplete
9
9
  POLL_SWITCH_PORT: int
10
10
  POLL_GATEWAY: int
11
11
  POLL_CLIENTS: int
12
+ POLL_DEVICES: int
12
13
 
13
14
  class OmadaCoordinator(DataUpdateCoordinator[dict[str, _T]]):
14
15
  omada_client: Incomplete
15
- def __init__(self, hass: HomeAssistant, omada_client: OmadaSiteClient, name: str, poll_delay: int = 300) -> None: ...
16
+ def __init__(self, hass: HomeAssistant, omada_client: OmadaSiteClient, name: str, poll_delay: int | None = 300) -> None: ...
16
17
  async def _async_update_data(self) -> dict[str, _T]: ...
17
18
  async def poll_update(self) -> dict[str, _T]: ...
18
19
 
@@ -26,6 +27,10 @@ class OmadaGatewayCoordinator(OmadaCoordinator[OmadaGateway]):
26
27
  def __init__(self, hass: HomeAssistant, omada_client: OmadaSiteClient, mac: str) -> None: ...
27
28
  async def poll_update(self) -> dict[str, OmadaGateway]: ...
28
29
 
30
+ class OmadaDevicesCoordinator(OmadaCoordinator[OmadaListDevice]):
31
+ def __init__(self, hass: HomeAssistant, omada_client: OmadaSiteClient) -> None: ...
32
+ async def poll_update(self) -> dict[str, OmadaListDevice]: ...
33
+
29
34
  class OmadaClientsCoordinator(OmadaCoordinator[OmadaWirelessClient]):
30
35
  def __init__(self, hass: HomeAssistant, omada_client: OmadaSiteClient) -> None: ...
31
36
  async def poll_update(self) -> dict[str, OmadaWirelessClient]: ...
@@ -2,7 +2,7 @@ from .config_flow import CONF_SITE as CONF_SITE
2
2
  from .const import DOMAIN as DOMAIN
3
3
  from .controller import OmadaClientsCoordinator as OmadaClientsCoordinator, OmadaSiteController as OmadaSiteController
4
4
  from _typeshed import Incomplete
5
- from homeassistant.components.device_tracker import ScannerEntity as ScannerEntity, SourceType as SourceType
5
+ from homeassistant.components.device_tracker import ScannerEntity as ScannerEntity
6
6
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
7
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
8
8
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
@@ -19,8 +19,6 @@ class OmadaClientScannerEntity(CoordinatorEntity[OmadaClientsCoordinator], Scann
19
19
  _client_id: Incomplete
20
20
  _attr_name: Incomplete
21
21
  def __init__(self, site_id: str, client_id: str, display_name: str, coordinator: OmadaClientsCoordinator) -> None: ...
22
- @property
23
- def source_type(self) -> SourceType: ...
24
22
  def _do_update(self) -> None: ...
25
23
  async def async_added_to_hass(self) -> None: ...
26
24
  def _handle_coordinator_update(self) -> None: ...
@@ -1,7 +1,6 @@
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.device_registry import DeviceInfo as DeviceInfo
5
4
  from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
6
5
  from tplink_omada_client.devices import OmadaDevice as OmadaDevice
7
6
 
@@ -1,6 +1,6 @@
1
1
  from .const import DOMAIN as DOMAIN
2
2
  from .controller import OmadaSiteController as OmadaSiteController
3
- from .coordinator import OmadaCoordinator as OmadaCoordinator
3
+ from .coordinator import OmadaCoordinator as OmadaCoordinator, OmadaDevicesCoordinator as OmadaDevicesCoordinator, POLL_DEVICES as POLL_DEVICES
4
4
  from .entity import OmadaDeviceEntity as OmadaDeviceEntity
5
5
  from _typeshed import Incomplete
6
6
  from homeassistant.components.update import UpdateDeviceClass as UpdateDeviceClass, UpdateEntity as UpdateEntity, UpdateEntityFeature as UpdateEntityFeature
@@ -12,29 +12,30 @@ from tplink_omada_client import OmadaSiteClient as OmadaSiteClient
12
12
  from tplink_omada_client.devices import OmadaFirmwareUpdate as OmadaFirmwareUpdate, OmadaListDevice as OmadaListDevice
13
13
  from typing import Any, NamedTuple
14
14
 
15
- POLL_DELAY_IDLE: Incomplete
16
15
  POLL_DELAY_UPGRADE: int
17
16
 
18
17
  class FirmwareUpdateStatus(NamedTuple):
19
18
  device: OmadaListDevice
20
19
  firmware: OmadaFirmwareUpdate | None
21
20
 
22
- class OmadaFirmwareUpdateCoodinator(OmadaCoordinator[FirmwareUpdateStatus]):
23
- def __init__(self, hass: HomeAssistant, omada_client: OmadaSiteClient) -> None: ...
24
- update_interval: Incomplete
21
+ class OmadaFirmwareUpdateCoordinator(OmadaCoordinator[FirmwareUpdateStatus]):
22
+ _devices_coordinator: Incomplete
23
+ _config_entry: Incomplete
24
+ def __init__(self, hass: HomeAssistant, config_entry: ConfigEntry, omada_client: OmadaSiteClient, devices_coordinator: OmadaDevicesCoordinator) -> None: ...
25
25
  async def _get_firmware_updates(self) -> list[FirmwareUpdateStatus]: ...
26
26
  async def poll_update(self) -> dict[str, FirmwareUpdateStatus]: ...
27
+ def _handle_devices_update(self) -> None: ...
27
28
 
28
29
  async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
29
30
 
30
- class OmadaDeviceUpdate(OmadaDeviceEntity[OmadaFirmwareUpdateCoodinator], UpdateEntity):
31
+ class OmadaDeviceUpdate(OmadaDeviceEntity[OmadaFirmwareUpdateCoordinator], UpdateEntity):
31
32
  _attr_supported_features: Incomplete
32
33
  _attr_has_entity_name: bool
33
34
  _attr_device_class: Incomplete
34
35
  _mac: Incomplete
35
36
  _omada_client: Incomplete
36
37
  _attr_unique_id: Incomplete
37
- def __init__(self, coordinator: OmadaFirmwareUpdateCoodinator, device: OmadaListDevice) -> None: ...
38
+ def __init__(self, coordinator: OmadaFirmwareUpdateCoordinator, device: OmadaListDevice) -> None: ...
38
39
  def release_notes(self) -> str | None: ...
39
40
  async def async_install(self, version: str | None, backup: bool, **kwargs: Any) -> None: ...
40
41
  _attr_installed_version: Incomplete
@@ -3,7 +3,7 @@ from .const import CONF_STORED_TRACES as CONF_STORED_TRACES, DATA_TRACE as DATA_
3
3
  from .models import ActionTrace as ActionTrace, BaseTrace as BaseTrace, RestoredTrace as RestoredTrace
4
4
  from _typeshed import Incomplete
5
5
  from homeassistant.const import EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP
6
- from homeassistant.core import Event as Event, HomeAssistant as HomeAssistant, callback as callback
6
+ from homeassistant.core import Event as Event, HomeAssistant as HomeAssistant
7
7
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
8
8
  from homeassistant.helpers.json import ExtendedJSONEncoder as ExtendedJSONEncoder
9
9
  from homeassistant.helpers.storage import Store as Store
@@ -19,7 +19,6 @@ TRACE_CONFIG_SCHEMA: Incomplete
19
19
  CONFIG_SCHEMA: Incomplete
20
20
  TraceData = dict[str, LimitedSizeDict[str, BaseTrace]]
21
21
 
22
- def _get_data(hass: HomeAssistant) -> TraceData: ...
23
22
  async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
24
23
  async def async_get_trace(hass: HomeAssistant, key: str, run_id: str) -> dict[str, BaseTrace]: ...
25
24
  async def async_list_contexts(hass: HomeAssistant, key: str | None) -> dict[str, dict[str, str]]: ...
@@ -1,5 +1,9 @@
1
+ from . import TraceData as TraceData
2
+ from homeassistant.helpers.storage import Store as Store
3
+ from homeassistant.util.hass_dict import HassKey as HassKey
4
+
1
5
  CONF_STORED_TRACES: str
2
- DATA_TRACE: str
3
- DATA_TRACE_STORE: str
4
- DATA_TRACES_RESTORED: str
6
+ DATA_TRACE: HassKey[TraceData]
7
+ DATA_TRACE_STORE: HassKey[Store[dict[str, list]]]
8
+ DATA_TRACES_RESTORED: HassKey[bool]
5
9
  DEFAULT_STORED_TRACES: int
@@ -13,21 +13,15 @@ async def async_setup_entry(hass: HomeAssistant, entry: TractiveConfigEntry, asy
13
13
  class TractiveDeviceTracker(TractiveEntity, TrackerEntity):
14
14
  _attr_translation_key: str
15
15
  _battery_level: Incomplete
16
- _latitude: Incomplete
17
- _longitude: Incomplete
18
- _accuracy: Incomplete
16
+ _attr_latitude: Incomplete
17
+ _attr_longitude: Incomplete
18
+ _attr_location_accuracy: Incomplete
19
19
  _source_type: Incomplete
20
20
  _attr_unique_id: Incomplete
21
21
  def __init__(self, client: TractiveClient, item: Trackables) -> None: ...
22
22
  @property
23
23
  def source_type(self) -> SourceType: ...
24
24
  @property
25
- def latitude(self) -> float: ...
26
- @property
27
- def longitude(self) -> float: ...
28
- @property
29
- def location_accuracy(self) -> int: ...
30
- @property
31
25
  def battery_level(self) -> int | None: ...
32
26
  _attr_available: bool
33
27
  def _handle_hardware_status_update(self, event: dict[str, Any]) -> None: ...
@@ -1,6 +1,6 @@
1
- from .base_class import TradfriBaseEntity as TradfriBaseEntity
2
1
  from .const import CONF_GATEWAY_ID as CONF_GATEWAY_ID, COORDINATOR as COORDINATOR, COORDINATOR_LIST as COORDINATOR_LIST, DOMAIN as DOMAIN, KEY_API as KEY_API
3
2
  from .coordinator import TradfriDeviceDataUpdateCoordinator as TradfriDeviceDataUpdateCoordinator
3
+ from .entity import TradfriBaseEntity as TradfriBaseEntity
4
4
  from _typeshed import Incomplete
5
5
  from collections.abc import Callable as Callable
6
6
  from homeassistant.components.cover import ATTR_POSITION as ATTR_POSITION, CoverEntity as CoverEntity
@@ -1,6 +1,6 @@
1
- from .base_class import TradfriBaseEntity as TradfriBaseEntity
2
1
  from .const import CONF_GATEWAY_ID as CONF_GATEWAY_ID, COORDINATOR as COORDINATOR, COORDINATOR_LIST as COORDINATOR_LIST, DOMAIN as DOMAIN, KEY_API as KEY_API
3
2
  from .coordinator import TradfriDeviceDataUpdateCoordinator as TradfriDeviceDataUpdateCoordinator
3
+ from .entity import TradfriBaseEntity as TradfriBaseEntity
4
4
  from _typeshed import Incomplete
5
5
  from collections.abc import Callable as Callable
6
6
  from homeassistant.components.fan import FanEntity as FanEntity, FanEntityFeature as FanEntityFeature
@@ -1,6 +1,6 @@
1
- from .base_class import TradfriBaseEntity as TradfriBaseEntity
2
1
  from .const import CONF_GATEWAY_ID as CONF_GATEWAY_ID, COORDINATOR as COORDINATOR, COORDINATOR_LIST as COORDINATOR_LIST, DOMAIN as DOMAIN, KEY_API as KEY_API
3
2
  from .coordinator import TradfriDeviceDataUpdateCoordinator as TradfriDeviceDataUpdateCoordinator
3
+ from .entity import TradfriBaseEntity as TradfriBaseEntity
4
4
  from _typeshed import Incomplete
5
5
  from collections.abc import Callable as Callable
6
6
  from homeassistant.components.light import ATTR_BRIGHTNESS as ATTR_BRIGHTNESS, ATTR_COLOR_TEMP as ATTR_COLOR_TEMP, ATTR_HS_COLOR as ATTR_HS_COLOR, ATTR_TRANSITION as ATTR_TRANSITION, ColorMode as ColorMode, LightEntity as LightEntity, LightEntityFeature as LightEntityFeature, filter_supported_color_modes as filter_supported_color_modes
@@ -1,6 +1,6 @@
1
- from .base_class import TradfriBaseEntity as TradfriBaseEntity
2
1
  from .const import CONF_GATEWAY_ID as CONF_GATEWAY_ID, COORDINATOR as COORDINATOR, COORDINATOR_LIST as COORDINATOR_LIST, DOMAIN as DOMAIN, KEY_API as KEY_API, LOGGER as LOGGER
3
2
  from .coordinator import TradfriDeviceDataUpdateCoordinator as TradfriDeviceDataUpdateCoordinator
3
+ from .entity import TradfriBaseEntity as TradfriBaseEntity
4
4
  from _typeshed import Incomplete
5
5
  from collections.abc import Callable as Callable
6
6
  from dataclasses import dataclass
@@ -1,6 +1,6 @@
1
- from .base_class import TradfriBaseEntity as TradfriBaseEntity
2
1
  from .const import CONF_GATEWAY_ID as CONF_GATEWAY_ID, COORDINATOR as COORDINATOR, COORDINATOR_LIST as COORDINATOR_LIST, DOMAIN as DOMAIN, KEY_API as KEY_API
3
2
  from .coordinator import TradfriDeviceDataUpdateCoordinator as TradfriDeviceDataUpdateCoordinator
3
+ from .entity import TradfriBaseEntity as TradfriBaseEntity
4
4
  from _typeshed import Incomplete
5
5
  from collections.abc import Callable as Callable
6
6
  from homeassistant.components.switch import SwitchEntity as SwitchEntity
@@ -13,12 +13,13 @@ from homeassistant.helpers.restore_state import RestoreEntity
13
13
  from homeassistant.helpers.typing import ConfigType
14
14
  from typing import Any, TypedDict
15
15
 
16
- __all__ = ['async_default_engine', 'async_get_media_source_audio', 'async_support_options', 'ATTR_AUDIO_OUTPUT', 'ATTR_PREFERRED_FORMAT', 'ATTR_PREFERRED_SAMPLE_RATE', 'ATTR_PREFERRED_SAMPLE_CHANNELS', 'CONF_LANG', 'DEFAULT_CACHE_DIR', 'generate_media_source_id', 'PLATFORM_SCHEMA_BASE', 'PLATFORM_SCHEMA', 'SampleFormat', 'Provider', 'TtsAudioType', 'Voice']
16
+ __all__ = ['async_default_engine', 'async_get_media_source_audio', 'async_support_options', 'ATTR_AUDIO_OUTPUT', 'ATTR_PREFERRED_FORMAT', 'ATTR_PREFERRED_SAMPLE_RATE', 'ATTR_PREFERRED_SAMPLE_CHANNELS', 'ATTR_PREFERRED_SAMPLE_BYTES', 'CONF_LANG', 'DEFAULT_CACHE_DIR', 'generate_media_source_id', 'PLATFORM_SCHEMA_BASE', 'PLATFORM_SCHEMA', 'SampleFormat', 'Provider', 'TtsAudioType', 'Voice']
17
17
 
18
18
  ATTR_AUDIO_OUTPUT: str
19
19
  ATTR_PREFERRED_FORMAT: str
20
20
  ATTR_PREFERRED_SAMPLE_RATE: str
21
21
  ATTR_PREFERRED_SAMPLE_CHANNELS: str
22
+ ATTR_PREFERRED_SAMPLE_BYTES: str
22
23
  CONF_LANG: str
23
24
 
24
25
  class TTSCache(TypedDict):
@@ -1,3 +1,7 @@
1
+ from . import SpeechManager as SpeechManager, TextToSpeechEntity as TextToSpeechEntity
2
+ from homeassistant.helpers.entity_component import EntityComponent as EntityComponent
3
+ from homeassistant.util.hass_dict import HassKey as HassKey
4
+
1
5
  ATTR_CACHE: str
2
6
  ATTR_LANGUAGE: str
3
7
  ATTR_MESSAGE: str
@@ -10,5 +14,6 @@ DEFAULT_CACHE: bool
10
14
  DEFAULT_CACHE_DIR: str
11
15
  DEFAULT_TIME_MEMORY: int
12
16
  DOMAIN: str
13
- DATA_TTS_MANAGER: str
17
+ DATA_COMPONENT: HassKey[EntityComponent[TextToSpeechEntity]]
18
+ DATA_TTS_MANAGER: HassKey[SpeechManager]
14
19
  TtsAudioType = tuple[str | None, bytes | None]
@@ -1,7 +1,6 @@
1
- from . import SpeechManager as SpeechManager, TextToSpeechEntity as TextToSpeechEntity
2
- from .const import DATA_TTS_MANAGER as DATA_TTS_MANAGER, DOMAIN as DOMAIN
1
+ from . import TextToSpeechEntity as TextToSpeechEntity
2
+ from .const import DATA_COMPONENT as DATA_COMPONENT, DATA_TTS_MANAGER as DATA_TTS_MANAGER
3
3
  from .legacy import Provider as Provider
4
4
  from homeassistant.core import HomeAssistant as HomeAssistant
5
- from homeassistant.helpers.entity_component import EntityComponent as EntityComponent
6
5
 
7
6
  def get_engine_instance(hass: HomeAssistant, engine: str) -> TextToSpeechEntity | Provider | None: ...
@@ -1,5 +1,4 @@
1
1
  import abc
2
- from . import SpeechManager as SpeechManager
3
2
  from .const import ATTR_CACHE as ATTR_CACHE, ATTR_LANGUAGE as ATTR_LANGUAGE, ATTR_MESSAGE as ATTR_MESSAGE, ATTR_OPTIONS as ATTR_OPTIONS, CONF_CACHE as CONF_CACHE, CONF_CACHE_DIR as CONF_CACHE_DIR, CONF_FIELDS as CONF_FIELDS, CONF_TIME_MEMORY as CONF_TIME_MEMORY, DATA_TTS_MANAGER as DATA_TTS_MANAGER, DEFAULT_CACHE as DEFAULT_CACHE, DEFAULT_CACHE_DIR as DEFAULT_CACHE_DIR, DEFAULT_TIME_MEMORY as DEFAULT_TIME_MEMORY, DOMAIN as DOMAIN, TtsAudioType as TtsAudioType
4
3
  from .media_source import generate_media_source_id as generate_media_source_id
5
4
  from .models import Voice as Voice
@@ -1,14 +1,14 @@
1
- from . import SpeechManager as SpeechManager, TextToSpeechEntity as TextToSpeechEntity
2
- from .const import DATA_TTS_MANAGER as DATA_TTS_MANAGER, DOMAIN as DOMAIN
1
+ from .const import DATA_COMPONENT as DATA_COMPONENT, DATA_TTS_MANAGER as DATA_TTS_MANAGER, DOMAIN as DOMAIN
3
2
  from .helper import get_engine_instance as get_engine_instance
4
3
  from _typeshed import Incomplete
5
4
  from homeassistant.components.media_player import BrowseError as BrowseError, MediaClass as MediaClass
6
5
  from homeassistant.components.media_source import BrowseMediaSource as BrowseMediaSource, MediaSource as MediaSource, MediaSourceItem as MediaSourceItem, PlayMedia as PlayMedia, Unresolvable as Unresolvable
7
6
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
8
7
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
9
- from homeassistant.helpers.entity_component import EntityComponent as EntityComponent
10
8
  from typing import TypedDict
11
9
 
10
+ URL_QUERY_TTS_OPTIONS: str
11
+
12
12
  async def async_get_media_source(hass: HomeAssistant) -> TTSMediaSource: ...
13
13
  def generate_media_source_id(hass: HomeAssistant, message: str, engine: str | None = None, language: str | None = None, options: dict | None = None, cache: bool | None = None) -> str: ...
14
14
 
@@ -10,7 +10,7 @@ from collections.abc import Callable as Callable, Mapping
10
10
  from dataclasses import dataclass
11
11
  from datetime import timedelta
12
12
  from functools import cached_property as cached_property
13
- from homeassistant.components.device_tracker import DOMAIN as DOMAIN, ScannerEntity as ScannerEntity, SourceType as SourceType
13
+ from homeassistant.components.device_tracker import ScannerEntity as ScannerEntity, ScannerEntityDescription as ScannerEntityDescription
14
14
  from homeassistant.core import Event as core_Event, HomeAssistant as HomeAssistant, callback as callback
15
15
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
16
16
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
@@ -32,7 +32,7 @@ def async_client_is_connected_fn(hub: UnifiHub, obj_id: str) -> bool: ...
32
32
  def async_device_heartbeat_timedelta_fn(hub: UnifiHub, obj_id: str) -> timedelta: ...
33
33
 
34
34
  @dataclass(frozen=True, kw_only=True)
35
- class UnifiTrackerEntityDescription(UnifiEntityDescription[HandlerT, ApiItemT]):
35
+ class UnifiTrackerEntityDescription(UnifiEntityDescription[HandlerT, ApiItemT], ScannerEntityDescription):
36
36
  heartbeat_timedelta_fn: Callable[[UnifiHub, str], timedelta]
37
37
  ip_address_fn: Callable[[aiounifi.Controller, str], str | None]
38
38
  is_connected_fn: Callable[[UnifiHub, str], bool]
@@ -59,8 +59,6 @@ class UnifiScannerEntity(UnifiEntity[HandlerT, ApiItemT], ScannerEntity):
59
59
  @cached_property
60
60
  def mac_address(self) -> str: ...
61
61
  @cached_property
62
- def source_type(self) -> SourceType: ...
63
- @cached_property
64
62
  def unique_id(self) -> str: ...
65
63
  def _make_disconnected(self, *_: core_Event) -> None: ...
66
64
  def async_update_state(self, event: ItemEvent, obj_id: str) -> None: ...
@@ -1,2 +1,4 @@
1
1
  from .api import get_unifi_api as get_unifi_api
2
2
  from .hub import UnifiHub as UnifiHub
3
+
4
+ __all__ = ['UnifiHub', 'get_unifi_api']
@@ -10,7 +10,7 @@ from aiounifi.models.dpi_restriction_group import DPIRestrictionGroup
10
10
  from aiounifi.models.event import Event as Event
11
11
  from collections.abc import Callable as Callable, Coroutine
12
12
  from dataclasses import dataclass
13
- from homeassistant.components.switch import DOMAIN as DOMAIN, SwitchDeviceClass as SwitchDeviceClass, SwitchEntity as SwitchEntity, SwitchEntityDescription as SwitchEntityDescription
13
+ from homeassistant.components.switch import SwitchDeviceClass as SwitchDeviceClass, SwitchEntity as SwitchEntity, SwitchEntityDescription as SwitchEntityDescription
14
14
  from homeassistant.const import EntityCategory as EntityCategory
15
15
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
16
16
  from homeassistant.helpers.device_registry import DeviceEntryType as DeviceEntryType, DeviceInfo as DeviceInfo
@@ -1,7 +1,6 @@
1
1
  import dataclasses
2
2
  from .data import ProtectData as ProtectData, ProtectDeviceType as ProtectDeviceType, UFPConfigEntry as UFPConfigEntry
3
- from .entity import BaseProtectEntity as BaseProtectEntity, EventEntityMixin as EventEntityMixin, ProtectDeviceEntity as ProtectDeviceEntity, ProtectIsOnEntity as ProtectIsOnEntity, ProtectNVREntity as ProtectNVREntity, async_all_device_entities as async_all_device_entities
4
- from .models import PermRequired as PermRequired, ProtectEntityDescription as ProtectEntityDescription, ProtectEventMixin as ProtectEventMixin
3
+ from .entity import BaseProtectEntity as BaseProtectEntity, EventEntityMixin as EventEntityMixin, PermRequired as PermRequired, ProtectDeviceEntity as ProtectDeviceEntity, ProtectEntityDescription as ProtectEntityDescription, ProtectEventMixin as ProtectEventMixin, ProtectIsOnEntity as ProtectIsOnEntity, ProtectNVREntity as ProtectNVREntity, async_all_device_entities as async_all_device_entities
5
4
  from _typeshed import Incomplete
6
5
  from collections.abc import Sequence
7
6
  from homeassistant.components.binary_sensor import BinarySensorDeviceClass as BinarySensorDeviceClass, BinarySensorEntity as BinarySensorEntity, BinarySensorEntityDescription as BinarySensorEntityDescription
@@ -1,7 +1,6 @@
1
1
  from .const import DEVICES_THAT_ADOPT as DEVICES_THAT_ADOPT, DOMAIN as DOMAIN
2
2
  from .data import ProtectDeviceType as ProtectDeviceType, UFPConfigEntry as UFPConfigEntry
3
- from .entity import ProtectDeviceEntity as ProtectDeviceEntity, async_all_device_entities as async_all_device_entities
4
- from .models import PermRequired as PermRequired, ProtectEntityDescription as ProtectEntityDescription, ProtectSetableKeysMixin as ProtectSetableKeysMixin, T as T
3
+ from .entity import PermRequired as PermRequired, ProtectDeviceEntity as ProtectDeviceEntity, ProtectEntityDescription as ProtectEntityDescription, ProtectSetableKeysMixin as ProtectSetableKeysMixin, T as T, async_all_device_entities as async_all_device_entities
5
4
  from _typeshed import Incomplete
6
5
  from collections.abc import Sequence
7
6
  from dataclasses import dataclass
@@ -1,15 +1,23 @@
1
1
  from .const import ATTR_EVENT_ID as ATTR_EVENT_ID, ATTR_EVENT_SCORE as ATTR_EVENT_SCORE, DEFAULT_ATTRIBUTION as DEFAULT_ATTRIBUTION, DEFAULT_BRAND as DEFAULT_BRAND, DOMAIN as DOMAIN
2
2
  from .data import ProtectData as ProtectData, ProtectDeviceType as ProtectDeviceType
3
- from .models import PermRequired as PermRequired, ProtectEntityDescription as ProtectEntityDescription, ProtectEventMixin as ProtectEventMixin
4
3
  from _typeshed import Incomplete
5
- from collections.abc import Callable as Callable, Sequence
4
+ from collections.abc import Callable as Callable, Coroutine, Sequence
5
+ from dataclasses import dataclass
6
6
  from datetime import datetime
7
+ from enum import Enum
7
8
  from homeassistant.core import callback as callback
8
9
  from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
9
10
  from homeassistant.helpers.entity import Entity as Entity, EntityDescription as EntityDescription
10
- from uiprotect.data import Event as Event, ModelType, NVR as NVR, ProtectAdoptableDeviceModel
11
+ from typing import Any, Generic, TypeVar
12
+ from uiprotect.data import Event as Event, ModelType, NVR, ProtectAdoptableDeviceModel, SmartDetectObjectType as SmartDetectObjectType
11
13
 
12
14
  _LOGGER: Incomplete
15
+ T = TypeVar('T', bound=ProtectAdoptableDeviceModel | NVR)
16
+
17
+ class PermRequired(int, Enum):
18
+ NO_WRITE = 1
19
+ WRITE = 2
20
+ DELETE = 3
13
21
 
14
22
  def _async_device_entities(data: ProtectData, klass: type[BaseProtectEntity], model_type: ModelType, descs: Sequence[ProtectEntityDescription], unadopted_descs: Sequence[ProtectEntityDescription] | None = None, ufp_device: ProtectAdoptableDeviceModel | None = None) -> list[BaseProtectEntity]: ...
15
23
 
@@ -63,3 +71,32 @@ class EventEntityMixin(ProtectDeviceEntity):
63
71
  def _set_event_attrs(self, event: Event) -> None: ...
64
72
  def _async_event_with_immediate_end(self) -> None: ...
65
73
  def _event_already_ended(self, prev_event: Event | None, prev_event_end: datetime | None) -> bool: ...
74
+
75
+ @dataclass(frozen=True, kw_only=True)
76
+ class ProtectEntityDescription(EntityDescription, Generic[T]):
77
+ ufp_required_field: str | None = ...
78
+ ufp_value: str | None = ...
79
+ ufp_value_fn: Callable[[T], Any] | None = ...
80
+ ufp_enabled: str | None = ...
81
+ ufp_perm: PermRequired | None = ...
82
+ has_required: Callable[[T], bool] = ...
83
+ get_ufp_enabled: Callable[[T], bool] | None = ...
84
+ def get_ufp_value(self, obj: T) -> Any: ...
85
+ def __post_init__(self) -> None: ...
86
+ def __init__(self, *, key, device_class=..., entity_category=..., entity_registry_enabled_default=..., entity_registry_visible_default=..., force_update=..., icon=..., has_entity_name=..., name=..., translation_key=..., translation_placeholders=..., unit_of_measurement=..., ufp_required_field=..., ufp_value=..., ufp_value_fn=..., ufp_enabled=..., ufp_perm=..., has_required=..., get_ufp_enabled=...) -> None: ...
87
+
88
+ @dataclass(frozen=True, kw_only=True)
89
+ class ProtectEventMixin(ProtectEntityDescription[T]):
90
+ ufp_event_obj: str | None = ...
91
+ ufp_obj_type: SmartDetectObjectType | None = ...
92
+ def get_event_obj(self, obj: T) -> Event | None: ...
93
+ def has_matching_smart(self, event: Event) -> bool: ...
94
+ def __post_init__(self) -> None: ...
95
+ def __init__(self, *, key, device_class=..., entity_category=..., entity_registry_enabled_default=..., entity_registry_visible_default=..., force_update=..., icon=..., has_entity_name=..., name=..., translation_key=..., translation_placeholders=..., unit_of_measurement=..., ufp_required_field=..., ufp_value=..., ufp_value_fn=..., ufp_enabled=..., ufp_perm=..., has_required=..., get_ufp_enabled=..., ufp_event_obj=..., ufp_obj_type=...) -> None: ...
96
+
97
+ @dataclass(frozen=True, kw_only=True)
98
+ class ProtectSetableKeysMixin(ProtectEntityDescription[T]):
99
+ ufp_set_method: str | None = ...
100
+ ufp_set_method_fn: Callable[[T, Any], Coroutine[Any, Any, None]] | None = ...
101
+ async def ufp_set(self, obj: T, value: Any) -> None: ...
102
+ def __init__(self, *, key, device_class=..., entity_category=..., entity_registry_enabled_default=..., entity_registry_visible_default=..., force_update=..., icon=..., has_entity_name=..., name=..., translation_key=..., translation_placeholders=..., unit_of_measurement=..., ufp_required_field=..., ufp_value=..., ufp_value_fn=..., ufp_enabled=..., ufp_perm=..., has_required=..., get_ufp_enabled=..., ufp_set_method=..., ufp_set_method_fn=...) -> None: ...
@@ -1,8 +1,7 @@
1
1
  import dataclasses
2
2
  from .const import ATTR_EVENT_ID as ATTR_EVENT_ID
3
3
  from .data import ProtectData as ProtectData, ProtectDeviceType as ProtectDeviceType, UFPConfigEntry as UFPConfigEntry
4
- from .entity import EventEntityMixin as EventEntityMixin, ProtectDeviceEntity as ProtectDeviceEntity
5
- from .models import ProtectEventMixin as ProtectEventMixin
4
+ from .entity import EventEntityMixin as EventEntityMixin, ProtectDeviceEntity as ProtectDeviceEntity, ProtectEventMixin as ProtectEventMixin
6
5
  from _typeshed import Incomplete
7
6
  from homeassistant.components.event import EventDeviceClass as EventDeviceClass, EventEntity as EventEntity, EventEntityDescription as EventEntityDescription
8
7
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
@@ -6,7 +6,7 @@ from datetime import date, datetime, timedelta
6
6
  from enum import Enum
7
7
  from homeassistant.components.camera import CameraImageView as CameraImageView
8
8
  from homeassistant.components.media_player import BrowseError as BrowseError, MediaClass as MediaClass
9
- from homeassistant.components.media_source.models import BrowseMediaSource as BrowseMediaSource, MediaSource as MediaSource, MediaSourceItem as MediaSourceItem, PlayMedia as PlayMedia
9
+ from homeassistant.components.media_source import BrowseMediaSource as BrowseMediaSource, MediaSource as MediaSource, MediaSourceItem as MediaSourceItem, PlayMedia as PlayMedia
10
10
  from homeassistant.const import Platform as Platform
11
11
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
12
12
  from homeassistant.helpers import entity_registry as er
@@ -1,6 +1,5 @@
1
1
  from .data import ProtectData as ProtectData, ProtectDeviceType as ProtectDeviceType, UFPConfigEntry as UFPConfigEntry
2
- from .entity import ProtectDeviceEntity as ProtectDeviceEntity, async_all_device_entities as async_all_device_entities
3
- from .models import PermRequired as PermRequired, ProtectEntityDescription as ProtectEntityDescription, ProtectSetableKeysMixin as ProtectSetableKeysMixin, T as T
2
+ from .entity import PermRequired as PermRequired, ProtectDeviceEntity as ProtectDeviceEntity, ProtectEntityDescription as ProtectEntityDescription, ProtectSetableKeysMixin as ProtectSetableKeysMixin, T as T, async_all_device_entities as async_all_device_entities
4
3
  from _typeshed import Incomplete
5
4
  from collections.abc import Sequence
6
5
  from dataclasses import dataclass
@@ -1,7 +1,6 @@
1
1
  from .const import TYPE_EMPTY_VALUE as TYPE_EMPTY_VALUE
2
2
  from .data import ProtectData as ProtectData, ProtectDeviceType as ProtectDeviceType, UFPConfigEntry as UFPConfigEntry
3
- from .entity import ProtectDeviceEntity as ProtectDeviceEntity, async_all_device_entities as async_all_device_entities
4
- from .models import PermRequired as PermRequired, ProtectEntityDescription as ProtectEntityDescription, ProtectSetableKeysMixin as ProtectSetableKeysMixin, T as T
3
+ from .entity import PermRequired as PermRequired, ProtectDeviceEntity as ProtectDeviceEntity, ProtectEntityDescription as ProtectEntityDescription, ProtectSetableKeysMixin as ProtectSetableKeysMixin, T as T, async_all_device_entities as async_all_device_entities
5
4
  from .utils import async_get_light_motion_current as async_get_light_motion_current
6
5
  from _typeshed import Incomplete
7
6
  from collections.abc import Callable as Callable, Sequence