homeassistant-stubs 2025.4.3__py3-none-any.whl → 2025.5.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 (402) hide show
  1. homeassistant-stubs/components/adax/__init__.pyi +5 -4
  2. homeassistant-stubs/components/adax/climate.pyi +25 -17
  3. homeassistant-stubs/components/adax/const.pyi +2 -0
  4. homeassistant-stubs/components/adax/coordinator.pyi +21 -0
  5. homeassistant-stubs/components/androidtv_remote/media_player.pyi +1 -1
  6. homeassistant-stubs/components/apcupsd/binary_sensor.pyi +1 -1
  7. homeassistant-stubs/components/apcupsd/coordinator.pyi +2 -0
  8. homeassistant-stubs/components/apcupsd/sensor.pyi +1 -1
  9. homeassistant-stubs/components/apsystems/coordinator.pyi +1 -0
  10. homeassistant-stubs/components/apsystems/switch.pyi +1 -1
  11. homeassistant-stubs/components/asuswrt/router.pyi +2 -3
  12. homeassistant-stubs/components/automation/__init__.pyi +2 -2
  13. homeassistant-stubs/components/automation/config.pyi +2 -2
  14. homeassistant-stubs/components/automation/const.pyi +0 -4
  15. homeassistant-stubs/components/axis/hub/api.pyi +2 -2
  16. homeassistant-stubs/components/backup/config.pyi +10 -2
  17. homeassistant-stubs/components/backup/onboarding.pyi +30 -0
  18. homeassistant-stubs/components/bluetooth/passive_update_processor.pyi +3 -0
  19. homeassistant-stubs/components/bluetooth/storage.pyi +1 -1
  20. homeassistant-stubs/components/bond/config_flow.pyi +3 -0
  21. homeassistant-stubs/components/bosch_alarm/__init__.pyi +1 -1
  22. homeassistant-stubs/components/bosch_alarm/alarm_control_panel.pyi +2 -11
  23. homeassistant-stubs/components/bosch_alarm/config_flow.pyi +5 -1
  24. homeassistant-stubs/components/bosch_alarm/diagnostics.pyi +11 -0
  25. homeassistant-stubs/components/bosch_alarm/entity.pyi +29 -0
  26. homeassistant-stubs/components/bosch_alarm/sensor.pyi +30 -0
  27. homeassistant-stubs/components/cambridge_audio/media_player.pyi +2 -0
  28. homeassistant-stubs/components/canary/__init__.pyi +1 -5
  29. homeassistant-stubs/components/canary/config_flow.pyi +0 -1
  30. homeassistant-stubs/components/cloud/const.pyi +1 -0
  31. homeassistant-stubs/components/cloud/http_api.pyi +1 -1
  32. homeassistant-stubs/components/cloud/onboarding.pyi +35 -0
  33. homeassistant-stubs/components/cloud/tts.pyi +4 -1
  34. homeassistant-stubs/components/comelit/__init__.pyi +1 -0
  35. homeassistant-stubs/components/comelit/alarm_control_panel.pyi +0 -1
  36. homeassistant-stubs/components/comelit/binary_sensor.pyi +0 -1
  37. homeassistant-stubs/components/comelit/climate.pyi +2 -7
  38. homeassistant-stubs/components/comelit/config_flow.pyi +1 -0
  39. homeassistant-stubs/components/comelit/coordinator.pyi +3 -2
  40. homeassistant-stubs/components/comelit/cover.pyi +2 -7
  41. homeassistant-stubs/components/comelit/entity.pyi +11 -0
  42. homeassistant-stubs/components/comelit/humidifier.pyi +2 -6
  43. homeassistant-stubs/components/comelit/light.pyi +2 -9
  44. homeassistant-stubs/components/comelit/sensor.pyi +2 -7
  45. homeassistant-stubs/components/comelit/switch.pyi +2 -6
  46. homeassistant-stubs/components/comelit/utils.pyi +5 -0
  47. homeassistant-stubs/components/command_line/__init__.pyi +1 -1
  48. homeassistant-stubs/components/command_line/binary_sensor.pyi +2 -2
  49. homeassistant-stubs/components/command_line/cover.pyi +2 -2
  50. homeassistant-stubs/components/command_line/sensor.pyi +2 -2
  51. homeassistant-stubs/components/command_line/switch.pyi +2 -2
  52. homeassistant-stubs/components/config/config_entries.pyi +3 -1
  53. homeassistant-stubs/components/demo/light.pyi +3 -2
  54. homeassistant-stubs/components/demo/media_player.pyi +4 -0
  55. homeassistant-stubs/components/device_tracker/config_entry.pyi +2 -2
  56. homeassistant-stubs/components/devolo_home_control/__init__.pyi +2 -2
  57. homeassistant-stubs/components/devolo_home_network/device_tracker.pyi +1 -2
  58. homeassistant-stubs/components/dhcp/__init__.pyi +6 -13
  59. homeassistant-stubs/components/dhcp/const.pyi +5 -0
  60. homeassistant-stubs/components/dhcp/helpers.pyi +8 -0
  61. homeassistant-stubs/components/dhcp/models.pyi +25 -0
  62. homeassistant-stubs/components/dhcp/websocket_api.pyi +13 -0
  63. homeassistant-stubs/components/ecovacs/image.pyi +1 -0
  64. homeassistant-stubs/components/eheimdigital/number.pyi +38 -0
  65. homeassistant-stubs/components/eheimdigital/sensor.pyi +32 -0
  66. homeassistant-stubs/components/eheimdigital/switch.pyi +26 -0
  67. homeassistant-stubs/components/eheimdigital/time.pyi +37 -0
  68. homeassistant-stubs/components/elevenlabs/tts.pyi +2 -2
  69. homeassistant-stubs/components/energy/sensor.pyi +5 -0
  70. homeassistant-stubs/components/enphase_envoy/config_flow.pyi +3 -1
  71. homeassistant-stubs/components/enphase_envoy/coordinator.pyi +12 -1
  72. homeassistant-stubs/components/esphome/__init__.pyi +5 -4
  73. homeassistant-stubs/components/esphome/alarm_control_panel.pyi +1 -0
  74. homeassistant-stubs/components/esphome/assist_satellite.pyi +7 -6
  75. homeassistant-stubs/components/esphome/binary_sensor.pyi +5 -13
  76. homeassistant-stubs/components/esphome/button.pyi +2 -0
  77. homeassistant-stubs/components/esphome/camera.pyi +2 -0
  78. homeassistant-stubs/components/esphome/climate.pyi +1 -0
  79. homeassistant-stubs/components/esphome/config_flow.pyi +26 -5
  80. homeassistant-stubs/components/esphome/const.pyi +2 -1
  81. homeassistant-stubs/components/esphome/coordinator.pyi +4 -3
  82. homeassistant-stubs/components/esphome/cover.pyi +2 -0
  83. homeassistant-stubs/components/esphome/dashboard.pyi +1 -1
  84. homeassistant-stubs/components/esphome/date.pyi +2 -0
  85. homeassistant-stubs/components/esphome/datetime.pyi +2 -0
  86. homeassistant-stubs/components/esphome/diagnostics.pyi +2 -0
  87. homeassistant-stubs/components/esphome/entity.pyi +12 -9
  88. homeassistant-stubs/components/esphome/event.pyi +2 -0
  89. homeassistant-stubs/components/esphome/fan.pyi +4 -3
  90. homeassistant-stubs/components/esphome/ffmpeg_proxy.pyi +10 -2
  91. homeassistant-stubs/components/esphome/light.pyi +8 -7
  92. homeassistant-stubs/components/esphome/lock.pyi +6 -4
  93. homeassistant-stubs/components/esphome/manager.pyi +7 -3
  94. homeassistant-stubs/components/esphome/media_player.pyi +2 -1
  95. homeassistant-stubs/components/esphome/number.pyi +1 -0
  96. homeassistant-stubs/components/esphome/repairs.pyi +21 -2
  97. homeassistant-stubs/components/esphome/select.pyi +3 -2
  98. homeassistant-stubs/components/esphome/sensor.pyi +4 -2
  99. homeassistant-stubs/components/esphome/switch.pyi +3 -1
  100. homeassistant-stubs/components/esphome/text.pyi +1 -0
  101. homeassistant-stubs/components/esphome/time.pyi +2 -0
  102. homeassistant-stubs/components/esphome/update.pyi +8 -9
  103. homeassistant-stubs/components/esphome/valve.pyi +3 -1
  104. homeassistant-stubs/components/fritz/binary_sensor.pyi +1 -0
  105. homeassistant-stubs/components/fritz/button.pyi +1 -0
  106. homeassistant-stubs/components/fritz/coordinator.pyi +3 -4
  107. homeassistant-stubs/components/fritz/device_tracker.pyi +1 -0
  108. homeassistant-stubs/components/fritz/image.pyi +1 -0
  109. homeassistant-stubs/components/fritz/sensor.pyi +1 -0
  110. homeassistant-stubs/components/fritz/switch.pyi +1 -0
  111. homeassistant-stubs/components/fritz/update.pyi +1 -0
  112. homeassistant-stubs/components/fritzbox/binary_sensor.pyi +2 -5
  113. homeassistant-stubs/components/fritzbox/climate.pyi +4 -3
  114. homeassistant-stubs/components/fritzbox/coordinator.pyi +1 -1
  115. homeassistant-stubs/components/fritzbox/sensor.pyi +3 -6
  116. homeassistant-stubs/components/heos/const.pyi +4 -0
  117. homeassistant-stubs/components/heos/media_player.pyi +5 -4
  118. homeassistant-stubs/components/heos/services.pyi +22 -2
  119. homeassistant-stubs/components/history/websocket_api.pyi +1 -1
  120. homeassistant-stubs/components/history_stats/data.pyi +2 -1
  121. homeassistant-stubs/components/home_connect/__init__.pyi +0 -1
  122. homeassistant-stubs/components/home_connect/binary_sensor.pyi +2 -13
  123. homeassistant-stubs/components/home_connect/coordinator.pyi +5 -0
  124. homeassistant-stubs/components/home_connect/repairs.pyi +10 -0
  125. homeassistant-stubs/components/home_connect/select.pyi +7 -3
  126. homeassistant-stubs/components/home_connect/sensor.pyi +5 -3
  127. homeassistant-stubs/components/homee/climate.pyi +47 -0
  128. homeassistant-stubs/components/homee/const.pyi +1 -0
  129. homeassistant-stubs/components/homee/number.pyi +12 -4
  130. homeassistant-stubs/components/homekit/__init__.pyi +5 -3
  131. homeassistant-stubs/components/homekit/accessories.pyi +2 -1
  132. homeassistant-stubs/components/homekit/const.pyi +13 -0
  133. homeassistant-stubs/components/homekit/type_air_purifiers.pyi +69 -0
  134. homeassistant-stubs/components/homekit/type_fans.pyi +7 -4
  135. homeassistant-stubs/components/homekit/type_media_players.pyi +2 -1
  136. homeassistant-stubs/components/homekit/type_switches.pyi +1 -1
  137. homeassistant-stubs/components/homekit/type_triggers.pyi +1 -1
  138. homeassistant-stubs/components/homekit/util.pyi +2 -1
  139. homeassistant-stubs/components/http/headers.pyi +6 -0
  140. homeassistant-stubs/components/huawei_lte/binary_sensor.pyi +3 -1
  141. homeassistant-stubs/components/huawei_lte/config_flow.pyi +1 -1
  142. homeassistant-stubs/components/huawei_lte/entity.pyi +0 -3
  143. homeassistant-stubs/components/husqvarna_automower/coordinator.pyi +1 -0
  144. homeassistant-stubs/components/husqvarna_automower/sensor.pyi +2 -1
  145. homeassistant-stubs/components/hyperion/__init__.pyi +12 -5
  146. homeassistant-stubs/components/hyperion/camera.pyi +3 -4
  147. homeassistant-stubs/components/hyperion/const.pyi +0 -3
  148. homeassistant-stubs/components/hyperion/light.pyi +4 -6
  149. homeassistant-stubs/components/hyperion/sensor.pyi +3 -4
  150. homeassistant-stubs/components/hyperion/switch.pyi +3 -4
  151. homeassistant-stubs/components/incomfort/climate.pyi +1 -2
  152. homeassistant-stubs/components/iron_os/__init__.pyi +1 -3
  153. homeassistant-stubs/components/iron_os/config_flow.pyi +3 -0
  154. homeassistant-stubs/components/iron_os/coordinator.pyi +4 -2
  155. homeassistant-stubs/components/iron_os/entity.pyi +2 -0
  156. homeassistant-stubs/components/iron_os/update.pyi +4 -2
  157. homeassistant-stubs/components/isy994/entity.pyi +1 -0
  158. homeassistant-stubs/components/isy994/services.pyi +1 -0
  159. homeassistant-stubs/components/isy994/switch.pyi +1 -1
  160. homeassistant-stubs/components/jewish_calendar/config_flow.pyi +1 -2
  161. homeassistant-stubs/components/jewish_calendar/const.pyi +1 -0
  162. homeassistant-stubs/components/jewish_calendar/entity.pyi +0 -1
  163. homeassistant-stubs/components/jewish_calendar/sensor.pyi +1 -0
  164. homeassistant-stubs/components/jewish_calendar/service.pyi +4 -3
  165. homeassistant-stubs/components/kulersky/__init__.pyi +14 -0
  166. homeassistant-stubs/components/kulersky/config_flow.pyi +17 -0
  167. homeassistant-stubs/components/kulersky/const.pyi +4 -0
  168. homeassistant-stubs/components/kulersky/light.pyi +34 -0
  169. homeassistant-stubs/components/lamarzocco/__init__.pyi +5 -3
  170. homeassistant-stubs/components/lamarzocco/binary_sensor.pyi +3 -7
  171. homeassistant-stubs/components/lamarzocco/calendar.pyi +3 -4
  172. homeassistant-stubs/components/lamarzocco/config_flow.pyi +5 -4
  173. homeassistant-stubs/components/lamarzocco/coordinator.pyi +16 -16
  174. homeassistant-stubs/components/lamarzocco/diagnostics.pyi +3 -8
  175. homeassistant-stubs/components/lamarzocco/entity.pyi +1 -6
  176. homeassistant-stubs/components/lamarzocco/number.pyi +4 -29
  177. homeassistant-stubs/components/lamarzocco/select.pyi +3 -8
  178. homeassistant-stubs/components/lamarzocco/sensor.pyi +11 -24
  179. homeassistant-stubs/components/lamarzocco/switch.pyi +6 -5
  180. homeassistant-stubs/components/lamarzocco/update.pyi +4 -1
  181. homeassistant-stubs/components/lcn/__init__.pyi +4 -3
  182. homeassistant-stubs/components/lcn/entity.pyi +3 -3
  183. homeassistant-stubs/components/lcn/helpers.pyi +2 -2
  184. homeassistant-stubs/components/lcn/websocket.pyi +1 -1
  185. homeassistant-stubs/components/linkplay/__init__.pyi +1 -1
  186. homeassistant-stubs/components/linkplay/const.pyi +8 -2
  187. homeassistant-stubs/components/linkplay/media_player.pyi +8 -4
  188. homeassistant-stubs/components/logbook/websocket_api.pyi +1 -1
  189. homeassistant-stubs/components/logger/__init__.pyi +1 -1
  190. homeassistant-stubs/components/logger/helpers.pyi +4 -2
  191. homeassistant-stubs/components/logger/websocket_api.pyi +1 -1
  192. homeassistant-stubs/components/matter/entity.pyi +1 -0
  193. homeassistant-stubs/components/matter/select.pyi +1 -1
  194. homeassistant-stubs/components/matter/sensor.pyi +3 -1
  195. homeassistant-stubs/components/matter/switch.pyi +20 -0
  196. homeassistant-stubs/components/matter/water_heater.pyi +39 -0
  197. homeassistant-stubs/components/mcp/application_credentials.pyi +12 -0
  198. homeassistant-stubs/components/mcp/config_flow.pyi +27 -6
  199. homeassistant-stubs/components/mcp/const.pyi +3 -0
  200. homeassistant-stubs/components/mcp/coordinator.pyi +8 -5
  201. homeassistant-stubs/components/media_player/__init__.pyi +7 -3
  202. homeassistant-stubs/components/media_player/browse_media.pyi +16 -1
  203. homeassistant-stubs/components/media_player/const.pyi +4 -0
  204. homeassistant-stubs/components/media_player/errors.pyi +1 -0
  205. homeassistant-stubs/components/media_source/error.pyi +1 -0
  206. homeassistant-stubs/components/met_eireann/__init__.pyi +2 -2
  207. homeassistant-stubs/components/met_eireann/weather.pyi +3 -3
  208. homeassistant-stubs/components/mjpeg/config_flow.pyi +2 -2
  209. homeassistant-stubs/components/motionmount/select.pyi +1 -1
  210. homeassistant-stubs/components/mqtt/config_flow.pyi +18 -4
  211. homeassistant-stubs/components/mqtt/const.pyi +3 -0
  212. homeassistant-stubs/components/mqtt/device_tracker.pyi +11 -14
  213. homeassistant-stubs/components/mqtt/entity.pyi +3 -0
  214. homeassistant-stubs/components/mqtt/light/schema_basic.pyi +1 -2
  215. homeassistant-stubs/components/mqtt/light/schema_json.pyi +3 -2
  216. homeassistant-stubs/components/music_assistant/media_browser.pyi +17 -2
  217. homeassistant-stubs/components/music_assistant/media_player.pyi +3 -2
  218. homeassistant-stubs/components/network/__init__.pyi +2 -0
  219. homeassistant-stubs/components/ntfy/__init__.pyi +16 -0
  220. homeassistant-stubs/components/ntfy/config_flow.pyi +29 -0
  221. homeassistant-stubs/components/ntfy/const.pyi +6 -0
  222. homeassistant-stubs/components/ntfy/diagnostics.pyi +7 -0
  223. homeassistant-stubs/components/ntfy/notify.pyi +25 -0
  224. homeassistant-stubs/components/nut/__init__.pyi +7 -3
  225. homeassistant-stubs/components/nut/config_flow.pyi +11 -14
  226. homeassistant-stubs/components/nut/const.pyi +0 -1
  227. homeassistant-stubs/components/nut/device_action.pyi +5 -1
  228. homeassistant-stubs/components/nut/sensor.pyi +6 -3
  229. homeassistant-stubs/components/ohme/__init__.pyi +15 -0
  230. homeassistant-stubs/components/ohme/button.pyi +26 -0
  231. homeassistant-stubs/components/ohme/config_flow.pyi +17 -0
  232. homeassistant-stubs/components/ohme/const.pyi +5 -0
  233. homeassistant-stubs/components/ohme/coordinator.pyi +44 -0
  234. homeassistant-stubs/components/ohme/diagnostics.pyi +5 -0
  235. homeassistant-stubs/components/ohme/entity.pyi +23 -0
  236. homeassistant-stubs/components/ohme/number.pyi +30 -0
  237. homeassistant-stubs/components/ohme/select.pyi +33 -0
  238. homeassistant-stubs/components/ohme/sensor.pyi +26 -0
  239. homeassistant-stubs/components/ohme/services.pyi +19 -0
  240. homeassistant-stubs/components/ohme/switch.pyi +45 -0
  241. homeassistant-stubs/components/ohme/time.pyi +30 -0
  242. homeassistant-stubs/components/onboarding/__init__.pyi +1 -0
  243. homeassistant-stubs/components/onboarding/views.pyi +29 -43
  244. homeassistant-stubs/components/oncue/__init__.pyi +5 -11
  245. homeassistant-stubs/components/oncue/config_flow.pyi +2 -13
  246. homeassistant-stubs/components/onewire/sensor.pyi +1 -2
  247. homeassistant-stubs/components/onkyo/config_flow.pyi +2 -3
  248. homeassistant-stubs/components/onkyo/const.pyi +0 -2
  249. homeassistant-stubs/components/onkyo/media_player.pyi +3 -14
  250. homeassistant-stubs/components/openai_conversation/config_flow.pyi +3 -3
  251. homeassistant-stubs/components/openai_conversation/const.pyi +1 -0
  252. homeassistant-stubs/components/openai_conversation/conversation.pyi +1 -1
  253. homeassistant-stubs/components/overkiz/climate/atlantic_electrical_heater_with_adjustable_temperature_setpoint.pyi +4 -1
  254. homeassistant-stubs/components/overkiz/climate/atlantic_electrical_towel_dryer.pyi +2 -1
  255. homeassistant-stubs/components/overkiz/config_flow.pyi +1 -7
  256. homeassistant-stubs/components/overkiz/entity.pyi +2 -1
  257. homeassistant-stubs/components/overkiz/number.pyi +1 -1
  258. homeassistant-stubs/components/overkiz/sensor.pyi +1 -1
  259. homeassistant-stubs/components/pegel_online/__init__.pyi +13 -0
  260. homeassistant-stubs/components/pegel_online/config_flow.pyi +15 -0
  261. homeassistant-stubs/components/pegel_online/const.pyi +6 -0
  262. homeassistant-stubs/components/pegel_online/coordinator.pyi +16 -0
  263. homeassistant-stubs/components/pegel_online/diagnostics.pyi +5 -0
  264. homeassistant-stubs/components/pegel_online/entity.pyi +12 -0
  265. homeassistant-stubs/components/pegel_online/sensor.pyi +28 -0
  266. homeassistant-stubs/components/powerwall/sensor.pyi +0 -1
  267. homeassistant-stubs/components/recorder/core.pyi +2 -0
  268. homeassistant-stubs/components/recorder/entity_registry.pyi +2 -1
  269. homeassistant-stubs/components/recorder/tasks.pyi +2 -1
  270. homeassistant-stubs/components/remote_calendar/calendar.pyi +2 -0
  271. homeassistant-stubs/components/remote_calendar/config_flow.pyi +1 -0
  272. homeassistant-stubs/components/remote_calendar/coordinator.pyi +1 -0
  273. homeassistant-stubs/components/remote_calendar/ics.pyi +10 -0
  274. homeassistant-stubs/components/renault/binary_sensor.pyi +8 -2
  275. homeassistant-stubs/components/renault/config_flow.pyi +2 -1
  276. homeassistant-stubs/components/renault/const.pyi +2 -1
  277. homeassistant-stubs/components/renault/coordinator.pyi +4 -1
  278. homeassistant-stubs/components/renault/entity.pyi +2 -0
  279. homeassistant-stubs/components/renault/renault_hub.pyi +5 -2
  280. homeassistant-stubs/components/renault/renault_vehicle.pyi +5 -2
  281. homeassistant-stubs/components/renault/services.pyi +5 -0
  282. homeassistant-stubs/components/rest/binary_sensor.pyi +2 -2
  283. homeassistant-stubs/components/rest/schema.pyi +1 -1
  284. homeassistant-stubs/components/rest/sensor.pyi +2 -2
  285. homeassistant-stubs/components/rest/switch.pyi +4 -3
  286. homeassistant-stubs/components/roborock/__init__.pyi +1 -0
  287. homeassistant-stubs/components/roborock/config_flow.pyi +1 -0
  288. homeassistant-stubs/components/samsungtv/__init__.pyi +6 -7
  289. homeassistant-stubs/components/samsungtv/config_flow.pyi +1 -1
  290. homeassistant-stubs/components/samsungtv/entity.pyi +3 -2
  291. homeassistant-stubs/components/samsungtv/media_player.pyi +1 -2
  292. homeassistant-stubs/components/samsungtv/remote.pyi +2 -2
  293. homeassistant-stubs/components/scrape/__init__.pyi +1 -1
  294. homeassistant-stubs/components/scrape/sensor.pyi +4 -5
  295. homeassistant-stubs/components/shelly/__init__.pyi +1 -0
  296. homeassistant-stubs/components/shelly/climate.pyi +2 -1
  297. homeassistant-stubs/components/shelly/const.pyi +2 -0
  298. homeassistant-stubs/components/shelly/coordinator.pyi +1 -0
  299. homeassistant-stubs/components/shelly/entity.pyi +5 -2
  300. homeassistant-stubs/components/shelly/number.pyi +4 -3
  301. homeassistant-stubs/components/shelly/repairs.pyi +19 -0
  302. homeassistant-stubs/components/shelly/select.pyi +3 -1
  303. homeassistant-stubs/components/shelly/text.pyi +4 -1
  304. homeassistant-stubs/components/shelly/utils.pyi +2 -3
  305. homeassistant-stubs/components/smlight/binary_sensor.pyi +1 -0
  306. homeassistant-stubs/components/smlight/button.pyi +1 -0
  307. homeassistant-stubs/components/smlight/sensor.pyi +2 -0
  308. homeassistant-stubs/components/smlight/switch.pyi +1 -0
  309. homeassistant-stubs/components/smlight/update.pyi +3 -1
  310. homeassistant-stubs/components/smtp/__init__.pyi +0 -0
  311. homeassistant-stubs/components/smtp/const.pyi +17 -0
  312. homeassistant-stubs/components/smtp/notify.pyi +47 -0
  313. homeassistant-stubs/components/sql/__init__.pyi +1 -1
  314. homeassistant-stubs/components/sql/sensor.pyi +4 -4
  315. homeassistant-stubs/components/ssdp/__init__.pyi +6 -96
  316. homeassistant-stubs/components/ssdp/common.pyi +5 -0
  317. homeassistant-stubs/components/ssdp/const.pyi +3 -0
  318. homeassistant-stubs/components/ssdp/scanner.pyi +75 -0
  319. homeassistant-stubs/components/ssdp/server.pyi +30 -0
  320. homeassistant-stubs/components/ssdp/websocket_api.pyi +16 -0
  321. homeassistant-stubs/components/switcher_kis/button.pyi +2 -1
  322. homeassistant-stubs/components/switcher_kis/climate.pyi +2 -4
  323. homeassistant-stubs/components/switcher_kis/config_flow.pyi +3 -2
  324. homeassistant-stubs/components/switcher_kis/cover.pyi +0 -2
  325. homeassistant-stubs/components/switcher_kis/entity.pyi +4 -0
  326. homeassistant-stubs/components/switcher_kis/light.pyi +3 -8
  327. homeassistant-stubs/components/switcher_kis/sensor.pyi +13 -6
  328. homeassistant-stubs/components/switcher_kis/switch.pyi +9 -15
  329. homeassistant-stubs/components/switcher_kis/utils.pyi +1 -1
  330. homeassistant-stubs/components/synology_dsm/common.pyi +3 -0
  331. homeassistant-stubs/components/synology_dsm/sensor.pyi +9 -1
  332. homeassistant-stubs/components/todo/__init__.pyi +1 -0
  333. homeassistant-stubs/components/tplink_omada/config_flow.pyi +1 -2
  334. homeassistant-stubs/components/tractive/__init__.pyi +1 -1
  335. homeassistant-stubs/components/tractive/binary_sensor.pyi +9 -3
  336. homeassistant-stubs/components/tractive/const.pyi +1 -0
  337. homeassistant-stubs/components/tractive/device_tracker.pyi +1 -1
  338. homeassistant-stubs/components/tts/__init__.pyi +22 -13
  339. homeassistant-stubs/components/tts/legacy.pyi +1 -0
  340. homeassistant-stubs/components/tts/media_source.pyi +5 -2
  341. homeassistant-stubs/components/unifi/hub/api.pyi +2 -2
  342. homeassistant-stubs/components/uptimerobot/__init__.pyi +4 -5
  343. homeassistant-stubs/components/uptimerobot/binary_sensor.pyi +4 -4
  344. homeassistant-stubs/components/uptimerobot/coordinator.pyi +3 -2
  345. homeassistant-stubs/components/uptimerobot/diagnostics.pyi +2 -4
  346. homeassistant-stubs/components/uptimerobot/entity.pyi +0 -2
  347. homeassistant-stubs/components/uptimerobot/sensor.pyi +3 -4
  348. homeassistant-stubs/components/uptimerobot/switch.pyi +5 -4
  349. homeassistant-stubs/components/vodafone_station/__init__.pyi +1 -1
  350. homeassistant-stubs/components/vodafone_station/config_flow.pyi +1 -0
  351. homeassistant-stubs/components/vodafone_station/coordinator.pyi +2 -1
  352. homeassistant-stubs/components/vodafone_station/utils.pyi +5 -0
  353. homeassistant-stubs/components/websocket_api/commands.pyi +3 -1
  354. homeassistant-stubs/components/websocket_api/http.pyi +4 -1
  355. homeassistant-stubs/components/wemo/__init__.pyi +1 -1
  356. homeassistant-stubs/components/wemo/coordinator.pyi +1 -1
  357. homeassistant-stubs/components/wemo/models.pyi +3 -4
  358. homeassistant-stubs/components/workday/config_flow.pyi +1 -1
  359. homeassistant-stubs/components/xiaomi_ble/const.pyi +2 -0
  360. homeassistant-stubs/components/xiaomi_ble/device_trigger.pyi +1 -1
  361. homeassistant-stubs/components/xiaomi_ble/sensor.pyi +2 -2
  362. homeassistant-stubs/components/zeroconf/__init__.pyi +6 -49
  363. homeassistant-stubs/components/zeroconf/const.pyi +3 -0
  364. homeassistant-stubs/components/zeroconf/discovery.pyi +63 -0
  365. homeassistant-stubs/components/zeroconf/websocket_api.pyi +40 -0
  366. homeassistant-stubs/components/zone/__init__.pyi +4 -1
  367. homeassistant-stubs/components/zwave_js/__init__.pyi +2 -2
  368. homeassistant-stubs/components/zwave_js/api.pyi +9 -3
  369. homeassistant-stubs/components/zwave_js/config_flow.pyi +42 -59
  370. homeassistant-stubs/components/zwave_js/helpers.pyi +2 -1
  371. homeassistant-stubs/config_entries.pyi +13 -9
  372. homeassistant-stubs/const.pyi +5 -0
  373. homeassistant-stubs/core.pyi +1 -3
  374. homeassistant-stubs/core_config.pyi +1 -1
  375. homeassistant-stubs/data_entry_flow.pyi +5 -1
  376. homeassistant-stubs/helpers/aiohttp_client.pyi +9 -1
  377. homeassistant-stubs/helpers/area_registry.pyi +5 -1
  378. homeassistant-stubs/helpers/config_entry_oauth2_flow.pyi +1 -1
  379. homeassistant-stubs/helpers/config_validation.pyi +1 -0
  380. homeassistant-stubs/helpers/device_registry.pyi +1 -3
  381. homeassistant-stubs/helpers/entity.pyi +1 -1
  382. homeassistant-stubs/helpers/entity_platform.pyi +3 -3
  383. homeassistant-stubs/helpers/entity_registry.pyi +6 -6
  384. homeassistant-stubs/helpers/event.pyi +2 -0
  385. homeassistant-stubs/helpers/floor_registry.pyi +12 -3
  386. homeassistant-stubs/helpers/llm.pyi +24 -1
  387. homeassistant-stubs/helpers/network.pyi +1 -1
  388. homeassistant-stubs/helpers/script.pyi +2 -1
  389. homeassistant-stubs/helpers/template.pyi +1 -0
  390. homeassistant-stubs/helpers/trigger_template_entity.pyi +17 -2
  391. homeassistant-stubs/loader.pyi +2 -11
  392. homeassistant-stubs/setup.pyi +7 -6
  393. homeassistant-stubs/util/ssl.pyi +2 -0
  394. {homeassistant_stubs-2025.4.3.dist-info → homeassistant_stubs-2025.5.0.dist-info}/METADATA +3 -3
  395. {homeassistant_stubs-2025.4.3.dist-info → homeassistant_stubs-2025.5.0.dist-info}/RECORD +397 -339
  396. homeassistant-stubs/components/oncue/binary_sensor.pyi +0 -16
  397. homeassistant-stubs/components/oncue/const.pyi +0 -6
  398. homeassistant-stubs/components/oncue/entity.pyi +0 -20
  399. homeassistant-stubs/components/oncue/sensor.pyi +0 -21
  400. homeassistant-stubs/components/oncue/types.pyi +0 -5
  401. {homeassistant_stubs-2025.4.3.dist-info → homeassistant_stubs-2025.5.0.dist-info}/WHEEL +0 -0
  402. {homeassistant_stubs-2025.4.3.dist-info → homeassistant_stubs-2025.5.0.dist-info}/licenses/LICENSE +0 -0
