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
@@ -1,15 +1,16 @@
1
1
  from . import EcovacsConfigEntry as EcovacsConfigEntry
2
- from .entity import EcovacsCapabilityEntityDescription as EcovacsCapabilityEntityDescription, EcovacsDescriptionEntity as EcovacsDescriptionEntity
2
+ from .entity import EcovacsCapabilityEntityDescription as EcovacsCapabilityEntityDescription, EcovacsDescriptionEntity as EcovacsDescriptionEntity, EcovacsLegacyEntity as EcovacsLegacyEntity
3
3
  from .util import get_supported_entities as get_supported_entities
4
4
  from _typeshed import Incomplete
5
5
  from collections.abc import Callable as Callable
6
6
  from dataclasses import dataclass
7
7
  from deebot_client.capabilities import CapabilityEvent
8
- from deebot_client.events.base import Event as Event
9
- from homeassistant.components.binary_sensor import BinarySensorEntity as BinarySensorEntity, BinarySensorEntityDescription as BinarySensorEntityDescription
8
+ from deebot_client.events import Event as Event
9
+ from homeassistant.components.binary_sensor import BinarySensorDeviceClass as BinarySensorDeviceClass, BinarySensorEntity as BinarySensorEntity, BinarySensorEntityDescription as BinarySensorEntityDescription
10
10
  from homeassistant.const import EntityCategory as EntityCategory
11
11
  from homeassistant.core import HomeAssistant as HomeAssistant
12
12
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
13
+ from sucks import VacBot as VacBot
13
14
 
14
15
  @dataclass(kw_only=True, frozen=True)
15
16
  class EcovacsBinarySensorEntityDescription[EventT: Event](BinarySensorEntityDescription, EcovacsCapabilityEntityDescription):
