homeassistant-stubs 2025.7.3__py3-none-any.whl → 2025.8.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.

Potentially problematic release.


This version of homeassistant-stubs might be problematic. Click here for more details.

Files changed (495) hide show
  1. homeassistant-stubs/bootstrap.pyi +1 -1
  2. homeassistant-stubs/components/airnow/__init__.pyi +0 -1
  3. homeassistant-stubs/components/airnow/config_flow.pyi +2 -2
  4. homeassistant-stubs/components/airos/__init__.pyi +9 -0
  5. homeassistant-stubs/components/airos/config_flow.pyi +14 -0
  6. homeassistant-stubs/components/airos/const.pyi +5 -0
  7. homeassistant-stubs/components/airos/coordinator.pyi +16 -0
  8. homeassistant-stubs/components/airos/diagnostics.pyi +13 -0
  9. homeassistant-stubs/components/airos/entity.pyi +11 -0
  10. homeassistant-stubs/components/airos/sensor.pyi +29 -0
  11. homeassistant-stubs/components/airq/const.pyi +0 -1
  12. homeassistant-stubs/components/airq/sensor.pyi +2 -2
  13. homeassistant-stubs/components/airthings/__init__.pyi +1 -3
  14. homeassistant-stubs/components/airthings/coordinator.pyi +3 -1
  15. homeassistant-stubs/components/airthings/sensor.pyi +1 -1
  16. homeassistant-stubs/components/alexa_devices/__init__.pyi +6 -0
  17. homeassistant-stubs/components/alexa_devices/config_flow.pyi +10 -0
  18. homeassistant-stubs/components/alexa_devices/coordinator.pyi +4 -3
  19. homeassistant-stubs/components/alexa_devices/services.pyi +24 -0
  20. homeassistant-stubs/components/amberelectric/__init__.pyi +7 -1
  21. homeassistant-stubs/components/amberelectric/const.pyi +8 -1
  22. homeassistant-stubs/components/amberelectric/coordinator.pyi +1 -2
  23. homeassistant-stubs/components/amberelectric/helpers.pyi +6 -0
  24. homeassistant-stubs/components/amberelectric/sensor.pyi +2 -2
  25. homeassistant-stubs/components/amberelectric/services.pyi +15 -0
  26. homeassistant-stubs/components/analytics/__init__.pyi +1 -0
  27. homeassistant-stubs/components/analytics/analytics.pyi +3 -0
  28. homeassistant-stubs/components/analytics/http.pyi +10 -0
  29. homeassistant-stubs/components/analytics_insights/__init__.pyi +0 -1
  30. homeassistant-stubs/components/analytics_insights/config_flow.pyi +2 -2
  31. homeassistant-stubs/components/androidtv_remote/__init__.pyi +2 -6
  32. homeassistant-stubs/components/androidtv_remote/config_flow.pyi +6 -6
  33. homeassistant-stubs/components/androidtv_remote/diagnostics.pyi +1 -1
  34. homeassistant-stubs/components/androidtv_remote/entity.pyi +2 -2
  35. homeassistant-stubs/components/androidtv_remote/helpers.pyi +3 -1
  36. homeassistant-stubs/components/androidtv_remote/media_player.pyi +4 -4
  37. homeassistant-stubs/components/androidtv_remote/remote.pyi +1 -1
  38. homeassistant-stubs/components/assist_pipeline/__init__.pyi +2 -2
  39. homeassistant-stubs/components/assist_pipeline/const.pyi +0 -1
  40. homeassistant-stubs/components/assist_pipeline/pipeline.pyi +2 -5
  41. homeassistant-stubs/components/asuswrt/router.pyi +3 -1
  42. homeassistant-stubs/components/awair/const.pyi +1 -0
  43. homeassistant-stubs/components/awair/sensor.pyi +1 -1
  44. homeassistant-stubs/components/backup/__init__.pyi +6 -2
  45. homeassistant-stubs/components/backup/coordinator.pyi +0 -1
  46. homeassistant-stubs/components/backup/manager.pyi +6 -3
  47. homeassistant-stubs/components/backup/onboarding.pyi +1 -1
  48. homeassistant-stubs/components/backup/services.pyi +7 -0
  49. homeassistant-stubs/components/backup/websocket.pyi +4 -1
  50. homeassistant-stubs/components/blue_current/__init__.pyi +5 -5
  51. homeassistant-stubs/components/blue_current/const.pyi +11 -0
  52. homeassistant-stubs/components/blue_current/switch.pyi +40 -0
  53. homeassistant-stubs/components/bosch_alarm/__init__.pyi +1 -1
  54. homeassistant-stubs/components/bosch_alarm/services.pyi +3 -2
  55. homeassistant-stubs/components/bring/__init__.pyi +5 -0
  56. homeassistant-stubs/components/bring/const.pyi +4 -0
  57. homeassistant-stubs/components/bring/services.pyi +14 -0
  58. homeassistant-stubs/components/cloud/backup.pyi +3 -3
  59. homeassistant-stubs/components/cloud/repairs.pyi +3 -3
  60. homeassistant-stubs/components/cloud/subscription.pyi +2 -1
  61. homeassistant-stubs/components/cloud/tts.pyi +2 -1
  62. homeassistant-stubs/components/command_line/sensor.pyi +0 -2
  63. homeassistant-stubs/components/demo/vacuum.pyi +0 -3
  64. homeassistant-stubs/components/derivative/__init__.pyi +5 -1
  65. homeassistant-stubs/components/derivative/config_flow.pyi +2 -0
  66. homeassistant-stubs/components/derivative/sensor.pyi +7 -4
  67. homeassistant-stubs/components/devolo_home_control/config_flow.pyi +3 -7
  68. homeassistant-stubs/components/devolo_home_control/entity.pyi +0 -1
  69. homeassistant-stubs/components/devolo_home_network/coordinator.pyi +2 -2
  70. homeassistant-stubs/components/devolo_home_network/device_tracker.pyi +2 -2
  71. homeassistant-stubs/components/devolo_home_network/entity.pyi +1 -1
  72. homeassistant-stubs/components/devolo_home_network/sensor.pyi +1 -1
  73. homeassistant-stubs/components/discovergy/__init__.pyi +1 -0
  74. homeassistant-stubs/components/discovergy/coordinator.pyi +1 -0
  75. homeassistant-stubs/components/dnsip/__init__.pyi +0 -1
  76. homeassistant-stubs/components/dnsip/config_flow.pyi +2 -2
  77. homeassistant-stubs/components/downloader/services.pyi +1 -0
  78. homeassistant-stubs/components/ecovacs/binary_sensor.pyi +13 -3
  79. homeassistant-stubs/components/ecovacs/sensor.pyi +13 -0
  80. homeassistant-stubs/components/ecovacs/vacuum.pyi +1 -7
  81. homeassistant-stubs/components/eheimdigital/config_flow.pyi +2 -1
  82. homeassistant-stubs/components/elevenlabs/config_flow.pyi +1 -1
  83. homeassistant-stubs/components/elevenlabs/const.pyi +0 -2
  84. homeassistant-stubs/components/elevenlabs/tts.pyi +2 -3
  85. homeassistant-stubs/components/enphase_envoy/__init__.pyi +0 -2
  86. homeassistant-stubs/components/enphase_envoy/config_flow.pyi +2 -2
  87. homeassistant-stubs/components/esphome/config_flow.pyi +2 -0
  88. homeassistant-stubs/components/esphome/encryption_key_storage.pyi +29 -0
  89. homeassistant-stubs/components/esphome/entity.pyi +3 -1
  90. homeassistant-stubs/components/esphome/entry_data.pyi +14 -6
  91. homeassistant-stubs/components/esphome/manager.pyi +3 -1
  92. homeassistant-stubs/components/feedreader/__init__.pyi +0 -1
  93. homeassistant-stubs/components/feedreader/config_flow.pyi +3 -3
  94. homeassistant-stubs/components/forecast_solar/__init__.pyi +0 -1
  95. homeassistant-stubs/components/forecast_solar/config_flow.pyi +2 -2
  96. homeassistant-stubs/components/fritz/__init__.pyi +0 -1
  97. homeassistant-stubs/components/fritz/config_flow.pyi +2 -2
  98. homeassistant-stubs/components/fritzbox_callmonitor/__init__.pyi +0 -1
  99. homeassistant-stubs/components/fritzbox_callmonitor/config_flow.pyi +2 -2
  100. homeassistant-stubs/components/frontend/__init__.pyi +1 -0
  101. homeassistant-stubs/components/fujitsu_fglair/climate.pyi +1 -1
  102. homeassistant-stubs/components/generic_hygrostat/__init__.pyi +3 -1
  103. homeassistant-stubs/components/generic_hygrostat/config_flow.pyi +1 -0
  104. homeassistant-stubs/components/generic_hygrostat/humidifier.pyi +3 -3
  105. homeassistant-stubs/components/generic_thermostat/__init__.pyi +5 -1
  106. homeassistant-stubs/components/generic_thermostat/climate.pyi +3 -3
  107. homeassistant-stubs/components/generic_thermostat/config_flow.pyi +1 -0
  108. homeassistant-stubs/components/geo_location/trigger.pyi +0 -1
  109. homeassistant-stubs/components/gios/const.pyi +2 -0
  110. homeassistant-stubs/components/gios/sensor.pyi +1 -1
  111. homeassistant-stubs/components/google_assistant_sdk/application_credentials.pyi +1 -0
  112. homeassistant-stubs/components/google_cloud/const.pyi +1 -0
  113. homeassistant-stubs/components/google_cloud/stt.pyi +3 -2
  114. homeassistant-stubs/components/guardian/__init__.pyi +1 -1
  115. homeassistant-stubs/components/guardian/services.pyi +2 -1
  116. homeassistant-stubs/components/habitica/button.pyi +3 -4
  117. homeassistant-stubs/components/habitica/coordinator.pyi +2 -3
  118. homeassistant-stubs/components/habitica/entity.pyi +1 -1
  119. homeassistant-stubs/components/habitica/sensor.pyi +3 -18
  120. homeassistant-stubs/components/habitica/switch.pyi +4 -3
  121. homeassistant-stubs/components/habitica/util.pyi +2 -1
  122. homeassistant-stubs/components/heos/__init__.pyi +1 -1
  123. homeassistant-stubs/components/heos/config_flow.pyi +3 -0
  124. homeassistant-stubs/components/heos/services.pyi +3 -2
  125. homeassistant-stubs/components/here_travel_time/__init__.pyi +3 -1
  126. homeassistant-stubs/components/here_travel_time/config_flow.pyi +3 -2
  127. homeassistant-stubs/components/here_travel_time/const.pyi +1 -0
  128. homeassistant-stubs/components/here_travel_time/coordinator.pyi +1 -1
  129. homeassistant-stubs/components/here_travel_time/model.pyi +2 -1
  130. homeassistant-stubs/components/history_stats/__init__.pyi +5 -1
  131. homeassistant-stubs/components/history_stats/config_flow.pyi +14 -0
  132. homeassistant-stubs/components/history_stats/coordinator.pyi +3 -1
  133. homeassistant-stubs/components/history_stats/data.pyi +2 -1
  134. homeassistant-stubs/components/history_stats/helpers.pyi +1 -1
  135. homeassistant-stubs/components/history_stats/sensor.pyi +7 -4
  136. homeassistant-stubs/components/holiday/__init__.pyi +0 -1
  137. homeassistant-stubs/components/holiday/config_flow.pyi +2 -2
  138. homeassistant-stubs/components/home_connect/__init__.pyi +1 -1
  139. homeassistant-stubs/components/home_connect/services.pyi +3 -2
  140. homeassistant-stubs/components/homeassistant/__init__.pyi +2 -1
  141. homeassistant-stubs/components/homeassistant/triggers/time.pyi +2 -1
  142. homeassistant-stubs/components/homeassistant_hardware/coordinator.pyi +2 -1
  143. homeassistant-stubs/components/homee/__init__.pyi +1 -1
  144. homeassistant-stubs/components/homee/config_flow.pyi +5 -0
  145. homeassistant-stubs/components/homekit/__init__.pyi +2 -1
  146. homeassistant-stubs/components/http/__init__.pyi +1 -2
  147. homeassistant-stubs/components/huawei_lte/__init__.pyi +1 -2
  148. homeassistant-stubs/components/huawei_lte/config_flow.pyi +5 -4
  149. homeassistant-stubs/components/huawei_lte/const.pyi +1 -1
  150. homeassistant-stubs/components/huawei_lte/diagnostics.pyi +18 -0
  151. homeassistant-stubs/components/husqvarna_automower/button.pyi +2 -2
  152. homeassistant-stubs/components/husqvarna_automower/calendar.pyi +3 -0
  153. homeassistant-stubs/components/husqvarna_automower/coordinator.pyi +15 -13
  154. homeassistant-stubs/components/husqvarna_automower/entity.pyi +2 -6
  155. homeassistant-stubs/components/husqvarna_automower/lawn_mower.pyi +2 -2
  156. homeassistant-stubs/components/husqvarna_automower/sensor.pyi +5 -0
  157. homeassistant-stubs/components/hydrawise/binary_sensor.pyi +1 -1
  158. homeassistant-stubs/components/hydrawise/const.pyi +1 -0
  159. homeassistant-stubs/components/hydrawise/coordinator.pyi +9 -2
  160. homeassistant-stubs/components/hydrawise/entity.pyi +1 -1
  161. homeassistant-stubs/components/hydrawise/sensor.pyi +1 -1
  162. homeassistant-stubs/components/hydrawise/switch.pyi +1 -1
  163. homeassistant-stubs/components/hydrawise/valve.pyi +1 -1
  164. homeassistant-stubs/components/hyperion/__init__.pyi +0 -1
  165. homeassistant-stubs/components/hyperion/config_flow.pyi +2 -2
  166. homeassistant-stubs/components/imgw_pib/sensor.pyi +7 -1
  167. homeassistant-stubs/components/immich/__init__.pyi +6 -0
  168. homeassistant-stubs/components/immich/media_source.pyi +1 -0
  169. homeassistant-stubs/components/immich/services.pyi +18 -0
  170. homeassistant-stubs/components/input_text/__init__.pyi +1 -1
  171. homeassistant-stubs/components/integration/__init__.pyi +5 -1
  172. homeassistant-stubs/components/integration/config_flow.pyi +1 -0
  173. homeassistant-stubs/components/integration/sensor.pyi +5 -6
  174. homeassistant-stubs/components/iron_os/__init__.pyi +0 -3
  175. homeassistant-stubs/components/iron_os/const.pyi +4 -0
  176. homeassistant-stubs/components/iron_os/coordinator.pyi +1 -1
  177. homeassistant-stubs/components/iron_os/number.pyi +20 -4
  178. homeassistant-stubs/components/iron_os/switch.pyi +2 -0
  179. homeassistant-stubs/components/isy994/__init__.pyi +0 -1
  180. homeassistant-stubs/components/isy994/config_flow.pyi +3 -3
  181. homeassistant-stubs/components/jellyfin/browse_media.pyi +2 -1
  182. homeassistant-stubs/components/jellyfin/media_player.pyi +5 -2
  183. homeassistant-stubs/components/jewish_calendar/binary_sensor.pyi +5 -15
  184. homeassistant-stubs/components/jewish_calendar/config_flow.pyi +2 -2
  185. homeassistant-stubs/components/jewish_calendar/entity.pyi +19 -5
  186. homeassistant-stubs/components/jewish_calendar/sensor.pyi +11 -7
  187. homeassistant-stubs/components/knx/__init__.pyi +6 -40
  188. homeassistant-stubs/components/knx/binary_sensor.pyi +3 -2
  189. homeassistant-stubs/components/knx/button.pyi +1 -1
  190. homeassistant-stubs/components/knx/climate.pyi +1 -1
  191. homeassistant-stubs/components/knx/config_flow.pyi +14 -21
  192. homeassistant-stubs/components/knx/const.pyi +1 -1
  193. homeassistant-stubs/components/knx/cover.pyi +3 -2
  194. homeassistant-stubs/components/knx/date.pyi +1 -1
  195. homeassistant-stubs/components/knx/datetime.pyi +1 -1
  196. homeassistant-stubs/components/knx/entity.pyi +1 -1
  197. homeassistant-stubs/components/knx/fan.pyi +1 -1
  198. homeassistant-stubs/components/knx/knx_module.pyi +43 -0
  199. homeassistant-stubs/components/knx/light.pyi +3 -2
  200. homeassistant-stubs/components/knx/notify.pyi +1 -1
  201. homeassistant-stubs/components/knx/number.pyi +1 -1
  202. homeassistant-stubs/components/knx/scene.pyi +1 -1
  203. homeassistant-stubs/components/knx/select.pyi +1 -1
  204. homeassistant-stubs/components/knx/sensor.pyi +1 -1
  205. homeassistant-stubs/components/knx/services.pyi +2 -2
  206. homeassistant-stubs/components/knx/storage/config_store.pyi +4 -0
  207. homeassistant-stubs/components/knx/storage/const.pyi +8 -7
  208. homeassistant-stubs/components/knx/storage/entity_store_schema.pyi +3 -10
  209. homeassistant-stubs/components/knx/storage/knx_selector.pyi +4 -0
  210. homeassistant-stubs/components/knx/storage/migration.pyi +5 -0
  211. homeassistant-stubs/components/knx/storage/util.pyi +16 -0
  212. homeassistant-stubs/components/knx/switch.pyi +3 -2
  213. homeassistant-stubs/components/knx/text.pyi +1 -1
  214. homeassistant-stubs/components/knx/time.pyi +1 -1
  215. homeassistant-stubs/components/knx/weather.pyi +1 -1
  216. homeassistant-stubs/components/knx/websocket.pyi +1 -1
  217. homeassistant-stubs/components/lamarzocco/config_flow.pyi +2 -2
  218. homeassistant-stubs/components/lcn/binary_sensor.pyi +1 -20
  219. homeassistant-stubs/components/lcn/helpers.pyi +1 -0
  220. homeassistant-stubs/components/lcn/light.pyi +2 -1
  221. homeassistant-stubs/components/letpot/coordinator.pyi +3 -4
  222. homeassistant-stubs/components/letpot/switch.pyi +1 -1
  223. homeassistant-stubs/components/letpot/time.pyi +1 -1
  224. homeassistant-stubs/components/lifx/const.pyi +1 -0
  225. homeassistant-stubs/components/lifx/coordinator.pyi +5 -1
  226. homeassistant-stubs/components/lifx/light.pyi +1 -1
  227. homeassistant-stubs/components/lifx/manager.pyi +1 -1
  228. homeassistant-stubs/components/linkplay/select.pyi +35 -0
  229. homeassistant-stubs/components/litterrobot/sensor.pyi +3 -0
  230. homeassistant-stubs/components/matrix/__init__.pyi +1 -1
  231. homeassistant-stubs/components/matrix/services.pyi +3 -2
  232. homeassistant-stubs/components/matter/entity.pyi +2 -2
  233. homeassistant-stubs/components/matter/light.pyi +1 -1
  234. homeassistant-stubs/components/matter/number.pyi +29 -1
  235. homeassistant-stubs/components/matter/select.pyi +2 -2
  236. homeassistant-stubs/components/matter/vacuum.pyi +2 -1
  237. homeassistant-stubs/components/mcp_server/server.pyi +1 -1
  238. homeassistant-stubs/components/mealie/const.pyi +2 -0
  239. homeassistant-stubs/components/mealie/services.pyi +4 -1
  240. homeassistant-stubs/components/media_player/const.pyi +2 -2
  241. homeassistant-stubs/components/media_source/const.pyi +3 -0
  242. homeassistant-stubs/components/media_source/local_source.pyi +1 -1
  243. homeassistant-stubs/components/media_source/models.pyi +6 -2
  244. homeassistant-stubs/components/met_eireann/__init__.pyi +2 -17
  245. homeassistant-stubs/components/met_eireann/coordinator.pyi +28 -0
  246. homeassistant-stubs/components/met_eireann/weather.pyi +1 -3
  247. homeassistant-stubs/components/miele/__init__.pyi +5 -0
  248. homeassistant-stubs/components/miele/coordinator.pyi +1 -1
  249. homeassistant-stubs/components/miele/entity.pyi +2 -0
  250. homeassistant-stubs/components/miele/sensor.pyi +7 -6
  251. homeassistant-stubs/components/miele/services.pyi +24 -0
  252. homeassistant-stubs/components/miele/vacuum.pyi +0 -2
  253. homeassistant-stubs/components/modem_callerid/sensor.pyi +2 -2
  254. homeassistant-stubs/components/mold_indicator/__init__.pyi +8 -1
  255. homeassistant-stubs/components/mold_indicator/config_flow.pyi +2 -0
  256. homeassistant-stubs/components/mold_indicator/sensor.pyi +2 -2
  257. homeassistant-stubs/components/mqtt/climate.pyi +1 -37
  258. homeassistant-stubs/components/mqtt/config_flow.pyi +38 -6
  259. homeassistant-stubs/components/mqtt/const.pyi +33 -2
  260. homeassistant-stubs/components/mqtt/repairs.pyi +15 -0
  261. homeassistant-stubs/components/mqtt/vacuum.pyi +4 -3
  262. homeassistant-stubs/components/nasweb/const.pyi +1 -0
  263. homeassistant-stubs/components/nasweb/coordinator.pyi +3 -1
  264. homeassistant-stubs/components/nasweb/sensor.pyi +54 -0
  265. homeassistant-stubs/components/netatmo/climate.pyi +1 -1
  266. homeassistant-stubs/components/netatmo/const.pyi +1 -0
  267. homeassistant-stubs/components/nextdns/__init__.pyi +2 -3
  268. homeassistant-stubs/components/nextdns/coordinator.pyi +10 -2
  269. homeassistant-stubs/components/nordpool/const.pyi +1 -0
  270. homeassistant-stubs/components/nordpool/services.pyi +5 -1
  271. homeassistant-stubs/components/number/const.pyi +2 -1
  272. homeassistant-stubs/components/nut/__init__.pyi +0 -1
  273. homeassistant-stubs/components/onewire/__init__.pyi +0 -1
  274. homeassistant-stubs/components/onewire/config_flow.pyi +2 -2
  275. homeassistant-stubs/components/onkyo/__init__.pyi +2 -3
  276. homeassistant-stubs/components/onkyo/config_flow.pyi +9 -6
  277. homeassistant-stubs/components/onkyo/const.pyi +7 -65
  278. homeassistant-stubs/components/onkyo/media_player.pyi +16 -44
  279. homeassistant-stubs/components/onkyo/receiver.pyi +24 -25
  280. homeassistant-stubs/components/onkyo/services.pyi +3 -3
  281. homeassistant-stubs/components/onkyo/util.pyi +3 -0
  282. homeassistant-stubs/components/open_router/__init__.pyi +15 -0
  283. homeassistant-stubs/components/open_router/ai_task.pyi +17 -0
  284. homeassistant-stubs/components/open_router/config_flow.pyi +30 -0
  285. homeassistant-stubs/components/open_router/const.pyi +8 -0
  286. homeassistant-stubs/components/open_router/conversation.pyi +20 -0
  287. homeassistant-stubs/components/open_router/entity.pyi +33 -0
  288. homeassistant-stubs/components/openai_conversation/__init__.pyi +4 -2
  289. homeassistant-stubs/components/openai_conversation/ai_task.pyi +16 -0
  290. homeassistant-stubs/components/openai_conversation/config_flow.pyi +2 -3
  291. homeassistant-stubs/components/openai_conversation/const.pyi +9 -1
  292. homeassistant-stubs/components/openai_conversation/conversation.pyi +6 -22
  293. homeassistant-stubs/components/openai_conversation/entity.pyi +36 -0
  294. homeassistant-stubs/components/opower/__init__.pyi +8 -0
  295. homeassistant-stubs/components/opower/config_flow.pyi +30 -0
  296. homeassistant-stubs/components/opower/const.pyi +4 -0
  297. homeassistant-stubs/components/opower/coordinator.pyi +24 -0
  298. homeassistant-stubs/components/opower/sensor.pyi +35 -0
  299. homeassistant-stubs/components/pegel_online/__init__.pyi +1 -1
  300. homeassistant-stubs/components/pegel_online/sensor.pyi +2 -0
  301. homeassistant-stubs/components/pi_hole/__init__.pyi +6 -2
  302. homeassistant-stubs/components/pi_hole/config_flow.pyi +1 -2
  303. homeassistant-stubs/components/pi_hole/const.pyi +1 -0
  304. homeassistant-stubs/components/pi_hole/sensor.pyi +5 -0
  305. homeassistant-stubs/components/pi_hole/update.pyi +3 -3
  306. homeassistant-stubs/components/ping/__init__.pyi +0 -1
  307. homeassistant-stubs/components/ping/config_flow.pyi +3 -3
  308. homeassistant-stubs/components/plugwise/select.pyi +1 -1
  309. homeassistant-stubs/components/proximity/__init__.pyi +0 -1
  310. homeassistant-stubs/components/proximity/config_flow.pyi +3 -3
  311. homeassistant-stubs/components/purpleair/__init__.pyi +0 -1
  312. homeassistant-stubs/components/purpleair/config_flow.pyi +2 -2
  313. homeassistant-stubs/components/pyload/config_flow.pyi +4 -0
  314. homeassistant-stubs/components/recorder/pool.pyi +2 -1
  315. homeassistant-stubs/components/renault/__init__.pyi +1 -1
  316. homeassistant-stubs/components/renault/services.pyi +3 -2
  317. homeassistant-stubs/components/reolink/__init__.pyi +0 -1
  318. homeassistant-stubs/components/reolink/config_flow.pyi +2 -2
  319. homeassistant-stubs/components/reolink/number.pyi +1 -1
  320. homeassistant-stubs/components/reolink/sensor.pyi +1 -1
  321. homeassistant-stubs/components/rest/sensor.pyi +1 -3
  322. homeassistant-stubs/components/roborock/__init__.pyi +0 -1
  323. homeassistant-stubs/components/roborock/config_flow.pyi +2 -2
  324. homeassistant-stubs/components/roborock/vacuum.pyi +0 -2
  325. homeassistant-stubs/components/roku/__init__.pyi +0 -1
  326. homeassistant-stubs/components/roku/config_flow.pyi +2 -2
  327. homeassistant-stubs/components/russound_rio/const.pyi +2 -0
  328. homeassistant-stubs/components/russound_rio/media_player.pyi +6 -0
  329. homeassistant-stubs/components/scrape/sensor.pyi +1 -2
  330. homeassistant-stubs/components/sensor/const.pyi +2 -1
  331. homeassistant-stubs/components/sensor/device_condition.pyi +1 -0
  332. homeassistant-stubs/components/sensor/device_trigger.pyi +1 -0
  333. homeassistant-stubs/components/shelly/button.pyi +2 -2
  334. homeassistant-stubs/components/shelly/climate.pyi +2 -2
  335. homeassistant-stubs/components/shelly/coordinator.pyi +5 -1
  336. homeassistant-stubs/components/shelly/entity.pyi +3 -0
  337. homeassistant-stubs/components/shelly/event.pyi +2 -2
  338. homeassistant-stubs/components/shelly/sensor.pyi +2 -2
  339. homeassistant-stubs/components/shelly/utils.pyi +2 -2
  340. homeassistant-stubs/components/sleepiq/const.pyi +2 -0
  341. homeassistant-stubs/components/sleepiq/number.pyi +7 -3
  342. homeassistant-stubs/components/sleepiq/select.pyi +15 -2
  343. homeassistant-stubs/components/smhi/coordinator.pyi +3 -0
  344. homeassistant-stubs/components/smhi/entity.pyi +3 -1
  345. homeassistant-stubs/components/smhi/sensor.pyi +30 -0
  346. homeassistant-stubs/components/smhi/weather.pyi +4 -2
  347. homeassistant-stubs/components/sonarr/__init__.pyi +0 -1
  348. homeassistant-stubs/components/sonarr/config_flow.pyi +2 -2
  349. homeassistant-stubs/components/speedtestdotnet/__init__.pyi +0 -1
  350. homeassistant-stubs/components/speedtestdotnet/config_flow.pyi +2 -2
  351. homeassistant-stubs/components/sql/__init__.pyi +0 -1
  352. homeassistant-stubs/components/sql/config_flow.pyi +2 -2
  353. homeassistant-stubs/components/squeezebox/__init__.pyi +3 -2
  354. homeassistant-stubs/components/squeezebox/browse_media.pyi +3 -1
  355. homeassistant-stubs/components/squeezebox/const.pyi +2 -3
  356. homeassistant-stubs/components/squeezebox/coordinator.pyi +2 -2
  357. homeassistant-stubs/components/squeezebox/media_player.pyi +3 -2
  358. homeassistant-stubs/components/statistics/__init__.pyi +3 -1
  359. homeassistant-stubs/components/statistics/config_flow.pyi +1 -0
  360. homeassistant-stubs/components/statistics/sensor.pyi +5 -5
  361. homeassistant-stubs/components/stookwijzer/__init__.pyi +4 -0
  362. homeassistant-stubs/components/stookwijzer/const.pyi +2 -0
  363. homeassistant-stubs/components/stookwijzer/services.pyi +17 -0
  364. homeassistant-stubs/components/switch_as_x/__init__.pyi +2 -2
  365. homeassistant-stubs/components/switch_as_x/entity.pyi +1 -3
  366. homeassistant-stubs/components/switchbot_cloud/__init__.pyi +2 -0
  367. homeassistant-stubs/components/switchbot_cloud/const.pyi +1 -0
  368. homeassistant-stubs/components/switchbot_cloud/fan.pyi +26 -0
  369. homeassistant-stubs/components/switchbot_cloud/light.pyi +40 -0
  370. homeassistant-stubs/components/switchbot_cloud/vacuum.pyi +17 -1
  371. homeassistant-stubs/components/synology_dsm/__init__.pyi +0 -1
  372. homeassistant-stubs/components/synology_dsm/config_flow.pyi +2 -2
  373. homeassistant-stubs/components/tankerkoenig/__init__.pyi +10 -0
  374. homeassistant-stubs/components/tankerkoenig/binary_sensor.pyi +23 -0
  375. homeassistant-stubs/components/tankerkoenig/config_flow.pyi +33 -0
  376. homeassistant-stubs/components/tankerkoenig/const.pyi +13 -0
  377. homeassistant-stubs/components/tankerkoenig/coordinator.pyi +22 -0
  378. homeassistant-stubs/components/tankerkoenig/diagnostics.pyi +10 -0
  379. homeassistant-stubs/components/tankerkoenig/entity.pyi +11 -0
  380. homeassistant-stubs/components/tankerkoenig/sensor.pyi +28 -0
  381. homeassistant-stubs/components/telegram_bot/webhooks.pyi +3 -1
  382. homeassistant-stubs/components/threshold/__init__.pyi +5 -1
  383. homeassistant-stubs/components/threshold/binary_sensor.pyi +3 -4
  384. homeassistant-stubs/components/threshold/config_flow.pyi +1 -0
  385. homeassistant-stubs/components/time_date/config_flow.pyi +1 -2
  386. homeassistant-stubs/components/trafikverket_train/__init__.pyi +0 -1
  387. homeassistant-stubs/components/trafikverket_train/config_flow.pyi +2 -2
  388. homeassistant-stubs/components/trend/__init__.pyi +3 -1
  389. homeassistant-stubs/components/trend/binary_sensor.pyi +3 -4
  390. homeassistant-stubs/components/trend/config_flow.pyi +1 -0
  391. homeassistant-stubs/components/tts/entity.pyi +0 -2
  392. homeassistant-stubs/components/unifi/hub/entity_loader.pyi +3 -2
  393. homeassistant-stubs/components/unifiprotect/__init__.pyi +5 -5
  394. homeassistant-stubs/components/unifiprotect/config_flow.pyi +5 -5
  395. homeassistant-stubs/components/unifiprotect/repairs.pyi +0 -6
  396. homeassistant-stubs/components/unifiprotect/services.pyi +1 -1
  397. homeassistant-stubs/components/uptime_kuma/__init__.pyi +14 -0
  398. homeassistant-stubs/components/uptime_kuma/config_flow.pyi +26 -0
  399. homeassistant-stubs/components/uptime_kuma/const.pyi +7 -0
  400. homeassistant-stubs/components/uptime_kuma/coordinator.pyi +30 -0
  401. homeassistant-stubs/components/uptime_kuma/diagnostics.pyi +9 -0
  402. homeassistant-stubs/components/uptime_kuma/sensor.pyi +46 -0
  403. homeassistant-stubs/components/uptime_kuma/update.pyi +39 -0
  404. homeassistant-stubs/components/vacuum/__init__.pyi +8 -0
  405. homeassistant-stubs/components/velbus/__init__.pyi +1 -1
  406. homeassistant-stubs/components/velbus/const.pyi +0 -1
  407. homeassistant-stubs/components/velbus/services.pyi +4 -4
  408. homeassistant-stubs/components/vodafone_station/__init__.pyi +0 -1
  409. homeassistant-stubs/components/vodafone_station/config_flow.pyi +2 -2
  410. homeassistant-stubs/components/volvo/__init__.pyi +15 -0
  411. homeassistant-stubs/components/volvo/api.pyi +14 -0
  412. homeassistant-stubs/components/volvo/application_credentials.pyi +9 -0
  413. homeassistant-stubs/components/volvo/config_flow.pyi +36 -0
  414. homeassistant-stubs/components/volvo/const.pyi +8 -0
  415. homeassistant-stubs/components/volvo/coordinator.pyi +46 -0
  416. homeassistant-stubs/components/volvo/entity.pyi +33 -0
  417. homeassistant-stubs/components/volvo/sensor.pyi +35 -0
  418. homeassistant-stubs/components/wallbox/__init__.pyi +4 -5
  419. homeassistant-stubs/components/wallbox/coordinator.pyi +8 -2
  420. homeassistant-stubs/components/wallbox/lock.pyi +5 -4
  421. homeassistant-stubs/components/wallbox/number.pyi +6 -5
  422. homeassistant-stubs/components/wallbox/select.pyi +4 -3
  423. homeassistant-stubs/components/wallbox/sensor.pyi +5 -4
  424. homeassistant-stubs/components/wallbox/switch.pyi +5 -4
  425. homeassistant-stubs/components/waqi/__init__.pyi +3 -5
  426. homeassistant-stubs/components/waqi/coordinator.pyi +3 -2
  427. homeassistant-stubs/components/waqi/sensor.pyi +2 -13
  428. homeassistant-stubs/components/webostv/__init__.pyi +0 -1
  429. homeassistant-stubs/components/webostv/config_flow.pyi +3 -3
  430. homeassistant-stubs/components/websocket_api/commands.pyi +4 -0
  431. homeassistant-stubs/components/wiz/fan.pyi +34 -0
  432. homeassistant-stubs/components/wled/__init__.pyi +0 -1
  433. homeassistant-stubs/components/wled/config_flow.pyi +2 -2
  434. homeassistant-stubs/components/workday/__init__.pyi +0 -1
  435. homeassistant-stubs/components/workday/config_flow.pyi +2 -2
  436. homeassistant-stubs/components/yale_smart_alarm/__init__.pyi +0 -1
  437. homeassistant-stubs/components/yale_smart_alarm/config_flow.pyi +2 -2
  438. homeassistant-stubs/components/yalexs_ble/lock.pyi +14 -2
  439. homeassistant-stubs/components/zone/condition.pyi +22 -0
  440. homeassistant-stubs/components/zone/trigger.pyi +2 -1
  441. homeassistant-stubs/components/zwave_js/__init__.pyi +12 -10
  442. homeassistant-stubs/components/zwave_js/api.pyi +36 -35
  443. homeassistant-stubs/components/zwave_js/binary_sensor.pyi +7 -7
  444. homeassistant-stubs/components/zwave_js/button.pyi +5 -5
  445. homeassistant-stubs/components/zwave_js/climate.pyi +5 -5
  446. homeassistant-stubs/components/zwave_js/config_flow.pyi +7 -4
  447. homeassistant-stubs/components/zwave_js/const.pyi +0 -3
  448. homeassistant-stubs/components/zwave_js/cover.pyi +7 -7
  449. homeassistant-stubs/components/zwave_js/device_automation_helpers.pyi +1 -1
  450. homeassistant-stubs/components/zwave_js/diagnostics.pyi +5 -5
  451. homeassistant-stubs/components/zwave_js/entity.pyi +0 -4
  452. homeassistant-stubs/components/zwave_js/event.pyi +4 -4
  453. homeassistant-stubs/components/zwave_js/fan.pyi +6 -6
  454. homeassistant-stubs/components/zwave_js/helpers.pyi +10 -6
  455. homeassistant-stubs/components/zwave_js/humidifier.pyi +4 -4
  456. homeassistant-stubs/components/zwave_js/light.pyi +15 -5
  457. homeassistant-stubs/components/zwave_js/lock.pyi +3 -3
  458. homeassistant-stubs/components/zwave_js/models.pyi +12 -0
  459. homeassistant-stubs/components/zwave_js/number.pyi +6 -6
  460. homeassistant-stubs/components/zwave_js/select.pyi +8 -8
  461. homeassistant-stubs/components/zwave_js/sensor.pyi +10 -10
  462. homeassistant-stubs/components/zwave_js/siren.pyi +4 -4
  463. homeassistant-stubs/components/zwave_js/switch.pyi +7 -7
  464. homeassistant-stubs/components/zwave_js/triggers/event.pyi +1 -2
  465. homeassistant-stubs/components/zwave_js/triggers/trigger_helpers.pyi +1 -1
  466. homeassistant-stubs/components/zwave_js/update.pyi +28 -18
  467. homeassistant-stubs/config.pyi +0 -2
  468. homeassistant-stubs/config_entries.pyi +3 -0
  469. homeassistant-stubs/const.pyi +2 -0
  470. homeassistant-stubs/core.pyi +12 -8
  471. homeassistant-stubs/helpers/condition.pyi +25 -6
  472. homeassistant-stubs/helpers/config_validation.pyi +0 -2
  473. homeassistant-stubs/helpers/device.pyi +2 -0
  474. homeassistant-stubs/helpers/device_registry.pyi +16 -8
  475. homeassistant-stubs/helpers/entity.pyi +3 -1
  476. homeassistant-stubs/helpers/entity_platform.pyi +30 -9
  477. homeassistant-stubs/helpers/frame.pyi +1 -1
  478. homeassistant-stubs/helpers/helper_integration.pyi +2 -1
  479. homeassistant-stubs/helpers/llm.pyi +5 -1
  480. homeassistant-stubs/helpers/schema_config_entry_flow.pyi +1 -0
  481. homeassistant-stubs/helpers/selector.pyi +42 -37
  482. homeassistant-stubs/helpers/service.pyi +9 -26
  483. homeassistant-stubs/helpers/target.pyi +59 -0
  484. homeassistant-stubs/helpers/trigger.pyi +3 -1
  485. homeassistant-stubs/helpers/trigger_template_entity.pyi +5 -1
  486. homeassistant-stubs/loader.pyi +2 -9
  487. homeassistant-stubs/runner.pyi +1 -0
  488. homeassistant-stubs/util/resource.pyi +7 -0
  489. homeassistant-stubs/util/unit_conversion.pyi +1 -1
  490. {homeassistant_stubs-2025.7.3.dist-info → homeassistant_stubs-2025.8.0.dist-info}/METADATA +2 -2
  491. {homeassistant_stubs-2025.7.3.dist-info → homeassistant_stubs-2025.8.0.dist-info}/RECORD +493 -424
  492. homeassistant-stubs/components/backup/basic_websocket.pyi +0 -12
  493. homeassistant-stubs/helpers/backup.pyi +0 -24
  494. {homeassistant_stubs-2025.7.3.dist-info → homeassistant_stubs-2025.8.0.dist-info}/WHEEL +0 -0
  495. {homeassistant_stubs-2025.7.3.dist-info → homeassistant_stubs-2025.8.0.dist-info}/licenses/LICENSE +0 -0