@@ -2,6 +2,7 @@ import aiohttp
2
2
  import socket
3
3
  from .frame import warn_use as warn_use
4
4
  from .json import json_dumps as json_dumps
5
+ from .singleton import singleton as singleton
5
6
  from _typeshed import Incomplete
6
7
  from aiohttp import web
7
8
  from aiohttp.typedefs import JSONDecoder as JSONDecoder
@@ -19,12 +20,17 @@ from typing import Any, Self
19
20
 
20
21
  DATA_CONNECTOR: HassKey[dict[tuple[bool, int, str], aiohttp.BaseConnector]]
21
22
  DATA_CLIENTSESSION: HassKey[dict[tuple[bool, int, str], aiohttp.ClientSession]]
23
+ DATA_RESOLVER: HassKey[HassAsyncDNSResolver]
22
24
  SERVER_SOFTWARE: Incomplete
23
25
  ENABLE_CLEANUP_CLOSED: Incomplete
24
26
  WARN_CLOSE_MSG: str
25
27
  MAXIMUM_CONNECTIONS: int
26
28
  MAXIMUM_CONNECTIONS_PER_HOST: int
27
29
 
30
+ class HassAsyncDNSResolver(AsyncDualMDNSResolver):
31
+ async def real_close(self) -> None: ...
32
+ async def close(self) -> None: ...
33
+
28
34
  class HassClientResponse(aiohttp.ClientResponse):