@@ -23,3 +24,12 @@ class EcovacsBinarySensor[EventT: Event](EcovacsDescriptionEntity[CapabilityEven
23
24
  entity_description: EcovacsBinarySensorEntityDescription
24
25
  _attr_is_on: Incomplete
25
26
  async def async_added_to_hass(self) -> None: ...
27
+
28
+ class EcovacsLegacyBatteryChargingSensor(EcovacsLegacyEntity, BinarySensorEntity):
29
+ _attr_device_class: Incomplete
30
+ _attr_entity_category: Incomplete
31
+ _attr_unique_id: Incomplete
32
+ def __init__(self, device: VacBot) -> None: ...
33
+ async def async_added_to_hass(self) -> None: ...
34
+ @property
35
+ def is_on(self) -> bool | None: ...
@@ -12,6 +12,7 @@ from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceCla
12
12
  from homeassistant.const import ATTR_BATTERY_LEVEL as ATTR_BATTERY_LEVEL, CONF_DESCRIPTION as CONF_DESCRIPTION, EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE, UnitOfArea as UnitOfArea, UnitOfTime as UnitOfTime
13
13
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
14
14
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
15
+ from homeassistant.helpers.icon import icon_for_battery_level as icon_for_battery_level
15
16
  from homeassistant.helpers.typing import StateType as StateType
16
17
  from sucks import VacBot as VacBot
17
18
  from typing import Any
@@ -61,6 +62,18 @@ class EcovacsErrorSensor(EcovacsEntity[CapabilityEvent[ErrorEvent]], SensorEntit
61
62
  _attr_extra_state_attributes: Incomplete
62
63
  async def async_added_to_hass(self) -> None: ...
63
64
 
65
+ class EcovacsLegacyBatterySensor(EcovacsLegacyEntity, SensorEntity):
66
+ _attr_native_unit_of_measurement = PERCENTAGE
67
+ _attr_device_class: Incomplete
68
+ _attr_entity_category: Incomplete
69
+ _attr_unique_id: Incomplete
70
+ def __init__(self, device: VacBot) -> None: ...
71
+ async def async_added_to_hass(self) -> None: ...
72
+ @property
73
+ def native_value(self) -> StateType: ...
74
+ @property
75
+ def icon(self) -> str | None: ...
76
+
64
77
  class EcovacsLegacyLifespanSensor(EcovacsLegacyEntity, SensorEntity):
65
78
  entity_description: EcovacsLegacyLifespanSensorEntityDescription
66
79
  _attr_unique_id: Incomplete
@@ -6,14 +6,13 @@ from _typeshed import Incomplete
6
6
  from collections.abc import Mapping
7
7
  from deebot_client.capabilities import Capabilities
8
8
  from deebot_client.device import Device as Device
9
- from deebot_client.events import BatteryEvent as BatteryEvent, FanSpeedEvent as FanSpeedEvent, RoomsEvent as RoomsEvent, StateEvent as StateEvent
9
+ from deebot_client.events import FanSpeedEvent as FanSpeedEvent, RoomsEvent as RoomsEvent, StateEvent as StateEvent
10
10
  from deebot_client.models import CleanAction, Room as Room
11
11
  from homeassistant.components.vacuum import StateVacuumEntity as StateVacuumEntity, StateVacuumEntityDescription as StateVacuumEntityDescription, VacuumActivity as VacuumActivity, VacuumEntityFeature as VacuumEntityFeature
12
12
  from homeassistant.core import HomeAssistant as HomeAssistant, SupportsResponse as SupportsResponse
13
13
  from homeassistant.exceptions import ServiceValidationError as ServiceValidationError
14
14
  from homeassistant.helpers import entity_platform as entity_platform
15
15
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
16
- from homeassistant.helpers.icon import icon_for_battery_level as icon_for_battery_level
17
16
  from homeassistant.util import slugify as slugify
18
17
  from typing import Any
19
18
 
@@ -33,10 +32,6 @@ class EcovacsLegacyVacuum(EcovacsLegacyEntity, StateVacuumEntity):
33
32
  @property
34
33
  def activity(self) -> VacuumActivity | None: ...
35
34
  @property
36
- def battery_level(self) -> int | None: ...
37
- @property
38
- def battery_icon(self) -> str: ...
39
- @property
40
35
  def fan_speed(self) -> str | None: ...
41
36
  @property
42
37
  def extra_state_attributes(self) -> dict[str, Any]: ...
@@ -59,7 +54,6 @@ class EcovacsVacuum(EcovacsEntity[Capabilities], StateVacuumEntity):
59
54
  _rooms: list[Room]
60
55
  _attr_fan_speed_list: Incomplete
61
56
  def __init__(self, device: Device) -> None: ...
62
- _attr_battery_level: Incomplete
63
57
  _attr_activity: Incomplete
64
58
  _attr_fan_speed: Incomplete
65
59
  async def async_added_to_hass(self) -> None: ...
@@ -1,6 +1,6 @@
1
1
  from .const import DOMAIN as DOMAIN, LOGGER as LOGGER
2
2
  from _typeshed import Incomplete
3
- from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, SOURCE_USER as SOURCE_USER
3
+ from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, SOURCE_RECONFIGURE as SOURCE_RECONFIGURE, SOURCE_USER as SOURCE_USER
4
4
  from homeassistant.const import CONF_HOST as CONF_HOST
5
5
  from homeassistant.helpers import selector as selector
6
6
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
@@ -16,3 +16,4 @@ class EheimDigitalConfigFlow(ConfigFlow, domain=DOMAIN):
16
16
  async def async_step_zeroconf(self, discovery_info: ZeroconfServiceInfo) -> ConfigFlowResult: ...
17
17
  async def async_step_discovery_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
18
18
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
19
+ async def async_step_reconfigure(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -1,6 +1,6 @@
1
1
  import voluptuous as vol
2
2
  from . import ElevenLabsConfigEntry as ElevenLabsConfigEntry
3
- from .const import CONF_CONFIGURE_VOICE as CONF_CONFIGURE_VOICE, CONF_MODEL as CONF_MODEL, CONF_OPTIMIZE_LATENCY as CONF_OPTIMIZE_LATENCY, CONF_SIMILARITY as CONF_SIMILARITY, CONF_STABILITY as CONF_STABILITY, CONF_STYLE as CONF_STYLE, CONF_USE_SPEAKER_BOOST as CONF_USE_SPEAKER_BOOST, CONF_VOICE as CONF_VOICE, DEFAULT_MODEL as DEFAULT_MODEL, DEFAULT_OPTIMIZE_LATENCY as DEFAULT_OPTIMIZE_LATENCY, DEFAULT_SIMILARITY as DEFAULT_SIMILARITY, DEFAULT_STABILITY as DEFAULT_STABILITY, DEFAULT_STYLE as DEFAULT_STYLE, DEFAULT_USE_SPEAKER_BOOST as DEFAULT_USE_SPEAKER_BOOST, DOMAIN as DOMAIN
3
+ from .const import CONF_CONFIGURE_VOICE as CONF_CONFIGURE_VOICE, CONF_MODEL as CONF_MODEL, CONF_SIMILARITY as CONF_SIMILARITY, CONF_STABILITY as CONF_STABILITY, CONF_STYLE as CONF_STYLE, CONF_USE_SPEAKER_BOOST as CONF_USE_SPEAKER_BOOST, CONF_VOICE as CONF_VOICE, DEFAULT_MODEL as DEFAULT_MODEL, DEFAULT_SIMILARITY as DEFAULT_SIMILARITY, DEFAULT_STABILITY as DEFAULT_STABILITY, DEFAULT_STYLE as DEFAULT_STYLE, DEFAULT_USE_SPEAKER_BOOST as DEFAULT_USE_SPEAKER_BOOST, DOMAIN as DOMAIN
4
4
  from _typeshed import Incomplete
5
5
  from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow
6
6
  from homeassistant.const import CONF_API_KEY as CONF_API_KEY
@@ -4,13 +4,11 @@ CONF_MODEL: str
4
4
  CONF_CONFIGURE_VOICE: str
5
5
  CONF_STABILITY: str
6
6
  CONF_SIMILARITY: str
7
- CONF_OPTIMIZE_LATENCY: str
8
7
  CONF_STYLE: str
9
8
  CONF_USE_SPEAKER_BOOST: str
10
9
  DOMAIN: str
11
10
  DEFAULT_MODEL: str
12
11
  DEFAULT_STABILITY: float
13
12
  DEFAULT_SIMILARITY: float
14
- DEFAULT_OPTIMIZE_LATENCY: int
15
13
  DEFAULT_STYLE: int
16
14
  DEFAULT_USE_SPEAKER_BOOST: bool
@@ -1,5 +1,5 @@
1
1
  from . import ElevenLabsConfigEntry as ElevenLabsConfigEntry
2
- from .const import ATTR_MODEL as ATTR_MODEL, CONF_OPTIMIZE_LATENCY as CONF_OPTIMIZE_LATENCY, CONF_SIMILARITY as CONF_SIMILARITY, CONF_STABILITY as CONF_STABILITY, CONF_STYLE as CONF_STYLE, CONF_USE_SPEAKER_BOOST as CONF_USE_SPEAKER_BOOST, CONF_VOICE as CONF_VOICE, DEFAULT_OPTIMIZE_LATENCY as DEFAULT_OPTIMIZE_LATENCY, DEFAULT_SIMILARITY as DEFAULT_SIMILARITY, DEFAULT_STABILITY as DEFAULT_STABILITY, DEFAULT_STYLE as DEFAULT_STYLE, DEFAULT_USE_SPEAKER_BOOST as DEFAULT_USE_SPEAKER_BOOST, DOMAIN as DOMAIN
2
+ from .const import ATTR_MODEL as ATTR_MODEL, CONF_SIMILARITY as CONF_SIMILARITY, CONF_STABILITY as CONF_STABILITY, CONF_STYLE as CONF_STYLE, CONF_USE_SPEAKER_BOOST as CONF_USE_SPEAKER_BOOST, CONF_VOICE as CONF_VOICE, DEFAULT_SIMILARITY as DEFAULT_SIMILARITY, DEFAULT_STABILITY as DEFAULT_STABILITY, DEFAULT_STYLE as DEFAULT_STYLE, DEFAULT_USE_SPEAKER_BOOST as DEFAULT_USE_SPEAKER_BOOST, DOMAIN as DOMAIN
3
3
  from _typeshed import Incomplete
4
4
  from collections.abc import Mapping
5
5
  from elevenlabs import AsyncElevenLabs as AsyncElevenLabs
@@ -26,12 +26,11 @@ class ElevenLabsTTSEntity(TextToSpeechEntity):
26
26
  _default_voice_id: Incomplete
27
27
  _voices: Incomplete
28
28
  _voice_settings: Incomplete
29
- _latency: Incomplete
30
29
  _attr_unique_id: Incomplete
31
30
  _attr_name: Incomplete
32
31
  _attr_device_info: Incomplete
33
32
  _attr_supported_languages: Incomplete
34
33
  _attr_default_language: Incomplete
35
- def __init__(self, client: AsyncElevenLabs, model: Model, voices: list[ElevenLabsVoice], default_voice_id: str, entry_id: str, title: str, voice_settings: VoiceSettings, latency: int = 0) -> None: ...
34
+ def __init__(self, client: AsyncElevenLabs, model: Model, voices: list[ElevenLabsVoice], default_voice_id: str, entry_id: str, title: str, voice_settings: VoiceSettings) -> None: ...
36
35
  def async_get_supported_voices(self, language: str) -> list[Voice]: ...
37
36
  async def async_get_tts_audio(self, message: str, language: str, options: dict[str, Any]) -> TtsAudioType: ...
@@ -1,6 +1,5 @@
1
1
  from .const import DOMAIN as DOMAIN, PLATFORMS as PLATFORMS
2
2
  from .coordinator import EnphaseConfigEntry as EnphaseConfigEntry, EnphaseUpdateCoordinator as EnphaseUpdateCoordinator
3
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
4
3
  from homeassistant.const import CONF_HOST as CONF_HOST
5
4
  from homeassistant.core import HomeAssistant as HomeAssistant
6
5
  from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady
@@ -8,6 +7,5 @@ from homeassistant.helpers import device_registry as dr
8
7
  from homeassistant.helpers.aiohttp_client import async_create_clientsession as async_create_clientsession
9
8
 
10
9
  async def async_setup_entry(hass: HomeAssistant, entry: EnphaseConfigEntry) -> bool: ...
11
- async def async_reload_entry(hass: HomeAssistant, entry: ConfigEntry) -> None: ...
12
10
  async def async_unload_entry(hass: HomeAssistant, entry: EnphaseConfigEntry) -> bool: ...
13
11
  async def async_remove_config_entry_device(hass: HomeAssistant, config_entry: EnphaseConfigEntry, device_entry: dr.DeviceEntry) -> bool: ...
@@ -3,7 +3,7 @@ from .const import DOMAIN as DOMAIN, INVALID_AUTH_ERRORS as INVALID_AUTH_ERRORS,
3
3
  from .coordinator import EnphaseConfigEntry as EnphaseConfigEntry
4
4
  from _typeshed import Incomplete
5
5
  from collections.abc import Mapping
6
- from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow, SOURCE_REAUTH as SOURCE_REAUTH
6
+ from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlowWithReload as OptionsFlowWithReload, SOURCE_REAUTH as SOURCE_REAUTH
7
7
  from homeassistant.const import CONF_HOST as CONF_HOST, CONF_NAME as CONF_NAME, CONF_PASSWORD as CONF_PASSWORD, CONF_TOKEN as CONF_TOKEN, CONF_USERNAME as CONF_USERNAME
8
8
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
9
9
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
@@ -41,5 +41,5 @@ class EnphaseConfigFlow(ConfigFlow, domain=DOMAIN):
41
41
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
42
42
  async def async_step_reconfigure(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
43
43
 
44
- class EnvoyOptionsFlowHandler(OptionsFlow):
44
+ class EnvoyOptionsFlowHandler(OptionsFlowWithReload):
45
45
  async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -1,5 +1,6 @@
1
1
  from .const import CONF_ALLOW_SERVICE_CALLS as CONF_ALLOW_SERVICE_CALLS, CONF_DEVICE_NAME as CONF_DEVICE_NAME, CONF_NOISE_PSK as CONF_NOISE_PSK, CONF_SUBSCRIBE_LOGS as CONF_SUBSCRIBE_LOGS, DEFAULT_ALLOW_SERVICE_CALLS as DEFAULT_ALLOW_SERVICE_CALLS, DEFAULT_NEW_CONFIG_ALLOW_ALLOW_SERVICE_CALLS as DEFAULT_NEW_CONFIG_ALLOW_ALLOW_SERVICE_CALLS, DEFAULT_PORT as DEFAULT_PORT, DOMAIN as DOMAIN
2
2
  from .dashboard import async_get_or_create_dashboard_manager as async_get_or_create_dashboard_manager, async_set_dashboard_info as async_set_dashboard_info
3
+ from .encryption_key_storage import async_get_encryption_key_storage as async_get_encryption_key_storage
3
4
  from .entry_data import ESPHomeConfigEntry as ESPHomeConfigEntry
4
5
  from .manager import async_replace_device as async_replace_device
5
6
  from _typeshed import Incomplete
@@ -77,6 +78,7 @@ class EsphomeFlowHandler(ConfigFlow, domain=DOMAIN):
77
78
  async def fetch_device_info(self) -> str | None: ...
78
79
  async def try_login(self) -> str | None: ...
79
80
  async def _retrieve_encryption_key_from_dashboard(self) -> bool: ...
81
+ async def _retrieve_encryption_key_from_storage(self) -> bool: ...
80
82
  @staticmethod
81
83
  @callback
82
84
  def async_get_options_flow(config_entry: ESPHomeConfigEntry) -> OptionsFlowHandler: ...
@@ -0,0 +1,29 @@
1
+ from _typeshed import Incomplete
2
+ from homeassistant.core import HomeAssistant as HomeAssistant
3
+ from homeassistant.helpers.json import JSONEncoder as JSONEncoder
4
+ from homeassistant.helpers.singleton import singleton as singleton
5
+ from homeassistant.helpers.storage import Store as Store
6
+ from homeassistant.util.hass_dict import HassKey as HassKey
7
+ from typing import TypedDict
8
+
9
+ _LOGGER: Incomplete
10
+ ENCRYPTION_KEY_STORAGE_VERSION: int
11
+ ENCRYPTION_KEY_STORAGE_KEY: str
12
+
13
+ class EncryptionKeyData(TypedDict):
14
+ keys: dict[str, str]
15
+
16
+ KEY_ENCRYPTION_STORAGE: HassKey[ESPHomeEncryptionKeyStorage]
17
+
18
+ class ESPHomeEncryptionKeyStorage:
19
+ hass: Incomplete
20
+ _store: Incomplete
21
+ _data: EncryptionKeyData | None
22
+ def __init__(self, hass: HomeAssistant) -> None: ...
23
+ async def async_load(self) -> None: ...
24
+ async def async_save(self) -> None: ...
25
+ async def async_get_key(self, mac_address: str) -> str | None: ...
26
+ async def async_store_key(self, mac_address: str, key: str) -> None: ...
27
+ async def async_remove_key(self, mac_address: str) -> None: ...
28
+
29
+ async def async_get_encryption_key_storage(hass: HomeAssistant) -> ESPHomeEncryptionKeyStorage: ...
@@ -1,5 +1,5 @@
1
1
  from .const import DOMAIN as DOMAIN
2
- from .entry_data import ESPHomeConfigEntry as ESPHomeConfigEntry, RuntimeEntryData as RuntimeEntryData, build_device_unique_id as build_device_unique_id
2
+ from .entry_data import DeviceEntityKey as DeviceEntityKey, ESPHomeConfigEntry as ESPHomeConfigEntry, RuntimeEntryData as RuntimeEntryData, build_device_unique_id as build_device_unique_id
3
3
  from .enum_mapper import EsphomeEnumMapper as EsphomeEnumMapper
4
4
  from _typeshed import Incomplete
5
5
  from aioesphomeapi import DeviceInfo as EsphomeDeviceInfo, EntityCategory as EsphomeEntityCategory, EntityInfo, EntityState
@@ -48,6 +48,8 @@ class EsphomeEntity(EsphomeBaseEntity, Generic[_InfoT, _StateT]):
48
48
  entity_id: Incomplete
49
49
  def __init__(self, entry_data: RuntimeEntryData, domain: str, entity_info: EntityInfo, state_type: type[_StateT]) -> None: ...
50
50
  async def async_added_to_hass(self) -> None: ...
51
+ @callback
52
+ def _on_removal_signal(self) -> None: ...
51
53
  _attr_unique_id: Incomplete
52
54
  _attr_entity_registry_enabled_default: Incomplete
53
55
  _attr_name: Incomplete
@@ -2,7 +2,7 @@ import asyncio
2
2
  from .const import DOMAIN as DOMAIN
3
3
  from .dashboard import async_get_dashboard as async_get_dashboard
4
4
  from _typeshed import Incomplete
5
- from aioesphomeapi import APIClient as APIClient, APIVersion, DeviceInfo, EntityInfo as EntityInfo, EntityState as EntityState, MediaPlayerSupportedFormat as MediaPlayerSupportedFormat, UserService
5
+ from aioesphomeapi import APIClient as APIClient, APIVersion, DeviceInfo, EntityInfo, EntityState, MediaPlayerSupportedFormat as MediaPlayerSupportedFormat, UserService
6
6
  from bleak_esphome.backend.device import ESPHomeBluetoothDevice as ESPHomeBluetoothDevice
7
7
  from collections import defaultdict
8
8
  from collections.abc import Callable as Callable, Iterable
@@ -15,6 +15,9 @@ from homeassistant.helpers.storage import Store as Store
15
15
  from typing import Any, Final, TypedDict
16
16
 
17
17
  type ESPHomeConfigEntry = ConfigEntry[RuntimeEntryData]
18
+ type EntityStateKey = tuple[type[EntityState], int, int]
19
+ type EntityInfoKey = tuple[type[EntityInfo], int, int]
20
+ type DeviceEntityKey = tuple[int, int]
18
21
  INFO_TO_COMPONENT_TYPE: Final[Incomplete]
19
22
  _SENTINEL: Incomplete
20
23
  SAVE_DELAY: int
@@ -37,8 +40,8 @@ class RuntimeEntryData:
37
40
  client: APIClient
38
41
  store: ESPHomeStorage
39
42
  state: defaultdict[type[EntityState], dict[int, EntityState]] = field(default_factory=Incomplete)
40
- stale_state: set[tuple[type[EntityState], int]] = field(default_factory=set)
41
- info: dict[type[EntityInfo], dict[int, EntityInfo]] = field(default_factory=dict)
43
+ stale_state: set[EntityStateKey] = field(default_factory=set)
44
+ info: dict[type[EntityInfo], dict[DeviceEntityKey, EntityInfo]] = field(default_factory=dict)
42
45
  services: dict[int, UserService] = field(default_factory=dict)
43
46
  available: bool = ...
44
47
  expected_disconnect: bool = ...
@@ -47,7 +50,7 @@ class RuntimeEntryData:
47
50
  api_version: APIVersion = field(default_factory=APIVersion)
48
51
  cleanup_callbacks: list[CALLBACK_TYPE] = field(default_factory=list)
49
52
  disconnect_callbacks: set[CALLBACK_TYPE] = field(default_factory=set)
50
- state_subscriptions: dict[tuple[type[EntityState], int], CALLBACK_TYPE] = field(default_factory=dict)
53
+ state_subscriptions: dict[EntityStateKey, CALLBACK_TYPE] = field(default_factory=dict)
51
54
  device_update_subscriptions: set[CALLBACK_TYPE] = field(default_factory=set)
52
55
  static_info_update_subscriptions: set[Callable[[list[EntityInfo]], None]] = field(default_factory=set)
53
56
  loaded_platforms: set[Platform] = field(default_factory=set)
@@ -57,12 +60,13 @@ class RuntimeEntryData:
57
60
  assist_pipeline_update_callbacks: list[CALLBACK_TYPE] = field(default_factory=list)
58
61
  assist_pipeline_state: bool = ...
59
62
  entity_info_callbacks: dict[type[EntityInfo], list[Callable[[list[EntityInfo]], None]]] = field(default_factory=dict)
60
- entity_info_key_updated_callbacks: dict[tuple[type[EntityInfo], int], list[Callable[[EntityInfo], None]]] = field(default_factory=dict)
63
+ entity_info_key_updated_callbacks: dict[EntityInfoKey, list[Callable[[EntityInfo], None]]] = field(default_factory=dict)
61
64
  original_options: dict[str, Any] = field(default_factory=dict)
62
65
  media_player_formats: dict[str, list[MediaPlayerSupportedFormat]] = field(default_factory=Incomplete)
63
66
  assist_satellite_config_update_callbacks: list[Callable[[AssistSatelliteConfiguration], None]] = field(default_factory=list)
64
67
  assist_satellite_set_wake_word_callbacks: list[Callable[[str], None]] = field(default_factory=list)
65
68
  device_id_to_name: dict[int, str] = field(default_factory=dict)
69
+ entity_removal_callbacks: dict[EntityInfoKey, list[CALLBACK_TYPE]] = field(default_factory=dict)
66
70
  @property
67
71
  def name(self) -> str: ...
68
72
  @property
@@ -86,7 +90,7 @@ class RuntimeEntryData:
86
90
  @callback
87
91
  def async_subscribe_static_info_updated(self, callback_: Callable[[list[EntityInfo]], None]) -> CALLBACK_TYPE: ...
88
92
  @callback
89
- def async_subscribe_state_update(self, state_type: type[EntityState], state_key: int, entity_callback: CALLBACK_TYPE) -> CALLBACK_TYPE: ...
93
+ def async_subscribe_state_update(self, device_id: int, state_type: type[EntityState], state_key: int, entity_callback: CALLBACK_TYPE) -> CALLBACK_TYPE: ...
90
94
  @callback
91
95
  def async_update_state(self, state: EntityState) -> None: ...
92
96
  @callback
@@ -107,3 +111,7 @@ class RuntimeEntryData:
107
111
  def async_register_assist_satellite_set_wake_word_callback(self, callback_: Callable[[str], None]) -> CALLBACK_TYPE: ...
108
112
  @callback
109
113
  def async_assist_satellite_set_wake_word(self, wake_word_id: str) -> None: ...
114
+ @callback
115
+ def async_register_entity_removal_callback(self, info_type: type[EntityInfo], device_id: int, key: int, callback_: CALLBACK_TYPE) -> CALLBACK_TYPE: ...
116
+ @callback
117
+ def async_signal_entity_removal(self, info_type: type[EntityInfo], device_id: int, key: int) -> None: ...
@@ -1,7 +1,8 @@
1
1
  from .bluetooth import async_connect_scanner as async_connect_scanner
2
- from .const import CONF_ALLOW_SERVICE_CALLS as CONF_ALLOW_SERVICE_CALLS, CONF_BLUETOOTH_MAC_ADDRESS as CONF_BLUETOOTH_MAC_ADDRESS, CONF_DEVICE_NAME as CONF_DEVICE_NAME, CONF_SUBSCRIBE_LOGS as CONF_SUBSCRIBE_LOGS, DEFAULT_ALLOW_SERVICE_CALLS as DEFAULT_ALLOW_SERVICE_CALLS, DEFAULT_URL as DEFAULT_URL, DOMAIN as DOMAIN, PROJECT_URLS as PROJECT_URLS, STABLE_BLE_VERSION as STABLE_BLE_VERSION, STABLE_BLE_VERSION_STR as STABLE_BLE_VERSION_STR
2
+ from .const import CONF_ALLOW_SERVICE_CALLS as CONF_ALLOW_SERVICE_CALLS, CONF_BLUETOOTH_MAC_ADDRESS as CONF_BLUETOOTH_MAC_ADDRESS, CONF_DEVICE_NAME as CONF_DEVICE_NAME, CONF_NOISE_PSK as CONF_NOISE_PSK, CONF_SUBSCRIBE_LOGS as CONF_SUBSCRIBE_LOGS, DEFAULT_ALLOW_SERVICE_CALLS as DEFAULT_ALLOW_SERVICE_CALLS, DEFAULT_URL as DEFAULT_URL, DOMAIN as DOMAIN, PROJECT_URLS as PROJECT_URLS, STABLE_BLE_VERSION as STABLE_BLE_VERSION, STABLE_BLE_VERSION_STR as STABLE_BLE_VERSION_STR
3
3
  from .dashboard import async_get_dashboard as async_get_dashboard
4
4
  from .domain_data import DomainData as DomainData
5
+ from .encryption_key_storage import async_get_encryption_key_storage as async_get_encryption_key_storage
5
6
  from .entry_data import ESPHomeConfigEntry as ESPHomeConfigEntry, RuntimeEntryData as RuntimeEntryData
6
7
  from _typeshed import Incomplete
7
8
  from aioesphomeapi import APIClient as APIClient, APIVersion as APIVersion, DeviceInfo as EsphomeDeviceInfo, EntityInfo as EntityInfo, HomeassistantServiceCall as HomeassistantServiceCall, LogLevel, ReconnectLogic, UserService as UserService
@@ -66,6 +67,7 @@ class ESPHomeManager:
66
67
  async def _on_connect(self) -> None: ...
67
68
  async def on_disconnect(self, expected_disconnect: bool) -> None: ...
68
69
  async def on_connect_error(self, err: Exception) -> None: ...
70
+ async def _handle_dynamic_encryption_key(self, device_info: EsphomeDeviceInfo) -> None: ...
69
71
  @callback
70
72
  def _async_handle_logging_changed(self, _event: Event) -> None: ...
71
73
  @callback
@@ -9,4 +9,3 @@ MY_KEY: HassKey[StoredData]
9
9
 
10
10
  async def async_setup_entry(hass: HomeAssistant, entry: FeedReaderConfigEntry) -> bool: ...
11
11
  async def async_unload_entry(hass: HomeAssistant, entry: FeedReaderConfigEntry) -> bool: ...
12
- async def _async_update_listener(hass: HomeAssistant, entry: FeedReaderConfigEntry) -> None: ...
@@ -1,7 +1,7 @@
1
1
  import feedparser
2
2
  from .const import CONF_MAX_ENTRIES as CONF_MAX_ENTRIES, DEFAULT_MAX_ENTRIES as DEFAULT_MAX_ENTRIES, DOMAIN as DOMAIN
3
3
  from _typeshed import Incomplete
4
- from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow
4
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlowWithReload as OptionsFlowWithReload
5
5
  from homeassistant.const import CONF_URL as CONF_URL
6
6
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
7
7
  from homeassistant.helpers.selector import TextSelector as TextSelector, TextSelectorConfig as TextSelectorConfig, TextSelectorType as TextSelectorType
@@ -15,10 +15,10 @@ class FeedReaderConfigFlow(ConfigFlow, domain=DOMAIN):
15
15
  VERSION: int
16
16
  @staticmethod
17
17
  @callback
18
- def async_get_options_flow(config_entry: ConfigEntry) -> OptionsFlow: ...
18
+ def async_get_options_flow(config_entry: ConfigEntry) -> FeedReaderOptionsFlowHandler: ...
19
19
  def show_user_form(self, user_input: dict[str, Any] | None = None, errors: dict[str, str] | None = None, description_placeholders: dict[str, str] | None = None, step_id: str = 'user') -> ConfigFlowResult: ...
20
20
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
21
21
  async def async_step_reconfigure(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
22
22
 
23
- class FeedReaderOptionsFlowHandler(OptionsFlow):
23
+ class FeedReaderOptionsFlowHandler(OptionsFlowWithReload):
24
24
  async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -9,4 +9,3 @@ PLATFORMS: Incomplete
9
9
  async def async_migrate_entry(hass: HomeAssistant, entry: ForecastSolarConfigEntry) -> bool: ...
10
10
  async def async_setup_entry(hass: HomeAssistant, entry: ForecastSolarConfigEntry) -> bool: ...
11
11
  async def async_unload_entry(hass: HomeAssistant, entry: ForecastSolarConfigEntry) -> bool: ...
12
- async def async_update_options(hass: HomeAssistant, entry: ForecastSolarConfigEntry) -> None: ...
@@ -1,6 +1,6 @@
1
1
  from .const import CONF_AZIMUTH as CONF_AZIMUTH, CONF_DAMPING_EVENING as CONF_DAMPING_EVENING, CONF_DAMPING_MORNING as CONF_DAMPING_MORNING, CONF_DECLINATION as CONF_DECLINATION, CONF_INVERTER_SIZE as CONF_INVERTER_SIZE, CONF_MODULES_POWER as CONF_MODULES_POWER, DOMAIN as DOMAIN
2
2
  from _typeshed import Incomplete
3
- from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow
3
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlowWithReload as OptionsFlowWithReload
4
4
  from homeassistant.const import CONF_API_KEY as CONF_API_KEY, CONF_LATITUDE as CONF_LATITUDE, CONF_LONGITUDE as CONF_LONGITUDE, CONF_NAME as CONF_NAME
5
5
  from homeassistant.core import callback as callback
6
6
  from typing import Any
@@ -14,5 +14,5 @@ class ForecastSolarFlowHandler(ConfigFlow, domain=DOMAIN):
14
14
  def async_get_options_flow(config_entry: ConfigEntry) -> ForecastSolarOptionFlowHandler: ...
15
15
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
16
16
 
17
- class ForecastSolarOptionFlowHandler(OptionsFlow):
17
+ class ForecastSolarOptionFlowHandler(OptionsFlowWithReload):
18
18
  async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -13,4 +13,3 @@ CONFIG_SCHEMA: Incomplete
13
13
  async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
14
14
  async def async_setup_entry(hass: HomeAssistant, entry: FritzConfigEntry) -> bool: ...
15
15
  async def async_unload_entry(hass: HomeAssistant, entry: FritzConfigEntry) -> bool: ...
16
- async def update_listener(hass: HomeAssistant, entry: FritzConfigEntry) -> None: ...
@@ -3,7 +3,7 @@ from .coordinator import FritzConfigEntry as FritzConfigEntry
3
3
  from _typeshed import Incomplete
4
4
  from collections.abc import Mapping
5
5
  from homeassistant.components.device_tracker import CONF_CONSIDER_HOME as CONF_CONSIDER_HOME, DEFAULT_CONSIDER_HOME as DEFAULT_CONSIDER_HOME
6
- from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow
6
+ from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlowWithReload as OptionsFlowWithReload
7
7
  from homeassistant.const import CONF_HOST as CONF_HOST, CONF_PASSWORD as CONF_PASSWORD, CONF_PORT as CONF_PORT, CONF_SSL as CONF_SSL, CONF_USERNAME as CONF_USERNAME
8
8
  from homeassistant.core import callback as callback
9
9
  from homeassistant.helpers.service_info.ssdp import ATTR_UPNP_FRIENDLY_NAME as ATTR_UPNP_FRIENDLY_NAME, ATTR_UPNP_MODEL_NAME as ATTR_UPNP_MODEL_NAME, ATTR_UPNP_UDN as ATTR_UPNP_UDN, SsdpServiceInfo as SsdpServiceInfo
@@ -45,5 +45,5 @@ class FritzBoxToolsFlowHandler(ConfigFlow, domain=DOMAIN):
45
45
  def _show_setup_form_reconfigure(self, user_input: dict[str, Any], errors: dict[str, str] | None = None) -> ConfigFlowResult: ...
46
46
  async def async_step_reconfigure(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
47
47
 
48
- class FritzBoxToolsOptionsFlowHandler(OptionsFlow):
48
+ class FritzBoxToolsOptionsFlowHandler(OptionsFlowWithReload):
49
49
  async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -11,4 +11,3 @@ type FritzBoxCallMonitorConfigEntry = ConfigEntry[FritzBoxPhonebook]
11
11
 
12
12
  async def async_setup_entry(hass: HomeAssistant, config_entry: FritzBoxCallMonitorConfigEntry) -> bool: ...
13
13
  async def async_unload_entry(hass: HomeAssistant, config_entry: FritzBoxCallMonitorConfigEntry) -> bool: ...
14
- async def update_listener(hass: HomeAssistant, config_entry: FritzBoxCallMonitorConfigEntry) -> None: ...
@@ -4,7 +4,7 @@ from .const import CONF_PHONEBOOK as CONF_PHONEBOOK, CONF_PREFIXES as CONF_PREFI
4
4
  from _typeshed import Incomplete
5
5
  from collections.abc import Mapping
6
6
  from enum import StrEnum
7
- from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow
7
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlowWithReload as OptionsFlowWithReload
8
8
  from homeassistant.const import CONF_HOST as CONF_HOST, CONF_PASSWORD as CONF_PASSWORD, CONF_PORT as CONF_PORT, CONF_USERNAME as CONF_USERNAME
9
9
  from homeassistant.core import callback as callback
10
10
  from typing import Any
@@ -45,7 +45,7 @@ class FritzBoxCallMonitorConfigFlow(ConfigFlow, domain=DOMAIN):
45
45
  def _show_setup_form_reauth_confirm(self, user_input: dict[str, Any], errors: dict[str, str] | None = None) -> ConfigFlowResult: ...
46
46
  async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
47
47
 
48
- class FritzBoxCallMonitorOptionsFlowHandler(OptionsFlow):
48
+ class FritzBoxCallMonitorOptionsFlowHandler(OptionsFlowWithReload):
49
49
  @classmethod
50
50
  def _are_prefixes_valid(cls, prefixes: str | None) -> bool: ...
51
51
  @classmethod
@@ -10,6 +10,7 @@ from homeassistant.components.websocket_api import ActiveConnection as ActiveCon
10
10
  from homeassistant.config import async_hass_config_yaml as async_hass_config_yaml
11
11
  from homeassistant.const import CONF_MODE as CONF_MODE, CONF_NAME as CONF_NAME, EVENT_PANELS_UPDATED as EVENT_PANELS_UPDATED, EVENT_THEMES_UPDATED as EVENT_THEMES_UPDATED
12
12
  from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, callback as callback
13
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
13
14
  from homeassistant.helpers import service as service
14
15
  from homeassistant.helpers.icon import async_get_icons as async_get_icons
15
16
  from homeassistant.helpers.json import json_dumps_sorted as json_dumps_sorted
@@ -2,7 +2,7 @@ from .coordinator import FGLairConfigEntry as FGLairConfigEntry, FGLairCoordinat
2
2
  from .entity import FGLairEntity as FGLairEntity
3
3
  from _typeshed import Incomplete
4
4
  from ayla_iot_unofficial.fujitsu_hvac import FujitsuHVAC as FujitsuHVAC
5
- from homeassistant.components.climate import ClimateEntity as ClimateEntity, ClimateEntityFeature as ClimateEntityFeature, FAN_AUTO as FAN_AUTO, FAN_HIGH as FAN_HIGH, FAN_LOW as FAN_LOW, FAN_MEDIUM as FAN_MEDIUM, HVACMode as HVACMode, SWING_BOTH as SWING_BOTH, SWING_HORIZONTAL as SWING_HORIZONTAL, SWING_OFF as SWING_OFF, SWING_VERTICAL as SWING_VERTICAL
5
+ from homeassistant.components.climate import ClimateEntity as ClimateEntity, ClimateEntityFeature as ClimateEntityFeature, FAN_AUTO as FAN_AUTO, FAN_HIGH as FAN_HIGH, FAN_LOW as FAN_LOW, FAN_MEDIUM as FAN_MEDIUM, FAN_OFF as FAN_OFF, HVACMode as HVACMode, SWING_BOTH as SWING_BOTH, SWING_HORIZONTAL as SWING_HORIZONTAL, SWING_OFF as SWING_OFF, SWING_VERTICAL as SWING_VERTICAL
6
6
  from homeassistant.const import ATTR_TEMPERATURE as ATTR_TEMPERATURE, PRECISION_HALVES as PRECISION_HALVES, UnitOfTemperature as UnitOfTemperature
7
7
  from homeassistant.core import HomeAssistant as HomeAssistant
8
8
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
@@ -6,7 +6,7 @@ from homeassistant.core import Event as Event, HomeAssistant as HomeAssistant
6
6
  from homeassistant.helpers import discovery as discovery
7
7
  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
8
8
  from homeassistant.helpers.event import async_track_entity_registry_updated_event as async_track_entity_registry_updated_event
9
- from homeassistant.helpers.helper_integration import async_handle_source_entity_changes as async_handle_source_entity_changes
9
+ 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
10
10
  from homeassistant.helpers.typing import ConfigType as ConfigType
11
11
 
12
12
  DOMAIN: str
@@ -28,8 +28,10 @@ DEFAULT_TOLERANCE: int
28
28
  DEFAULT_NAME: str
29
29
  HYGROSTAT_SCHEMA: Incomplete
30
30
  CONFIG_SCHEMA: Incomplete
31
+ _LOGGER: Incomplete
31
32
 
32
33
  async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
33
34
  async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
35
+ async def async_migrate_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> bool: ...
34
36
  async def config_entry_update_listener(hass: HomeAssistant, entry: ConfigEntry) -> None: ...
35
37
  async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
@@ -15,6 +15,7 @@ CONFIG_FLOW: Incomplete
15
15
  OPTIONS_FLOW: Incomplete
16
16
 
17
17
  class ConfigFlowHandler(SchemaConfigFlowHandler, domain=DOMAIN):
18
+ MINOR_VERSION: int
18
19
  config_flow = CONFIG_FLOW
19
20
  options_flow = OPTIONS_FLOW
20
21
  def async_config_entry_title(self, options: Mapping[str, Any]) -> str: ...
@@ -7,7 +7,7 @@ from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
7
  from homeassistant.const import ATTR_ENTITY_ID as ATTR_ENTITY_ID, ATTR_MODE as ATTR_MODE, CONF_NAME as CONF_NAME, CONF_UNIQUE_ID as CONF_UNIQUE_ID, EVENT_HOMEASSISTANT_START as EVENT_HOMEASSISTANT_START, SERVICE_TURN_OFF as SERVICE_TURN_OFF, SERVICE_TURN_ON as SERVICE_TURN_ON, STATE_OFF as STATE_OFF, STATE_ON as STATE_ON, STATE_UNAVAILABLE as STATE_UNAVAILABLE, STATE_UNKNOWN as STATE_UNKNOWN
8
8
  from homeassistant.core import Event as Event, EventStateChangedData as EventStateChangedData, EventStateReportedData as EventStateReportedData, HomeAssistant as HomeAssistant, State as State, callback as callback
9
9
  from homeassistant.helpers import condition as condition
10
- 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
11
11
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback, AddEntitiesCallback as AddEntitiesCallback
12
12
  from homeassistant.helpers.event import async_track_state_change_event as async_track_state_change_event, async_track_state_report_event as async_track_state_report_event, async_track_time_interval as async_track_time_interval
13
13
  from homeassistant.helpers.restore_state import RestoreEntity as RestoreEntity
@@ -28,7 +28,7 @@ class GenericHygrostat(HumidifierEntity, RestoreEntity):
28
28
  _name: Incomplete
29
29
  _switch_entity_id: Incomplete
30
30
  _sensor_entity_id: Incomplete
31
- _attr_device_info: Incomplete
31
+ device_entry: Incomplete
32
32
  _device_class: Incomplete
33
33
  _min_cycle_duration: Incomplete
34
34
  _dry_tolerance: Incomplete
@@ -49,7 +49,7 @@ class GenericHygrostat(HumidifierEntity, RestoreEntity):
49
49
  _is_away: bool
50
50
  _attr_action: Incomplete
51
51
  _attr_unique_id: Incomplete
52
- def __init__(self, hass: HomeAssistant, name: str, switch_entity_id: str, sensor_entity_id: str, min_humidity: float | None, max_humidity: float | None, target_humidity: float | None, device_class: HumidifierDeviceClass | None, min_cycle_duration: timedelta | None, dry_tolerance: float, wet_tolerance: float, keep_alive: timedelta | None, initial_state: bool | None, away_humidity: int | None, away_fixed: bool | None, sensor_stale_duration: timedelta | None, unique_id: str | None) -> None: ...
52
+ def __init__(self, hass: HomeAssistant, *, name: str, switch_entity_id: str, sensor_entity_id: str, min_humidity: float | None, max_humidity: float | None, target_humidity: float | None, device_class: HumidifierDeviceClass | None, min_cycle_duration: timedelta | None, dry_tolerance: float, wet_tolerance: float, keep_alive: timedelta | None, initial_state: bool | None, away_humidity: int | None, away_fixed: bool | None, sensor_stale_duration: timedelta | None, unique_id: str | None) -> None: ...
53
53
  async def async_added_to_hass(self) -> None: ...
54
54
  async def async_will_remove_from_hass(self) -> None: ...
55
55
  @property
@@ -1,10 +1,14 @@
1
1
  from .const import CONF_HEATER as CONF_HEATER, CONF_SENSOR as CONF_SENSOR, PLATFORMS as PLATFORMS
2
+ from _typeshed import Incomplete
2
3
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
3
4
  from homeassistant.core import Event as Event, HomeAssistant as HomeAssistant
4
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
5
6
  from homeassistant.helpers.event import async_track_entity_registry_updated_event as async_track_entity_registry_updated_event
6
- from homeassistant.helpers.helper_integration import async_handle_source_entity_changes as async_handle_source_entity_changes
7
+ 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
8
+
9
+ _LOGGER: Incomplete
7
10
 
8
11
  async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
12
+ async def async_migrate_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> bool: ...
9
13
  async def config_entry_update_listener(hass: HomeAssistant, entry: ConfigEntry) -> None: ...
10
14
  async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
@@ -8,7 +8,7 @@ from homeassistant.const import ATTR_ENTITY_ID as ATTR_ENTITY_ID, ATTR_TEMPERATU
8
8
  from homeassistant.core import CoreState as CoreState, Event as Event, EventStateChangedData as EventStateChangedData, HomeAssistant as HomeAssistant, State as State, callback as callback
9
9
  from homeassistant.exceptions import ConditionError as ConditionError
10
10
  from homeassistant.helpers import condition as condition
11
- from homeassistant.helpers.device import async_device_info_to_link_from_entity as async_device_info_to_link_from_entity
11
+ from homeassistant.helpers.device import async_entity_id_to_device as async_entity_id_to_device
12
12
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback, AddEntitiesCallback as AddEntitiesCallback
13
13
  from homeassistant.helpers.event import async_track_state_change_event as async_track_state_change_event, async_track_time_interval as async_track_time_interval
14
14
  from homeassistant.helpers.reload import async_setup_reload_service as async_setup_reload_service
@@ -36,7 +36,7 @@ class GenericThermostat(ClimateEntity, RestoreEntity):
36
36
  _attr_name: Incomplete
37
37
  heater_entity_id: Incomplete
38
38
  sensor_entity_id: Incomplete
39
- _attr_device_info: Incomplete
39
+ device_entry: Incomplete
40
40
  ac_mode: Incomplete
41
41
  min_cycle_duration: Incomplete
42
42
  _cold_tolerance: Incomplete
@@ -60,7 +60,7 @@ class GenericThermostat(ClimateEntity, RestoreEntity):
60
60
  _attr_preset_modes: Incomplete
61
61
  _presets: Incomplete
62
62
  _presets_inv: Incomplete
63
- def __init__(self, hass: HomeAssistant, name: str, heater_entity_id: str, sensor_entity_id: str, min_temp: float | None, max_temp: float | None, target_temp: float | None, ac_mode: bool | None, min_cycle_duration: timedelta | None, cold_tolerance: float, hot_tolerance: float, keep_alive: timedelta | None, initial_hvac_mode: HVACMode | None, presets: dict[str, float], precision: float | None, target_temperature_step: float | None, unit: UnitOfTemperature, unique_id: str | None) -> None: ...
63
+ def __init__(self, hass: HomeAssistant, *, name: str, heater_entity_id: str, sensor_entity_id: str, min_temp: float | None, max_temp: float | None, target_temp: float | None, ac_mode: bool | None, min_cycle_duration: timedelta | None, cold_tolerance: float, hot_tolerance: float, keep_alive: timedelta | None, initial_hvac_mode: HVACMode | None, presets: dict[str, float], precision: float | None, target_temperature_step: float | None, unit: UnitOfTemperature, unique_id: str | None) -> None: ...
64
64
  async def async_added_to_hass(self) -> None: ...
65
65
  @property
66
66
  def precision(self) -> float: ...
@@ -15,6 +15,7 @@ CONFIG_FLOW: Incomplete
15
15
  OPTIONS_FLOW: Incomplete
16
16
 
17
17
  class ConfigFlowHandler(SchemaConfigFlowHandler, domain=DOMAIN):
18
+ MINOR_VERSION: int
18
19
  config_flow = CONFIG_FLOW
19
20
  options_flow = OPTIONS_FLOW
20
21
  def async_config_entry_title(self, options: Mapping[str, Any]) -> str: ...
@@ -2,7 +2,6 @@ from . import DOMAIN as DOMAIN
2
2
  from _typeshed import Incomplete
3
3
  from homeassistant.const import CONF_EVENT as CONF_EVENT, CONF_PLATFORM as CONF_PLATFORM, CONF_SOURCE as CONF_SOURCE, CONF_ZONE as CONF_ZONE
4
4
  from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, Event as Event, EventStateChangedData as EventStateChangedData, HassJob as HassJob, HomeAssistant as HomeAssistant, State as State, callback as callback
5
- from homeassistant.helpers import condition as condition
6
5
  from homeassistant.helpers.config_validation import entity_domain as entity_domain
7
6
  from homeassistant.helpers.event import TrackStates as TrackStates, async_track_state_change_filtered as async_track_state_change_filtered
8
7
  from homeassistant.helpers.trigger import TriggerActionType as TriggerActionType, TriggerInfo as TriggerInfo
@@ -10,6 +10,8 @@ URL: str
10
10
  API_TIMEOUT: Final[int]
11
11
  ATTR_C6H6: Final[str]
12
12
  ATTR_CO: Final[str]
13
+ ATTR_NO: Final[str]
14
+ ATTR_NOX: Final[str]
13
15
  ATTR_NO2: Final[str]
14
16
  ATTR_O3: Final[str]
15
17
  ATTR_PM10: Final[str]
@@ -1,4 +1,4 @@
1
- from .const import ATTRIBUTION as ATTRIBUTION, ATTR_AQI as ATTR_AQI, ATTR_C6H6 as ATTR_C6H6, ATTR_CO as ATTR_CO, ATTR_NO2 as ATTR_NO2, ATTR_O3 as ATTR_O3, ATTR_PM10 as ATTR_PM10, ATTR_PM25 as ATTR_PM25, ATTR_SO2 as ATTR_SO2, DOMAIN as DOMAIN, MANUFACTURER as MANUFACTURER, URL as URL
1
+ from .const import ATTRIBUTION as ATTRIBUTION, ATTR_AQI as ATTR_AQI, ATTR_C6H6 as ATTR_C6H6, ATTR_CO as ATTR_CO, ATTR_NO as ATTR_NO, ATTR_NO2 as ATTR_NO2, ATTR_NOX as ATTR_NOX, ATTR_O3 as ATTR_O3, ATTR_PM10 as ATTR_PM10, ATTR_PM25 as ATTR_PM25, ATTR_SO2 as ATTR_SO2, DOMAIN as DOMAIN, MANUFACTURER as MANUFACTURER, URL as URL
2
2
  from .coordinator import GiosConfigEntry as GiosConfigEntry, GiosDataUpdateCoordinator as GiosDataUpdateCoordinator
3
3
  from _typeshed import Incomplete
4
4
  from collections.abc import Callable as Callable
@@ -1,5 +1,6 @@
1
1
  from homeassistant.components.application_credentials import AuthorizationServer as AuthorizationServer
2
2
  from homeassistant.core import HomeAssistant as HomeAssistant
3
+ from homeassistant.helpers.config_entry_oauth2_flow import AUTH_CALLBACK_PATH as AUTH_CALLBACK_PATH, MY_AUTH_CALLBACK_PATH as MY_AUTH_CALLBACK_PATH
3
4
 
4
5
  async def async_get_authorization_server(hass: HomeAssistant) -> AuthorizationServer: ...
5
6
  async def async_get_description_placeholders(hass: HomeAssistant) -> dict[str, str]: ...