@@ -4,10 +4,9 @@ from _typeshed import Incomplete
4
4
  from collections.abc import Mapping
5
5
  from homeassistant.components import websocket_api as websocket_api
6
6
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
7
- from homeassistant.helpers.entity_platform import EntityPlatform as EntityPlatform
7
+ from homeassistant.helpers.entity_platform import PlatformData as PlatformData
8
8
  from homeassistant.helpers.schema_config_entry_flow import SchemaCommonFlowHandler as SchemaCommonFlowHandler, SchemaConfigFlowHandler as SchemaConfigFlowHandler, SchemaFlowError as SchemaFlowError, SchemaFlowFormStep as SchemaFlowFormStep
9
9
  from homeassistant.helpers.selector import SelectSelector as SelectSelector, SelectSelectorConfig as SelectSelectorConfig, SelectSelectorMode as SelectSelectorMode
10
- from homeassistant.setup import async_prepare_setup_platform as async_prepare_setup_platform
11
10
  from typing import Any
12
11
 
13
12
  _LOGGER: Incomplete
@@ -12,5 +12,4 @@ _LOGGER: Incomplete
12
12
 
13
13
  async def async_setup_entry(hass: HomeAssistant, entry: TVTrainConfigEntry) -> bool: ...
14
14
  async def async_unload_entry(hass: HomeAssistant, entry: TVTrainConfigEntry) -> bool: ...