29
35
  async def json(self, *args: Any, loads: JSONDecoder = ..., **kwargs: Any) -> Any: ...
30
36
 
@@ -60,4 +66,6 @@ class HomeAssistantTCPConnector(aiohttp.TCPConnector):
60
66
  @callback
61
67
  def _async_get_connector(hass: HomeAssistant, verify_ssl: bool = True, family: socket.AddressFamily = ..., ssl_cipher: ssl_util.SSLCipherList = ...) -> aiohttp.BaseConnector: ...
62
68
  @callback
63
- def _async_make_resolver(hass: HomeAssistant) -> AsyncDualMDNSResolver: ...
69
+ def _async_get_or_create_resolver(hass: HomeAssistant) -> HassAsyncDNSResolver: ...
70
+ @callback
71
+ def _async_make_resolver(hass: HomeAssistant) -> HassAsyncDNSResolver: ...
@@ -1,5 +1,5 @@
1
1
  from .json import json_bytes as json_bytes, json_fragment as json_fragment
2
- from .normalized_name_base_registry import NormalizedNameBaseRegistryEntry as NormalizedNameBaseRegistryEntry, NormalizedNameBaseRegistryItems as NormalizedNameBaseRegistryItems
2
+ from .normalized_name_base_registry import NormalizedNameBaseRegistryEntry as NormalizedNameBaseRegistryEntry, NormalizedNameBaseRegistryItems as NormalizedNameBaseRegistryItems, normalize_name as normalize_name
3
3
  from .registry import BaseRegistry as BaseRegistry, RegistryIndexType as RegistryIndexType
