homeassistant-stubs 2025.1.3__py3-none-any.whl → 2025.2.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (732) hide show
  1. homeassistant-stubs/auth/mfa_modules/__init__.pyi +2 -4
  2. homeassistant-stubs/auth/models.pyi +1 -1
  3. homeassistant-stubs/auth/permissions/__init__.pyi +1 -1
  4. homeassistant-stubs/auth/providers/__init__.pyi +2 -4
  5. homeassistant-stubs/backup_restore.pyi +2 -0
  6. homeassistant-stubs/components/airgradient/button.pyi +4 -1
  7. homeassistant-stubs/components/airgradient/config_flow.pyi +5 -3
  8. homeassistant-stubs/components/airgradient/entity.pyi +5 -0
  9. homeassistant-stubs/components/airgradient/number.pyi +4 -1
  10. homeassistant-stubs/components/airgradient/select.pyi +4 -1
  11. homeassistant-stubs/components/airgradient/sensor.pyi +2 -0
  12. homeassistant-stubs/components/airgradient/switch.pyi +5 -1
  13. homeassistant-stubs/components/airgradient/update.pyi +2 -1
  14. homeassistant-stubs/components/airnow/coordinator.pyi +1 -1
  15. homeassistant-stubs/components/airzone/__init__.pyi +2 -0
  16. homeassistant-stubs/components/airzone/config_flow.pyi +3 -2
  17. homeassistant-stubs/components/alarm_control_panel/__init__.pyi +1 -1
  18. homeassistant-stubs/components/androidtv_remote/config_flow.pyi +2 -2
  19. homeassistant-stubs/components/api/__init__.pyi +1 -1
  20. homeassistant-stubs/components/apple_tv/config_flow.pyi +2 -1
  21. homeassistant-stubs/components/apsystems/coordinator.pyi +1 -0
  22. homeassistant-stubs/components/aranet/sensor.pyi +1 -1
  23. homeassistant-stubs/components/arcam_fmj/config_flow.pyi +2 -2
  24. homeassistant-stubs/components/assist_pipeline/__init__.pyi +2 -2
  25. homeassistant-stubs/components/assist_pipeline/pipeline.pyi +4 -1
  26. homeassistant-stubs/components/assist_pipeline/select.pyi +2 -2
  27. homeassistant-stubs/components/assist_pipeline/websocket_api.pyi +2 -2
  28. homeassistant-stubs/components/assist_satellite/__init__.pyi +1 -1
  29. homeassistant-stubs/components/assist_satellite/const.pyi +1 -0
  30. homeassistant-stubs/components/assist_satellite/entity.pyi +7 -1
  31. homeassistant-stubs/components/assist_satellite/intent.pyi +13 -0
  32. homeassistant-stubs/components/assist_satellite/websocket_api.pyi +0 -2
  33. homeassistant-stubs/components/automation/__init__.pyi +1 -1
  34. homeassistant-stubs/components/awair/config_flow.pyi +3 -2
  35. homeassistant-stubs/components/axis/config_flow.pyi +6 -4
  36. homeassistant-stubs/components/backup/__init__.pyi +8 -3
  37. homeassistant-stubs/components/backup/agent.pyi +6 -5
  38. homeassistant-stubs/components/backup/backup.pyi +6 -4
  39. homeassistant-stubs/components/backup/config.pyi +45 -3
  40. homeassistant-stubs/components/backup/http.pyi +8 -0
  41. homeassistant-stubs/components/backup/manager.pyi +42 -22
  42. homeassistant-stubs/components/backup/models.pyi +18 -3
  43. homeassistant-stubs/components/backup/store.pyi +7 -2
  44. homeassistant-stubs/components/backup/util.pyi +94 -0
  45. homeassistant-stubs/components/backup/websocket.pyi +6 -3
  46. homeassistant-stubs/components/baf/config_flow.pyi +2 -2
  47. homeassistant-stubs/components/bang_olufsen/config_flow.pyi +1 -1
  48. homeassistant-stubs/components/bang_olufsen/const.pyi +6 -0
  49. homeassistant-stubs/components/bang_olufsen/event.pyi +23 -0
  50. homeassistant-stubs/components/bang_olufsen/websocket.pyi +3 -2
  51. homeassistant-stubs/components/binary_sensor/__init__.pyi +1 -1
  52. homeassistant-stubs/components/blueprint/importer.pyi +0 -1
  53. homeassistant-stubs/components/blueprint/models.pyi +0 -1
  54. homeassistant-stubs/components/blueprint/websocket_api.pyi +0 -1
  55. homeassistant-stubs/components/bluesound/__init__.pyi +2 -0
  56. homeassistant-stubs/components/bluesound/config_flow.pyi +2 -3
  57. homeassistant-stubs/components/bluesound/coordinator.pyi +30 -0
  58. homeassistant-stubs/components/bluesound/media_player.pyi +10 -25
  59. homeassistant-stubs/components/bluetooth/__init__.pyi +2 -2
  60. homeassistant-stubs/components/bluetooth/api.pyi +3 -1
  61. homeassistant-stubs/components/bluetooth/config_flow.pyi +10 -3
  62. homeassistant-stubs/components/bluetooth/const.pyi +5 -0
  63. homeassistant-stubs/components/bluetooth/manager.pyi +5 -1
  64. homeassistant-stubs/components/bluetooth/passive_update_coordinator.pyi +1 -4
  65. homeassistant-stubs/components/bluetooth/storage.pyi +2 -0
  66. homeassistant-stubs/components/bluetooth/util.pyi +6 -1
  67. homeassistant-stubs/components/bluetooth/websocket_api.pyi +46 -0
  68. homeassistant-stubs/components/bond/config_flow.pyi +2 -2
  69. homeassistant-stubs/components/braviatv/config_flow.pyi +2 -2
  70. homeassistant-stubs/components/brother/config_flow.pyi +2 -2
  71. homeassistant-stubs/components/button/__init__.pyi +1 -1
  72. homeassistant-stubs/components/cambridge_audio/config_flow.pyi +2 -2
  73. homeassistant-stubs/components/camera/__init__.pyi +1 -1
  74. homeassistant-stubs/components/canary/__init__.pyi +7 -7
  75. homeassistant-stubs/components/canary/alarm_control_panel.pyi +2 -4
  76. homeassistant-stubs/components/canary/camera.pyi +3 -4
  77. homeassistant-stubs/components/canary/const.pyi +0 -2
  78. homeassistant-stubs/components/canary/coordinator.pyi +3 -1
  79. homeassistant-stubs/components/canary/sensor.pyi +3 -4
  80. homeassistant-stubs/components/climate/__init__.pyi +2 -2
  81. homeassistant-stubs/components/climate/const.pyi +1 -0
  82. homeassistant-stubs/components/climate/intent.pyi +9 -1
  83. homeassistant-stubs/components/cloud/__init__.pyi +1 -1
  84. homeassistant-stubs/components/cloud/backup.pyi +3 -9
  85. homeassistant-stubs/components/cloud/const.pyi +0 -1
  86. homeassistant-stubs/components/cloud/http_api.pyi +7 -1
  87. homeassistant-stubs/components/config/core.pyi +1 -1
  88. homeassistant-stubs/components/cookidoo/__init__.pyi +6 -2
  89. homeassistant-stubs/components/cookidoo/button.pyi +27 -0
  90. homeassistant-stubs/components/cookidoo/config_flow.pyi +4 -1
  91. homeassistant-stubs/components/cookidoo/const.pyi +3 -0
  92. homeassistant-stubs/components/cookidoo/coordinator.pyi +3 -1
  93. homeassistant-stubs/components/cookidoo/diagnostics.pyi +10 -0
  94. homeassistant-stubs/components/cookidoo/helpers.pyi +9 -0
  95. homeassistant-stubs/components/cookidoo/sensor.pyi +34 -0
  96. homeassistant-stubs/components/cover/__init__.pyi +1 -1
  97. homeassistant-stubs/components/crownstone/__init__.pyi +6 -5
  98. homeassistant-stubs/components/crownstone/config_flow.pyi +6 -4
  99. homeassistant-stubs/components/crownstone/entry_manager.pyi +6 -6
  100. homeassistant-stubs/components/crownstone/helpers.pyi +2 -1
  101. homeassistant-stubs/components/crownstone/light.pyi +3 -4
  102. homeassistant-stubs/components/date/__init__.pyi +1 -1
  103. homeassistant-stubs/components/datetime/__init__.pyi +1 -1
  104. homeassistant-stubs/components/deconz/__init__.pyi +5 -4
  105. homeassistant-stubs/components/deconz/alarm_control_panel.pyi +2 -2
  106. homeassistant-stubs/components/deconz/binary_sensor.pyi +2 -2
  107. homeassistant-stubs/components/deconz/button.pyi +2 -2
  108. homeassistant-stubs/components/deconz/climate.pyi +2 -2
  109. homeassistant-stubs/components/deconz/config_flow.pyi +3 -6
  110. homeassistant-stubs/components/deconz/cover.pyi +2 -2
  111. homeassistant-stubs/components/deconz/device_trigger.pyi +1 -2
  112. homeassistant-stubs/components/deconz/diagnostics.pyi +2 -3
  113. homeassistant-stubs/components/deconz/fan.pyi +2 -2
  114. homeassistant-stubs/components/deconz/hub/api.pyi +2 -2
  115. homeassistant-stubs/components/deconz/hub/config.pyi +3 -3
  116. homeassistant-stubs/components/deconz/hub/hub.pyi +4 -6
  117. homeassistant-stubs/components/deconz/light.pyi +2 -2
  118. homeassistant-stubs/components/deconz/lock.pyi +2 -3
  119. homeassistant-stubs/components/deconz/number.pyi +2 -2
  120. homeassistant-stubs/components/deconz/scene.pyi +2 -3
  121. homeassistant-stubs/components/deconz/select.pyi +2 -3
  122. homeassistant-stubs/components/deconz/sensor.pyi +2 -2
  123. homeassistant-stubs/components/deconz/services.pyi +2 -1
  124. homeassistant-stubs/components/deconz/siren.pyi +2 -3
  125. homeassistant-stubs/components/deconz/switch.pyi +2 -3
  126. homeassistant-stubs/components/deconz/util.pyi +7 -0
  127. homeassistant-stubs/components/device_tracker/config_entry.pyi +1 -1
  128. homeassistant-stubs/components/device_tracker/legacy.pyi +1 -1
  129. homeassistant-stubs/components/devolo_home_control/config_flow.pyi +2 -2
  130. homeassistant-stubs/components/devolo_home_network/config_flow.pyi +2 -1
  131. homeassistant-stubs/components/dhcp/__init__.pyi +6 -7
  132. homeassistant-stubs/components/discovergy/sensor.pyi +2 -0
  133. homeassistant-stubs/components/dlna_dmr/config_flow.pyi +7 -6
  134. homeassistant-stubs/components/dlna_dmr/media_player.pyi +2 -1
  135. homeassistant-stubs/components/dlna_dms/config_flow.pyi +5 -4
  136. homeassistant-stubs/components/dlna_dms/dms.pyi +3 -2
  137. homeassistant-stubs/components/doorbird/config_flow.pyi +2 -2
  138. homeassistant-stubs/components/doorbird/device.pyi +1 -1
  139. homeassistant-stubs/components/dormakaba_dkey/__init__.pyi +5 -9
  140. homeassistant-stubs/components/dormakaba_dkey/binary_sensor.pyi +3 -7
  141. homeassistant-stubs/components/dormakaba_dkey/coordinator.pyi +15 -0
  142. homeassistant-stubs/components/dormakaba_dkey/entity.pyi +4 -5
  143. homeassistant-stubs/components/dormakaba_dkey/lock.pyi +3 -7
  144. homeassistant-stubs/components/dormakaba_dkey/sensor.pyi +3 -7
  145. homeassistant-stubs/components/dunehd/__init__.pyi +4 -3
  146. homeassistant-stubs/components/dunehd/media_player.pyi +2 -2
  147. homeassistant-stubs/components/duotecno/__init__.pyi +4 -3
  148. homeassistant-stubs/components/duotecno/binary_sensor.pyi +2 -4
  149. homeassistant-stubs/components/duotecno/climate.pyi +2 -4
  150. homeassistant-stubs/components/duotecno/cover.pyi +2 -4
  151. homeassistant-stubs/components/duotecno/light.pyi +2 -4
  152. homeassistant-stubs/components/duotecno/switch.pyi +2 -4
  153. homeassistant-stubs/components/eheimdigital/climate.pyi +40 -0
  154. homeassistant-stubs/components/eheimdigital/config_flow.pyi +1 -1
  155. homeassistant-stubs/components/eheimdigital/const.pyi +4 -0
  156. homeassistant-stubs/components/eheimdigital/coordinator.pyi +2 -3
  157. homeassistant-stubs/components/eheimdigital/light.pyi +1 -0
  158. homeassistant-stubs/components/electrasmart/__init__.pyi +6 -4
  159. homeassistant-stubs/components/electrasmart/climate.pyi +2 -2
  160. homeassistant-stubs/components/electric_kiwi/__init__.pyi +3 -5
  161. homeassistant-stubs/components/electric_kiwi/const.pyi +0 -2
  162. homeassistant-stubs/components/electric_kiwi/coordinator.pyi +10 -2
  163. homeassistant-stubs/components/electric_kiwi/select.pyi +3 -4
  164. homeassistant-stubs/components/electric_kiwi/sensor.pyi +3 -4
  165. homeassistant-stubs/components/elevenlabs/const.pyi +1 -0
  166. homeassistant-stubs/components/elevenlabs/tts.pyi +1 -1
  167. homeassistant-stubs/components/elgato/config_flow.pyi +3 -2
  168. homeassistant-stubs/components/elkm1/binary_sensor.pyi +1 -1
  169. homeassistant-stubs/components/elkm1/config_flow.pyi +2 -2
  170. homeassistant-stubs/components/elkm1/sensor.pyi +5 -5
  171. homeassistant-stubs/components/energenie_power_sockets/__init__.pyi +5 -4
  172. homeassistant-stubs/components/energenie_power_sockets/switch.pyi +2 -2
  173. homeassistant-stubs/components/enphase_envoy/config_flow.pyi +5 -5
  174. homeassistant-stubs/components/enphase_envoy/coordinator.pyi +7 -0
  175. homeassistant-stubs/components/enphase_envoy/select.pyi +2 -2
  176. homeassistant-stubs/components/enphase_envoy/sensor.pyi +1 -4
  177. homeassistant-stubs/components/esphome/__init__.pyi +1 -0
  178. homeassistant-stubs/components/esphome/bluetooth.pyi +2 -1
  179. homeassistant-stubs/components/esphome/config_flow.pyi +5 -3
  180. homeassistant-stubs/components/esphome/dashboard.pyi +2 -1
  181. homeassistant-stubs/components/esphome/manager.pyi +1 -1
  182. homeassistant-stubs/components/event/__init__.pyi +2 -2
  183. homeassistant-stubs/components/evil_genius_labs/__init__.pyi +3 -5
  184. homeassistant-stubs/components/evil_genius_labs/coordinator.pyi +4 -1
  185. homeassistant-stubs/components/evil_genius_labs/diagnostics.pyi +2 -4
  186. homeassistant-stubs/components/evil_genius_labs/light.pyi +2 -4
  187. homeassistant-stubs/components/fan/__init__.pyi +1 -1
  188. homeassistant-stubs/components/feedreader/__init__.pyi +3 -5
  189. homeassistant-stubs/components/feedreader/coordinator.pyi +5 -3
  190. homeassistant-stubs/components/filter/__init__.pyi +6 -4
  191. homeassistant-stubs/components/filter/config_flow.pyi +28 -0
  192. homeassistant-stubs/components/filter/const.pyi +29 -0
  193. homeassistant-stubs/components/filter/sensor.pyi +3 -24
  194. homeassistant-stubs/components/flux_led/config_flow.pyi +2 -2
  195. homeassistant-stubs/components/fritz/__init__.pyi +9 -7
  196. homeassistant-stubs/components/fritz/binary_sensor.pyi +2 -4
  197. homeassistant-stubs/components/fritz/button.pyi +3 -4
  198. homeassistant-stubs/components/fritz/config_flow.pyi +6 -5
  199. homeassistant-stubs/components/fritz/const.pyi +0 -3
  200. homeassistant-stubs/components/fritz/coordinator.pyi +12 -10
  201. homeassistant-stubs/components/fritz/device_tracker.pyi +2 -4
  202. homeassistant-stubs/components/fritz/diagnostics.pyi +2 -4
  203. homeassistant-stubs/components/fritz/image.pyi +2 -4
  204. homeassistant-stubs/components/fritz/sensor.pyi +3 -4
  205. homeassistant-stubs/components/fritz/services.pyi +5 -8
  206. homeassistant-stubs/components/fritz/switch.pyi +3 -4
  207. homeassistant-stubs/components/fritz/update.pyi +2 -4
  208. homeassistant-stubs/components/fritzbox/config_flow.pyi +2 -2
  209. homeassistant-stubs/components/fritzbox/coordinator.pyi +1 -1
  210. homeassistant-stubs/components/fronius/config_flow.pyi +1 -1
  211. homeassistant-stubs/components/frontend/__init__.pyi +1 -1
  212. homeassistant-stubs/components/fujitsu_fglair/climate.pyi +2 -8
  213. homeassistant-stubs/components/fujitsu_fglair/entity.pyi +15 -0
  214. homeassistant-stubs/components/fujitsu_fglair/sensor.pyi +21 -0
  215. homeassistant-stubs/components/fully_kiosk/config_flow.pyi +1 -1
  216. homeassistant-stubs/components/fyta/binary_sensor.pyi +23 -0
  217. homeassistant-stubs/components/fyta/entity.pyi +2 -2
  218. homeassistant-stubs/components/fyta/image.pyi +18 -0
  219. homeassistant-stubs/components/generic_thermostat/climate.pyi +1 -0
  220. homeassistant-stubs/components/geo_location/__init__.pyi +1 -1
  221. homeassistant-stubs/components/goalzero/config_flow.pyi +2 -2
  222. homeassistant-stubs/components/google_drive/__init__.pyi +17 -0
  223. homeassistant-stubs/components/google_drive/api.pyi +35 -0
  224. homeassistant-stubs/components/google_drive/application_credentials.pyi +6 -0
  225. homeassistant-stubs/components/google_drive/backup.pyi +28 -0
  226. homeassistant-stubs/components/google_drive/config_flow.pyi +24 -0
  227. homeassistant-stubs/components/google_drive/const.pyi +1 -0
  228. homeassistant-stubs/components/guardian/config_flow.pyi +4 -3
  229. homeassistant-stubs/components/habitica/__init__.pyi +16 -0
  230. homeassistant-stubs/components/habitica/binary_sensor.pyi +33 -0
  231. homeassistant-stubs/components/habitica/button.pyi +53 -0
  232. homeassistant-stubs/components/habitica/calendar.pyi +56 -0
  233. homeassistant-stubs/components/habitica/config_flow.pyi +27 -0
  234. homeassistant-stubs/components/habitica/const.pyi +44 -0
  235. homeassistant-stubs/components/habitica/coordinator.pyi +29 -0
  236. homeassistant-stubs/components/habitica/diagnostics.pyi +7 -0
  237. homeassistant-stubs/components/habitica/entity.pyi +14 -0
  238. homeassistant-stubs/components/habitica/image.pyi +26 -0
  239. homeassistant-stubs/components/habitica/sensor.pyi +81 -0
  240. homeassistant-stubs/components/habitica/services.pyi +24 -0
  241. homeassistant-stubs/components/habitica/switch.pyi +32 -0
  242. homeassistant-stubs/components/habitica/todo.pyi +43 -0
  243. homeassistant-stubs/components/habitica/types.pyi +10 -0
  244. homeassistant-stubs/components/habitica/util.pyi +15 -0
  245. homeassistant-stubs/components/heos/__init__.pyi +15 -0
  246. homeassistant-stubs/components/heos/config_flow.pyi +32 -0
  247. homeassistant-stubs/components/heos/const.pyi +5 -0
  248. homeassistant-stubs/components/heos/coordinator.pyi +44 -0
  249. homeassistant-stubs/components/heos/diagnostics.pyi +14 -0
  250. homeassistant-stubs/components/heos/media_player.pyi +95 -0
  251. homeassistant-stubs/components/heos/services.pyi +16 -0
  252. homeassistant-stubs/components/holiday/config_flow.pyi +3 -1
  253. homeassistant-stubs/components/homeassistant_hardware/firmware_config_flow.pyi +1 -3
  254. homeassistant-stubs/components/homeassistant_hardware/util.pyi +13 -1
  255. homeassistant-stubs/components/homeassistant_sky_connect/config_flow.pyi +4 -2
  256. homeassistant-stubs/components/homeassistant_sky_connect/util.pyi +2 -2
  257. homeassistant-stubs/components/homeassistant_yellow/config_flow.pyi +1 -0
  258. homeassistant-stubs/components/homee/__init__.pyi +14 -0
  259. homeassistant-stubs/components/homee/config_flow.pyi +14 -0
  260. homeassistant-stubs/components/homee/const.pyi +9 -0
  261. homeassistant-stubs/components/homee/cover.pyi +43 -0
  262. homeassistant-stubs/components/homee/entity.pyi +43 -0
  263. homeassistant-stubs/components/homee/helpers.pyi +6 -0
  264. homeassistant-stubs/components/homee/sensor.pyi +49 -0
  265. homeassistant-stubs/components/homekit/util.pyi +1 -1
  266. homeassistant-stubs/components/homekit_controller/config_flow.pyi +3 -2
  267. homeassistant-stubs/components/homewizard/__init__.pyi +5 -0
  268. homeassistant-stubs/components/homewizard/config_flow.pyi +19 -19
  269. homeassistant-stubs/components/homewizard/const.pyi +0 -11
  270. homeassistant-stubs/components/homewizard/coordinator.pyi +6 -12
  271. homeassistant-stubs/components/homewizard/number.pyi +0 -1
  272. homeassistant-stubs/components/homewizard/repairs.pyi +17 -0
  273. homeassistant-stubs/components/homewizard/sensor.pyi +8 -5
  274. homeassistant-stubs/components/homewizard/switch.pyi +4 -4
  275. homeassistant-stubs/components/http/ban.pyi +0 -1
  276. homeassistant-stubs/components/huawei_lte/config_flow.pyi +2 -2
  277. homeassistant-stubs/components/humidifier/__init__.pyi +1 -1
  278. homeassistant-stubs/components/husqvarna_automower/__init__.pyi +0 -3
  279. homeassistant-stubs/components/husqvarna_automower/coordinator.pyi +14 -0
  280. homeassistant-stubs/components/husqvarna_automower/number.pyi +1 -1
  281. homeassistant-stubs/components/hydrawise/__init__.pyi +3 -1
  282. homeassistant-stubs/components/hydrawise/config_flow.pyi +13 -5
  283. homeassistant-stubs/components/hydrawise/coordinator.pyi +4 -4
  284. homeassistant-stubs/components/hydrawise/switch.pyi +3 -3
  285. homeassistant-stubs/components/hyperion/config_flow.pyi +2 -2
  286. homeassistant-stubs/components/image/__init__.pyi +1 -1
  287. homeassistant-stubs/components/imgw_pib/__init__.pyi +1 -1
  288. homeassistant-stubs/components/imgw_pib/sensor.pyi +2 -1
  289. homeassistant-stubs/components/incomfort/__init__.pyi +18 -0
  290. homeassistant-stubs/components/incomfort/binary_sensor.pyi +33 -0
  291. homeassistant-stubs/components/incomfort/climate.pyi +42 -0
  292. homeassistant-stubs/components/incomfort/config_flow.pyi +37 -0
  293. homeassistant-stubs/components/incomfort/const.pyi +2 -0
  294. homeassistant-stubs/components/incomfort/coordinator.pyi +25 -0
  295. homeassistant-stubs/components/incomfort/diagnostics.pyi +12 -0
  296. homeassistant-stubs/components/incomfort/entity.pyi +14 -0
  297. homeassistant-stubs/components/incomfort/errors.pyi +18 -0
  298. homeassistant-stubs/components/incomfort/sensor.pyi +33 -0
  299. homeassistant-stubs/components/incomfort/water_heater.pyi +32 -0
  300. homeassistant-stubs/components/intent/__init__.pyi +1 -1
  301. homeassistant-stubs/components/intent/timers.pyi +1 -2
  302. homeassistant-stubs/components/ipp/config_flow.pyi +2 -2
  303. homeassistant-stubs/components/iron_os/button.pyi +31 -0
  304. homeassistant-stubs/components/iron_os/coordinator.pyi +4 -1
  305. homeassistant-stubs/components/iron_os/diagnostics.pyi +6 -0
  306. homeassistant-stubs/components/iron_os/number.pyi +1 -2
  307. homeassistant-stubs/components/iron_os/select.pyi +2 -4
  308. homeassistant-stubs/components/iron_os/switch.pyi +43 -0
  309. homeassistant-stubs/components/isy994/__init__.pyi +1 -2
  310. homeassistant-stubs/components/isy994/config_flow.pyi +4 -3
  311. homeassistant-stubs/components/kaleidescape/config_flow.pyi +2 -2
  312. homeassistant-stubs/components/knx/binary_sensor.pyi +18 -10
  313. homeassistant-stubs/components/knx/climate.pyi +10 -2
  314. homeassistant-stubs/components/knx/const.pyi +2 -0
  315. homeassistant-stubs/components/knx/entity.pyi +1 -1
  316. homeassistant-stubs/components/knx/light.pyi +1 -1
  317. homeassistant-stubs/components/knx/schema.pyi +5 -7
  318. homeassistant-stubs/components/knx/sensor.pyi +1 -1
  319. homeassistant-stubs/components/knx/storage/const.pyi +1 -0
  320. homeassistant-stubs/components/knx/storage/entity_store_schema.pyi +4 -2
  321. homeassistant-stubs/components/lamarzocco/config_flow.pyi +2 -2
  322. homeassistant-stubs/components/lametric/config_flow.pyi +2 -2
  323. homeassistant-stubs/components/lawn_mower/__init__.pyi +1 -1
  324. homeassistant-stubs/components/lcn/__init__.pyi +2 -2
  325. homeassistant-stubs/components/lcn/climate.pyi +2 -1
  326. homeassistant-stubs/components/lcn/const.pyi +1 -0
  327. homeassistant-stubs/components/lcn/schemas.pyi +1 -1
  328. homeassistant-stubs/components/lektrico/config_flow.pyi +1 -1
  329. homeassistant-stubs/components/letpot/__init__.pyi +13 -0
  330. homeassistant-stubs/components/letpot/config_flow.pyi +19 -0
  331. homeassistant-stubs/components/letpot/const.pyi +6 -0
  332. homeassistant-stubs/components/letpot/coordinator.pyi +20 -0
  333. homeassistant-stubs/components/letpot/entity.pyi +10 -0
  334. homeassistant-stubs/components/letpot/time.pyi +33 -0
  335. homeassistant-stubs/components/lifx/config_flow.pyi +3 -3
  336. homeassistant-stubs/components/lifx/coordinator.pyi +1 -1
  337. homeassistant-stubs/components/lifx/manager.pyi +16 -1
  338. homeassistant-stubs/components/light/__init__.pyi +1 -1
  339. homeassistant-stubs/components/linkplay/config_flow.pyi +2 -2
  340. homeassistant-stubs/components/litterrobot/__init__.pyi +2 -6
  341. homeassistant-stubs/components/litterrobot/binary_sensor.pyi +6 -9
  342. homeassistant-stubs/components/litterrobot/button.pyi +6 -10
  343. homeassistant-stubs/components/litterrobot/{hub.pyi → coordinator.pyi} +11 -10
  344. homeassistant-stubs/components/litterrobot/entity.pyi +5 -7
  345. homeassistant-stubs/components/litterrobot/select.pyi +5 -14
  346. homeassistant-stubs/components/litterrobot/sensor.pyi +7 -7
  347. homeassistant-stubs/components/litterrobot/switch.pyi +7 -9
  348. homeassistant-stubs/components/litterrobot/time.pyi +3 -6
  349. homeassistant-stubs/components/litterrobot/update.pyi +1 -1
  350. homeassistant-stubs/components/litterrobot/vacuum.pyi +1 -5
  351. homeassistant-stubs/components/lock/__init__.pyi +1 -1
  352. homeassistant-stubs/components/logbook/models.pyi +1 -1
  353. homeassistant-stubs/components/lookin/config_flow.pyi +2 -2
  354. homeassistant-stubs/components/lovelace/__init__.pyi +39 -0
  355. homeassistant-stubs/components/lovelace/cast.pyi +18 -0
  356. homeassistant-stubs/components/lovelace/const.pyi +33 -0
  357. homeassistant-stubs/components/lovelace/dashboard.pyi +83 -0
  358. homeassistant-stubs/components/lovelace/resources.pyi +42 -0
  359. homeassistant-stubs/components/lovelace/system_health.pyi +9 -0
  360. homeassistant-stubs/components/lovelace/websocket.pyi +26 -0
  361. homeassistant-stubs/components/mastodon/config_flow.pyi +2 -3
  362. homeassistant-stubs/components/mastodon/notify.pyi +1 -3
  363. homeassistant-stubs/components/matter/config_flow.pyi +1 -1
  364. homeassistant-stubs/components/matter/cover.pyi +0 -1
  365. homeassistant-stubs/components/matter/discovery.pyi +2 -2
  366. homeassistant-stubs/components/matter/entity.pyi +11 -4
  367. homeassistant-stubs/components/matter/light.pyi +0 -1
  368. homeassistant-stubs/components/matter/lock.pyi +0 -2
  369. homeassistant-stubs/components/matter/models.pyi +10 -1
  370. homeassistant-stubs/components/matter/number.pyi +1 -1
  371. homeassistant-stubs/components/matter/select.pyi +32 -2
  372. homeassistant-stubs/components/matter/sensor.pyi +24 -0
  373. homeassistant-stubs/components/matter/switch.pyi +15 -2
  374. homeassistant-stubs/components/matter/vacuum.pyi +0 -1
  375. homeassistant-stubs/components/matter/valve.pyi +0 -2
  376. homeassistant-stubs/components/mcp/__init__.pyi +16 -0
  377. homeassistant-stubs/components/mcp/config_flow.pyi +23 -0
  378. homeassistant-stubs/components/mcp/const.pyi +1 -0
  379. homeassistant-stubs/components/mcp/coordinator.pyi +40 -0
  380. homeassistant-stubs/components/mcp/types.pyi +4 -0
  381. homeassistant-stubs/components/mcp_server/__init__.pyi +13 -0
  382. homeassistant-stubs/components/mcp_server/config_flow.pyi +14 -0
  383. homeassistant-stubs/components/mcp_server/const.pyi +4 -0
  384. homeassistant-stubs/components/mcp_server/http.pyi +31 -0
  385. homeassistant-stubs/components/mcp_server/llm_api.pyi +15 -0
  386. homeassistant-stubs/components/mcp_server/server.pyi +13 -0
  387. homeassistant-stubs/components/mcp_server/session.pyi +20 -0
  388. homeassistant-stubs/components/mcp_server/types.pyi +4 -0
  389. homeassistant-stubs/components/media_player/__init__.pyi +1 -1
  390. homeassistant-stubs/components/media_source/__init__.pyi +1 -1
  391. homeassistant-stubs/components/media_source/models.pyi +1 -2
  392. homeassistant-stubs/components/minecraft_server/__init__.pyi +1 -1
  393. homeassistant-stubs/components/modbus/__init__.pyi +2 -2
  394. homeassistant-stubs/components/modbus/binary_sensor.pyi +1 -3
  395. homeassistant-stubs/components/modbus/climate.pyi +4 -3
  396. homeassistant-stubs/components/modbus/const.pyi +4 -0
  397. homeassistant-stubs/components/modbus/cover.pyi +1 -2
  398. homeassistant-stubs/components/modbus/entity.pyi +15 -8
  399. homeassistant-stubs/components/modbus/light.pyi +0 -1
  400. homeassistant-stubs/components/modbus/modbus.pyi +4 -0
  401. homeassistant-stubs/components/modbus/sensor.pyi +1 -2
  402. homeassistant-stubs/components/modbus/switch.pyi +0 -1
  403. homeassistant-stubs/components/modem_callerid/config_flow.pyi +2 -1
  404. homeassistant-stubs/components/motionmount/__init__.pyi +2 -2
  405. homeassistant-stubs/components/motionmount/config_flow.pyi +16 -6
  406. homeassistant-stubs/components/motionmount/entity.pyi +3 -2
  407. homeassistant-stubs/components/motionmount/select.pyi +2 -0
  408. homeassistant-stubs/components/mqtt/__init__.pyi +11 -34
  409. homeassistant-stubs/components/mqtt/alarm_control_panel.pyi +1 -1
  410. homeassistant-stubs/components/mqtt/config_flow.pyi +3 -5
  411. homeassistant-stubs/components/mqtt/const.pyi +7 -1
  412. homeassistant-stubs/components/mqtt/diagnostics.pyi +0 -1
  413. homeassistant-stubs/components/mqtt/light/schema_basic.pyi +2 -1
  414. homeassistant-stubs/components/mqtt/light/schema_json.pyi +2 -1
  415. homeassistant-stubs/components/mqtt/light/schema_template.pyi +2 -1
  416. homeassistant-stubs/components/music_assistant/config_flow.pyi +2 -2
  417. homeassistant-stubs/components/myuplink/sensor.pyi +1 -1
  418. homeassistant-stubs/components/nam/config_flow.pyi +2 -2
  419. homeassistant-stubs/components/nanoleaf/config_flow.pyi +6 -5
  420. homeassistant-stubs/components/nest/__init__.pyi +3 -4
  421. homeassistant-stubs/components/nest/api.pyi +2 -2
  422. homeassistant-stubs/components/nest/climate.pyi +2 -0
  423. homeassistant-stubs/components/nest/config_flow.pyi +6 -2
  424. homeassistant-stubs/components/netatmo/button.pyi +25 -0
  425. homeassistant-stubs/components/netatmo/const.pyi +1 -0
  426. homeassistant-stubs/components/netatmo/data_handler.pyi +1 -1
  427. homeassistant-stubs/components/network/system_health.pyi +11 -0
  428. homeassistant-stubs/components/notify/__init__.pyi +1 -1
  429. homeassistant-stubs/components/number/__init__.pyi +2 -2
  430. homeassistant-stubs/components/nut/config_flow.pyi +2 -2
  431. homeassistant-stubs/components/onboarding/views.pyi +30 -2
  432. homeassistant-stubs/components/onedrive/__init__.pyi +26 -0
  433. homeassistant-stubs/components/onedrive/application_credentials.pyi +5 -0
  434. homeassistant-stubs/components/onedrive/backup.pyi +41 -0
  435. homeassistant-stubs/components/onedrive/config_flow.pyi +18 -0
  436. homeassistant-stubs/components/onedrive/const.pyi +10 -0
  437. homeassistant-stubs/components/onewire/__init__.pyi +4 -4
  438. homeassistant-stubs/components/onewire/binary_sensor.pyi +8 -4
  439. homeassistant-stubs/components/onewire/config_flow.pyi +12 -7
  440. homeassistant-stubs/components/onewire/const.pyi +0 -2
  441. homeassistant-stubs/components/onewire/diagnostics.pyi +1 -1
  442. homeassistant-stubs/components/onewire/onewirehub.pyi +22 -14
  443. homeassistant-stubs/components/onewire/select.pyi +27 -0
  444. homeassistant-stubs/components/onewire/sensor.pyi +7 -4
  445. homeassistant-stubs/components/onewire/switch.pyi +8 -4
  446. homeassistant-stubs/components/onkyo/config_flow.pyi +9 -4
  447. homeassistant-stubs/components/open_meteo/__init__.pyi +4 -8
  448. homeassistant-stubs/components/open_meteo/coordinator.pyi +15 -0
  449. homeassistant-stubs/components/open_meteo/diagnostics.pyi +2 -5
  450. homeassistant-stubs/components/open_meteo/weather.pyi +3 -3
  451. homeassistant-stubs/components/openai_conversation/conversation.pyi +6 -6
  452. homeassistant-stubs/components/overkiz/__init__.pyi +1 -1
  453. homeassistant-stubs/components/overkiz/climate/__init__.pyi +1 -0
  454. homeassistant-stubs/components/overkiz/climate/atlantic_pass_apc_zone_control_zone.pyi +1 -1
  455. homeassistant-stubs/components/overkiz/climate/evo_home_controller.pyi +24 -0
  456. homeassistant-stubs/components/overkiz/config_flow.pyi +4 -3
  457. homeassistant-stubs/components/overkiz/const.pyi +1 -0
  458. homeassistant-stubs/components/overkiz/coordinator.pyi +5 -3
  459. homeassistant-stubs/components/overseerr/__init__.pyi +37 -0
  460. homeassistant-stubs/components/overseerr/config_flow.pyi +14 -0
  461. homeassistant-stubs/components/overseerr/const.pyi +12 -0
  462. homeassistant-stubs/components/overseerr/coordinator.pyi +18 -0
  463. homeassistant-stubs/components/overseerr/diagnostics.pyi +6 -0
  464. homeassistant-stubs/components/overseerr/entity.pyi +11 -0
  465. homeassistant-stubs/components/overseerr/event.pyi +35 -0
  466. homeassistant-stubs/components/overseerr/sensor.pyi +27 -0
  467. homeassistant-stubs/components/overseerr/services.pyi +16 -0
  468. homeassistant-stubs/components/pandora/__init__.pyi +0 -0
  469. homeassistant-stubs/components/pandora/media_player.pyi +51 -0
  470. homeassistant-stubs/components/peblar/config_flow.pyi +3 -3
  471. homeassistant-stubs/components/person/__init__.pyi +103 -0
  472. homeassistant-stubs/components/person/const.pyi +1 -0
  473. homeassistant-stubs/components/person/significant_change.pyi +5 -0
  474. homeassistant-stubs/components/plugwise/config_flow.pyi +1 -1
  475. homeassistant-stubs/components/powerfox/sensor.pyi +3 -2
  476. homeassistant-stubs/components/powerwall/__init__.pyi +8 -3
  477. homeassistant-stubs/components/powerwall/config_flow.pyi +3 -3
  478. homeassistant-stubs/components/powerwall/const.pyi +2 -0
  479. homeassistant-stubs/components/proximity/__init__.pyi +2 -3
  480. homeassistant-stubs/components/proximity/coordinator.pyi +1 -2
  481. homeassistant-stubs/components/pure_energie/config_flow.pyi +2 -2
  482. homeassistant-stubs/components/python_script/__init__.pyi +48 -0
  483. homeassistant-stubs/components/qbus/__init__.pyi +15 -0
  484. homeassistant-stubs/components/qbus/config_flow.pyi +26 -0
  485. homeassistant-stubs/components/qbus/const.pyi +7 -0
  486. homeassistant-stubs/components/qbus/coordinator.pyi +48 -0
  487. homeassistant-stubs/components/qbus/entity.pyi +29 -0
  488. homeassistant-stubs/components/qbus/switch.pyi +21 -0
  489. homeassistant-stubs/components/qnap_qsw/config_flow.pyi +2 -2
  490. homeassistant-stubs/components/qnap_qsw/sensor.pyi +1 -4
  491. homeassistant-stubs/components/rabbitair/config_flow.pyi +2 -1
  492. homeassistant-stubs/components/rainforest_raven/config_flow.pyi +3 -2
  493. homeassistant-stubs/components/rainmachine/config_flow.pyi +4 -4
  494. homeassistant-stubs/components/recorder/auto_repairs/statistics/duplicates.pyi +1 -1
  495. homeassistant-stubs/components/recorder/const.pyi +0 -2
  496. homeassistant-stubs/components/recorder/core.pyi +2 -2
  497. homeassistant-stubs/components/recorder/db_schema.pyi +5 -2
  498. homeassistant-stubs/components/recorder/migration.pyi +1 -1
  499. homeassistant-stubs/components/recorder/models/state.pyi +1 -1
  500. homeassistant-stubs/components/recorder/util.pyi +1 -7
  501. homeassistant-stubs/components/remote/__init__.pyi +1 -1
  502. homeassistant-stubs/components/reolink/__init__.pyi +4 -2
  503. homeassistant-stubs/components/reolink/config_flow.pyi +7 -3
  504. homeassistant-stubs/components/reolink/const.pyi +1 -0
  505. homeassistant-stubs/components/reolink/entity.pyi +1 -1
  506. homeassistant-stubs/components/reolink/host.pyi +9 -2
  507. homeassistant-stubs/components/reolink/switch.pyi +5 -1
  508. homeassistant-stubs/components/reolink/util.pyi +6 -5
  509. homeassistant-stubs/components/repairs/__init__.pyi +1 -1
  510. homeassistant-stubs/components/ring/__init__.pyi +4 -15
  511. homeassistant-stubs/components/ring/binary_sensor.pyi +2 -0
  512. homeassistant-stubs/components/ring/button.pyi +1 -0
  513. homeassistant-stubs/components/ring/camera.pyi +1 -0
  514. homeassistant-stubs/components/ring/config_flow.pyi +2 -2
  515. homeassistant-stubs/components/ring/coordinator.pyi +14 -4
  516. homeassistant-stubs/components/ring/entity.pyi +1 -2
  517. homeassistant-stubs/components/ring/event.pyi +2 -0
  518. homeassistant-stubs/components/ring/light.pyi +1 -0
  519. homeassistant-stubs/components/ring/number.pyi +2 -0
  520. homeassistant-stubs/components/ring/sensor.pyi +2 -0
  521. homeassistant-stubs/components/ring/siren.pyi +1 -0
  522. homeassistant-stubs/components/ring/switch.pyi +1 -0
  523. homeassistant-stubs/components/roborock/__init__.pyi +3 -1
  524. homeassistant-stubs/components/roborock/const.pyi +4 -0
  525. homeassistant-stubs/components/roborock/coordinator.pyi +10 -6
  526. homeassistant-stubs/components/roborock/image.pyi +10 -11
  527. homeassistant-stubs/components/roborock/roborock_storage.pyi +23 -0
  528. homeassistant-stubs/components/roborock/sensor.pyi +1 -1
  529. homeassistant-stubs/components/roborock/vacuum.pyi +5 -1
  530. homeassistant-stubs/components/roku/config_flow.pyi +4 -3
  531. homeassistant-stubs/components/romy/config_flow.pyi +2 -2
  532. homeassistant-stubs/components/russound_rio/config_flow.pyi +6 -2
  533. homeassistant-stubs/components/russound_rio/const.pyi +0 -2
  534. homeassistant-stubs/components/russound_rio/media_player.pyi +13 -6
  535. homeassistant-stubs/components/ruuvi_gateway/config_flow.pyi +2 -2
  536. homeassistant-stubs/components/samsungtv/config_flow.pyi +6 -4
  537. homeassistant-stubs/components/scrape/sensor.pyi +2 -0
  538. homeassistant-stubs/components/script/__init__.pyi +1 -1
  539. homeassistant-stubs/components/select/__init__.pyi +2 -2
  540. homeassistant-stubs/components/sensibo/__init__.pyi +3 -3
  541. homeassistant-stubs/components/sensibo/binary_sensor.pyi +1 -0
  542. homeassistant-stubs/components/sensibo/climate.pyi +13 -7
  543. homeassistant-stubs/components/sensibo/config_flow.pyi +1 -1
  544. homeassistant-stubs/components/sensibo/coordinator.pyi +2 -0
  545. homeassistant-stubs/components/sensibo/entity.pyi +5 -1
  546. homeassistant-stubs/components/sensibo/select.pyi +6 -1
  547. homeassistant-stubs/components/sensibo/sensor.pyi +2 -0
  548. homeassistant-stubs/components/sensor/__init__.pyi +2 -2
  549. homeassistant-stubs/components/shelly/__init__.pyi +2 -0
  550. homeassistant-stubs/components/shelly/binary_sensor.pyi +11 -6
  551. homeassistant-stubs/components/shelly/bluetooth/__init__.pyi +1 -1
  552. homeassistant-stubs/components/shelly/climate.pyi +25 -2
  553. homeassistant-stubs/components/shelly/config_flow.pyi +1 -1
  554. homeassistant-stubs/components/shelly/const.pyi +3 -0
  555. homeassistant-stubs/components/shelly/coordinator.pyi +3 -2
  556. homeassistant-stubs/components/shelly/entity.pyi +4 -1
  557. homeassistant-stubs/components/shelly/number.pyi +21 -13
  558. homeassistant-stubs/components/shelly/sensor.pyi +12 -7
  559. homeassistant-stubs/components/shelly/utils.pyi +1 -1
  560. homeassistant-stubs/components/siren/__init__.pyi +1 -1
  561. homeassistant-stubs/components/slack/config_flow.pyi +2 -1
  562. homeassistant-stubs/components/slack/entity.pyi +3 -5
  563. homeassistant-stubs/components/slack/notify.pyi +4 -2
  564. homeassistant-stubs/components/slack/sensor.pyi +2 -2
  565. homeassistant-stubs/components/slack/utils.pyi +6 -0
  566. homeassistant-stubs/components/smhi/config_flow.pyi +1 -1
  567. homeassistant-stubs/components/smhi/weather.pyi +3 -3
  568. homeassistant-stubs/components/smlight/config_flow.pyi +7 -5
  569. homeassistant-stubs/components/spotify/__init__.pyi +1 -1
  570. homeassistant-stubs/components/spotify/browse_media.pyi +1 -1
  571. homeassistant-stubs/components/spotify/coordinator.pyi +2 -0
  572. homeassistant-stubs/components/squeezebox/config_flow.pyi +2 -2
  573. homeassistant-stubs/components/ssdp/__init__.pyi +34 -44
  574. homeassistant-stubs/components/starlink/coordinator.pyi +1 -0
  575. homeassistant-stubs/components/steamist/config_flow.pyi +2 -2
  576. homeassistant-stubs/components/stream/__init__.pyi +3 -15
  577. homeassistant-stubs/components/stream/const.pyi +9 -1
  578. homeassistant-stubs/components/stream/exceptions.pyi +13 -0
  579. homeassistant-stubs/components/stream/worker.pyi +4 -5
  580. homeassistant-stubs/components/stt/__init__.pyi +1 -1
  581. homeassistant-stubs/components/suez_water/__init__.pyi +4 -0
  582. homeassistant-stubs/components/switch/__init__.pyi +1 -1
  583. homeassistant-stubs/components/switchbot_cloud/__init__.pyi +5 -5
  584. homeassistant-stubs/components/switchbot_cloud/button.pyi +17 -0
  585. homeassistant-stubs/components/switchbot_cloud/entity.pyi +5 -0
  586. homeassistant-stubs/components/switchbot_cloud/lock.pyi +2 -3
  587. homeassistant-stubs/components/switchbot_cloud/sensor.pyi +5 -5
  588. homeassistant-stubs/components/switchbot_cloud/switch.pyi +3 -6
  589. homeassistant-stubs/components/switchbot_cloud/vacuum.pyi +1 -2
  590. homeassistant-stubs/components/switcher_kis/switch.pyi +29 -0
  591. homeassistant-stubs/components/synology_dsm/__init__.pyi +5 -2
  592. homeassistant-stubs/components/synology_dsm/backup.pyi +36 -0
  593. homeassistant-stubs/components/synology_dsm/common.pyi +5 -2
  594. homeassistant-stubs/components/synology_dsm/config_flow.pyi +11 -4
  595. homeassistant-stubs/components/synology_dsm/const.pyi +6 -0
  596. homeassistant-stubs/components/synology_dsm/coordinator.pyi +1 -1
  597. homeassistant-stubs/components/system_health/__init__.pyi +3 -1
  598. homeassistant-stubs/components/systemmonitor/__init__.pyi +3 -3
  599. homeassistant-stubs/components/systemmonitor/config_flow.pyi +0 -4
  600. homeassistant-stubs/components/systemmonitor/coordinator.pyi +2 -1
  601. homeassistant-stubs/components/tailwind/config_flow.pyi +3 -3
  602. homeassistant-stubs/components/technove/binary_sensor.pyi +0 -4
  603. homeassistant-stubs/components/technove/config_flow.pyi +3 -2
  604. homeassistant-stubs/components/tedee/coordinator.pyi +1 -1
  605. homeassistant-stubs/components/text/__init__.pyi +1 -1
  606. homeassistant-stubs/components/tile/__init__.pyi +4 -15
  607. homeassistant-stubs/components/tile/binary_sensor.pyi +24 -0
  608. homeassistant-stubs/components/tile/config_flow.pyi +0 -1
  609. homeassistant-stubs/components/tile/coordinator.pyi +18 -0
  610. homeassistant-stubs/components/tile/device_tracker.pyi +6 -20
  611. homeassistant-stubs/components/tile/diagnostics.pyi +2 -4
  612. homeassistant-stubs/components/tile/entity.pyi +13 -0
  613. homeassistant-stubs/components/time/__init__.pyi +1 -1
  614. homeassistant-stubs/components/todo/__init__.pyi +1 -1
  615. homeassistant-stubs/components/tolo/config_flow.pyi +2 -2
  616. homeassistant-stubs/components/tplink/__init__.pyi +3 -6
  617. homeassistant-stubs/components/tplink/binary_sensor.pyi +1 -0
  618. homeassistant-stubs/components/tplink/button.pyi +2 -1
  619. homeassistant-stubs/components/tplink/camera.pyi +9 -9
  620. homeassistant-stubs/components/tplink/climate.pyi +18 -12
  621. homeassistant-stubs/components/tplink/config_flow.pyi +3 -2
  622. homeassistant-stubs/components/tplink/const.pyi +1 -1
  623. homeassistant-stubs/components/tplink/coordinator.pyi +20 -4
  624. homeassistant-stubs/components/tplink/deprecate.pyi +5 -3
  625. homeassistant-stubs/components/tplink/entity.pyi +30 -11
  626. homeassistant-stubs/components/tplink/fan.pyi +15 -7
  627. homeassistant-stubs/components/tplink/light.pyi +22 -11
  628. homeassistant-stubs/components/tplink/number.pyi +1 -0
  629. homeassistant-stubs/components/tplink/select.pyi +1 -0
  630. homeassistant-stubs/components/tplink/sensor.pyi +7 -2
  631. homeassistant-stubs/components/tplink/siren.pyi +22 -7
  632. homeassistant-stubs/components/tplink/switch.pyi +1 -0
  633. homeassistant-stubs/components/tplink/vacuum.pyi +43 -0
  634. homeassistant-stubs/components/tradfri/config_flow.pyi +2 -2
  635. homeassistant-stubs/components/trafikverket_camera/__init__.pyi +2 -2
  636. homeassistant-stubs/components/trafikverket_camera/camera.pyi +2 -0
  637. homeassistant-stubs/components/trafikverket_ferry/__init__.pyi +1 -1
  638. homeassistant-stubs/components/trafikverket_ferry/coordinator.pyi +1 -1
  639. homeassistant-stubs/components/trafikverket_ferry/sensor.pyi +1 -0
  640. homeassistant-stubs/components/trafikverket_train/__init__.pyi +6 -3
  641. homeassistant-stubs/components/trafikverket_train/config_flow.pyi +10 -4
  642. homeassistant-stubs/components/trafikverket_train/coordinator.pyi +2 -2
  643. homeassistant-stubs/components/trafikverket_train/sensor.pyi +1 -0
  644. homeassistant-stubs/components/trafikverket_weatherstation/__init__.pyi +1 -1
  645. homeassistant-stubs/components/trafikverket_weatherstation/coordinator.pyi +1 -1
  646. homeassistant-stubs/components/trafikverket_weatherstation/diagnostics.pyi +5 -0
  647. homeassistant-stubs/components/trafikverket_weatherstation/sensor.pyi +1 -0
  648. homeassistant-stubs/components/tts/__init__.pyi +2 -2
  649. homeassistant-stubs/components/unifi/config_flow.pyi +2 -2
  650. homeassistant-stubs/components/unifi/device_tracker.pyi +1 -1
  651. homeassistant-stubs/components/unifi/switch.pyi +1 -0
  652. homeassistant-stubs/components/unifiprotect/__init__.pyi +1 -1
  653. homeassistant-stubs/components/unifiprotect/config_flow.pyi +4 -3
  654. homeassistant-stubs/components/unifiprotect/light.pyi +1 -1
  655. homeassistant-stubs/components/unifiprotect/views.pyi +8 -0
  656. homeassistant-stubs/components/upcloud/__init__.pyi +6 -12
  657. homeassistant-stubs/components/upcloud/binary_sensor.pyi +2 -4
  658. homeassistant-stubs/components/upcloud/config_flow.pyi +3 -2
  659. homeassistant-stubs/components/upcloud/const.pyi +0 -1
  660. homeassistant-stubs/components/upcloud/coordinator.pyi +3 -2
  661. homeassistant-stubs/components/upcloud/entity.pyi +3 -3
  662. homeassistant-stubs/components/upcloud/switch.pyi +3 -4
  663. homeassistant-stubs/components/update/__init__.pyi +2 -2
  664. homeassistant-stubs/components/usb/__init__.pyi +21 -18
  665. homeassistant-stubs/components/usb/models.pyi +1 -1
  666. homeassistant-stubs/components/vacuum/__init__.pyi +1 -1
  667. homeassistant-stubs/components/velbus/config_flow.pyi +2 -2
  668. homeassistant-stubs/components/velbus/const.pyi +1 -0
  669. homeassistant-stubs/components/velbus/diagnostics.pyi +1 -3
  670. homeassistant-stubs/components/velbus/entity.pyi +4 -0
  671. homeassistant-stubs/components/velbus/services.pyi +5 -1
  672. homeassistant-stubs/components/wake_word/__init__.pyi +1 -1
  673. homeassistant-stubs/components/water_heater/__init__.pyi +7 -3
  674. homeassistant-stubs/components/weather/__init__.pyi +2 -3
  675. homeassistant-stubs/components/webhook/__init__.pyi +0 -1
  676. homeassistant-stubs/components/webostv/__init__.pyi +8 -24
  677. homeassistant-stubs/components/webostv/config_flow.pyi +14 -13
  678. homeassistant-stubs/components/webostv/const.pyi +0 -1
  679. homeassistant-stubs/components/webostv/device_trigger.pyi +1 -2
  680. homeassistant-stubs/components/webostv/diagnostics.pyi +2 -3
  681. homeassistant-stubs/components/webostv/helpers.pyi +11 -4
  682. homeassistant-stubs/components/webostv/media_player.pyi +17 -13
  683. homeassistant-stubs/components/webostv/notify.pyi +6 -4
  684. homeassistant-stubs/components/webostv/trigger.pyi +2 -0
  685. homeassistant-stubs/components/wiz/config_flow.pyi +3 -2
  686. homeassistant-stubs/components/wled/config_flow.pyi +3 -2
  687. homeassistant-stubs/components/worldclock/sensor.pyi +2 -7
  688. homeassistant-stubs/components/zeroconf/__init__.pyi +12 -20
  689. homeassistant-stubs/components/zwave_js/api.pyi +1 -1
  690. homeassistant-stubs/components/zwave_js/config_flow.pyi +3 -2
  691. homeassistant-stubs/config_entries.pyi +7 -9
  692. homeassistant-stubs/const.pyi +2 -0
  693. homeassistant-stubs/core.pyi +2 -3
  694. homeassistant-stubs/core_config.pyi +3 -3
  695. homeassistant-stubs/data_entry_flow.pyi +1 -2
  696. homeassistant-stubs/helpers/aiohttp_client.pyi +12 -1
  697. homeassistant-stubs/helpers/area_registry.pyi +11 -4
  698. homeassistant-stubs/helpers/collection.pyi +5 -7
  699. homeassistant-stubs/helpers/config_entry_flow.pyi +3 -3
  700. homeassistant-stubs/helpers/config_entry_oauth2_flow.pyi +3 -0
  701. homeassistant-stubs/helpers/data_entry_flow.pyi +1 -2
  702. homeassistant-stubs/helpers/deprecation.pyi +2 -2
  703. homeassistant-stubs/helpers/device_registry.pyi +1 -1
  704. homeassistant-stubs/helpers/entity.pyi +1 -1
  705. homeassistant-stubs/helpers/entity_component.pyi +2 -4
  706. homeassistant-stubs/helpers/entity_registry.pyi +2 -2
  707. homeassistant-stubs/helpers/frame.pyi +1 -1
  708. homeassistant-stubs/helpers/httpx_client.pyi +2 -1
  709. homeassistant-stubs/helpers/intent.pyi +4 -2
  710. homeassistant-stubs/helpers/llm.pyi +23 -8
  711. homeassistant-stubs/helpers/script.pyi +1 -1
  712. homeassistant-stubs/helpers/service_info/dhcp.pyi +8 -0
  713. homeassistant-stubs/helpers/service_info/ssdp.pyi +34 -0
  714. homeassistant-stubs/helpers/service_info/usb.pyi +11 -0
  715. homeassistant-stubs/helpers/service_info/zeroconf.pyi +20 -0
  716. homeassistant-stubs/helpers/singleton.pyi +6 -2
  717. homeassistant-stubs/helpers/storage.pyi +1 -1
  718. homeassistant-stubs/helpers/template.pyi +4 -4
  719. homeassistant-stubs/helpers/update_coordinator.pyi +7 -6
  720. homeassistant-stubs/loader.pyi +1 -1
  721. homeassistant-stubs/scripts/benchmark/__init__.pyi +8 -8
  722. homeassistant-stubs/util/event_type.pyi +1 -2
  723. homeassistant-stubs/util/ulid.pyi +1 -1
  724. homeassistant-stubs/util/yaml/__init__.pyi +1 -1
  725. homeassistant-stubs/util/yaml/loader.pyi +1 -1
  726. {homeassistant_stubs-2025.1.3.dist-info → homeassistant_stubs-2025.2.0.dist-info}/METADATA +4 -4
  727. {homeassistant_stubs-2025.1.3.dist-info → homeassistant_stubs-2025.2.0.dist-info}/RECORD +729 -594
  728. homeassistant-stubs/components/dormakaba_dkey/models.pyi +0 -8
  729. homeassistant-stubs/components/imgw_pib/binary_sensor.pyi +0 -27
  730. homeassistant-stubs/components/tplink/models.pyi +0 -10
  731. {homeassistant_stubs-2025.1.3.dist-info → homeassistant_stubs-2025.2.0.dist-info}/WHEEL +0 -0
  732. {homeassistant_stubs-2025.1.3.dist-info → homeassistant_stubs-2025.2.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,11 +1,12 @@
1
1
  from .const import CONF_OLD_DISCOVERY as CONF_OLD_DISCOVERY, DEFAULT_CONF_OLD_DISCOVERY as DEFAULT_CONF_OLD_DISCOVERY, DEFAULT_HOST as DEFAULT_HOST, DEFAULT_HTTPS_PORT as DEFAULT_HTTPS_PORT, DEFAULT_HTTP_PORT as DEFAULT_HTTP_PORT, DEFAULT_SSL as DEFAULT_SSL, DOMAIN as DOMAIN, ERROR_AUTH_INVALID as ERROR_AUTH_INVALID, ERROR_CANNOT_CONNECT as ERROR_CANNOT_CONNECT, ERROR_UNKNOWN as ERROR_UNKNOWN, ERROR_UPNP_NOT_CONFIGURED as ERROR_UPNP_NOT_CONFIGURED, FRITZ_AUTH_EXCEPTIONS as FRITZ_AUTH_EXCEPTIONS
2
+ from .coordinator import FritzConfigEntry as FritzConfigEntry
2
3
  from _typeshed import Incomplete
3
4
  from collections.abc import Mapping
4
- from homeassistant.components import ssdp as ssdp
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 ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow
6
+ from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow
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
+ 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
9
10
  from homeassistant.helpers.typing import VolDictType as VolDictType
10
11
  from typing import Any, Self
11
12
  from urllib.parse import ParseResult as ParseResult
@@ -17,7 +18,7 @@ class FritzBoxToolsFlowHandler(ConfigFlow, domain=DOMAIN):
17
18
  _host: str
18
19
  @staticmethod
19
20
  @callback
20
- def async_get_options_flow(config_entry: ConfigEntry) -> FritzBoxToolsOptionsFlowHandler: ...
21
+ def async_get_options_flow(config_entry: FritzConfigEntry) -> FritzBoxToolsOptionsFlowHandler: ...
21
22
  _name: str
22
23
  _password: str
23
24
  _use_tls: bool
@@ -27,11 +28,11 @@ class FritzBoxToolsFlowHandler(ConfigFlow, domain=DOMAIN):
27
28
  def __init__(self) -> None: ...
28
29
  async def async_fritz_tools_init(self) -> str | None: ...
29
30
  def fritz_tools_init(self) -> str | None: ...
30
- async def async_check_configured_entry(self) -> ConfigEntry | None: ...
31
+ async def async_check_configured_entry(self) -> FritzConfigEntry | None: ...
31
32
  @callback
32
33
  def _async_create_entry(self) -> ConfigFlowResult: ...
33
34
  def _determine_port(self, user_input: dict[str, Any]) -> int: ...
34
- async def async_step_ssdp(self, discovery_info: ssdp.SsdpServiceInfo) -> ConfigFlowResult: ...
35
+ async def async_step_ssdp(self, discovery_info: SsdpServiceInfo) -> ConfigFlowResult: ...
35
36
  def is_matching(self, other_flow: Self) -> bool: ...
36
37
  async def async_step_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
37
38
  def _show_setup_form_init(self, errors: dict[str, str] | None = None) -> ConfigFlowResult: ...
@@ -12,7 +12,6 @@ DOMAIN: str
12
12
  PLATFORMS: Incomplete
13
13
  CONF_OLD_DISCOVERY: str
14
14
  DEFAULT_CONF_OLD_DISCOVERY: bool
15
- DATA_FRITZ: str
16
15
  DSL_CONNECTION: Literal['dsl']
17
16
  DEFAULT_DEVICE_NAME: str
18
17
  DEFAULT_HOST: str
@@ -24,8 +23,6 @@ ERROR_AUTH_INVALID: str
24
23
  ERROR_CANNOT_CONNECT: str
25
24
  ERROR_UPNP_NOT_CONFIGURED: str
26
25
  ERROR_UNKNOWN: str
27
- FRITZ_SERVICES: str
28
- SERVICE_SET_GUEST_WIFI_PW: str
29
26
  SWITCH_TYPE_DEFLECTION: str
30
27
  SWITCH_TYPE_PORTFORWARD: str
31
28
  SWITCH_TYPE_PROFILE: str
@@ -1,4 +1,4 @@
1
- from .const import CONF_OLD_DISCOVERY as CONF_OLD_DISCOVERY, DEFAULT_CONF_OLD_DISCOVERY as DEFAULT_CONF_OLD_DISCOVERY, DEFAULT_HOST as DEFAULT_HOST, DEFAULT_SSL as DEFAULT_SSL, DEFAULT_USERNAME as DEFAULT_USERNAME, DOMAIN as DOMAIN, FRITZ_EXCEPTIONS as FRITZ_EXCEPTIONS, MeshRoles as MeshRoles, SERVICE_SET_GUEST_WIFI_PW as SERVICE_SET_GUEST_WIFI_PW
1
+ from .const import CONF_OLD_DISCOVERY as CONF_OLD_DISCOVERY, DEFAULT_CONF_OLD_DISCOVERY as DEFAULT_CONF_OLD_DISCOVERY, DEFAULT_HOST as DEFAULT_HOST, DEFAULT_SSL as DEFAULT_SSL, DEFAULT_USERNAME as DEFAULT_USERNAME, DOMAIN as DOMAIN, FRITZ_EXCEPTIONS as FRITZ_EXCEPTIONS, MeshRoles as MeshRoles
2
2
  from _typeshed import Incomplete
3
3
  from collections.abc import Callable as Callable, ValuesView
4
4
  from dataclasses import dataclass, field
@@ -9,19 +9,22 @@ from fritzconnection.lib.fritzstatus import FritzStatus
9
9
  from fritzconnection.lib.fritzwlan import FritzGuestWLAN
10
10
  from homeassistant.components.device_tracker import CONF_CONSIDER_HOME as CONF_CONSIDER_HOME, DEFAULT_CONSIDER_HOME as DEFAULT_CONSIDER_HOME
11
11
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
12
- from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall
12
+ from homeassistant.core import HomeAssistant as HomeAssistant
13
13
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
14
14
  from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC as CONNECTION_NETWORK_MAC
15
15
  from homeassistant.helpers.dispatcher import async_dispatcher_send as async_dispatcher_send
16
16
  from homeassistant.helpers.typing import StateType as StateType
17
17
  from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
18
+ from homeassistant.util.hass_dict import HassKey as HassKey
18
19
  from types import MappingProxyType
19
20
  from typing import Any, TypedDict
20
21
 
21
22
  _LOGGER: Incomplete
23
+ FRITZ_DATA_KEY: HassKey[FritzData]
24
+ type FritzConfigEntry = ConfigEntry[AvmWrapper]
22
25
 
23
- def _is_tracked(mac: str, current_devices: ValuesView) -> bool: ...
24
- def device_filter_out_from_trackers(mac: str, device: FritzDevice, current_devices: ValuesView) -> bool: ...
26
+ def _is_tracked(mac: str, current_devices: ValuesView[set[str]]) -> bool: ...
27
+ def device_filter_out_from_trackers(mac: str, device: FritzDevice, current_devices: ValuesView[set[str]]) -> bool: ...
25
28
  def _ha_is_stopping(activity: str) -> None: ...
26
29
 
27
30
  class ClassSetupMissing(Exception):
@@ -57,7 +60,7 @@ class UpdateCoordinatorDataType(TypedDict):
57
60
  entity_states: dict[str, StateType | bool]
58
61
 
59
62
  class FritzBoxTools(DataUpdateCoordinator[UpdateCoordinatorDataType]):
60
- config_entry: ConfigEntry
63
+ config_entry: FritzConfigEntry
61
64
  _devices: dict[str, FritzDevice]
62
65
  _options: MappingProxyType[str, Any] | None
63
66
  _unique_id: str | None
@@ -81,7 +84,7 @@ class FritzBoxTools(DataUpdateCoordinator[UpdateCoordinatorDataType]):
81
84
  _update_available: bool
82
85
  _release_url: str | None
83
86
  _entity_update_functions: dict[str, Callable[[FritzStatus, StateType], Any]]
84
- def __init__(self, hass: HomeAssistant, password: str, port: int, username: str = ..., host: str = ..., use_tls: bool = ...) -> None: ...
87
+ def __init__(self, hass: HomeAssistant, config_entry: FritzConfigEntry, password: str, port: int, username: str = ..., host: str = ..., use_tls: bool = ...) -> None: ...
85
88
  async def async_setup(self, options: MappingProxyType[str, Any] | None = None) -> None: ...
86
89
  def setup(self) -> None: ...
87
90
  async def async_register_entity_updates(self, key: str, update_fn: Callable[[FritzStatus, StateType], Any]) -> Callable[[], None]: ...
@@ -120,7 +123,6 @@ class FritzBoxTools(DataUpdateCoordinator[UpdateCoordinatorDataType]):
120
123
  async def async_trigger_reconnect(self) -> None: ...
121
124
  async def async_trigger_set_guest_password(self, password: str | None, length: int) -> None: ...
122
125
  async def async_trigger_cleanup(self) -> None: ...
123
- async def service_fritzbox(self, service_call: ServiceCall, config_entry: ConfigEntry) -> None: ...
124
126
 
125
127
  class AvmWrapper(FritzBoxTools):
126
128
  async def _async_service_call(self, service_name: str, service_suffix: str, action_name: str, **kwargs: Any) -> dict: ...
@@ -139,9 +141,9 @@ class AvmWrapper(FritzBoxTools):
139
141
 
140
142
  @dataclass
141
143
  class FritzData:
142
- tracked: dict = field(default_factory=dict)
143
- profile_switches: dict = field(default_factory=dict)
144
- wol_buttons: dict = field(default_factory=dict)
144
+ tracked: dict[str, set[str]] = field(default_factory=dict)
145
+ profile_switches: dict[str, set[str]] = field(default_factory=dict)
146
+ wol_buttons: dict[str, set[str]] = field(default_factory=dict)
145
147
 
146
148
  class FritzDevice:
147
149
  _connected: bool
@@ -1,17 +1,15 @@
1
1
  import datetime
2
- from .const import DATA_FRITZ as DATA_FRITZ, DOMAIN as DOMAIN
3
- from .coordinator import AvmWrapper as AvmWrapper, FritzData as FritzData, FritzDevice as FritzDevice, device_filter_out_from_trackers as device_filter_out_from_trackers
2
+ from .coordinator import AvmWrapper as AvmWrapper, FRITZ_DATA_KEY as FRITZ_DATA_KEY, FritzConfigEntry as FritzConfigEntry, FritzData as FritzData, FritzDevice as FritzDevice, device_filter_out_from_trackers as device_filter_out_from_trackers
4
3
  from .entity import FritzDeviceBase as FritzDeviceBase
5
4
  from _typeshed import Incomplete
6
5
  from homeassistant.components.device_tracker import ScannerEntity as ScannerEntity
7
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
6
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
9
7
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
10
8
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
11
9
 
12
10
  _LOGGER: Incomplete
13
11
 
14
- async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
12
+ async def async_setup_entry(hass: HomeAssistant, entry: FritzConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
15
13
  @callback
16
14
  def _async_add_entities(avm_wrapper: AvmWrapper, async_add_entities: AddEntitiesCallback, data_fritz: FritzData) -> None: ...
17
15
 
@@ -1,12 +1,10 @@
1
- from .const import DOMAIN as DOMAIN
2
- from .coordinator import AvmWrapper as AvmWrapper
1
+ from .coordinator import FritzConfigEntry as FritzConfigEntry
3
2
  from _typeshed import Incomplete
4
3
  from homeassistant.components.diagnostics import async_redact_data as async_redact_data
5
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
6
4
  from homeassistant.const import CONF_PASSWORD as CONF_PASSWORD, CONF_USERNAME as CONF_USERNAME
7
5
  from homeassistant.core import HomeAssistant as HomeAssistant
8
6
  from typing import Any
9
7
 
10
8
  TO_REDACT: Incomplete
11
9
 
12
- async def async_get_config_entry_diagnostics(hass: HomeAssistant, entry: ConfigEntry) -> dict[str, Any]: ...
10
+ async def async_get_config_entry_diagnostics(hass: HomeAssistant, entry: FritzConfigEntry) -> dict[str, Any]: ...
@@ -1,9 +1,7 @@
1
- from .const import DOMAIN as DOMAIN
2
- from .coordinator import AvmWrapper as AvmWrapper
1
+ from .coordinator import AvmWrapper as AvmWrapper, FritzConfigEntry as FritzConfigEntry
3
2
  from .entity import FritzBoxBaseEntity as FritzBoxBaseEntity
4
3
  from _typeshed import Incomplete
5
4
  from homeassistant.components.image import ImageEntity as ImageEntity
6
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
5
  from homeassistant.const import EntityCategory as EntityCategory
8
6
  from homeassistant.core import HomeAssistant as HomeAssistant
9
7
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
@@ -11,7 +9,7 @@ from homeassistant.util import slugify as slugify
11
9
 
12
10
  _LOGGER: Incomplete
13
11
 
14
- async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
12
+ async def async_setup_entry(hass: HomeAssistant, entry: FritzConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
15
13
 
16
14
  class FritzGuestWifiQRImage(FritzBoxBaseEntity, ImageEntity):
17
15
  _attr_content_type: str
@@ -1,5 +1,5 @@
1
- from .const import DOMAIN as DOMAIN, DSL_CONNECTION as DSL_CONNECTION, UPTIME_DEVIATION as UPTIME_DEVIATION
2
- from .coordinator import AvmWrapper as AvmWrapper, ConnectionInfo as ConnectionInfo
1
+ from .const import DSL_CONNECTION as DSL_CONNECTION, UPTIME_DEVIATION as UPTIME_DEVIATION
2
+ from .coordinator import ConnectionInfo as ConnectionInfo, FritzConfigEntry as FritzConfigEntry
3
3
  from .entity import FritzBoxBaseCoordinatorEntity as FritzBoxBaseCoordinatorEntity, FritzEntityDescription as FritzEntityDescription
4
4
  from _typeshed import Incomplete
5
5
  from collections.abc import Callable as Callable
@@ -7,7 +7,6 @@ from dataclasses import dataclass
7
7
  from datetime import datetime
8
8
  from fritzconnection.lib.fritzstatus import FritzStatus as FritzStatus
9
9
  from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
10
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
11
10
  from homeassistant.const import EntityCategory as EntityCategory, SIGNAL_STRENGTH_DECIBELS as SIGNAL_STRENGTH_DECIBELS, UnitOfDataRate as UnitOfDataRate, UnitOfInformation as UnitOfInformation
12
11
  from homeassistant.core import HomeAssistant as HomeAssistant
13
12
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
@@ -40,7 +39,7 @@ class FritzSensorEntityDescription(SensorEntityDescription, FritzEntityDescripti
40
39
 
41
40
  SENSOR_TYPES: tuple[FritzSensorEntityDescription, ...]
42
41
 
43
- async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
42
+ async def async_setup_entry(hass: HomeAssistant, entry: FritzConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
44
43
 
45
44
  class FritzBoxSensor(FritzBoxBaseCoordinatorEntity, SensorEntity):
46
45
  entity_description: FritzSensorEntityDescription
@@ -1,16 +1,13 @@
1
- import voluptuous as vol
2
- from .const import DOMAIN as DOMAIN, FRITZ_SERVICES as FRITZ_SERVICES, SERVICE_SET_GUEST_WIFI_PW as SERVICE_SET_GUEST_WIFI_PW
3
- from .coordinator import AvmWrapper as AvmWrapper
1
+ from .const import DOMAIN as DOMAIN
2
+ from .coordinator import FritzConfigEntry as FritzConfigEntry
4
3
  from _typeshed import Incomplete
5
- from homeassistant.config_entries import ConfigEntryState as ConfigEntryState
6
4
  from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall
7
- from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
5
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, ServiceValidationError as ServiceValidationError
8
6
  from homeassistant.helpers.service import async_extract_config_entry_ids as async_extract_config_entry_ids
9
7
 
10
8
  _LOGGER: Incomplete
9
+ SERVICE_SET_GUEST_WIFI_PW: str
11
10
  SERVICE_SCHEMA_SET_GUEST_WIFI_PW: Incomplete
12
- SERVICE_LIST: list[tuple[str, vol.Schema | None]]
13
11
 
12
+ async def _async_set_guest_wifi_password(service_call: ServiceCall) -> None: ...
14
13
  async def async_setup_services(hass: HomeAssistant) -> None: ...
15
- async def _async_get_configured_avm_device(hass: HomeAssistant, service_call: ServiceCall) -> list: ...
16
- async def async_unload_services(hass: HomeAssistant) -> None: ...
@@ -1,10 +1,9 @@
1
- from .const import DATA_FRITZ as DATA_FRITZ, DOMAIN as DOMAIN, MeshRoles as MeshRoles, SWITCH_TYPE_DEFLECTION as SWITCH_TYPE_DEFLECTION, SWITCH_TYPE_PORTFORWARD as SWITCH_TYPE_PORTFORWARD, SWITCH_TYPE_PROFILE as SWITCH_TYPE_PROFILE, SWITCH_TYPE_WIFINETWORK as SWITCH_TYPE_WIFINETWORK, WIFI_STANDARD as WIFI_STANDARD
2
- from .coordinator import AvmWrapper as AvmWrapper, FritzData as FritzData, FritzDevice as FritzDevice, SwitchInfo as SwitchInfo, device_filter_out_from_trackers as device_filter_out_from_trackers
1
+ from .const import DOMAIN as DOMAIN, MeshRoles as MeshRoles, SWITCH_TYPE_DEFLECTION as SWITCH_TYPE_DEFLECTION, SWITCH_TYPE_PORTFORWARD as SWITCH_TYPE_PORTFORWARD, SWITCH_TYPE_PROFILE as SWITCH_TYPE_PROFILE, SWITCH_TYPE_WIFINETWORK as SWITCH_TYPE_WIFINETWORK, WIFI_STANDARD as WIFI_STANDARD
2
+ from .coordinator import AvmWrapper as AvmWrapper, FRITZ_DATA_KEY as FRITZ_DATA_KEY, FritzConfigEntry as FritzConfigEntry, FritzData as FritzData, FritzDevice as FritzDevice, SwitchInfo as SwitchInfo, device_filter_out_from_trackers as device_filter_out_from_trackers
3
3
  from .entity import FritzBoxBaseEntity as FritzBoxBaseEntity, FritzDeviceBase as FritzDeviceBase
4
4
  from _typeshed import Incomplete
5
5
  from homeassistant.components.network import async_get_source_ip as async_get_source_ip
6
6
  from homeassistant.components.switch import SwitchEntity as SwitchEntity, SwitchEntityDescription as SwitchEntityDescription
7
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
7
  from homeassistant.const import EntityCategory as EntityCategory
9
8
  from homeassistant.core import HomeAssistant as HomeAssistant
10
9
  from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC as CONNECTION_NETWORK_MAC, DeviceInfo as DeviceInfo
@@ -22,7 +21,7 @@ async def _async_port_entities_list(avm_wrapper: AvmWrapper, device_friendly_nam
22
21
  async def _async_wifi_entities_list(avm_wrapper: AvmWrapper, device_friendly_name: str) -> list[FritzBoxWifiSwitch]: ...
23
22
  async def _async_profile_entities_list(avm_wrapper: AvmWrapper, data_fritz: FritzData) -> list[FritzBoxProfileSwitch]: ...
24
23
  async def async_all_entities_list(avm_wrapper: AvmWrapper, device_friendly_name: str, data_fritz: FritzData, local_ip: str) -> list[Entity]: ...
25
- async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
24
+ async def async_setup_entry(hass: HomeAssistant, entry: FritzConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
26
25
 
27
26
  class FritzBoxBaseCoordinatorSwitch(CoordinatorEntity[AvmWrapper], SwitchEntity):
28
27
  entity_description: SwitchEntityDescription
@@ -1,10 +1,8 @@
1
- from .const import DOMAIN as DOMAIN
2
- from .coordinator import AvmWrapper as AvmWrapper
1
+ from .coordinator import AvmWrapper as AvmWrapper, FritzConfigEntry as FritzConfigEntry
3
2
  from .entity import FritzBoxBaseCoordinatorEntity as FritzBoxBaseCoordinatorEntity, FritzEntityDescription as FritzEntityDescription
4
3
  from _typeshed import Incomplete
5
4
  from dataclasses import dataclass
6
5
  from homeassistant.components.update import UpdateEntity as UpdateEntity, UpdateEntityDescription as UpdateEntityDescription, UpdateEntityFeature as UpdateEntityFeature
7
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
6
  from homeassistant.const import EntityCategory as EntityCategory
9
7
  from homeassistant.core import HomeAssistant as HomeAssistant
10
8
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
@@ -15,7 +13,7 @@ _LOGGER: Incomplete
15
13
  @dataclass(frozen=True, kw_only=True)
16
14
  class FritzUpdateEntityDescription(UpdateEntityDescription, FritzEntityDescription): ...
17
15
 
18
- async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
16
+ async def async_setup_entry(hass: HomeAssistant, entry: FritzConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
19
17
 
20
18
  class FritzBoxUpdateEntity(FritzBoxBaseCoordinatorEntity, UpdateEntity):
21
19
  _attr_entity_category: Incomplete
@@ -1,9 +1,9 @@
1
1
  from .const import DEFAULT_HOST as DEFAULT_HOST, DEFAULT_USERNAME as DEFAULT_USERNAME, DOMAIN as DOMAIN
2
2
  from _typeshed import Incomplete
3
3
  from collections.abc import Mapping
4
- from homeassistant.components import ssdp as ssdp
5
4
  from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
6
5
  from homeassistant.const import CONF_HOST as CONF_HOST, CONF_PASSWORD as CONF_PASSWORD, CONF_USERNAME as CONF_USERNAME
6
+ from homeassistant.helpers.service_info.ssdp import ATTR_UPNP_FRIENDLY_NAME as ATTR_UPNP_FRIENDLY_NAME, ATTR_UPNP_UDN as ATTR_UPNP_UDN, SsdpServiceInfo as SsdpServiceInfo
7
7
  from typing import Any, Self
8
8
 
9
9
  DATA_SCHEMA_USER: Incomplete
@@ -24,7 +24,7 @@ class FritzboxConfigFlow(ConfigFlow, domain=DOMAIN):
24
24
  async def async_try_connect(self) -> str: ...
25
25
  def _try_connect(self) -> str: ...
26
26
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
27
- async def async_step_ssdp(self, discovery_info: ssdp.SsdpServiceInfo) -> ConfigFlowResult: ...
27
+ async def async_step_ssdp(self, discovery_info: SsdpServiceInfo) -> ConfigFlowResult: ...
28
28
  def is_matching(self, other_flow: Self) -> bool: ...
29
29
  async def async_step_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
30
30
  async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> ConfigFlowResult: ...
@@ -24,7 +24,7 @@ class FritzboxDataUpdateCoordinator(DataUpdateCoordinator[FritzboxCoordinatorDat
24
24
  new_devices: set[str]
25
25
  new_templates: set[str]
26
26
  data: Incomplete
27
- def __init__(self, hass: HomeAssistant, name: str) -> None: ...
27
+ def __init__(self, hass: HomeAssistant, config_entry: FritzboxConfigEntry) -> None: ...
28
28
  async def async_setup(self) -> None: ...
29
29
  def cleanup_removed_devices(self, available_ains: list[str]) -> None: ...
30
30
  def _update_fritz_devices(self) -> FritzboxCoordinatorData: ...
@@ -1,11 +1,11 @@
1
1
  from .const import DOMAIN as DOMAIN, FroniusConfigEntryData as FroniusConfigEntryData
2
2
  from _typeshed import Incomplete
3
- from homeassistant.components.dhcp import DhcpServiceInfo as DhcpServiceInfo
4
3
  from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
5
4
  from homeassistant.const import CONF_HOST as CONF_HOST
6
5
  from homeassistant.core import HomeAssistant as HomeAssistant
7
6
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
8
7
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
8
+ from homeassistant.helpers.service_info.dhcp import DhcpServiceInfo as DhcpServiceInfo
9
9
  from typing import Any, Final
10
10
 
11
11
  _LOGGER: Final[Incomplete]
@@ -18,7 +18,7 @@ from homeassistant.helpers.translation import async_get_translations as async_ge
18
18
  from homeassistant.helpers.typing import ConfigType as ConfigType
19
19
  from homeassistant.loader import async_get_integration as async_get_integration, bind_hass as bind_hass
20
20
  from homeassistant.util.hass_dict import HassKey as HassKey
21
- from propcache import cached_property
21
+ from propcache.api import cached_property
22
22
  from typing import Any, TypedDict
23
23
  from yarl import URL
24
24
 
@@ -1,14 +1,12 @@
1
1
  from . import FGLairConfigEntry as FGLairConfigEntry
2
- from .const import DOMAIN as DOMAIN
3
2
  from .coordinator import FGLairCoordinator as FGLairCoordinator
3
+ from .entity import FGLairEntity as FGLairEntity
4
4
  from _typeshed import Incomplete
5
5
  from ayla_iot_unofficial.fujitsu_hvac import FujitsuHVAC as FujitsuHVAC
6
6
  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
7
7
  from homeassistant.const import ATTR_TEMPERATURE as ATTR_TEMPERATURE, PRECISION_HALVES as PRECISION_HALVES, UnitOfTemperature as UnitOfTemperature
8
8
  from homeassistant.core import HomeAssistant as HomeAssistant
9
- from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
10
9
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
11
- from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
12
10
  from typing import Any
13
11
 
14
12
  HA_TO_FUJI_FAN: Incomplete
@@ -20,19 +18,15 @@ FUJI_TO_HA_SWING: Incomplete
20
18
 
21
19
  async def async_setup_entry(hass: HomeAssistant, entry: FGLairConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
22
20
 
23
- class FGLairDevice(CoordinatorEntity[FGLairCoordinator], ClimateEntity):
21
+ class FGLairDevice(FGLairEntity, ClimateEntity):
24
22
  _attr_temperature_unit: Incomplete
25
23
  _attr_precision = PRECISION_HALVES
26
24
  _attr_target_temperature_step: float
27
- _attr_has_entity_name: bool
28
25
  _attr_name: Incomplete
29
26
  _attr_unique_id: Incomplete
30
- _attr_device_info: Incomplete
31
27
  _attr_supported_features: Incomplete
32
28
  def __init__(self, coordinator: FGLairCoordinator, device: FujitsuHVAC) -> None: ...
33
29
  @property
34
- def device(self) -> FujitsuHVAC: ...
35
- @property
36
30
  def available(self) -> bool: ...
37
31
  async def async_set_fan_mode(self, fan_mode: str) -> None: ...
38
32
  async def async_set_hvac_mode(self, hvac_mode: HVACMode) -> None: ...
@@ -0,0 +1,15 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from .coordinator import FGLairCoordinator as FGLairCoordinator
3
+ from _typeshed import Incomplete
4
+ from ayla_iot_unofficial.fujitsu_hvac import FujitsuHVAC as FujitsuHVAC
5
+ from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
6
+ from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
7
+
8
+ class FGLairEntity(CoordinatorEntity[FGLairCoordinator]):
9
+ _attr_has_entity_name: bool
10
+ _attr_device_info: Incomplete
11
+ def __init__(self, coordinator: FGLairCoordinator, device: FujitsuHVAC) -> None: ...
12
+ @property
13
+ def available(self) -> bool: ...
14
+ @property
15
+ def device(self) -> FujitsuHVAC: ...
@@ -0,0 +1,21 @@
1
+ from .climate import FGLairConfigEntry as FGLairConfigEntry
2
+ from .coordinator import FGLairCoordinator as FGLairCoordinator
3
+ from .entity import FGLairEntity as FGLairEntity
4
+ from _typeshed import Incomplete
5
+ from ayla_iot_unofficial.fujitsu_hvac import FujitsuHVAC as FujitsuHVAC
6
+ from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorStateClass as SensorStateClass
7
+ from homeassistant.const import UnitOfTemperature as UnitOfTemperature
8
+ from homeassistant.core import HomeAssistant as HomeAssistant
9
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
10
+
11
+ async def async_setup_entry(hass: HomeAssistant, entry: FGLairConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
12
+
13
+ class FGLairOutsideTemperature(FGLairEntity, SensorEntity):
14
+ _attr_device_class: Incomplete
15
+ _attr_native_unit_of_measurement: Incomplete
16
+ _attr_state_class: Incomplete
17
+ _attr_translation_key: str
18
+ _attr_unique_id: Incomplete
19
+ def __init__(self, coordinator: FGLairCoordinator, device: FujitsuHVAC) -> None: ...
20
+ @property
21
+ def native_value(self) -> float | None: ...
@@ -1,9 +1,9 @@
1
1
  from .const import DEFAULT_PORT as DEFAULT_PORT, DOMAIN as DOMAIN, LOGGER as LOGGER
2
- from homeassistant.components.dhcp import DhcpServiceInfo as DhcpServiceInfo
3
2
  from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
4
3
  from homeassistant.const import CONF_HOST as CONF_HOST, CONF_MAC as CONF_MAC, CONF_PASSWORD as CONF_PASSWORD, CONF_SSL as CONF_SSL, CONF_VERIFY_SSL as CONF_VERIFY_SSL
5
4
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
6
5
  from homeassistant.helpers.device_registry import format_mac as format_mac
6
+ from homeassistant.helpers.service_info.dhcp import DhcpServiceInfo as DhcpServiceInfo
7
7
  from homeassistant.helpers.service_info.mqtt import MqttServiceInfo as MqttServiceInfo
8
8
  from typing import Any
9
9
 
@@ -0,0 +1,23 @@
1
+ from . import FytaConfigEntry as FytaConfigEntry
2
+ from .entity import FytaPlantEntity as FytaPlantEntity
3
+ from collections.abc import Callable as Callable
4
+ from dataclasses import dataclass
5
+ from fyta_cli.fyta_models import Plant as Plant
6
+ from homeassistant.components.binary_sensor import BinarySensorDeviceClass as BinarySensorDeviceClass, BinarySensorEntity as BinarySensorEntity, BinarySensorEntityDescription as BinarySensorEntityDescription
7
+ from homeassistant.const import EntityCategory as EntityCategory
8
+ from homeassistant.core import HomeAssistant as HomeAssistant
9
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
10
+ from typing import Final
11
+
12
+ @dataclass(frozen=True, kw_only=True)
13
+ class FytaBinarySensorEntityDescription(BinarySensorEntityDescription):
14
+ value_fn: Callable[[Plant], bool]
15
+
16
+ BINARY_SENSORS: Final[list[FytaBinarySensorEntityDescription]]
17
+
18
+ async def async_setup_entry(hass: HomeAssistant, entry: FytaConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
19
+
20
+ class FytaPlantBinarySensor(FytaPlantEntity, BinarySensorEntity):
21
+ entity_description: FytaBinarySensorEntityDescription
22
+ @property
23
+ def is_on(self) -> bool: ...
@@ -3,8 +3,8 @@ from .const import DOMAIN as DOMAIN
3
3
  from .coordinator import FytaCoordinator as FytaCoordinator
4
4
  from _typeshed import Incomplete
5
5
  from fyta_cli.fyta_models import Plant as Plant
6
- from homeassistant.components.sensor import SensorEntityDescription as SensorEntityDescription
7
6
  from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
7
+ from homeassistant.helpers.entity import EntityDescription as EntityDescription
8
8
  from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
9
9
 
10
10
  class FytaPlantEntity(CoordinatorEntity[FytaCoordinator]):
@@ -13,7 +13,7 @@ class FytaPlantEntity(CoordinatorEntity[FytaCoordinator]):
13
13
  _attr_unique_id: Incomplete
14
14
  _attr_device_info: Incomplete
15
15
  entity_description: Incomplete
16
- def __init__(self, coordinator: FytaCoordinator, entry: FytaConfigEntry, description: SensorEntityDescription, plant_id: int) -> None: ...
16
+ def __init__(self, coordinator: FytaCoordinator, entry: FytaConfigEntry, description: EntityDescription, plant_id: int) -> None: ...
17
17
  @property
18
18
  def plant(self) -> Plant: ...
19
19
  @property
@@ -0,0 +1,18 @@
1
+ from . import FytaConfigEntry as FytaConfigEntry
2
+ from .coordinator import FytaCoordinator as FytaCoordinator
3
+ from .entity import FytaPlantEntity as FytaPlantEntity
4
+ from _typeshed import Incomplete
5
+ from homeassistant.components.image import ImageEntity as ImageEntity, ImageEntityDescription as ImageEntityDescription
6
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
+ from homeassistant.core import HomeAssistant as HomeAssistant
8
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
9
+
10
+ async def async_setup_entry(hass: HomeAssistant, entry: FytaConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
11
+
12
+ class FytaPlantImageEntity(FytaPlantEntity, ImageEntity):
13
+ entity_description: ImageEntityDescription
14
+ _attr_name: Incomplete
15
+ def __init__(self, coordinator: FytaCoordinator, entry: ConfigEntry, description: ImageEntityDescription, plant_id: int) -> None: ...
16
+ _attr_image_last_updated: Incomplete
17
+ @property
18
+ def image_url(self) -> str: ...
@@ -59,6 +59,7 @@ class GenericThermostat(ClimateEntity, RestoreEntity):
59
59
  _attr_supported_features: Incomplete
60
60
  _attr_preset_modes: Incomplete
61
61
  _presets: Incomplete
62
+ _presets_inv: Incomplete
62
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
64
  async def async_added_to_hass(self) -> None: ...
64
65
  @property
@@ -6,7 +6,7 @@ from homeassistant.helpers.entity import Entity as Entity
6
6
  from homeassistant.helpers.entity_component import EntityComponent as EntityComponent
7
7
  from homeassistant.helpers.typing import ConfigType as ConfigType
8
8
  from homeassistant.util.hass_dict import HassKey as HassKey
9
- from propcache import cached_property
9
+ from propcache.api import cached_property
10
10
  from typing import Any, final
11
11
 
12
12
  _LOGGER: Incomplete
@@ -1,10 +1,10 @@
1
1
  from .const import DEFAULT_NAME as DEFAULT_NAME, DOMAIN as DOMAIN, MANUFACTURER as MANUFACTURER
2
2
  from _typeshed import Incomplete
3
- from homeassistant.components import dhcp as dhcp
4
3
  from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
5
4
  from homeassistant.const import CONF_HOST as CONF_HOST, CONF_NAME as CONF_NAME
6
5
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
7
6
  from homeassistant.helpers.device_registry import format_mac as format_mac
7
+ from homeassistant.helpers.service_info.dhcp import DhcpServiceInfo as DhcpServiceInfo
8
8
  from typing import Any
9
9
 
10
10
  _LOGGER: Incomplete
@@ -12,7 +12,7 @@ _LOGGER: Incomplete
12
12
  class GoalZeroFlowHandler(ConfigFlow, domain=DOMAIN):
13
13
  VERSION: int
14
14
  _discovered_ip: str
15
- async def async_step_dhcp(self, discovery_info: dhcp.DhcpServiceInfo) -> ConfigFlowResult: ...
15
+ async def async_step_dhcp(self, discovery_info: DhcpServiceInfo) -> ConfigFlowResult: ...
16
16
  async def async_step_confirm_discovery(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
17
17
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
18
18
  async def _async_try_connect(self, host: str) -> tuple[str | None, str | None]: ...
@@ -0,0 +1,17 @@
1
+ from .api import AsyncConfigEntryAuth as AsyncConfigEntryAuth, DriveClient as DriveClient
2
+ from .const import DOMAIN as DOMAIN
3
+ from collections.abc import Callable as Callable
4
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
5
+ from homeassistant.core import HomeAssistant as HomeAssistant
6
+ from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady
7
+ from homeassistant.helpers import instance_id as instance_id
8
+ from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
9
+ from homeassistant.helpers.config_entry_oauth2_flow import OAuth2Session as OAuth2Session, async_get_config_entry_implementation as async_get_config_entry_implementation
10
+ from homeassistant.util.hass_dict import HassKey as HassKey
11
+
12
+ DATA_BACKUP_AGENT_LISTENERS: HassKey[list[Callable[[], None]]]
13
+ type GoogleDriveConfigEntry = ConfigEntry[DriveClient]
14
+
15
+ async def async_setup_entry(hass: HomeAssistant, entry: GoogleDriveConfigEntry) -> bool: ...
16
+ async def async_unload_entry(hass: HomeAssistant, entry: GoogleDriveConfigEntry) -> bool: ...
17
+ def _notify_backup_listeners(hass: HomeAssistant) -> None: ...
@@ -0,0 +1,35 @@
1
+ from _typeshed import Incomplete
2
+ from aiohttp import ClientSession as ClientSession, StreamReader as StreamReader
3
+ from collections.abc import AsyncIterator, Callable as Callable, Coroutine
4
+ from google_drive_api.api import AbstractAuth
5
+ from homeassistant.components.backup import AgentBackup as AgentBackup, suggested_filename as suggested_filename
6
+ from homeassistant.config_entries import ConfigEntryState as ConfigEntryState
7
+ from homeassistant.const import CONF_ACCESS_TOKEN as CONF_ACCESS_TOKEN
8
+ from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryNotReady as ConfigEntryNotReady, HomeAssistantError as HomeAssistantError
9
+ from homeassistant.helpers import config_entry_oauth2_flow as config_entry_oauth2_flow
10
+ from typing import Any
11
+
12
+ _UPLOAD_AND_DOWNLOAD_TIMEOUT: Incomplete
13
+ _LOGGER: Incomplete
14
+
15
+ class AsyncConfigEntryAuth(AbstractAuth):
16
+ _oauth_session: Incomplete
17
+ def __init__(self, websession: ClientSession, oauth_session: config_entry_oauth2_flow.OAuth2Session) -> None: ...
18
+ async def async_get_access_token(self) -> str: ...
19
+
20
+ class AsyncConfigFlowAuth(AbstractAuth):
21
+ _token: Incomplete
22
+ def __init__(self, websession: ClientSession, token: str) -> None: ...
23
+ async def async_get_access_token(self) -> str: ...
24
+
25
+ class DriveClient:
26
+ _ha_instance_id: Incomplete
27
+ _api: Incomplete
28
+ def __init__(self, ha_instance_id: str, auth: AbstractAuth) -> None: ...
29
+ async def async_get_email_address(self) -> str: ...
30
+ async def async_create_ha_root_folder_if_not_exists(self) -> tuple[str, str]: ...
31
+ async def async_upload_backup(self, open_stream: Callable[[], Coroutine[Any, Any, AsyncIterator[bytes]]], backup: AgentBackup) -> None: ...
32
+ async def async_list_backups(self) -> list[AgentBackup]: ...
33
+ async def async_get_backup_file_id(self, backup_id: str) -> str | None: ...
34
+ async def async_delete(self, file_id: str) -> None: ...
35
+ async def async_download(self, file_id: str) -> StreamReader: ...
@@ -0,0 +1,6 @@
1
+ from homeassistant.components.application_credentials import AuthorizationServer as AuthorizationServer
2
+ from homeassistant.core import HomeAssistant as HomeAssistant
3
+ from homeassistant.helpers import config_entry_oauth2_flow as config_entry_oauth2_flow
4
+
5
+ async def async_get_authorization_server(hass: HomeAssistant) -> AuthorizationServer: ...
6
+ async def async_get_description_placeholders(hass: HomeAssistant) -> dict[str, str]: ...
@@ -0,0 +1,28 @@
1
+ from . import DATA_BACKUP_AGENT_LISTENERS as DATA_BACKUP_AGENT_LISTENERS, GoogleDriveConfigEntry as GoogleDriveConfigEntry
2
+ from .const import DOMAIN as DOMAIN
3
+ from _typeshed import Incomplete
4
+ from collections.abc import AsyncIterator, Callable as Callable, Coroutine
5
+ from homeassistant.components.backup import AgentBackup as AgentBackup, BackupAgent as BackupAgent, BackupAgentError as BackupAgentError
6
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
7
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
8
+ from homeassistant.helpers.aiohttp_client import ChunkAsyncStreamIterator as ChunkAsyncStreamIterator
9
+ from homeassistant.util import slugify as slugify
10
+ from typing import Any
11
+
12
+ _LOGGER: Incomplete
13
+
14
+ async def async_get_backup_agents(hass: HomeAssistant, **kwargs: Any) -> list[BackupAgent]: ...
15
+ @callback
16
+ def async_register_backup_agents_listener(hass: HomeAssistant, *, listener: Callable[[], None], **kwargs: Any) -> Callable[[], None]: ...
17
+
18
+ class GoogleDriveBackupAgent(BackupAgent):
19
+ domain = DOMAIN
20
+ name: Incomplete
21
+ unique_id: Incomplete
22
+ _client: Incomplete
23
+ def __init__(self, config_entry: GoogleDriveConfigEntry) -> None: ...
24
+ async def async_upload_backup(self, *, open_stream: Callable[[], Coroutine[Any, Any, AsyncIterator[bytes]]], backup: AgentBackup, **kwargs: Any) -> None: ...
25
+ async def async_list_backups(self, **kwargs: Any) -> list[AgentBackup]: ...
26
+ async def async_get_backup(self, backup_id: str, **kwargs: Any) -> AgentBackup | None: ...
27
+ async def async_download_backup(self, backup_id: str, **kwargs: Any) -> AsyncIterator[bytes]: ...
28
+ async def async_delete_backup(self, backup_id: str, **kwargs: Any) -> None: ...