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
@@ -0,0 +1,83 @@
1
+ import abc
2
+ from .const import CONF_ALLOW_SINGLE_WORD as CONF_ALLOW_SINGLE_WORD, CONF_ICON as CONF_ICON, CONF_URL_PATH as CONF_URL_PATH, ConfigNotFound as ConfigNotFound, DOMAIN as DOMAIN, EVENT_LOVELACE_UPDATED as EVENT_LOVELACE_UPDATED, LOVELACE_CONFIG_FILE as LOVELACE_CONFIG_FILE, LOVELACE_DATA as LOVELACE_DATA, MODE_STORAGE as MODE_STORAGE, MODE_YAML as MODE_YAML, STORAGE_DASHBOARD_CREATE_FIELDS as STORAGE_DASHBOARD_CREATE_FIELDS, STORAGE_DASHBOARD_UPDATE_FIELDS as STORAGE_DASHBOARD_UPDATE_FIELDS
3
+ from _typeshed import Incomplete
4
+ from abc import ABC, abstractmethod
5
+ from homeassistant.components import websocket_api as websocket_api
6
+ from homeassistant.components.frontend import DATA_PANELS as DATA_PANELS
7
+ from homeassistant.const import CONF_FILENAME as CONF_FILENAME
8
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
9
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
10
+ from homeassistant.helpers import collection as collection, storage as storage
11
+ from homeassistant.helpers.json import json_bytes as json_bytes, json_fragment as json_fragment
12
+ from homeassistant.util.yaml import Secrets as Secrets, load_yaml_dict as load_yaml_dict
13
+ from typing import Any
14
+
15
+ CONFIG_STORAGE_KEY_DEFAULT = DOMAIN
16
+ CONFIG_STORAGE_KEY: str
17
+ CONFIG_STORAGE_VERSION: int
18
+ DASHBOARDS_STORAGE_KEY: Incomplete
19
+ DASHBOARDS_STORAGE_VERSION: int
20
+ _LOGGER: Incomplete
21
+
22
+ class LovelaceConfig(ABC, metaclass=abc.ABCMeta):
23
+ hass: Incomplete
24
+ config: dict[str, Any] | None
25
+ def __init__(self, hass: HomeAssistant, url_path: str | None, config: dict[str, Any] | None) -> None: ...
26
+ @property
27
+ def url_path(self) -> str | None: ...
28
+ @property
29
+ @abstractmethod
30
+ def mode(self) -> str: ...
31
+ @abstractmethod
32
+ async def async_get_info(self) -> dict[str, Any]: ...
33
+ @abstractmethod
34
+ async def async_load(self, force: bool) -> dict[str, Any]: ...
35
+ async def async_save(self, config: dict[str, Any]) -> None: ...
36
+ async def async_delete(self) -> None: ...
37
+ @abstractmethod
38
+ async def async_json(self, force: bool) -> json_fragment: ...
39
+ @callback
40
+ def _config_updated(self) -> None: ...
41
+
42
+ class LovelaceStorage(LovelaceConfig):
43
+ _store: Incomplete
44
+ _data: dict[str, Any] | None
45
+ _json_config: json_fragment | None
46
+ def __init__(self, hass: HomeAssistant, config: dict[str, Any] | None) -> None: ...
47
+ @property
48
+ def mode(self) -> str: ...
49
+ async def async_get_info(self) -> dict[str, Any]: ...
50
+ async def async_load(self, force: bool) -> dict[str, Any]: ...
51
+ async def async_json(self, force: bool) -> json_fragment: ...
52
+ async def async_save(self, config: dict[str, Any]) -> None: ...
53
+ async def async_delete(self) -> None: ...
54
+ async def _load(self) -> dict[str, Any]: ...
55
+ @callback
56
+ def _async_build_json(self) -> json_fragment: ...
57
+
58
+ class LovelaceYAML(LovelaceConfig):
59
+ path: Incomplete
60
+ _cache: tuple[dict[str, Any], float, json_fragment] | None
61
+ def __init__(self, hass: HomeAssistant, url_path: str | None, config: dict[str, Any] | None) -> None: ...
62
+ @property
63
+ def mode(self) -> str: ...
64
+ async def async_get_info(self) -> dict[str, Any]: ...
65
+ async def async_load(self, force: bool) -> dict[str, Any]: ...
66
+ async def async_json(self, force: bool) -> json_fragment: ...
67
+ async def _async_load_or_cached(self, force: bool) -> tuple[dict[str, Any], json_fragment]: ...
68
+ def _load_config(self, force: bool) -> tuple[bool, dict[str, Any], json_fragment]: ...
69
+
70
+ def _config_info(mode: str, config: dict[str, Any]) -> dict[str, Any]: ...
71
+
72
+ class DashboardsCollection(collection.DictStorageCollection):
73
+ CREATE_SCHEMA: Incomplete
74
+ UPDATE_SCHEMA: Incomplete
75
+ def __init__(self, hass: HomeAssistant) -> None: ...
76
+ async def _process_create_data(self, data: dict) -> dict: ...
77
+ @callback
78
+ def _get_suggested_id(self, info: dict) -> str: ...
79
+ async def _update_data(self, item: dict, update_data: dict) -> dict: ...
80
+
81
+ class DashboardsCollectionWebSocket(collection.DictStorageCollectionWebsocket):
82
+ @callback
83
+ def ws_list_item(self, hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
@@ -0,0 +1,42 @@
1
+ from .const import CONF_RESOURCE_TYPE_WS as CONF_RESOURCE_TYPE_WS, DOMAIN as DOMAIN, RESOURCE_CREATE_FIELDS as RESOURCE_CREATE_FIELDS, RESOURCE_SCHEMA as RESOURCE_SCHEMA, RESOURCE_UPDATE_FIELDS as RESOURCE_UPDATE_FIELDS
2
+ from .dashboard import LovelaceConfig as LovelaceConfig
3
+ from .websocket import websocket_lovelace_resources_impl as websocket_lovelace_resources_impl
4
+ from _typeshed import Incomplete
5
+ from homeassistant.components import websocket_api as websocket_api
6
+ from homeassistant.const import CONF_ID as CONF_ID, CONF_RESOURCES as CONF_RESOURCES, CONF_TYPE as CONF_TYPE
7
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
8
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
9
+ from homeassistant.helpers import collection as collection, storage as storage
10
+ from typing import Any
11
+
12
+ RESOURCE_STORAGE_KEY: Incomplete
13
+ RESOURCES_STORAGE_VERSION: int
14
+ _LOGGER: Incomplete
15
+
16
+ class ResourceYAMLCollection:
17
+ loaded: bool
18
+ data: Incomplete
19
+ def __init__(self, data: list[dict[str, Any]]) -> None: ...
20
+ async def async_get_info(self) -> dict[str, int]: ...
21
+ @callback
22
+ def async_items(self) -> list[dict]: ...
23
+
24
+ class ResourceStorageCollection(collection.DictStorageCollection):
25
+ loaded: bool
26
+ CREATE_SCHEMA: Incomplete
27
+ UPDATE_SCHEMA: Incomplete
28
+ ll_config: Incomplete
29
+ def __init__(self, hass: HomeAssistant, ll_config: LovelaceConfig) -> None: ...
30
+ async def async_get_info(self) -> dict[str, int]: ...
31
+ async def _async_load_data(self) -> collection.SerializedStorageCollection | None: ...
32
+ async def _process_create_data(self, data: dict) -> dict: ...
33
+ @callback
34
+ def _get_suggested_id(self, info: dict) -> str: ...
35
+ async def _update_data(self, item: dict, update_data: dict) -> dict: ...
36
+
37
+ class ResourceStorageCollectionWebsocket(collection.DictStorageCollectionWebsocket):
38
+ @callback
39
+ def async_setup(self, hass: HomeAssistant) -> None: ...
40
+ @staticmethod
41
+ @websocket_api.async_response
42
+ async def ws_list_item(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
@@ -0,0 +1,9 @@
1
+ from .const import LOVELACE_DATA as LOVELACE_DATA, MODE_AUTO as MODE_AUTO, MODE_STORAGE as MODE_STORAGE, MODE_YAML as MODE_YAML
2
+ from homeassistant.components import system_health as system_health
3
+ from homeassistant.const import CONF_MODE as CONF_MODE
4
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
5
+ from typing import Any
6
+
7
+ @callback
8
+ def async_register(hass: HomeAssistant, register: system_health.SystemHealthRegistration) -> None: ...
9
+ async def system_health_info(hass: HomeAssistant) -> dict[str, Any]: ...
@@ -0,0 +1,26 @@
1
+ from .const import CONF_URL_PATH as CONF_URL_PATH, ConfigNotFound as ConfigNotFound, LOVELACE_DATA as LOVELACE_DATA
2
+ from .dashboard import LovelaceConfig as LovelaceConfig
3
+ from .resources import ResourceStorageCollection as ResourceStorageCollection
4
+ from collections.abc import Awaitable, Callable
5
+ from homeassistant.components import websocket_api as websocket_api
6
+ from homeassistant.core import HomeAssistant as HomeAssistant
7
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
8
+ from homeassistant.helpers.json import json_fragment as json_fragment
9
+ from typing import Any
10
+
11
+ type AsyncLovelaceWebSocketCommandHandler[_R] = Callable[[HomeAssistant, websocket_api.ActiveConnection, dict[str, Any], LovelaceConfig], Awaitable[_R]]
12
+ def _handle_errors[_R](func: AsyncLovelaceWebSocketCommandHandler[_R]) -> websocket_api.AsyncWebSocketCommandHandler: ...
13
+ @websocket_api.async_response
14
+ async def websocket_lovelace_resources(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
15
+ async def websocket_lovelace_resources_impl(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
16
+ @websocket_api.async_response
17
+ @_handle_errors
18
+ async def websocket_lovelace_config(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any], config: LovelaceConfig) -> json_fragment: ...
19
+ @websocket_api.require_admin
20
+ @websocket_api.async_response
21
+ @_handle_errors
22
+ async def websocket_lovelace_save_config(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any], config: LovelaceConfig) -> None: ...
23
+ @websocket_api.require_admin
24
+ @websocket_api.async_response
25
+ @_handle_errors
26
+ async def websocket_lovelace_delete_config(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any], config: LovelaceConfig) -> None: ...
@@ -1,8 +1,8 @@
1
- from .const import CONF_BASE_URL as CONF_BASE_URL, DEFAULT_URL as DEFAULT_URL, DOMAIN as DOMAIN, LOGGER as LOGGER
1
+ from .const import CONF_BASE_URL as CONF_BASE_URL, DOMAIN as DOMAIN, LOGGER as LOGGER
2
2
  from .utils import construct_mastodon_username as construct_mastodon_username, create_mastodon_client as create_mastodon_client
3
3
  from _typeshed import Incomplete
4
4
  from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
5
- from homeassistant.const import CONF_ACCESS_TOKEN as CONF_ACCESS_TOKEN, CONF_CLIENT_ID as CONF_CLIENT_ID, CONF_CLIENT_SECRET as CONF_CLIENT_SECRET, CONF_NAME as CONF_NAME
5
+ from homeassistant.const import CONF_ACCESS_TOKEN as CONF_ACCESS_TOKEN, CONF_CLIENT_ID as CONF_CLIENT_ID, CONF_CLIENT_SECRET as CONF_CLIENT_SECRET
6
6
  from homeassistant.helpers.selector import TextSelector as TextSelector, TextSelectorConfig as TextSelectorConfig, TextSelectorType as TextSelectorType
7
7
  from homeassistant.util import slugify as slugify
8
8
  from typing import Any
@@ -17,4 +17,3 @@ class MastodonConfigFlow(ConfigFlow, domain=DOMAIN):
17
17
  def check_connection(self, base_url: str, client_id: str, client_secret: str, access_token: str) -> tuple[dict[str, str] | None, dict[str, str] | None, dict[str, str]]: ...
18
18
  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: ...
19
19
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
20
- async def async_step_import(self, import_data: dict[str, Any]) -> ConfigFlowResult: ...
@@ -1,10 +1,8 @@
1
- from .const import CONF_BASE_URL as CONF_BASE_URL, DEFAULT_URL as DEFAULT_URL, DOMAIN as DOMAIN, LOGGER as LOGGER
1
+ from .const import CONF_BASE_URL as CONF_BASE_URL, DEFAULT_URL as DEFAULT_URL, LOGGER as LOGGER
2
2
  from _typeshed import Incomplete
3
3
  from homeassistant.components.notify import ATTR_DATA as ATTR_DATA, BaseNotificationService as BaseNotificationService
4
- from homeassistant.config_entries import SOURCE_IMPORT as SOURCE_IMPORT
5
4
  from homeassistant.const import CONF_ACCESS_TOKEN as CONF_ACCESS_TOKEN, CONF_CLIENT_ID as CONF_CLIENT_ID, CONF_CLIENT_SECRET as CONF_CLIENT_SECRET
6
5
  from homeassistant.core import HomeAssistant as HomeAssistant
7
- from homeassistant.data_entry_flow import FlowResultType as FlowResultType
8
6
  from homeassistant.helpers.typing import ConfigType as ConfigType, DiscoveryInfoType as DiscoveryInfoType
9
7
  from mastodon import Mastodon as Mastodon
10
8
  from typing import Any
@@ -5,7 +5,6 @@ from .const import ADDON_SLUG as ADDON_SLUG, CONF_INTEGRATION_CREATED_ADDON as C
5
5
  from _typeshed import Incomplete
6
6
  from homeassistant.components.hassio import AddonError as AddonError, AddonInfo as AddonInfo, AddonManager as AddonManager, AddonState as AddonState
7
7
  from homeassistant.components.onboarding import async_is_onboarded as async_is_onboarded
8
- from homeassistant.components.zeroconf import ZeroconfServiceInfo as ZeroconfServiceInfo
9
8
  from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
10
9
  from homeassistant.const import CONF_URL as CONF_URL
11
10
  from homeassistant.core import HomeAssistant as HomeAssistant
@@ -14,6 +13,7 @@ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
14
13
  from homeassistant.helpers import aiohttp_client as aiohttp_client
15
14
  from homeassistant.helpers.hassio import is_hassio as is_hassio
16
15
  from homeassistant.helpers.service_info.hassio import HassioServiceInfo as HassioServiceInfo
16
+ from homeassistant.helpers.service_info.zeroconf import ZeroconfServiceInfo as ZeroconfServiceInfo
17
17
  from typing import Any
18
18
 
19
19
  ADDON_SETUP_TIMEOUT: int
@@ -31,7 +31,6 @@ class MatterCover(MatterEntity, CoverEntity):
31
31
  async def async_close_cover(self, **kwargs: Any) -> None: ...
32
32
  async def async_set_cover_position(self, **kwargs: Any) -> None: ...
33
33
  async def async_set_cover_tilt_position(self, **kwargs: Any) -> None: ...
34
- async def send_device_command(self, command: Any) -> None: ...
35
34
  _attr_is_opening: bool
36
35
  _attr_is_closing: bool
37
36
  _attr_current_cover_position: Incomplete
@@ -1,7 +1,7 @@
1
1
  from .const import FEATUREMAP_ATTRIBUTE_ID as FEATUREMAP_ATTRIBUTE_ID
2
- from .models import MatterDiscoverySchema as MatterDiscoverySchema, MatterEntityInfo as MatterEntityInfo
2
+ from .models import MatterDiscoverySchema as MatterDiscoverySchema, MatterEntityInfo as MatterEntityInfo, UNSET as UNSET
3
3
  from _typeshed import Incomplete
4
- from chip.clusters.Objects import ClusterAttributeDescriptor as ClusterAttributeDescriptor
4
+ from chip.clusters.ClusterObjects import ClusterAttributeDescriptor as ClusterAttributeDescriptor
5
5
  from collections.abc import Generator
6
6
  from homeassistant.const import Platform as Platform
7
7
  from homeassistant.core import callback as callback
@@ -2,21 +2,24 @@ from .const import DOMAIN as DOMAIN, FEATUREMAP_ATTRIBUTE_ID as FEATUREMAP_ATTRI
2
2
  from .discovery import MatterEntityInfo as MatterEntityInfo
3
3
  from .helpers import get_device_id as get_device_id
4
4
  from _typeshed import Incomplete
5
- from chip.clusters.Objects import ClusterAttributeDescriptor as ClusterAttributeDescriptor
6
- from collections.abc import Callable as Callable
5
+ from chip.clusters.Objects import ClusterAttributeDescriptor as ClusterAttributeDescriptor, ClusterCommand as ClusterCommand
6
+ from collections.abc import Callable as Callable, Coroutine
7
7
  from dataclasses import dataclass
8
8
  from homeassistant.core import callback as callback
9
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
9
10
  from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
10
11
  from homeassistant.helpers.entity import Entity as Entity, EntityDescription as EntityDescription
11
12
  from homeassistant.helpers.typing import UndefinedType as UndefinedType
12
13
  from matter_server.client import MatterClient as MatterClient
13
14
  from matter_server.client.models.node import MatterEndpoint as MatterEndpoint
14
15
  from matter_server.common.models import EventType
15
- from propcache import cached_property
16
- from typing import Any
16
+ from propcache.api import cached_property
17
+ from typing import Any, Concatenate
17
18
 
18
19
  LOGGER: Incomplete
19
20
 
21
+ def catch_matter_error[_R, **P](func: Callable[Concatenate[MatterEntity, P], Coroutine[Any, Any, _R]]) -> Callable[Concatenate[MatterEntity, P], Coroutine[Any, Any, _R]]: ...
22
+
20
23
  @dataclass(frozen=True)
21
24
  class MatterEntityDescription(EntityDescription):
22
25
  measurement_to_ha: Callable[[Any], Any] | None = ...
@@ -52,3 +55,7 @@ class MatterEntity(Entity):
52
55
  def get_matter_attribute_value(self, attribute: type[ClusterAttributeDescriptor], null_as_none: bool = True) -> Any: ...
53
56
  @callback
54
57
  def get_matter_attribute_path(self, attribute: type[ClusterAttributeDescriptor]) -> str: ...
58
+ @catch_matter_error
59
+ async def send_device_command(self, command: ClusterCommand, **kwargs: Any) -> None: ...
60
+ @catch_matter_error
61
+ async def write_attribute(self, value: Any, matter_attribute: type[ClusterAttributeDescriptor] | None = None) -> Any: ...
@@ -34,7 +34,6 @@ class MatterLight(MatterEntity, LightEntity):
34
34
  def _get_color_temperature(self) -> int: ...
35
35
  def _get_brightness(self) -> int: ...
36
36
  def _get_color_mode(self) -> ColorMode: ...
37
- async def send_device_command(self, command: Any) -> None: ...
38
37
  async def async_turn_on(self, **kwargs: Any) -> None: ...
39
38
  async def async_turn_off(self, **kwargs: Any) -> None: ...
40
39
  _attr_supported_color_modes: Incomplete
@@ -4,7 +4,6 @@ from .entity import MatterEntity as MatterEntity
4
4
  from .helpers import get_matter as get_matter
5
5
  from .models import MatterDiscoverySchema as MatterDiscoverySchema
6
6
  from _typeshed import Incomplete
7
- from chip.clusters import Objects as clusters
8
7
  from homeassistant.components.lock import LockEntity as LockEntity, LockEntityDescription as LockEntityDescription, LockEntityFeature as LockEntityFeature
9
8
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
10
9
  from homeassistant.const import ATTR_CODE as ATTR_CODE, Platform as Platform
@@ -22,7 +21,6 @@ class MatterLock(MatterEntity, LockEntity):
22
21
  _platform_translation_key: str
23
22
  @property
24
23
  def code_format(self) -> str | None: ...
25
- async def send_device_command(self, command: clusters.ClusterCommand, timed_request_timeout_ms: int = 1000) -> None: ...
26
24
  _attr_is_locking: bool
27
25
  async def async_lock(self, **kwargs: Any) -> None: ...
28
26
  _attr_is_unlocking: bool
@@ -1,3 +1,4 @@
1
+ from _typeshed import Incomplete
1
2
  from chip.clusters import Objects as clusters
2
3
  from chip.clusters.Objects import Cluster as Cluster, ClusterAttributeDescriptor as ClusterAttributeDescriptor
3
4
  from dataclasses import dataclass
@@ -8,6 +9,10 @@ from matter_server.client.models.node import MatterEndpoint as MatterEndpoint
8
9
  from typing import Any, TypedDict
9
10
 
10
11
  type SensorValueTypes = type[clusters.uint | int | clusters.Nullable | clusters.float32 | float]
12
+ class _UNSET_TYPE: ...
13
+
14
+ UNSET: Incomplete
15
+
11
16
  class MatterDeviceInfo(TypedDict):
12
17
  unique_id: str
13
18
  vendor_id: str
@@ -38,6 +43,10 @@ class MatterDiscoverySchema:
38
43
  absent_attributes: tuple[type[ClusterAttributeDescriptor], ...] | None = ...
39
44
  absent_clusters: tuple[type[Cluster], ...] | None = ...
40
45
  optional_attributes: tuple[type[ClusterAttributeDescriptor], ...] | None = ...
41
- value_contains: Any | None = ...
42
46
  featuremap_contains: int | None = ...
43
47
  allow_multi: bool = ...
48
+ allow_none_value: bool = ...
49
+ value_contains: Any = ...
50
+ secondary_value_contains: Any = ...
51
+ value_is_not: Any = ...
52
+ secondary_value_is_not: Any = ...
@@ -5,7 +5,7 @@ from _typeshed import Incomplete
5
5
  from dataclasses import dataclass
6
6
  from homeassistant.components.number import NumberDeviceClass as NumberDeviceClass, NumberEntity as NumberEntity, NumberEntityDescription as NumberEntityDescription, NumberMode as NumberMode
7
7
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
- from homeassistant.const import EntityCategory as EntityCategory, Platform as Platform, UnitOfLength as UnitOfLength, UnitOfTime as UnitOfTime
8
+ from homeassistant.const import EntityCategory as EntityCategory, Platform as Platform, UnitOfLength as UnitOfLength, UnitOfTemperature as UnitOfTemperature, UnitOfTime as UnitOfTime
9
9
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
10
10
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
11
11
 
@@ -3,7 +3,9 @@ from .helpers import get_matter as get_matter
3
3
  from .models import MatterDiscoverySchema as MatterDiscoverySchema
4
4
  from _typeshed import Incomplete
5
5
  from chip.clusters import Objects as clusters
6
+ from chip.clusters.ClusterObjects import ClusterAttributeDescriptor as ClusterAttributeDescriptor, ClusterCommand as ClusterCommand
6
7
  from chip.clusters.Types import Nullable as Nullable
8
+ from collections.abc import Callable as Callable
7
9
  from dataclasses import dataclass
8
10
  from homeassistant.components.select import SelectEntity as SelectEntity, SelectEntityDescription as SelectEntityDescription
9
11
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
@@ -11,20 +13,40 @@ from homeassistant.const import EntityCategory as EntityCategory, Platform as Pl
11
13
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
12
14
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
13
15
 
16
+ NUMBER_OF_RINSES_STATE_MAP: Incomplete
17
+ NUMBER_OF_RINSES_STATE_MAP_REVERSE: Incomplete
14
18
  type SelectCluster = clusters.ModeSelect | clusters.OvenMode | clusters.LaundryWasherMode | clusters.RefrigeratorAndTemperatureControlledCabinetMode | clusters.RvcRunMode | clusters.RvcCleanMode | clusters.DishwasherMode | clusters.EnergyEvseMode | clusters.DeviceEnergyManagementMode
19
+
15
20
  async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
16
21
 
17
22
  @dataclass(frozen=True)
18
23
  class MatterSelectEntityDescription(SelectEntityDescription, MatterEntityDescription): ...
19
24
 
20
- class MatterSelectEntity(MatterEntity, SelectEntity):
25
+ @dataclass(frozen=True, kw_only=True)
26
+ class MatterMapSelectEntityDescription(MatterSelectEntityDescription):
27
+ measurement_to_ha: Callable[[int], str | None]
28
+ ha_to_native_value: Callable[[str], int | None]
29
+ list_attribute: type[ClusterAttributeDescriptor]
30
+
31
+ @dataclass(frozen=True, kw_only=True)
32
+ class MatterListSelectEntityDescription(MatterSelectEntityDescription):
33
+ list_attribute: type[ClusterAttributeDescriptor]
34
+ command: Callable[[int], ClusterCommand] | None = ...
35
+
36
+ class MatterAttributeSelectEntity(MatterEntity, SelectEntity):
21
37
  entity_description: MatterSelectEntityDescription
22
38
  async def async_select_option(self, option: str) -> None: ...
23
39
  _attr_current_option: Incomplete
24
40
  @callback
25
41
  def _update_from_device(self) -> None: ...
26
42
 
27
- class MatterModeSelectEntity(MatterSelectEntity):
43
+ class MatterMapSelectEntity(MatterAttributeSelectEntity):
44
+ entity_description: MatterMapSelectEntityDescription
45
+ _attr_options: Incomplete
46
+ @callback
47
+ def _update_from_device(self) -> None: ...
48
+
49
+ class MatterModeSelectEntity(MatterAttributeSelectEntity):
28
50
  async def async_select_option(self, option: str) -> None: ...
29
51
  _attr_options: Incomplete
30
52
  _attr_current_option: Incomplete
@@ -32,4 +54,12 @@ class MatterModeSelectEntity(MatterSelectEntity):
32
54
  @callback
33
55
  def _update_from_device(self) -> None: ...
34
56
 
57
+ class MatterListSelectEntity(MatterEntity, SelectEntity):
58
+ entity_description: MatterListSelectEntityDescription
59
+ async def async_select_option(self, option: str) -> None: ...
60
+ _attr_options: Incomplete
61
+ _attr_current_option: Incomplete
62
+ @callback
63
+ def _update_from_device(self) -> None: ...
64
+
35
65
  DISCOVERY_SCHEMAS: Incomplete
@@ -2,6 +2,7 @@ from .entity import MatterEntity as MatterEntity, MatterEntityDescription as Mat
2
2
  from .helpers import get_matter as get_matter
3
3
  from .models import MatterDiscoverySchema as MatterDiscoverySchema
4
4
  from _typeshed import Incomplete
5
+ from chip.clusters.ClusterObjects import ClusterAttributeDescriptor as ClusterAttributeDescriptor
5
6
  from chip.clusters.Types import Nullable as Nullable
6
7
  from dataclasses import dataclass
7
8
  from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
@@ -20,17 +21,40 @@ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, asyn
20
21
  @dataclass(frozen=True)
21
22
  class MatterSensorEntityDescription(SensorEntityDescription, MatterEntityDescription): ...
22
23
 
24
+ @dataclass(frozen=True, kw_only=True)
25
+ class MatterListSensorEntityDescription(MatterSensorEntityDescription):
26
+ list_attribute: type[ClusterAttributeDescriptor]
27
+
28
+ @dataclass(frozen=True, kw_only=True)
29
+ class MatterOperationalStateSensorEntityDescription(MatterSensorEntityDescription):
30
+ state_list_attribute: type[ClusterAttributeDescriptor] = ...
31
+
23
32
  class MatterSensor(MatterEntity, SensorEntity):
24
33
  entity_description: MatterSensorEntityDescription
25
34
  _attr_native_value: Incomplete
26
35
  @callback
27
36
  def _update_from_device(self) -> None: ...
28
37
 
38
+ class MatterDraftElectricalMeasurementSensor(MatterEntity, SensorEntity):
39
+ entity_description: MatterSensorEntityDescription
40
+ _attr_native_value: Incomplete
41
+ @callback
42
+ def _update_from_device(self) -> None: ...
43
+
29
44
  class MatterOperationalStateSensor(MatterSensor):
45
+ entity_description: MatterOperationalStateSensorEntityDescription
30
46
  states_map: dict[int, str]
31
47
  _attr_options: Incomplete
32
48
  _attr_native_value: Incomplete
33
49
  @callback
34
50
  def _update_from_device(self) -> None: ...
35
51
 
52
+ class MatterListSensor(MatterSensor):
53
+ entity_description: MatterListSensorEntityDescription
54
+ _attr_device_class: Incomplete
55
+ _attr_options: Incomplete
56
+ _attr_native_value: Incomplete
57
+ @callback
58
+ def _update_from_device(self) -> None: ...
59
+
36
60
  DISCOVERY_SCHEMAS: Incomplete
@@ -1,10 +1,11 @@
1
- from .entity import MatterEntity as MatterEntity
1
+ from .entity import MatterEntity as MatterEntity, MatterEntityDescription as MatterEntityDescription
2
2
  from .helpers import get_matter as get_matter
3
3
  from .models import MatterDiscoverySchema as MatterDiscoverySchema
4
4
  from _typeshed import Incomplete
5
+ from dataclasses import dataclass
5
6
  from homeassistant.components.switch import SwitchDeviceClass as SwitchDeviceClass, SwitchEntity as SwitchEntity, SwitchEntityDescription as SwitchEntityDescription
6
7
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
- from homeassistant.const import Platform as Platform
8
+ from homeassistant.const import EntityCategory as EntityCategory, Platform as Platform
8
9
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
9
10
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
10
11
  from typing import Any
@@ -19,4 +20,16 @@ class MatterSwitch(MatterEntity, SwitchEntity):
19
20
  @callback
20
21
  def _update_from_device(self) -> None: ...
21
22
 
23
+ @dataclass(frozen=True)
24
+ class MatterNumericSwitchEntityDescription(SwitchEntityDescription, MatterEntityDescription): ...
25
+
26
+ class MatterNumericSwitch(MatterSwitch):
27
+ entity_description: MatterNumericSwitchEntityDescription
28
+ async def _async_set_native_value(self, value: bool) -> None: ...
29
+ async def async_turn_on(self, **kwargs: Any) -> None: ...
30
+ async def async_turn_off(self, **kwargs: Any) -> None: ...
31
+ _attr_is_on: Incomplete
32
+ @callback
33
+ def _update_from_device(self) -> None: ...
34
+
22
35
  DISCOVERY_SCHEMAS: Incomplete
@@ -37,7 +37,6 @@ class MatterVacuum(MatterEntity, StateVacuumEntity):
37
37
  async def async_locate(self, **kwargs: Any) -> None: ...
38
38
  async def async_start(self) -> None: ...
39
39
  async def async_pause(self) -> None: ...
40
- async def _send_device_command(self, command: clusters.ClusterCommand) -> None: ...
41
40
  _attr_battery_level: Incomplete
42
41
  _attr_activity: Incomplete
43
42
  @callback
@@ -2,7 +2,6 @@ from .entity import MatterEntity as MatterEntity
2
2
  from .helpers import get_matter as get_matter
3
3
  from .models import MatterDiscoverySchema as MatterDiscoverySchema
4
4
  from _typeshed import Incomplete
5
- from chip.clusters import Objects as clusters
6
5
  from homeassistant.components.valve import ValveDeviceClass as ValveDeviceClass, ValveEntity as ValveEntity, ValveEntityDescription as ValveEntityDescription, ValveEntityFeature as ValveEntityFeature
7
6
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
7
  from homeassistant.const import Platform as Platform
@@ -18,7 +17,6 @@ class MatterValve(MatterEntity, ValveEntity):
18
17
  _feature_map: int | None
19
18
  entity_description: ValveEntityDescription
20
19
  _platform_translation_key: str
21
- async def send_device_command(self, command: clusters.ClusterCommand) -> None: ...
22
20
  async def async_open_valve(self) -> None: ...
23
21
  async def async_close_valve(self) -> None: ...
24
22
  async def async_set_valve_position(self, position: int) -> None: ...
@@ -0,0 +1,16 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from .coordinator import ModelContextProtocolCoordinator
3
+ from .types import ModelContextProtocolConfigEntry
4
+ from dataclasses import dataclass
5
+ from homeassistant.core import HomeAssistant
6
+ from homeassistant.helpers import llm
7
+
8
+ __all__ = ['DOMAIN', 'async_setup_entry', 'async_unload_entry']
9
+
10
+ async def async_setup_entry(hass: HomeAssistant, entry: ModelContextProtocolConfigEntry) -> bool: ...
11
+ async def async_unload_entry(hass: HomeAssistant, entry: ModelContextProtocolConfigEntry) -> bool: ...
12
+
13
+ @dataclass(kw_only=True)
14
+ class ModelContextProtocolAPI(llm.API):
15
+ coordinator: ModelContextProtocolCoordinator
16
+ async def async_get_api_instance(self, llm_context: llm.LLMContext) -> llm.APIInstance: ...
@@ -0,0 +1,23 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from .coordinator import mcp_client as mcp_client
3
+ from _typeshed import Incomplete
4
+ from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
5
+ from homeassistant.const import CONF_URL as CONF_URL
6
+ from homeassistant.core import HomeAssistant as HomeAssistant
7
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
8
+ from typing import Any
9
+
10
+ _LOGGER: Incomplete
11
+ STEP_USER_DATA_SCHEMA: Incomplete
12
+
13
+ async def validate_input(hass: HomeAssistant, data: dict[str, Any]) -> dict[str, Any]: ...
14
+
15
+ class ModelContextProtocolConfigFlow(ConfigFlow, domain=DOMAIN):
16
+ VERSION: int
17
+ async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
18
+
19
+ class InvalidUrl(HomeAssistantError): ...
20
+ class CannotConnect(HomeAssistantError): ...
21
+ class TimeoutConnectError(HomeAssistantError): ...
22
+ class InvalidAuth(HomeAssistantError): ...
23
+ class MissingCapabilities(HomeAssistantError): ...
@@ -0,0 +1 @@
1
+ DOMAIN: str
@@ -0,0 +1,40 @@
1
+ import asyncio
2
+ import voluptuous as vol
3
+ from .const import DOMAIN as DOMAIN
4
+ from _typeshed import Incomplete
5
+ from collections.abc import AsyncGenerator
6
+ from contextlib import asynccontextmanager
7
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
+ from homeassistant.const import CONF_URL as CONF_URL
9
+ from homeassistant.core import HomeAssistant as HomeAssistant
10
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
11
+ from homeassistant.helpers import llm as llm
12
+ from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
13
+ from homeassistant.util.json import JsonObjectType as JsonObjectType
14
+ from mcp.client.session import ClientSession
15
+
16
+ _LOGGER: Incomplete
17
+ UPDATE_INTERVAL: Incomplete
18
+ TIMEOUT: int
19
+
20
+ @asynccontextmanager
21
+ async def mcp_client(url: str) -> AsyncGenerator[ClientSession]: ...
22
+
23
+ class ModelContextProtocolTool(llm.Tool):
24
+ name: Incomplete
25
+ description: Incomplete
26
+ parameters: Incomplete
27
+ session: Incomplete
28
+ def __init__(self, name: str, description: str | None, parameters: vol.Schema, session: ClientSession) -> None: ...
29
+ async def async_call(self, hass: HomeAssistant, tool_input: llm.ToolInput, llm_context: llm.LLMContext) -> JsonObjectType: ...
30
+
31
+ class ModelContextProtocolCoordinator(DataUpdateCoordinator[list[llm.Tool]]):
32
+ config_entry: ConfigEntry
33
+ _session: ClientSession | None
34
+ _setup_error: Exception | None
35
+ _stop: Incomplete
36
+ def __init__(self, hass: HomeAssistant, config_entry: ConfigEntry) -> None: ...
37
+ async def _async_setup(self) -> None: ...
38
+ async def _connect(self, connected: asyncio.Event, stop: asyncio.Event) -> None: ...
39
+ async def close(self) -> None: ...
40
+ async def _async_update_data(self) -> list[llm.Tool]: ...
@@ -0,0 +1,4 @@
1
+ from .coordinator import ModelContextProtocolCoordinator as ModelContextProtocolCoordinator
2
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
3
+
4
+ type ModelContextProtocolConfigEntry = ConfigEntry[ModelContextProtocolCoordinator]
@@ -0,0 +1,13 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from .types import MCPServerConfigEntry
3
+ from _typeshed import Incomplete
4
+ from homeassistant.core import HomeAssistant
5
+ from homeassistant.helpers.typing import ConfigType
6
+
7
+ __all__ = ['CONFIG_SCHEMA', 'DOMAIN', 'async_setup', 'async_setup_entry', 'async_unload_entry']
8
+
9
+ CONFIG_SCHEMA: Incomplete
10
+
11
+ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
12
+ async def async_setup_entry(hass: HomeAssistant, entry: MCPServerConfigEntry) -> bool: ...
13
+ async def async_unload_entry(hass: HomeAssistant, entry: MCPServerConfigEntry) -> bool: ...
@@ -0,0 +1,14 @@
1
+ from .const import DOMAIN as DOMAIN, LLM_API as LLM_API, LLM_API_NAME as LLM_API_NAME
2
+ from _typeshed import Incomplete
3
+ from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
4
+ from homeassistant.const import CONF_LLM_HASS_API as CONF_LLM_HASS_API
5
+ from homeassistant.helpers import llm as llm
6
+ from homeassistant.helpers.selector import SelectOptionDict as SelectOptionDict, SelectSelector as SelectSelector, SelectSelectorConfig as SelectSelectorConfig
7
+ from typing import Any
8
+
9
+ _LOGGER: Incomplete
10
+ MORE_INFO_URL: str
11
+
12
+ class ModelContextServerProtocolConfigFlow(ConfigFlow, domain=DOMAIN):
13
+ VERSION: int
14
+ async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -0,0 +1,4 @@
1
+ DOMAIN: str
2
+ TITLE: str
3
+ LLM_API: str
4
+ LLM_API_NAME: str