4
4
  from .singleton import singleton as singleton
5
5
  from .storage import Store as Store
@@ -61,11 +61,13 @@ class AreaRegistryStore(Store[AreasRegistryStoreData]):
61
61
  class AreaRegistryItems(NormalizedNameBaseRegistryItems[AreaEntry]):
62
62
  _labels_index: RegistryIndexType
63
63
  _floors_index: RegistryIndexType
64
+ _aliases_index: RegistryIndexType
64
65
  def __init__(self) -> None: ...
65
66
  def _index_entry(self, key: str, entry: AreaEntry) -> None: ...
66
67
  def _unindex_entry(self, key: str, replacement_entry: AreaEntry | None = None) -> None: ...
67
68
  def get_areas_for_label(self, label: str) -> list[AreaEntry]: ...
68
69
  def get_areas_for_floor(self, floor: str) -> list[AreaEntry]: ...
70
+ def get_areas_for_alias(self, alias: str) -> list[AreaEntry]: ...
69
71
 
70
72
  class AreaRegistry(BaseRegistry[AreasRegistryStoreData]):
71
73
  areas: AreaRegistryItems
@@ -78,6 +80,8 @@ class AreaRegistry(BaseRegistry[AreasRegistryStoreData]):
78
80
  @callback
79
81
  def async_get_area_by_name(self, name: str) -> AreaEntry | None: ...