15
- async def update_listener(hass: HomeAssistant, entry: TVTrainConfigEntry) -> None: ...
16
15
  async def async_migrate_entry(hass: HomeAssistant, entry: TVTrainConfigEntry) -> bool: ...
@@ -1,7 +1,7 @@
1
1
  from .const import CONF_FILTER_PRODUCT as CONF_FILTER_PRODUCT, CONF_FROM as CONF_FROM, CONF_TIME as CONF_TIME, CONF_TO as CONF_TO, DOMAIN as DOMAIN
2
2
  from _typeshed import Incomplete
3
3
  from collections.abc import Mapping
4
- from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow, SOURCE_RECONFIGURE as SOURCE_RECONFIGURE
4
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlowWithReload as OptionsFlowWithReload, SOURCE_RECONFIGURE as SOURCE_RECONFIGURE
5
5
  from homeassistant.const import CONF_API_KEY as CONF_API_KEY, CONF_NAME as CONF_NAME, CONF_WEEKDAY as CONF_WEEKDAY, WEEKDAYS as WEEKDAYS
6
6
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
7
7
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
@@ -35,5 +35,5 @@ class TVTrainConfigFlow(ConfigFlow, domain=DOMAIN):
35
35
  async def async_step_initial(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
36
36
  async def async_step_select_stations(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
37
37
 
38
- class TVTrainOptionsFlowHandler(OptionsFlow):
38
+ class TVTrainOptionsFlowHandler(OptionsFlowWithReload):
39
39
  async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -3,10 +3,12 @@ from homeassistant.config_entries import ConfigEntry as ConfigEntry
3
3
  from homeassistant.const import CONF_ENTITY_ID as CONF_ENTITY_ID, Platform as Platform
4
4
  from homeassistant.core import HomeAssistant as HomeAssistant
5
5
  from homeassistant.helpers.device import async_entity_id_to_device_id as async_entity_id_to_device_id, async_remove_stale_devices_links_keep_entity_device as async_remove_stale_devices_links_keep_entity_device
6
- from homeassistant.helpers.helper_integration import async_handle_source_entity_changes as async_handle_source_entity_changes
6
+ from homeassistant.helpers.helper_integration import async_handle_source_entity_changes as async_handle_source_entity_changes, async_remove_helper_config_entry_from_source_device as async_remove_helper_config_entry_from_source_device
7
7
 
8
8
  PLATFORMS: Incomplete
9
+ _LOGGER: Incomplete
9
10
 
10
11
  async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
12
+ async def async_migrate_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> bool: ...
11
13
  async def config_entry_update_listener(hass: HomeAssistant, entry: ConfigEntry) -> None: ...
12
14
  async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
@@ -7,8 +7,7 @@ from homeassistant.components.binary_sensor import BinarySensorDeviceClass as Bi
7
7
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
8
  from homeassistant.const import ATTR_ENTITY_ID as ATTR_ENTITY_ID, ATTR_FRIENDLY_NAME as ATTR_FRIENDLY_NAME, CONF_ATTRIBUTE as CONF_ATTRIBUTE, CONF_DEVICE_CLASS as CONF_DEVICE_CLASS, CONF_ENTITY_ID as CONF_ENTITY_ID, CONF_FRIENDLY_NAME as CONF_FRIENDLY_NAME, CONF_SENSORS as CONF_SENSORS, CONF_UNIQUE_ID as CONF_UNIQUE_ID, STATE_ON as STATE_ON, STATE_UNAVAILABLE as STATE_UNAVAILABLE, STATE_UNKNOWN as STATE_UNKNOWN
9
9
  from homeassistant.core import Event as Event, EventStateChangedData as EventStateChangedData, HomeAssistant as HomeAssistant, callback as callback
10
- from homeassistant.helpers import device_registry as dr
11
- from homeassistant.helpers.device import async_device_info_to_link_from_entity as async_device_info_to_link_from_entity
10
+ from homeassistant.helpers.device import async_entity_id_to_device as async_entity_id_to_device
12
11
  from homeassistant.helpers.entity import generate_entity_id as generate_entity_id
13
12
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback, AddEntitiesCallback as AddEntitiesCallback
14
13
  from homeassistant.helpers.event import async_track_state_change_event as async_track_state_change_event
@@ -42,9 +41,9 @@ class SensorTrend(BinarySensorEntity, RestoreEntity):
42
41
  _attr_name: Incomplete
43
42
  _attr_device_class: Incomplete
44
43
  _attr_unique_id: Incomplete
45
- _attr_device_info: Incomplete
44
+ device_entry: Incomplete
46
45
  entity_id: Incomplete
47
- def __init__(self, name: str, entity_id: str, attribute: str | None, invert: bool, sample_duration: int, min_gradient: float, min_samples: int, max_samples: int, unique_id: str | None = None, device_class: BinarySensorDeviceClass | None = None, sensor_entity_id: str | None = None, device_info: dr.DeviceInfo | None = None) -> None: ...
46
+ def __init__(self, hass: HomeAssistant, *, name: str, entity_id: str, attribute: str | None, invert: bool, sample_duration: int, min_gradient: float, min_samples: int, max_samples: int, unique_id: str | None = None, device_class: BinarySensorDeviceClass | None = None, sensor_entity_id: str | None = None) -> None: ...
48
47
  @property
49
48
  def extra_state_attributes(self) -> Mapping[str, Any]: ...
50
49
  _attr_available: bool
@@ -13,6 +13,7 @@ async def get_extended_options_schema(handler: SchemaCommonFlowHandler) -> vol.S
13
13
  CONFIG_SCHEMA: Incomplete
14
14
 
15
15
  class ConfigFlowHandler(SchemaConfigFlowHandler, domain=DOMAIN):
16
+ MINOR_VERSION: int
16
17
  config_flow: Incomplete
17
18
  options_flow: Incomplete
18
19
  def async_config_entry_title(self, options: Mapping[str, Any]) -> str: ...
@@ -50,8 +50,6 @@ class TextToSpeechEntity(RestoreEntity, cached_properties=CACHED_PROPERTIES_WITH
50
50
  async def async_speak(self, media_player_entity_id: list[str], message: str, cache: bool, language: str | None = None, options: dict | None = None) -> None: ...
51
51
  @final
52
52
  async def internal_async_stream_tts_audio(self, request: TTSAudioRequest) -> TTSAudioResponse: ...
53
- @final
54
- async def async_internal_get_tts_audio(self, message: str, language: str, options: dict[str, Any]) -> TtsAudioType: ...
55
53
  async def async_stream_tts_audio(self, request: TTSAudioRequest) -> TTSAudioResponse: ...
56
54
  def get_tts_audio(self, message: str, language: str, options: dict[str, Any]) -> TtsAudioType: ...
57
55
  async def async_get_tts_audio(self, message: str, language: str, options: dict[str, Any]) -> TtsAudioType: ...
@@ -1,3 +1,4 @@
1
+ from .. import UnifiConfigEntry as UnifiConfigEntry
1
2
  from ..const import LOGGER as LOGGER, UNIFI_WIRELESS_CLIENTS as UNIFI_WIRELESS_CLIENTS
2
3
  from ..entity import UnifiEntity as UnifiEntity, UnifiEntityDescription as UnifiEntityDescription
3
4
  from .hub import UnifiHub as UnifiHub
@@ -18,11 +19,11 @@ class UnifiEntityLoader:
18
19
  api_updaters: Incomplete
19
20
  polling_api_updaters: Incomplete
20
21
  wireless_clients: Incomplete
21
- _dataUpdateCoordinator: Incomplete
22
+ _data_update_coordinator: Incomplete
22
23
  _update_listener: Incomplete
23
24
  platforms: list[tuple[AddEntitiesCallback, type[UnifiEntity], tuple[UnifiEntityDescription, ...], bool]]
24
25
  known_objects: set[tuple[str, str]]
25
- def __init__(self, hub: UnifiHub) -> None: ...
26
+ def __init__(self, hub: UnifiHub, config_entry: UnifiConfigEntry) -> None: ...
26
27
  async def initialize(self) -> None: ...
27
28
  async def _refresh_data(self, updaters: Sequence[Callable[[], Coroutine[Any, Any, None]]]) -> None: ...
28
29
  async def _update_pollable_api_data(self) -> None: ...
@@ -1,4 +1,4 @@
1
- from .const import AUTH_RETRIES as AUTH_RETRIES, CONF_ALLOW_EA as CONF_ALLOW_EA, DEVICES_THAT_ADOPT as DEVICES_THAT_ADOPT, DOMAIN as DOMAIN, MIN_REQUIRED_PROTECT_V as MIN_REQUIRED_PROTECT_V, OUTDATED_LOG_MESSAGE as OUTDATED_LOG_MESSAGE, PLATFORMS as PLATFORMS
1
+ from .const import AUTH_RETRIES as AUTH_RETRIES, CONF_ALLOW_EA as CONF_ALLOW_EA, DEVICES_THAT_ADOPT as DEVICES_THAT_ADOPT, DOMAIN as DOMAIN, MIN_REQUIRED_PROTECT_V as MIN_REQUIRED_PROTECT_V, PLATFORMS as PLATFORMS
2
2
  from .data import ProtectData as ProtectData, UFPConfigEntry as UFPConfigEntry
3
3
  from .discovery import async_start_discovery as async_start_discovery
4
4
  from .migrate import async_migrate_data as async_migrate_data
@@ -6,9 +6,10 @@ from .services import async_setup_services as async_setup_services
6
6
  from .utils import _async_unifi_mac_from_hass as _async_unifi_mac_from_hass, async_create_api_client as async_create_api_client, async_get_devices as async_get_devices
7
7
  from .views import SnapshotProxyView as SnapshotProxyView, ThumbnailProxyView as ThumbnailProxyView, VideoEventProxyView as VideoEventProxyView, VideoProxyView as VideoProxyView
8
8
  from _typeshed import Incomplete
9
- from homeassistant.const import EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP
9
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
10
+ from homeassistant.const import CONF_API_KEY as CONF_API_KEY, EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP
10
11
  from homeassistant.core import HomeAssistant as HomeAssistant
11
- from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryNotReady as ConfigEntryNotReady
12
+ from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryError as ConfigEntryError, ConfigEntryNotReady as ConfigEntryNotReady
12
13
  from homeassistant.helpers import device_registry as dr
13
14
  from homeassistant.helpers.issue_registry import IssueSeverity as IssueSeverity
14
15
  from homeassistant.helpers.typing import ConfigType as ConfigType
@@ -18,11 +19,10 @@ from uiprotect.test_util.anonymize import anonymize_data as anonymize_data
18
19
  _LOGGER: Incomplete
19
20
  SCAN_INTERVAL: Incomplete
20
21
  CONFIG_SCHEMA: Incomplete
21
- EARLY_ACCESS_URL: str
22
22
 
23
23
  async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
24
24
  async def async_setup_entry(hass: HomeAssistant, entry: UFPConfigEntry) -> bool: ...
25
25
  async def _async_setup_entry(hass: HomeAssistant, entry: UFPConfigEntry, data_service: ProtectData, bootstrap: Bootstrap) -> None: ...
26
- async def _async_options_updated(hass: HomeAssistant, entry: UFPConfigEntry) -> None: ...
27
26
  async def async_unload_entry(hass: HomeAssistant, entry: UFPConfigEntry) -> bool: ...
28
27
  async def async_remove_config_entry_device(hass: HomeAssistant, config_entry: UFPConfigEntry, device_entry: dr.DeviceEntry) -> bool: ...
28
+ async def async_migrate_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
@@ -1,11 +1,11 @@
1
- from .const import CONF_ALLOW_EA as CONF_ALLOW_EA, CONF_ALL_UPDATES as CONF_ALL_UPDATES, CONF_DISABLE_RTSP as CONF_DISABLE_RTSP, CONF_MAX_MEDIA as CONF_MAX_MEDIA, CONF_OVERRIDE_CHOST as CONF_OVERRIDE_CHOST, DEFAULT_MAX_MEDIA as DEFAULT_MAX_MEDIA, DEFAULT_PORT as DEFAULT_PORT, DEFAULT_VERIFY_SSL as DEFAULT_VERIFY_SSL, DOMAIN as DOMAIN, MIN_REQUIRED_PROTECT_V as MIN_REQUIRED_PROTECT_V, OUTDATED_LOG_MESSAGE as OUTDATED_LOG_MESSAGE
1
+ from .const import CONF_ALL_UPDATES as CONF_ALL_UPDATES, CONF_DISABLE_RTSP as CONF_DISABLE_RTSP, CONF_MAX_MEDIA as CONF_MAX_MEDIA, CONF_OVERRIDE_CHOST as CONF_OVERRIDE_CHOST, DEFAULT_MAX_MEDIA as DEFAULT_MAX_MEDIA, DEFAULT_PORT as DEFAULT_PORT, DEFAULT_VERIFY_SSL as DEFAULT_VERIFY_SSL, DOMAIN as DOMAIN, MIN_REQUIRED_PROTECT_V as MIN_REQUIRED_PROTECT_V, OUTDATED_LOG_MESSAGE as OUTDATED_LOG_MESSAGE
2
2
  from .data import async_last_update_was_successful as async_last_update_was_successful
3
3
  from .discovery import async_start_discovery as async_start_discovery
4
4
  from .utils import _async_resolve as _async_resolve, _async_short_mac as _async_short_mac, _async_unifi_mac_from_hass as _async_unifi_mac_from_hass
5
5
  from _typeshed import Incomplete
6
6
  from collections.abc import Mapping
7
- from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigEntryState as ConfigEntryState, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow, SOURCE_IGNORE as SOURCE_IGNORE
8
- from homeassistant.const import CONF_HOST as CONF_HOST, CONF_ID as CONF_ID, CONF_PASSWORD as CONF_PASSWORD, CONF_PORT as CONF_PORT, CONF_USERNAME as CONF_USERNAME, CONF_VERIFY_SSL as CONF_VERIFY_SSL
7
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigEntryState as ConfigEntryState, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlowWithReload as OptionsFlowWithReload, SOURCE_IGNORE as SOURCE_IGNORE
8
+ from homeassistant.const import CONF_API_KEY as CONF_API_KEY, CONF_HOST as CONF_HOST, CONF_ID as CONF_ID, CONF_PASSWORD as CONF_PASSWORD, CONF_PORT as CONF_PORT, CONF_USERNAME as CONF_USERNAME, CONF_VERIFY_SSL as CONF_VERIFY_SSL
9
9
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
10
10
  from homeassistant.helpers.aiohttp_client import async_create_clientsession as async_create_clientsession, async_get_clientsession as async_get_clientsession
11
11
  from homeassistant.helpers.service_info.dhcp import DhcpServiceInfo as DhcpServiceInfo
@@ -35,7 +35,7 @@ class ProtectFlowHandler(ConfigFlow, domain=DOMAIN):
35
35
  async def async_step_discovery_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
36
36
  @staticmethod
37
37
  @callback
38
- def async_get_options_flow(config_entry: ConfigEntry) -> OptionsFlow: ...
38
+ def async_get_options_flow(config_entry: ConfigEntry) -> OptionsFlowHandler: ...
39
39
  @callback
40
40
  def _async_create_entry(self, title: str, data: dict[str, Any]) -> ConfigFlowResult: ...
41
41
  async def _async_get_nvr_data(self, user_input: dict[str, Any]) -> tuple[NVR | None, dict[str, str]]: ...
@@ -43,5 +43,5 @@ class ProtectFlowHandler(ConfigFlow, domain=DOMAIN):
43
43
  async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
44
44
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
45
45
 
46
- class OptionsFlowHandler(OptionsFlow):
46
+ class OptionsFlowHandler(OptionsFlowWithReload):
47
47
  async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -1,4 +1,3 @@
1
- from .const import CONF_ALLOW_EA as CONF_ALLOW_EA
2
1
  from .data import UFPConfigEntry as UFPConfigEntry, async_get_data_for_entry_id as async_get_data_for_entry_id
3
2
  from .utils import async_create_api_client as async_create_api_client
4
3
  from homeassistant import data_entry_flow as data_entry_flow
@@ -15,11 +14,6 @@ class ProtectRepair(RepairsFlow):
15
14
  @callback
16
15
  def _async_get_placeholders(self) -> dict[str, str]: ...
17
16
 
18
- class EAConfirmRepair(ProtectRepair):
19
- async def async_step_init(self, user_input: dict[str, str] | None = None) -> data_entry_flow.FlowResult: ...
20
- async def async_step_start(self, user_input: dict[str, str] | None = None) -> data_entry_flow.FlowResult: ...
21
- async def async_step_confirm(self, user_input: dict[str, str] | None = None) -> data_entry_flow.FlowResult: ...
22
-
23
17
  class CloudAccountRepair(ProtectRepair):
24
18
  async def async_step_init(self, user_input: dict[str, str] | None = None) -> data_entry_flow.FlowResult: ...
25
19
  async def async_step_confirm(self, user_input: dict[str, str] | None = None) -> data_entry_flow.FlowResult: ...
@@ -5,7 +5,7 @@ from homeassistant.components.binary_sensor import BinarySensorDeviceClass as Bi
5
5
  from homeassistant.const import ATTR_DEVICE_ID as ATTR_DEVICE_ID, ATTR_NAME as ATTR_NAME, Platform as Platform
6
6
  from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, ServiceResponse as ServiceResponse, SupportsResponse as SupportsResponse, callback as callback
7
7
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, ServiceValidationError as ServiceValidationError
8
- from homeassistant.helpers.service import async_extract_referenced_entity_ids as async_extract_referenced_entity_ids
8
+ from homeassistant.helpers.target import TargetSelectorData as TargetSelectorData, async_extract_referenced_entity_ids as async_extract_referenced_entity_ids
9
9
  from homeassistant.util.json import JsonValueType as JsonValueType
10
10
  from homeassistant.util.read_only_dict import ReadOnlyDict as ReadOnlyDict
11
11
  from typing import Any
@@ -0,0 +1,14 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from .coordinator import UptimeKumaConfigEntry as UptimeKumaConfigEntry, UptimeKumaDataUpdateCoordinator as UptimeKumaDataUpdateCoordinator, UptimeKumaSoftwareUpdateCoordinator as UptimeKumaSoftwareUpdateCoordinator
3
+ from homeassistant.const import Platform as Platform
4
+ from homeassistant.core import HomeAssistant as HomeAssistant
5
+ from homeassistant.helpers import device_registry as dr
6
+ from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
7
+ from homeassistant.util.hass_dict import HassKey as HassKey
8
+
9
+ _PLATFORMS: list[Platform]
10
+ UPTIME_KUMA_KEY: HassKey[UptimeKumaSoftwareUpdateCoordinator]
11
+
12
+ async def async_setup_entry(hass: HomeAssistant, entry: UptimeKumaConfigEntry) -> bool: ...
13
+ async def async_remove_config_entry_device(hass: HomeAssistant, config_entry: UptimeKumaConfigEntry, device_entry: dr.DeviceEntry) -> bool: ...
14
+ async def async_unload_entry(hass: HomeAssistant, entry: UptimeKumaConfigEntry) -> bool: ...
@@ -0,0 +1,26 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from _typeshed import Incomplete
3
+ from collections.abc import Mapping
4
+ from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
5
+ from homeassistant.const import CONF_API_KEY as CONF_API_KEY, CONF_URL as CONF_URL, CONF_VERIFY_SSL as CONF_VERIFY_SSL
6
+ from homeassistant.core import HomeAssistant as HomeAssistant
7
+ from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
8
+ from homeassistant.helpers.selector import TextSelector as TextSelector, TextSelectorConfig as TextSelectorConfig, TextSelectorType as TextSelectorType
9
+ from homeassistant.helpers.service_info.hassio import HassioServiceInfo as HassioServiceInfo
10
+ from typing import Any
11
+ from yarl import URL
12
+
13
+ _LOGGER: Incomplete
14
+ STEP_USER_DATA_SCHEMA: Incomplete
15
+ STEP_REAUTH_DATA_SCHEMA: Incomplete
16
+
17
+ async def validate_connection(hass: HomeAssistant, url: URL | str, verify_ssl: bool, api_key: str | None) -> dict[str, str]: ...
18
+
19
+ class UptimeKumaConfigFlow(ConfigFlow, domain=DOMAIN):
20
+ _hassio_discovery: HassioServiceInfo | None
21
+ async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
22
+ async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> ConfigFlowResult: ...
23
+ async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
24
+ async def async_step_reconfigure(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
25
+ async def async_step_hassio(self, discovery_info: HassioServiceInfo) -> ConfigFlowResult: ...
26
+ async def async_step_hassio_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -0,0 +1,7 @@
1
+ from _typeshed import Incomplete
2
+
3
+ DOMAIN: str
4
+ HAS_CERT: Incomplete
5
+ HAS_URL: Incomplete
6
+ HAS_PORT: Incomplete
7
+ HAS_HOST: Incomplete
@@ -0,0 +1,30 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from _typeshed import Incomplete
3
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
4
+ from homeassistant.const import CONF_API_KEY as CONF_API_KEY, CONF_URL as CONF_URL, CONF_VERIFY_SSL as CONF_VERIFY_SSL
5
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
6
+ from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed
7
+ from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
8
+ from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
9
+ from pythonkuma import UptimeKumaMonitor, UptimeKumaVersion as UptimeKumaVersion
10
+ from pythonkuma.update import LatestRelease, UpdateChecker as UpdateChecker
11
+
12
+ _LOGGER: Incomplete
13
+ SCAN_INTERVAL: Incomplete
14
+ SCAN_INTERVAL_UPDATES: Incomplete
15
+ type UptimeKumaConfigEntry = ConfigEntry[UptimeKumaDataUpdateCoordinator]
16
+
17
+ class UptimeKumaDataUpdateCoordinator(DataUpdateCoordinator[dict[str | int, UptimeKumaMonitor]]):
18
+ config_entry: UptimeKumaConfigEntry
19
+ api: Incomplete
20
+ version: UptimeKumaVersion | None
21
+ def __init__(self, hass: HomeAssistant, config_entry: UptimeKumaConfigEntry) -> None: ...
22
+ async def _async_update_data(self) -> dict[str | int, UptimeKumaMonitor]: ...
23
+
24
+ @callback
25
+ def async_migrate_entities_unique_ids(hass: HomeAssistant, coordinator: UptimeKumaDataUpdateCoordinator, metrics: dict[str | int, UptimeKumaMonitor]) -> None: ...
26
+
27
+ class UptimeKumaSoftwareUpdateCoordinator(DataUpdateCoordinator[LatestRelease]):
28
+ update_checker: Incomplete
29
+ def __init__(self, hass: HomeAssistant, update_checker: UpdateChecker) -> None: ...
30
+ async def _async_update_data(self) -> LatestRelease: ...
@@ -0,0 +1,9 @@
1
+ from .coordinator import UptimeKumaConfigEntry as UptimeKumaConfigEntry
2
+ from _typeshed import Incomplete
3
+ from homeassistant.components.diagnostics import async_redact_data as async_redact_data
4
+ from homeassistant.core import HomeAssistant as HomeAssistant
5
+ from typing import Any
6
+
7
+ TO_REDACT: Incomplete
8
+
9
+ async def async_get_config_entry_diagnostics(hass: HomeAssistant, entry: UptimeKumaConfigEntry) -> dict[str, Any]: ...
@@ -0,0 +1,46 @@
1
+ from .const import DOMAIN as DOMAIN, HAS_CERT as HAS_CERT, HAS_HOST as HAS_HOST, HAS_PORT as HAS_PORT, HAS_URL as HAS_URL
2
+ from .coordinator import UptimeKumaConfigEntry as UptimeKumaConfigEntry, UptimeKumaDataUpdateCoordinator as UptimeKumaDataUpdateCoordinator
3
+ from _typeshed import Incomplete
4
+ from collections.abc import Callable as Callable
5
+ from dataclasses import dataclass
6
+ from enum import StrEnum
7
+ from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription
8
+ from homeassistant.const import CONF_URL as CONF_URL, EntityCategory as EntityCategory, UnitOfTime as UnitOfTime
9
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
10
+ from homeassistant.helpers.device_registry import DeviceEntryType as DeviceEntryType, DeviceInfo as DeviceInfo
11
+ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
12
+ from homeassistant.helpers.typing import StateType as StateType
13
+ from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
14
+ from pythonkuma import MonitorType, UptimeKumaMonitor as UptimeKumaMonitor
15
+
16
+ PARALLEL_UPDATES: int
17
+
18
+ class UptimeKumaSensor(StrEnum):
19
+ CERT_DAYS_REMAINING = 'cert_days_remaining'
20
+ RESPONSE_TIME = 'response_time'
21
+ STATUS = 'status'
22
+ TYPE = 'type'
23
+ URL = 'url'
24
+ HOSTNAME = 'hostname'
25
+ PORT = 'port'
26
+
27
+ @dataclass(kw_only=True, frozen=True)
28
+ class UptimeKumaSensorEntityDescription(SensorEntityDescription):
29
+ value_fn: Callable[[UptimeKumaMonitor], StateType]
30
+ create_entity: Callable[[MonitorType], bool]
31
+
32
+ SENSOR_DESCRIPTIONS: tuple[UptimeKumaSensorEntityDescription, ...]
33
+
34
+ async def async_setup_entry(hass: HomeAssistant, config_entry: UptimeKumaConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
35
+
36
+ class UptimeKumaSensorEntity(CoordinatorEntity[UptimeKumaDataUpdateCoordinator], SensorEntity):
37
+ entity_description: UptimeKumaSensorEntityDescription
38
+ _attr_has_entity_name: bool
39
+ monitor: Incomplete
40
+ _attr_unique_id: Incomplete
41
+ _attr_device_info: Incomplete
42
+ def __init__(self, coordinator: UptimeKumaDataUpdateCoordinator, monitor: str | int, entity_description: UptimeKumaSensorEntityDescription) -> None: ...
43
+ @property
44
+ def native_value(self) -> StateType: ...
45
+ @property
46
+ def available(self) -> bool: ...
@@ -0,0 +1,39 @@
1
+ from . import UPTIME_KUMA_KEY as UPTIME_KUMA_KEY
2
+ from .const import DOMAIN as DOMAIN
3
+ from .coordinator import UptimeKumaConfigEntry as UptimeKumaConfigEntry, UptimeKumaDataUpdateCoordinator as UptimeKumaDataUpdateCoordinator, UptimeKumaSoftwareUpdateCoordinator as UptimeKumaSoftwareUpdateCoordinator
4
+ from _typeshed import Incomplete
5
+ from enum import StrEnum
6
+ from homeassistant.components.update import UpdateEntity as UpdateEntity, UpdateEntityDescription as UpdateEntityDescription, UpdateEntityFeature as UpdateEntityFeature
7
+ from homeassistant.const import CONF_URL as CONF_URL
8
+ from homeassistant.core import HomeAssistant as HomeAssistant
9
+ from homeassistant.helpers.device_registry import DeviceEntryType as DeviceEntryType, DeviceInfo as DeviceInfo
10
+ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
11
+ from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
12
+
13
+ PARALLEL_UPDATES: int
14
+
15
+ class UptimeKumaUpdate(StrEnum):
16
+ UPDATE = 'update'
17
+
18
+ async def async_setup_entry(hass: HomeAssistant, entry: UptimeKumaConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
19
+
20
+ class UptimeKumaUpdateEntity(CoordinatorEntity[UptimeKumaDataUpdateCoordinator], UpdateEntity):
21
+ entity_description: Incomplete
22
+ _attr_supported_features: Incomplete
23
+ _attr_has_entity_name: bool
24
+ update_checker: Incomplete
25
+ _attr_device_info: Incomplete
26
+ _attr_unique_id: Incomplete
27
+ def __init__(self, coordinator: UptimeKumaDataUpdateCoordinator, update_coordinator: UptimeKumaSoftwareUpdateCoordinator) -> None: ...
28
+ @property
29
+ def installed_version(self) -> str | None: ...
30
+ @property
31
+ def title(self) -> str | None: ...
32
+ @property
33
+ def release_url(self) -> str | None: ...
34
+ @property
35
+ def latest_version(self) -> str | None: ...
36
+ async def async_release_notes(self) -> str | None: ...
37
+ async def async_added_to_hass(self) -> None: ...
38
+ @property
39
+ def available(self) -> bool: ...
@@ -41,6 +41,7 @@ SERVICE_STOP: str
41
41
  DEFAULT_NAME: str
42
42
  _DEPRECATED_STATE_IDLE: Incomplete
43
43
  _DEPRECATED_STATE_PAUSED: Incomplete
44
+ _BATTERY_DEPRECATION_IGNORED_PLATFORMS: Incomplete
44
45
 
45
46
  class VacuumEntityFeature(IntFlag):
46
47
  TURN_ON = 1
@@ -93,12 +94,19 @@ class StateVacuumEntity(Entity, cached_properties=STATE_VACUUM_CACHED_PROPERTIES
93
94
  _attr_activity: VacuumActivity | None
94
95
  _attr_supported_features: VacuumEntityFeature
95
96
  __vacuum_legacy_state: bool
97
+ __vacuum_legacy_battery_level: bool
98
+ __vacuum_legacy_battery_icon: bool
99
+ __vacuum_legacy_battery_feature: bool
96
100
  def __init_subclass__(cls, **kwargs: Any) -> None: ...
97
101
  def __setattr__(self, name: str, value: Any) -> None: ...
98
102
  @callback
99
103
  def add_to_platform_start(self, hass: HomeAssistant, platform: EntityPlatform, parallel_updates: asyncio.Semaphore | None) -> None: ...
100
104
  @callback
101
105
  def _report_deprecated_activity_handling(self) -> None: ...
106
+ @callback
107
+ def _report_deprecated_battery_properties(self, property: str) -> None: ...
108
+ @callback
109
+ def _report_deprecated_battery_feature(self) -> None: ...
102
110
  @cached_property
103
111
  def battery_level(self) -> int | None: ...
104
112
  @property
@@ -1,6 +1,6 @@
1
1
  import asyncio
2
2
  from .const import DOMAIN as DOMAIN
3
- from .services import setup_services as setup_services
3
+ from .services import async_setup_services as async_setup_services
4
4
  from _typeshed import Incomplete
5
5
  from dataclasses import dataclass
6
6
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
@@ -4,7 +4,6 @@ from typing import Final
4
4
 
5
5
  DOMAIN: Final[str]
6
6
  CONF_CONFIG_ENTRY: Final[str]
7
- CONF_INTERFACE: Final[str]
8
7
  CONF_MEMO_TEXT: Final[str]
9
8
  CONF_TLS: Final[str]
10
9
  SERVICE_SCAN: Final[str]
@@ -1,11 +1,11 @@
1
1
  from . import VelbusConfigEntry as VelbusConfigEntry
2
- from .const import CONF_CONFIG_ENTRY as CONF_CONFIG_ENTRY, CONF_INTERFACE as CONF_INTERFACE, CONF_MEMO_TEXT as CONF_MEMO_TEXT, DOMAIN as DOMAIN, SERVICE_CLEAR_CACHE as SERVICE_CLEAR_CACHE, SERVICE_SCAN as SERVICE_SCAN, SERVICE_SET_MEMO_TEXT as SERVICE_SET_MEMO_TEXT, SERVICE_SYNC as SERVICE_SYNC
2
+ from .const import CONF_CONFIG_ENTRY as CONF_CONFIG_ENTRY, CONF_MEMO_TEXT as CONF_MEMO_TEXT, DOMAIN as DOMAIN, SERVICE_CLEAR_CACHE as SERVICE_CLEAR_CACHE, SERVICE_SCAN as SERVICE_SCAN, SERVICE_SET_MEMO_TEXT as SERVICE_SET_MEMO_TEXT, SERVICE_SYNC as SERVICE_SYNC
3
3
  from homeassistant.config_entries import ConfigEntryState as ConfigEntryState
4
4
  from homeassistant.const import CONF_ADDRESS as CONF_ADDRESS
5
- from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall
5
+ from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, callback as callback
6
6
  from homeassistant.exceptions import ServiceValidationError as ServiceValidationError
7
7
  from homeassistant.helpers import selector as selector
8
- from homeassistant.helpers.issue_registry import IssueSeverity as IssueSeverity, async_create_issue as async_create_issue
9
8
  from homeassistant.helpers.storage import STORAGE_DIR as STORAGE_DIR
10
9
 
11
- def setup_services(hass: HomeAssistant) -> None: ...
10
+ @callback
11
+ def async_setup_services(hass: HomeAssistant) -> None: ...
@@ -8,4 +8,3 @@ PLATFORMS: Incomplete
8
8
 
9
9
  async def async_setup_entry(hass: HomeAssistant, entry: VodafoneConfigEntry) -> bool: ...
10
10
  async def async_unload_entry(hass: HomeAssistant, entry: VodafoneConfigEntry) -> bool: ...
11
- async def update_listener(hass: HomeAssistant, entry: VodafoneConfigEntry) -> None: ...
@@ -5,7 +5,7 @@ from .utils import async_client_session as async_client_session
5
5
  from _typeshed import Incomplete
6
6
  from collections.abc import Mapping
7
7
  from homeassistant.components.device_tracker import CONF_CONSIDER_HOME as CONF_CONSIDER_HOME, DEFAULT_CONSIDER_HOME as DEFAULT_CONSIDER_HOME
8
- from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow
8
+ from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlowWithReload as OptionsFlowWithReload
9
9
  from homeassistant.const import CONF_HOST as CONF_HOST, CONF_PASSWORD as CONF_PASSWORD, CONF_USERNAME as CONF_USERNAME
10
10
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
11
11
  from typing import Any
@@ -26,5 +26,5 @@ class VodafoneStationConfigFlow(ConfigFlow, domain=DOMAIN):
26
26
  async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
27
27
  async def async_step_reconfigure(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
28
28
 
29
- class VodafoneStationOptionsFlowHandler(OptionsFlow):
29
+ class VodafoneStationOptionsFlowHandler(OptionsFlowWithReload):
30
30
  async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -0,0 +1,15 @@
1
+ from .api import VolvoAuth as VolvoAuth
2
+ from .const import CONF_VIN as CONF_VIN, DOMAIN as DOMAIN, PLATFORMS as PLATFORMS
3
+ from .coordinator import VolvoConfigEntry as VolvoConfigEntry, VolvoMediumIntervalCoordinator as VolvoMediumIntervalCoordinator, VolvoSlowIntervalCoordinator as VolvoSlowIntervalCoordinator, VolvoVerySlowIntervalCoordinator as VolvoVerySlowIntervalCoordinator
4
+ from homeassistant.const import CONF_API_KEY as CONF_API_KEY
5
+ from homeassistant.core import HomeAssistant as HomeAssistant
6
+ from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryError as ConfigEntryError, ConfigEntryNotReady as ConfigEntryNotReady
7
+ from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
8
+ from homeassistant.helpers.config_entry_oauth2_flow import OAuth2Session as OAuth2Session, async_get_config_entry_implementation as async_get_config_entry_implementation
9
+ from volvocarsapi.api import VolvoCarsApi
10
+ from volvocarsapi.models import VolvoCarsVehicle as VolvoCarsVehicle
11
+
12
+ async def async_setup_entry(hass: HomeAssistant, entry: VolvoConfigEntry) -> bool: ...
13
+ async def async_unload_entry(hass: HomeAssistant, entry: VolvoConfigEntry) -> bool: ...
14
+ async def _async_auth_and_create_api(hass: HomeAssistant, entry: VolvoConfigEntry) -> VolvoCarsApi: ...
15
+ async def _async_load_vehicle(api: VolvoCarsApi) -> VolvoCarsVehicle: ...
@@ -0,0 +1,14 @@
1
+ from _typeshed import Incomplete
2
+ from aiohttp import ClientSession as ClientSession
3
+ from homeassistant.helpers.config_entry_oauth2_flow import OAuth2Session as OAuth2Session
4
+ from volvocarsapi.auth import AccessTokenManager
5
+
6
+ class VolvoAuth(AccessTokenManager):
7
+ _oauth_session: Incomplete
8
+ def __init__(self, websession: ClientSession, oauth_session: OAuth2Session) -> None: ...
9
+ async def async_get_access_token(self) -> str: ...
10
+
11
+ class ConfigFlowVolvoAuth(AccessTokenManager):
12
+ _token: Incomplete
13
+ def __init__(self, websession: ClientSession, token: str) -> None: ...
14
+ async def async_get_access_token(self) -> str: ...
@@ -0,0 +1,9 @@
1
+ from homeassistant.components.application_credentials import ClientCredential as ClientCredential
2
+ from homeassistant.core import HomeAssistant as HomeAssistant
3
+ from homeassistant.helpers.config_entry_oauth2_flow import LocalOAuth2ImplementationWithPkce as LocalOAuth2ImplementationWithPkce
4
+
5
+ async def async_get_auth_implementation(hass: HomeAssistant, auth_domain: str, credential: ClientCredential) -> VolvoOAuth2Implementation: ...
6
+
7
+ class VolvoOAuth2Implementation(LocalOAuth2ImplementationWithPkce):
8
+ @property
9
+ def extra_authorize_data(self) -> dict: ...
@@ -0,0 +1,36 @@
1
+ import logging
2
+ from .api import ConfigFlowVolvoAuth as ConfigFlowVolvoAuth
3
+ from .const import CONF_VIN as CONF_VIN, DOMAIN as DOMAIN, MANUFACTURER as MANUFACTURER
4
+ from _typeshed import Incomplete
5
+ from collections.abc import Mapping
6
+ from homeassistant.config_entries import ConfigFlowResult as ConfigFlowResult, SOURCE_REAUTH as SOURCE_REAUTH, SOURCE_RECONFIGURE as SOURCE_RECONFIGURE
7
+ from homeassistant.const import CONF_ACCESS_TOKEN as CONF_ACCESS_TOKEN, CONF_API_KEY as CONF_API_KEY, CONF_NAME as CONF_NAME, CONF_TOKEN as CONF_TOKEN
8
+ from homeassistant.core import HomeAssistant as HomeAssistant
9
+ from homeassistant.helpers import aiohttp_client as aiohttp_client
10
+ from homeassistant.helpers.config_entry_oauth2_flow import AbstractOAuth2FlowHandler as AbstractOAuth2FlowHandler
11
+ from homeassistant.helpers.selector import SelectOptionDict as SelectOptionDict, SelectSelector as SelectSelector, SelectSelectorConfig as SelectSelectorConfig, TextSelector as TextSelector, TextSelectorConfig as TextSelectorConfig, TextSelectorType as TextSelectorType
12
+ from typing import Any
13
+ from volvocarsapi.api import VolvoCarsApi
14
+ from volvocarsapi.models import VolvoCarsVehicle as VolvoCarsVehicle
15
+
16
+ _LOGGER: Incomplete
17
+
18
+ def _create_volvo_cars_api(hass: HomeAssistant, access_token: str, api_key: str) -> VolvoCarsApi: ...
19
+
20
+ class VolvoOAuth2FlowHandler(AbstractOAuth2FlowHandler, domain=DOMAIN):
21
+ DOMAIN = DOMAIN
22
+ _vehicles: list[VolvoCarsVehicle]
23
+ _config_data: dict
24
+ def __init__(self) -> None: ...
25
+ @property
26
+ def extra_authorize_data(self) -> dict: ...
27
+ @property
28
+ def logger(self) -> logging.Logger: ...
29
+ async def async_oauth_create_entry(self, data: dict) -> ConfigFlowResult: ...
30
+ async def async_step_reauth(self, _: Mapping[str, Any]) -> ConfigFlowResult: ...
31
+ async def async_step_reconfigure(self, _: dict[str, Any] | None = None) -> ConfigFlowResult: ...
32
+ async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
33
+ async def async_step_api_key(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
34
+ async def async_step_vin(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
35
+ async def _async_create_or_update(self) -> ConfigFlowResult: ...
36
+ async def _async_load_vehicles(self, api: VolvoCarsApi) -> None: ...
@@ -0,0 +1,8 @@
1
+ from homeassistant.const import Platform as Platform
2
+
3
+ DOMAIN: str
4
+ PLATFORMS: list[Platform]
5
+ ATTR_API_TIMESTAMP: str
6
+ CONF_VIN: str
7
+ DATA_BATTERY_CAPACITY: str
8
+ MANUFACTURER: str
@@ -0,0 +1,46 @@
1
+ import abc
2
+ from .const import DATA_BATTERY_CAPACITY as DATA_BATTERY_CAPACITY, DOMAIN as DOMAIN
3
+ from _typeshed import Incomplete
4
+ from abc import abstractmethod
5
+ from collections.abc import Callable as Callable, Coroutine
6
+ from datetime import timedelta
7
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
+ from homeassistant.core import HomeAssistant as HomeAssistant
9
+ from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed
10
+ from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
11
+ from typing import Any
12
+ from volvocarsapi.api import VolvoCarsApi as VolvoCarsApi
13
+ from volvocarsapi.models import VolvoCarsApiBaseModel, VolvoCarsVehicle as VolvoCarsVehicle
14
+
15
+ VERY_SLOW_INTERVAL: int
16
+ SLOW_INTERVAL: int
17
+ MEDIUM_INTERVAL: int
18
+ _LOGGER: Incomplete
19
+ type VolvoConfigEntry = ConfigEntry[tuple[VolvoBaseCoordinator, ...]]
20
+ type CoordinatorData = dict[str, VolvoCarsApiBaseModel | None]
21
+
22
+ class VolvoBaseCoordinator(DataUpdateCoordinator[CoordinatorData], metaclass=abc.ABCMeta):
23
+ config_entry: VolvoConfigEntry
24
+ api: Incomplete
25
+ vehicle: Incomplete
26
+ _api_calls: list[Callable[[], Coroutine[Any, Any, Any]]]
27
+ def __init__(self, hass: HomeAssistant, entry: VolvoConfigEntry, api: VolvoCarsApi, vehicle: VolvoCarsVehicle, update_interval: timedelta, name: str) -> None: ...
28
+ update_interval: Incomplete
29
+ async def _async_setup(self) -> None: ...
30
+ async def _async_update_data(self) -> CoordinatorData: ...
31
+ def get_api_field(self, api_field: str | None) -> VolvoCarsApiBaseModel | None: ...
32
+ @abstractmethod
33
+ async def _async_determine_api_calls(self) -> list[Callable[[], Coroutine[Any, Any, Any]]]: ...
34
+
35
+ class VolvoVerySlowIntervalCoordinator(VolvoBaseCoordinator):
36
+ def __init__(self, hass: HomeAssistant, entry: VolvoConfigEntry, api: VolvoCarsApi, vehicle: VolvoCarsVehicle) -> None: ...
37
+ async def _async_determine_api_calls(self) -> list[Callable[[], Coroutine[Any, Any, Any]]]: ...
38
+ async def _async_update_data(self) -> CoordinatorData: ...
39
+
40
+ class VolvoSlowIntervalCoordinator(VolvoBaseCoordinator):
41
+ def __init__(self, hass: HomeAssistant, entry: VolvoConfigEntry, api: VolvoCarsApi, vehicle: VolvoCarsVehicle) -> None: ...
42
+ async def _async_determine_api_calls(self) -> list[Callable[[], Coroutine[Any, Any, Any]]]: ...
43
+
44
+ class VolvoMediumIntervalCoordinator(VolvoBaseCoordinator):
45
+ def __init__(self, hass: HomeAssistant, entry: VolvoConfigEntry, api: VolvoCarsApi, vehicle: VolvoCarsVehicle) -> None: ...
46
+ async def _async_determine_api_calls(self) -> list[Callable[[], Coroutine[Any, Any, Any]]]: ...