80
82
  @callback
83
+ def async_get_areas_by_alias(self, alias: str) -> list[AreaEntry]: ...
84
+ @callback
81
85
  def async_list_areas(self) -> Iterable[AreaEntry]: ...
82
86
  @callback
83
87
  def async_get_or_create(self, name: str) -> AreaEntry: ...
@@ -1,5 +1,6 @@
1
1
  import abc
2
2
  import logging
3
+ from . import http as http
3
4
  from .aiohttp_client import async_get_clientsession as async_get_clientsession
4
5
  from .network import NoURLAvailableError as NoURLAvailableError
5
6
  from _typeshed import Incomplete
@@ -7,7 +8,6 @@ from abc import ABC, ABCMeta, abstractmethod
7
8
  from aiohttp import client as client, web
8
9
  from collections.abc import Awaitable, Callable as Callable
9
10
  from homeassistant import config_entries as config_entries
10
- from homeassistant.components import http as http
11
11
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
12
12
  from homeassistant.loader import async_get_application_credentials as async_get_application_credentials
13
13
  from homeassistant.util.hass_dict import HassKey as HassKey
@@ -145,6 +145,7 @@ class multi_select:
145
145
  def _deprecated_or_removed(key: str, replacement_key: str | None, default: Any | None, raise_if_present: bool, option_removed: bool) -> Callable[[dict], dict]: ...
146
146
  def deprecated(key: str, replacement_key: str | None = None, default: Any | None = None, raise_if_present: bool | None = False) -> Callable[[dict], dict]: ...
147
147
  def removed(key: str, default: Any | None = None, raise_if_present: bool | None = True) -> Callable[[dict], dict]: ...
148
+ def renamed(old_key: str, new_key: str) -> Callable[[Any], Any]: ...
148
149
  def key_value_schemas(key: str, value_schemas: dict[Hashable, VolSchemaType | Callable[[Any], dict[str, Any]]], default_schema: VolSchemaType | None = None, default_description: str | None = None) -> Callable[[Any], dict[Hashable, Any]]: ...
149
150
  def key_dependency[_KT: Hashable, _VT](key: Hashable, dependency: Hashable) -> Callable[[dict[_KT, _VT]], dict[_KT, _VT]]: ...
150
151
  def custom_serializer(schema: Any) -> Any: ...
@@ -170,7 +170,7 @@ class DeviceRegistryItems[_EntryTypeT: (DeviceEntry, DeletedDeviceEntry)](BaseRe
170
170
  def __init__(self) -> None: ...
171
171
  def _index_entry(self, key: str, entry: _EntryTypeT) -> None: ...
172
172
  def _unindex_entry(self, key: str, replacement_entry: _EntryTypeT | None = None) -> None: ...
173
- def get_entry(self, identifiers: set[tuple[str, str]] | None, connections: set[tuple[str, str]] | None) -> _EntryTypeT | None: ...
173
+ def get_entry(self, identifiers: set[tuple[str, str]] | None = None, connections: set[tuple[str, str]] | None = None) -> _EntryTypeT | None: ...
174
174
  def get_entries(self, identifiers: set[tuple[str, str]] | None, connections: set[tuple[str, str]] | None) -> Iterable[_EntryTypeT]: ...
175
175
 
176
176
  class ActiveDeviceRegistryItems(DeviceRegistryItems[DeviceEntry]):
@@ -195,8 +195,6 @@ class DeviceRegistry(BaseRegistry[dict[str, list[dict[str, Any]]]]):
195
195
  def async_get(self, device_id: str) -> DeviceEntry | None: ...
196
196
  @callback
197
197
  def async_get_device(self, identifiers: set[tuple[str, str]] | None = None, connections: set[tuple[str, str]] | None = None) -> DeviceEntry | None: ...
198
- def _async_get_deleted_device(self, identifiers: set[tuple[str, str]], connections: set[tuple[str, str]]) -> DeletedDeviceEntry | None: ...
199
- def _async_get_deleted_devices(self, identifiers: set[tuple[str, str]] | None = None, connections: set[tuple[str, str]] | None = None) -> Iterable[DeletedDeviceEntry]: ...
200
198
  def _substitute_name_placeholders(self, domain: str, name: str, translation_placeholders: Mapping[str, str]) -> str: ...
201
199
  @callback
202
200
  def async_get_or_create(self, *, config_entry_id: str, config_subentry_id: str | None | UndefinedType = ..., configuration_url: str | URL | None | UndefinedType = ..., connections: set[tuple[str, str]] | None | UndefinedType = ..., created_at: str | datetime | UndefinedType = ..., default_manufacturer: str | None | UndefinedType = ..., default_model: str | None | UndefinedType = ..., default_name: str | None | UndefinedType = ..., disabled_by: DeviceEntryDisabler | None | UndefinedType = ..., entry_type: DeviceEntryType | None | UndefinedType = ..., hw_version: str | None | UndefinedType = ..., identifiers: set[tuple[str, str]] | None | UndefinedType = ..., manufacturer: str | None | UndefinedType = ..., model: str | None | UndefinedType = ..., model_id: str | None | UndefinedType = ..., modified_at: str | datetime | UndefinedType = ..., name: str | None | UndefinedType = ..., serial_number: str | None | UndefinedType = ..., suggested_area: str | None | UndefinedType = ..., sw_version: str | None | UndefinedType = ..., translation_key: str | None = None, translation_placeholders: Mapping[str, str] | None = None, via_device: tuple[str, str] | None | UndefinedType = ...) -> DeviceEntry: ...
@@ -15,7 +15,7 @@ from enum import Enum, IntFlag
15
15
  from homeassistant.const import ATTR_ASSUMED_STATE as ATTR_ASSUMED_STATE, ATTR_ATTRIBUTION as ATTR_ATTRIBUTION, ATTR_DEVICE_CLASS as ATTR_DEVICE_CLASS, ATTR_ENTITY_PICTURE as ATTR_ENTITY_PICTURE, ATTR_FRIENDLY_NAME as ATTR_FRIENDLY_NAME, ATTR_ICON as ATTR_ICON, ATTR_SUPPORTED_FEATURES as ATTR_SUPPORTED_FEATURES, ATTR_UNIT_OF_MEASUREMENT as ATTR_UNIT_OF_MEASUREMENT, DEVICE_DEFAULT_NAME as DEVICE_DEFAULT_NAME, EntityCategory as EntityCategory, STATE_OFF as STATE_OFF, STATE_ON as STATE_ON, STATE_UNAVAILABLE as STATE_UNAVAILABLE, STATE_UNKNOWN as STATE_UNKNOWN
16
16
  from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, Context as Context, Event as Event, HassJobType as HassJobType, HomeAssistant as HomeAssistant, ReleaseChannel as ReleaseChannel, callback as callback, get_hassjob_callable_job_type as get_hassjob_callable_job_type, get_release_channel as get_release_channel
17
17
  from homeassistant.core_config import DATA_CUSTOMIZE as DATA_CUSTOMIZE
18
- from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, InvalidStateError as InvalidStateError, NoEntitySpecifiedError as NoEntitySpecifiedError
18
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, NoEntitySpecifiedError as NoEntitySpecifiedError
19
19
  from homeassistant.loader import async_suggest_report_issue as async_suggest_report_issue, bind_hass as bind_hass
20
20
  from homeassistant.util import ensure_unique_string as ensure_unique_string, slugify as slugify
21
21
  from homeassistant.util.frozen_dataclass_compat import FrozenOrThawed as FrozenOrThawed
@@ -6,7 +6,7 @@ from .event import async_call_later as async_call_later
6
6
  from .issue_registry import IssueSeverity as IssueSeverity, async_create_issue as async_create_issue
7
7
  from .typing import ConfigType as ConfigType, DiscoveryInfoType as DiscoveryInfoType, UNDEFINED as UNDEFINED, VolDictType as VolDictType, VolSchemaType as VolSchemaType
8
8
  from _typeshed import Incomplete
9
- from collections.abc import Awaitable, Callable as Callable, Coroutine, Iterable
9
+ from collections.abc import Awaitable, Callable as Callable, Iterable
10
10
  from contextvars import ContextVar
11
11
  from datetime import timedelta
12
12
  from homeassistant import config_entries as config_entries
@@ -87,8 +87,8 @@ class EntityPlatform:
87
87
  @callback
88
88
  def _async_schedule_add_entities_for_entry(self, new_entities: Iterable[Entity], update_before_add: bool = False, *, config_subentry_id: str | None = None) -> None: ...
89
89
  def add_entities(self, new_entities: Iterable[Entity], update_before_add: bool = False) -> None: ...
90
- async def _async_add_and_update_entities(self, coros: list[Coroutine[Any, Any, None]], entities: list[Entity], timeout: float) -> None: ...
91
- async def _async_add_entities(self, coros: list[Coroutine[Any, Any, None]], entities: list[Entity], timeout: float) -> None: ...
90
+ async def _async_add_and_update_entities(self, entities: list[Entity], timeout: float, config_subentry_id: str | None) -> None: ...
91
+ async def _async_add_entities(self, entities: list[Entity], timeout: float, config_subentry_id: str | None) -> None: ...
92
92
  async def async_add_entities(self, new_entities: Iterable[Entity], update_before_add: bool = False, *, config_subentry_id: str | None = None) -> None: ...
93
93
  @callback
94
94
  def _async_handle_interval_callback(self) -> None: ...
@@ -5,7 +5,7 @@ from .registry import BaseRegistry as BaseRegistry, BaseRegistryItems as BaseReg
5
5
  from .singleton import singleton as singleton
6
6
  from .typing import UNDEFINED as UNDEFINED, UndefinedType as UndefinedType
7
7
  from _typeshed import Incomplete
8
- from collections.abc import Callable as Callable, Container, Hashable, KeysView, Mapping
8
+ from collections.abc import Callable as Callable, Hashable, KeysView, Mapping
9
9
  from datetime import datetime
10
10
  from enum import StrEnum
11
11
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
@@ -79,10 +79,10 @@ class RegistryEntry:
79
79
  domain: str
80
80
  disabled_by: RegistryEntryDisabler | None
81
81
  entity_category: EntityCategory | None
82
+ has_entity_name: bool
82
83
  hidden_by: RegistryEntryHider | None
83
84
  icon: str | None
84
85
  id: str
85
- has_entity_name: bool
86
86
  labels: set[str]
87
87
  modified_at: datetime
88
88
  name: str | None
@@ -114,7 +114,7 @@ class RegistryEntry:
114
114
  def as_storage_fragment(self) -> json_fragment: ...
115
115
  @callback
116
116
  def write_unavailable_state(self, hass: HomeAssistant) -> None: ...
117
- def __init__(self, entity_id, unique_id, platform, previous_unique_id, aliases, area_id, categories, capabilities, config_entry_id, config_subentry_id, created_at, device_class, device_id, domain, disabled_by, entity_category, hidden_by, icon, id, has_entity_name, labels, modified_at, name, options, original_device_class, original_icon, original_name, supported_features, translation_key, unit_of_measurement, cache) -> None: ...
117
+ def __init__(self, entity_id, unique_id, platform, previous_unique_id, aliases, area_id, categories, capabilities, config_entry_id, config_subentry_id, created_at, device_class, device_id, domain, disabled_by, entity_category, has_entity_name, hidden_by, icon, id, labels, modified_at, name, options, original_device_class, original_icon, original_name, supported_features, translation_key, unit_of_measurement, cache) -> None: ...
118
118
  def __lt__(self, other): ...
119
119
  def __le__(self, other): ...
120
120
  def __gt__(self, other): ...
@@ -180,11 +180,11 @@ class EntityRegistry(BaseRegistry):
180
180
  def async_get_entity_id(self, domain: str, platform: str, unique_id: str) -> str | None: ...
181
181
  @callback
182
182
  def async_device_ids(self) -> list[str]: ...
183
- def _entity_id_available(self, entity_id: str, known_object_ids: Container[str] | None) -> bool: ...
183
+ def _entity_id_available(self, entity_id: str) -> bool: ...
184
184
  @callback
185
- def async_generate_entity_id(self, domain: str, suggested_object_id: str, known_object_ids: Container[str] | None = None) -> str: ...
185
+ def async_generate_entity_id(self, domain: str, suggested_object_id: str) -> str: ...
186
186
  @callback
187
- def async_get_or_create(self, domain: str, platform: str, unique_id: str, *, known_object_ids: Container[str] | None = None, suggested_object_id: str | None = None, disabled_by: RegistryEntryDisabler | None = None, hidden_by: RegistryEntryHider | None = None, get_initial_options: Callable[[], EntityOptionsType | None] | None = None, capabilities: Mapping[str, Any] | None | UndefinedType = ..., config_entry: ConfigEntry | None | UndefinedType = ..., config_subentry_id: str | None | UndefinedType = ..., device_id: str | None | UndefinedType = ..., entity_category: EntityCategory | UndefinedType | None = ..., has_entity_name: bool | UndefinedType = ..., original_device_class: str | None | UndefinedType = ..., original_icon: str | None | UndefinedType = ..., original_name: str | None | UndefinedType = ..., supported_features: int | None | UndefinedType = ..., translation_key: str | None | UndefinedType = ..., unit_of_measurement: str | None | UndefinedType = ...) -> RegistryEntry: ...
187
+ def async_get_or_create(self, domain: str, platform: str, unique_id: str, *, suggested_object_id: str | None = None, disabled_by: RegistryEntryDisabler | None = None, hidden_by: RegistryEntryHider | None = None, get_initial_options: Callable[[], EntityOptionsType | None] | None = None, capabilities: Mapping[str, Any] | None | UndefinedType = ..., config_entry: ConfigEntry | None | UndefinedType = ..., config_subentry_id: str | None | UndefinedType = ..., device_id: str | None | UndefinedType = ..., entity_category: EntityCategory | UndefinedType | None = ..., has_entity_name: bool | UndefinedType = ..., original_device_class: str | None | UndefinedType = ..., original_icon: str | None | UndefinedType = ..., original_name: str | None | UndefinedType = ..., supported_features: int | None | UndefinedType = ..., translation_key: str | None | UndefinedType = ..., unit_of_measurement: str | None | UndefinedType = ...) -> RegistryEntry: ...
188
188
  @callback
189
189
  def async_remove(self, entity_id: str) -> None: ...
190
190
  @callback
@@ -105,6 +105,8 @@ _KEYED_TRACK_ENTITY_REGISTRY_UPDATED: Incomplete
105
105
  @callback
106
106
  def async_track_entity_registry_updated_event(hass: HomeAssistant, entity_ids: str | Iterable[str], action: Callable[[Event[EventEntityRegistryUpdatedData]], Any], job_type: HassJobType | None = None) -> CALLBACK_TYPE: ...
107
107
  @callback
108
+ def async_has_entity_registry_updated_listeners(hass: HomeAssistant) -> bool: ...
109
+ @callback
108
110
  def _async_device_registry_updated_filter(hass: HomeAssistant, callbacks: dict[str, list[HassJob[[Event[EventDeviceRegistryUpdatedData]], Any]]], event_data: EventDeviceRegistryUpdatedData) -> bool: ...
109
111
  @callback
110
112
  def _async_dispatch_device_id_event(hass: HomeAssistant, callbacks: dict[str, list[HassJob[[Event[EventDeviceRegistryUpdatedData]], Any]]], event: Event[EventDeviceRegistryUpdatedData]) -> None: ...
@@ -1,5 +1,5 @@
1
- from .normalized_name_base_registry import NormalizedNameBaseRegistryEntry as NormalizedNameBaseRegistryEntry, NormalizedNameBaseRegistryItems as NormalizedNameBaseRegistryItems
2
- from .registry import BaseRegistry as BaseRegistry
1
+ from .normalized_name_base_registry import NormalizedNameBaseRegistryEntry as NormalizedNameBaseRegistryEntry, NormalizedNameBaseRegistryItems as NormalizedNameBaseRegistryItems, normalize_name as normalize_name
2
+ from .registry import BaseRegistry as BaseRegistry, RegistryIndexType as RegistryIndexType
3
3
  from .singleton import singleton as singleton
4
4
  from .storage import Store as Store
5
5
  from .typing import UNDEFINED as UNDEFINED, UndefinedType as UndefinedType
@@ -45,8 +45,15 @@ class FloorEntry(NormalizedNameBaseRegistryEntry):
45
45
  class FloorRegistryStore(Store[FloorRegistryStoreData]):
46
46
  async def _async_migrate_func(self, old_major_version: int, old_minor_version: int, old_data: dict[str, list[dict[str, Any]]]) -> FloorRegistryStoreData: ...
47
47
 
48
+ class FloorRegistryItems(NormalizedNameBaseRegistryItems[FloorEntry]):
49
+ _aliases_index: RegistryIndexType
50
+ def __init__(self) -> None: ...
51
+ def _index_entry(self, key: str, entry: FloorEntry) -> None: ...
52
+ def _unindex_entry(self, key: str, replacement_entry: FloorEntry | None = None) -> None: ...
53
+ def get_floors_for_alias(self, alias: str) -> list[FloorEntry]: ...
54
+
48
55
  class FloorRegistry(BaseRegistry[FloorRegistryStoreData]):
49
- floors: NormalizedNameBaseRegistryItems[FloorEntry]
56
+ floors: FloorRegistryItems
50
57
  _floor_data: dict[str, FloorEntry]
51
58
  hass: Incomplete
52
59
  _store: Incomplete
@@ -56,6 +63,8 @@ class FloorRegistry(BaseRegistry[FloorRegistryStoreData]):
56
63
  @callback
57
64
  def async_get_floor_by_name(self, name: str) -> FloorEntry | None: ...
58
65
  @callback
66
+ def async_get_floors_by_alias(self, alias: str) -> list[FloorEntry]: ...
67
+ @callback
59
68
  def async_list_floors(self) -> Iterable[FloorEntry]: ...
60
69
  def _generate_id(self, name: str) -> str: ...
61
70
  @callback
@@ -10,6 +10,7 @@ from homeassistant.components.calendar import SERVICE_GET_EVENTS as SERVICE_GET_
10
10
  from homeassistant.components.cover import INTENT_CLOSE_COVER as INTENT_CLOSE_COVER, INTENT_OPEN_COVER as INTENT_OPEN_COVER
11
11
  from homeassistant.components.homeassistant import async_should_expose as async_should_expose
12
12
  from homeassistant.components.intent import async_device_supports_timers as async_device_supports_timers
13
+ from homeassistant.components.todo import TodoServices as TodoServices
13
14
  from homeassistant.components.weather import INTENT_GET_WEATHER as INTENT_GET_WEATHER
14
15
  from homeassistant.const import ATTR_DOMAIN as ATTR_DOMAIN, ATTR_SERVICE as ATTR_SERVICE, EVENT_HOMEASSISTANT_CLOSE as EVENT_HOMEASSISTANT_CLOSE, EVENT_SERVICE_REMOVED as EVENT_SERVICE_REMOVED
15
16
  from homeassistant.core import Context as Context, Event as Event, HomeAssistant as HomeAssistant, callback as callback, split_entity_id as split_entity_id
@@ -32,7 +33,7 @@ def async_render_no_api_prompt(hass: HomeAssistant) -> str: ...
32
33
  def _async_get_apis(hass: HomeAssistant) -> dict[str, API]: ...
33
34
  @callback
34
35
  def async_register_api(hass: HomeAssistant, api: API) -> Callable[[], None]: ...
35
- async def async_get_api(hass: HomeAssistant, api_id: str, llm_context: LLMContext) -> APIInstance: ...
36
+ async def async_get_api(hass: HomeAssistant, api_id: str | list[str], llm_context: LLMContext) -> APIInstance: ...
36
37
  @callback
37
38
  def async_get_apis(hass: HomeAssistant) -> list[API]: ...
38
39
 
@@ -84,6 +85,21 @@ class IntentTool(Tool):
84
85
  def __init__(self, name: str, intent_handler: intent.IntentHandler) -> None: ...
85
86
  async def async_call(self, hass: HomeAssistant, tool_input: ToolInput, llm_context: LLMContext) -> JsonObjectType: ...
86
87
 
88
+ class NamespacedTool(Tool):
89
+ namespace: Incomplete
90
+ name: Incomplete
91
+ description: Incomplete
92
+ parameters: Incomplete
93
+ tool: Incomplete
94
+ def __init__(self, namespace: str, tool: Tool) -> None: ...
95
+ async def async_call(self, hass: HomeAssistant, tool_input: ToolInput, llm_context: LLMContext) -> JsonObjectType: ...
96
+
97
+ class MergedAPI(API):
98
+ llm_apis: Incomplete
99
+ def __init__(self, llm_apis: list[API]) -> None: ...
100
+ async def async_get_api_instance(self, llm_context: LLMContext) -> APIInstance: ...
101
+ def _custom_serializer(self, llm_apis: list[APIInstance]) -> Callable[[Any], Any] | None: ...
102
+
87
103
  class AssistAPI(API):
88
104
  IGNORE_INTENTS: Incomplete
89
105
  cached_slugify: Incomplete
@@ -120,6 +136,13 @@ class CalendarGetEventsTool(Tool):
120
136
  def __init__(self, calendars: list[str]) -> None: ...
121
137
  async def async_call(self, hass: HomeAssistant, tool_input: ToolInput, llm_context: LLMContext) -> JsonObjectType: ...
122
138
 
139
+ class TodoGetItemsTool(Tool):
140
+ name: str
141
+ description: str
142
+ parameters: Incomplete
143
+ def __init__(self, todo_lists: list[str]) -> None: ...
144
+ async def async_call(self, hass: HomeAssistant, tool_input: ToolInput, llm_context: LLMContext) -> JsonObjectType: ...
145
+
123
146
  class GetLiveContextTool(Tool):
124
147
  name: str
125
148
  description: str
@@ -1,6 +1,6 @@
1
+ from . import http as http
1
2
  from .hassio import is_hassio as is_hassio
2
3
  from collections.abc import Callable as Callable
3
- from homeassistant.components import http as http
4
4
  from homeassistant.core import HomeAssistant as HomeAssistant
5
5
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
6
6
  from homeassistant.loader import bind_hass as bind_hass
@@ -171,6 +171,7 @@ class Script:
171
171
  name: Incomplete
172
172
  unique_id: Incomplete
173
173
  domain: Incomplete
174
+ enabled: Incomplete
174
175
  running_description: Incomplete
175
176
  _change_listener: Incomplete
176
177
  _change_listener_job: Incomplete
@@ -189,7 +190,7 @@ class Script:
189
190
  _parallel_scripts: dict[int, list[Script]]
190
191
  _sequence_scripts: dict[int, Script]
191
192
  variables: Incomplete
192
- def __init__(self, hass: HomeAssistant, sequence: Sequence[dict[str, Any]], name: str, domain: str, *, change_listener: Callable[[], Any] | None = None, log_exceptions: bool = True, logger: logging.Logger | None = None, max_exceeded: str = ..., max_runs: int = ..., running_description: str | None = None, script_mode: str = ..., top_level: bool = True, variables: ScriptVariables | None = None) -> None: ...
193
+ def __init__(self, hass: HomeAssistant, sequence: Sequence[dict[str, Any]], name: str, domain: str, *, change_listener: Callable[[], Any] | None = None, log_exceptions: bool = True, logger: logging.Logger | None = None, max_exceeded: str = ..., max_runs: int = ..., running_description: str | None = None, script_mode: str = ..., top_level: bool = True, variables: ScriptVariables | None = None, enabled: bool = True) -> None: ...
193
194
  @property
194
195
  def change_listener(self) -> Callable[..., Any] | None: ...
195
196
  @change_listener.setter
@@ -246,6 +246,7 @@ def device_entities(hass: HomeAssistant, _device_id: str) -> Iterable[str]: ...
246
246
  def integration_entities(hass: HomeAssistant, entry_name: str) -> Iterable[str]: ...
247
247
  def config_entry_id(hass: HomeAssistant, entity_id: str) -> str | None: ...
248
248
  def device_id(hass: HomeAssistant, entity_id_or_device_name: str) -> str | None: ...
249
+ def device_name(hass: HomeAssistant, lookup_value: str) -> str | None: ...
249
250
  def device_attr(hass: HomeAssistant, device_or_entity_id: str, attr_name: str) -> Any: ...
250
251
  def config_entry_attr(hass: HomeAssistant, config_entry_id_: str, attr_name: str) -> Any: ...
251
252
  def is_device_attr(hass: HomeAssistant, device_or_entity_id: str, attr_name: str, attr_value: Any) -> bool: ...
@@ -1,6 +1,6 @@
1
1
  import voluptuous as vol
2
2
  from .entity import Entity as Entity
3
- from .template import TemplateStateFromEntityId as TemplateStateFromEntityId, render_complex as render_complex
3
+ from .template import Template as Template, TemplateStateFromEntityId as TemplateStateFromEntityId, _SENTINEL as _SENTINEL, _render_with_context as _render_with_context, render_complex as render_complex, result_as_boolean as result_as_boolean
4
4
  from .typing import ConfigType as ConfigType
5
5
  from _typeshed import Incomplete
6
6
  from homeassistant.components.sensor import CONF_STATE_CLASS as CONF_STATE_CLASS, DEVICE_CLASSES_SCHEMA as DEVICE_CLASSES_SCHEMA, STATE_CLASSES_SCHEMA as STATE_CLASSES_SCHEMA, SensorEntity as SensorEntity
@@ -17,9 +17,16 @@ CONF_TO_ATTRIBUTE: Incomplete
17
17
  TEMPLATE_ENTITY_BASE_SCHEMA: Incomplete
18
18
 
19
19
  def make_template_entity_base_schema(default_name: str) -> vol.Schema: ...
20
+ def log_triggered_template_error(entity_id: str, err: TemplateError, key: str | None = None, attribute: str | None = None) -> None: ...
20
21
 
21
22
  TEMPLATE_SENSOR_BASE_SCHEMA: Incomplete
22
23
 
24
+ class ValueTemplate(Template):
25
+ @classmethod
26
+ def from_template(cls, template: Template) -> ValueTemplate: ...
27
+ @callback
28
+ def async_render_as_value_template(self, entity_id: str, variables: dict[str, Any], error_value: Any) -> Any: ...
29
+
23
30
  class TriggerBaseEntity(Entity):
24
31
  domain: str
25
32
  extra_template_keys: tuple[str, ...] | None
@@ -33,6 +40,8 @@ class TriggerBaseEntity(Entity):
33
40
  _rendered: Incomplete
34
41
  _parse_result: Incomplete
35
42
  _attr_device_class: Incomplete
43
+ _availability_template: Incomplete
44
+ _available: bool
36
45
  def __init__(self, hass: HomeAssistant, config: ConfigType) -> None: ...
37
46
  @property
38
47
  def name(self) -> str | None: ...
@@ -48,12 +57,18 @@ class TriggerBaseEntity(Entity):
48
57
  def extra_state_attributes(self) -> dict[str, Any] | None: ...
49
58
  def _set_unique_id(self, unique_id: str | None) -> None: ...
50
59
  def restore_attributes(self, last_state: State) -> None: ...
60
+ def _template_variables(self, run_variables: dict[str, Any] | None = None) -> dict: ...
61
+ def _render_single_template(self, key: str, variables: dict[str, Any], strict: bool = False) -> Any: ...
62
+ def _render_availability_template(self, variables: dict[str, Any]) -> bool: ...
63
+ def _render_attributes(self, rendered: dict, variables: dict[str, Any]) -> None: ...
64
+ def _render_single_templates(self, rendered: dict, variables: dict[str, Any], filtered: list[str] | None = None) -> None: ...
51
65
  def _render_templates(self, variables: dict[str, Any]) -> None: ...
52
66
 
53
67
  class ManualTriggerEntity(TriggerBaseEntity):
54
68
  def __init__(self, hass: HomeAssistant, config: ConfigType) -> None: ...
69
+ def _template_variables_with_value(self, value: str | None = None) -> dict[str, Any]: ...
55
70
  @callback
56
- def _process_manual_data(self, value: Any | None = None) -> None: ...
71
+ def _process_manual_data(self, variables: dict[str, Any]) -> None: ...
57
72
 
58
73
  class ManualTriggerSensorEntity(ManualTriggerEntity, SensorEntity):
59
74
  _attr_native_unit_of_measurement: Incomplete
@@ -260,7 +260,8 @@ class _ResolveDependenciesCache(_ResolveDependenciesCacheProtocol):
260
260
 
261
261
  async def resolve_integrations_dependencies(hass: HomeAssistant, integrations: Iterable[Integration]) -> dict[str, set[str]]: ...
262
262
  async def resolve_integrations_after_dependencies(hass: HomeAssistant, integrations: Iterable[Integration], possible_after_dependencies: set[str] | None = None, *, ignore_exceptions: bool = False) -> dict[str, set[str]]: ...
263
- async def _do_resolve_dependencies(itg: Integration, *, cache: _ResolveDependenciesCacheProtocol, possible_after_dependencies: set[str] | None | UndefinedType = ..., ignore_exceptions: bool = False) -> set[str]: ...
263
+ async def _resolve_integrations_dependencies(hass: HomeAssistant, name: str, integrations: Iterable[Integration], *, cache: _ResolveDependenciesCacheProtocol, possible_after_dependencies: set[str] | None | UndefinedType = ..., ignore_exceptions: bool) -> dict[str, set[str]]: ...
264
+ async def _resolve_integration_dependencies(itg: Integration, *, cache: _ResolveDependenciesCacheProtocol, possible_after_dependencies: set[str] | None | UndefinedType = ..., ignore_exceptions: bool = False) -> set[str]: ...
264
265
 
265
266
  class LoaderError(Exception): ...
266
267
 
@@ -284,16 +285,6 @@ class ModuleWrapper:
284
285
  def __init__(self, hass: HomeAssistant, module: ComponentProtocol) -> None: ...
285
286
  def __getattr__(self, attr: str) -> Any: ...
286
287
 
287
- class Components:
288
- _hass: Incomplete
289
- def __init__(self, hass: HomeAssistant) -> None: ...
290
- def __getattr__(self, comp_name: str) -> ModuleWrapper: ...
291
-
292
- class Helpers:
293
- _hass: Incomplete
294
- def __init__(self, hass: HomeAssistant) -> None: ...
295
- def __getattr__(self, helper_name: str) -> ModuleWrapper: ...
296
-
297
288
  def bind_hass[_CallableT: Callable[..., Any]](func: _CallableT) -> _CallableT: ...
298
289
  def _async_mount_config_dir(hass: HomeAssistant) -> None: ...
299
290
  def _lookup_path(hass: HomeAssistant) -> list[str]: ...
@@ -20,12 +20,12 @@ from typing import Final, TypedDict
20
20
  current_setup_group: contextvars.ContextVar[tuple[str, str | None] | None]
21
21
  _LOGGER: Incomplete
22
22
  ATTR_COMPONENT: Final[str]
23
- DATA_SETUP: HassKey[dict[str, asyncio.Future[bool]]]
24
- DATA_SETUP_DONE: HassKey[dict[str, asyncio.Future[bool]]]
25
- DATA_SETUP_STARTED: HassKey[dict[tuple[str, str | None], float]]
26
- DATA_SETUP_TIME: HassKey[defaultdict[str, defaultdict[str | None, defaultdict[SetupPhases, float]]]]
27
- DATA_DEPS_REQS: HassKey[set[str]]
28
- DATA_PERSISTENT_ERRORS: HassKey[dict[str, str | None]]
23
+ _DATA_SETUP: HassKey[dict[str, asyncio.Future[bool]]]
24
+ _DATA_SETUP_DONE: HassKey[dict[str, asyncio.Future[bool]]]
25
+ _DATA_SETUP_STARTED: HassKey[dict[tuple[str, str | None], float]]
26
+ _DATA_SETUP_TIME: HassKey[defaultdict[str, defaultdict[str | None, defaultdict[SetupPhases, float]]]]
27
+ _DATA_DEPS_REQS: HassKey[set[str]]
28
+ _DATA_PERSISTENT_ERRORS: HassKey[dict[str, str | None]]
29
29
  NOTIFY_FOR_TRANSLATION_KEYS: Incomplete
30
30
  SLOW_SETUP_WARNING: int
31
31
  SLOW_SETUP_MAX_WAIT: int
@@ -72,3 +72,4 @@ def async_start_setup(hass: core.HomeAssistant, integration: str, phase: SetupPh
72
72
  def async_get_setup_timings(hass: core.HomeAssistant) -> dict[str, float]: ...
73
73
  @callback
74
74
  def async_get_domain_setup_times(hass: core.HomeAssistant, domain: str) -> Mapping[str | None, dict[SetupPhases, float]]: ...
75
+ async def async_wait_component(hass: HomeAssistant, domain: str) -> bool: ...
@@ -13,6 +13,7 @@ SSL_CIPHER_LISTS: Incomplete
13
13
 
14
14
  @cache
15
15
  def _client_context_no_verify(ssl_cipher_list: SSLCipherList) -> ssl.SSLContext: ...
16
+ def _create_client_context(ssl_cipher_list: SSLCipherList = ...) -> ssl.SSLContext: ...
16
17
  @cache
17
18
  def _client_context(ssl_cipher_list: SSLCipherList = ...) -> ssl.SSLContext: ...
18
19
 
@@ -25,6 +26,7 @@ def get_default_context() -> ssl.SSLContext: ...
25
26
  def get_default_no_verify_context() -> ssl.SSLContext: ...
26
27
  def client_context_no_verify(ssl_cipher_list: SSLCipherList = ...) -> ssl.SSLContext: ...
27
28
  def client_context(ssl_cipher_list: SSLCipherList = ...) -> ssl.SSLContext: ...
29
+ def create_client_context(ssl_cipher_list: SSLCipherList = ...) -> ssl.SSLContext: ...
28
30
  def create_no_verify_ssl_context(ssl_cipher_list: SSLCipherList = ...) -> ssl.SSLContext: ...
29
31
  def server_context_modern() -> ssl.SSLContext: ...
30
32
  def server_context_intermediate() -> ssl.SSLContext: ...
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: homeassistant-stubs
3
- Version: 2025.4.3
3
+ Version: 2025.5.0
4
4
  Summary: PEP 484 typing stubs for Home Assistant Core
5
5
  Project-URL: Homepage, https://github.com/KapJI/homeassistant-stubs
6
6
  Project-URL: Bug Tracker, https://github.com/KapJI/homeassistant-stubs/issues
@@ -17,8 +17,8 @@ Classifier: Programming Language :: Python :: 3.13
17
17
  Classifier: Topic :: Home Automation
18
18
  Classifier: Topic :: Software Development
19
19
  Classifier: Typing :: Typed
20
- Requires-Python: <3.14,>=3.13
21
- Requires-Dist: homeassistant==2025.4.3
20
+ Requires-Python: >=3.13.2
21
+ Requires-Dist: homeassistant==2025.5.0
22
22
  Description-Content-Type: text/markdown
23
23
 
24
24
  [![CI](https://github.com/KapJI/homeassistant-stubs/actions/workflows/ci.yaml/badge.svg)](https://github.com/KapJI/homeassistant-stubs/actions/workflows/ci.yaml)