homeassistant-stubs 2025.5.3__py3-none-any.whl → 2025.6.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 (419) hide show
  1. homeassistant-stubs/components/airthings/sensor.pyi +1 -1
  2. homeassistant-stubs/components/alexa_devices/__init__.pyi +9 -0
  3. homeassistant-stubs/components/alexa_devices/binary_sensor.pyi +26 -0
  4. homeassistant-stubs/components/alexa_devices/config_flow.pyi +8 -0
  5. homeassistant-stubs/components/alexa_devices/const.pyi +5 -0
  6. homeassistant-stubs/components/alexa_devices/coordinator.pyi +17 -0
  7. homeassistant-stubs/components/alexa_devices/diagnostics.pyi +14 -0
  8. homeassistant-stubs/components/alexa_devices/entity.pyi +19 -0
  9. homeassistant-stubs/components/alexa_devices/notify.pyi +25 -0
  10. homeassistant-stubs/components/alexa_devices/switch.pyi +30 -0
  11. homeassistant-stubs/components/apcupsd/config_flow.pyi +1 -0
  12. homeassistant-stubs/components/assist_pipeline/pipeline.pyi +3 -1
  13. homeassistant-stubs/components/axis/config_flow.pyi +2 -2
  14. homeassistant-stubs/components/axis/entity.pyi +1 -0
  15. homeassistant-stubs/components/backup/__init__.pyi +2 -2
  16. homeassistant-stubs/components/backup/coordinator.pyi +3 -0
  17. homeassistant-stubs/components/backup/entity.pyi +5 -2
  18. homeassistant-stubs/components/backup/event.pyi +23 -0
  19. homeassistant-stubs/components/backup/manager.pyi +22 -3
  20. homeassistant-stubs/components/backup/models.pyi +2 -2
  21. homeassistant-stubs/components/blue_current/button.pyi +25 -0
  22. homeassistant-stubs/components/blue_current/entity.pyi +3 -6
  23. homeassistant-stubs/components/bluesound/button.pyi +35 -0
  24. homeassistant-stubs/components/bluesound/media_player.pyi +1 -0
  25. homeassistant-stubs/components/bmw_connected_drive/button.pyi +1 -1
  26. homeassistant-stubs/components/bmw_connected_drive/coordinator.pyi +1 -1
  27. homeassistant-stubs/components/bmw_connected_drive/lock.pyi +1 -1
  28. homeassistant-stubs/components/bmw_connected_drive/notify.pyi +1 -1
  29. homeassistant-stubs/components/bmw_connected_drive/number.pyi +1 -1
  30. homeassistant-stubs/components/bmw_connected_drive/select.pyi +1 -1
  31. homeassistant-stubs/components/bmw_connected_drive/switch.pyi +1 -1
  32. homeassistant-stubs/components/bosch_alarm/__init__.pyi +8 -4
  33. homeassistant-stubs/components/bosch_alarm/alarm_control_panel.pyi +3 -1
  34. homeassistant-stubs/components/bosch_alarm/binary_sensor.pyi +45 -0
  35. homeassistant-stubs/components/bosch_alarm/config_flow.pyi +9 -3
  36. homeassistant-stubs/components/bosch_alarm/const.pyi +4 -1
  37. homeassistant-stubs/components/bosch_alarm/diagnostics.pyi +1 -1
  38. homeassistant-stubs/components/bosch_alarm/entity.pyi +30 -1
  39. homeassistant-stubs/components/bosch_alarm/sensor.pyi +6 -2
  40. homeassistant-stubs/components/bosch_alarm/services.pyi +15 -0
  41. homeassistant-stubs/components/bosch_alarm/switch.pyi +43 -0
  42. homeassistant-stubs/components/bosch_alarm/types.pyi +4 -0
  43. homeassistant-stubs/components/bring/__init__.pyi +1 -1
  44. homeassistant-stubs/components/bring/coordinator.pyi +21 -3
  45. homeassistant-stubs/components/bring/entity.pyi +3 -3
  46. homeassistant-stubs/components/bring/event.pyi +3 -2
  47. homeassistant-stubs/components/bring/sensor.pyi +1 -0
  48. homeassistant-stubs/components/bring/todo.pyi +1 -0
  49. homeassistant-stubs/components/camera/__init__.pyi +2 -10
  50. homeassistant-stubs/components/camera/webrtc.pyi +1 -22
  51. homeassistant-stubs/components/climate/__init__.pyi +3 -13
  52. homeassistant-stubs/components/climate/const.pyi +0 -3
  53. homeassistant-stubs/components/climate/significant_change.pyi +1 -1
  54. homeassistant-stubs/components/cloud/__init__.pyi +1 -1
  55. homeassistant-stubs/components/cloud/alexa_config.pyi +1 -1
  56. homeassistant-stubs/components/cloud/client.pyi +2 -1
  57. homeassistant-stubs/components/cloud/const.pyi +0 -1
  58. homeassistant-stubs/components/cloud/google_config.pyi +1 -1
  59. homeassistant-stubs/components/cloud/http_api.pyi +0 -2
  60. homeassistant-stubs/components/comelit/climate.pyi +14 -5
  61. homeassistant-stubs/components/comelit/config_flow.pyi +3 -4
  62. homeassistant-stubs/components/comelit/const.pyi +3 -0
  63. homeassistant-stubs/components/comelit/cover.pyi +3 -1
  64. homeassistant-stubs/components/comelit/humidifier.pyi +6 -1
  65. homeassistant-stubs/components/comelit/light.pyi +2 -0
  66. homeassistant-stubs/components/comelit/switch.pyi +2 -0
  67. homeassistant-stubs/components/comelit/utils.pyi +11 -0
  68. homeassistant-stubs/components/command_line/notify.pyi +3 -1
  69. homeassistant-stubs/components/config/entity_registry.pyi +6 -0
  70. homeassistant-stubs/components/deconz/entity.pyi +1 -0
  71. homeassistant-stubs/components/deconz/hub/hub.pyi +1 -1
  72. homeassistant-stubs/components/deconz/light.pyi +1 -1
  73. homeassistant-stubs/components/demo/media_player.pyi +2 -1
  74. homeassistant-stubs/components/derivative/__init__.pyi +2 -1
  75. homeassistant-stubs/components/device_automation/trigger.pyi +5 -2
  76. homeassistant-stubs/components/devolo_home_network/__init__.pyi +3 -18
  77. homeassistant-stubs/components/devolo_home_network/binary_sensor.pyi +1 -2
  78. homeassistant-stubs/components/devolo_home_network/button.pyi +1 -1
  79. homeassistant-stubs/components/devolo_home_network/config_flow.pyi +1 -1
  80. homeassistant-stubs/components/devolo_home_network/coordinator.pyi +56 -6
  81. homeassistant-stubs/components/devolo_home_network/device_tracker.pyi +1 -2
  82. homeassistant-stubs/components/devolo_home_network/diagnostics.pyi +1 -1
  83. homeassistant-stubs/components/devolo_home_network/entity.pyi +1 -2
  84. homeassistant-stubs/components/devolo_home_network/image.pyi +1 -2
  85. homeassistant-stubs/components/devolo_home_network/sensor.pyi +1 -2
  86. homeassistant-stubs/components/devolo_home_network/switch.pyi +1 -2
  87. homeassistant-stubs/components/devolo_home_network/update.pyi +1 -2
  88. homeassistant-stubs/components/dhcp/__init__.pyi +2 -0
  89. homeassistant-stubs/components/downloader/__init__.pyi +3 -4
  90. homeassistant-stubs/components/downloader/services.pyi +7 -0
  91. homeassistant-stubs/components/ecovacs/binary_sensor.pyi +1 -1
  92. homeassistant-stubs/components/ecovacs/button.pyi +2 -2
  93. homeassistant-stubs/components/ecovacs/number.pyi +1 -1
  94. homeassistant-stubs/components/ecovacs/select.pyi +1 -1
  95. homeassistant-stubs/components/ecovacs/sensor.pyi +1 -1
  96. homeassistant-stubs/components/ecovacs/switch.pyi +1 -1
  97. homeassistant-stubs/components/ecovacs/util.pyi +1 -1
  98. homeassistant-stubs/components/eheimdigital/climate.pyi +4 -2
  99. homeassistant-stubs/components/eheimdigital/diagnostics.pyi +9 -0
  100. homeassistant-stubs/components/eheimdigital/entity.pyi +5 -0
  101. homeassistant-stubs/components/eheimdigital/light.pyi +3 -2
  102. homeassistant-stubs/components/eheimdigital/number.pyi +3 -1
  103. homeassistant-stubs/components/eheimdigital/select.pyi +34 -0
  104. homeassistant-stubs/components/eheimdigital/switch.pyi +3 -1
  105. homeassistant-stubs/components/eheimdigital/time.pyi +2 -1
  106. homeassistant-stubs/components/elkm1/climate.pyi +0 -6
  107. homeassistant-stubs/components/esphome/entity.pyi +2 -0
  108. homeassistant-stubs/components/esphome/entry_data.pyi +0 -12
  109. homeassistant-stubs/components/esphome/light.pyi +4 -4
  110. homeassistant-stubs/components/esphome/manager.pyi +0 -1
  111. homeassistant-stubs/components/esphome/update.pyi +8 -4
  112. homeassistant-stubs/components/feedreader/event.pyi +1 -2
  113. homeassistant-stubs/components/fritz/__init__.pyi +1 -1
  114. homeassistant-stubs/components/fritz/config_flow.pyi +2 -1
  115. homeassistant-stubs/components/fritz/const.pyi +2 -0
  116. homeassistant-stubs/components/fritz/coordinator.pyi +5 -3
  117. homeassistant-stubs/components/frontend/storage.pyi +25 -9
  118. homeassistant-stubs/components/fyta/image.pyi +18 -4
  119. homeassistant-stubs/components/generic_hygrostat/__init__.pyi +4 -2
  120. homeassistant-stubs/components/generic_thermostat/__init__.pyi +5 -3
  121. homeassistant-stubs/components/geocaching/__init__.pyi +3 -5
  122. homeassistant-stubs/components/geocaching/coordinator.pyi +3 -2
  123. homeassistant-stubs/components/geocaching/sensor.pyi +2 -3
  124. homeassistant-stubs/components/google/__init__.pyi +7 -8
  125. homeassistant-stubs/components/google/api.pyi +2 -2
  126. homeassistant-stubs/components/google/calendar.pyi +5 -5
  127. homeassistant-stubs/components/google/config_flow.pyi +3 -2
  128. homeassistant-stubs/components/google/const.pyi +0 -2
  129. homeassistant-stubs/components/google/coordinator.pyi +5 -5
  130. homeassistant-stubs/components/google/diagnostics.pyi +2 -3
  131. homeassistant-stubs/components/google/store.pyi +9 -0
  132. homeassistant-stubs/components/google_assistant_sdk/__init__.pyi +5 -6
  133. homeassistant-stubs/components/google_assistant_sdk/config_flow.pyi +3 -3
  134. homeassistant-stubs/components/google_assistant_sdk/const.pyi +0 -2
  135. homeassistant-stubs/components/google_assistant_sdk/diagnostics.pyi +2 -2
  136. homeassistant-stubs/components/google_assistant_sdk/helpers.pyi +8 -1
  137. homeassistant-stubs/components/google_assistant_sdk/notify.pyi +1 -2
  138. homeassistant-stubs/components/greeneye_monitor/const.pyi +4 -1
  139. homeassistant-stubs/components/guardian/__init__.pyi +11 -18
  140. homeassistant-stubs/components/guardian/binary_sensor.pyi +5 -6
  141. homeassistant-stubs/components/guardian/button.pyi +4 -5
  142. homeassistant-stubs/components/guardian/coordinator.pyi +3 -3
  143. homeassistant-stubs/components/guardian/diagnostics.pyi +3 -4
  144. homeassistant-stubs/components/guardian/entity.pyi +3 -3
  145. homeassistant-stubs/components/guardian/sensor.pyi +3 -4
  146. homeassistant-stubs/components/guardian/services.pyi +28 -0
  147. homeassistant-stubs/components/guardian/switch.pyi +4 -5
  148. homeassistant-stubs/components/guardian/util.pyi +2 -2
  149. homeassistant-stubs/components/guardian/valve.pyi +4 -5
  150. homeassistant-stubs/components/habitica/const.pyi +1 -6
  151. homeassistant-stubs/components/habitica/coordinator.pyi +2 -2
  152. homeassistant-stubs/components/habitica/sensor.pyi +3 -1
  153. homeassistant-stubs/components/habitica/services.pyi +2 -4
  154. homeassistant-stubs/components/habitica/util.pyi +2 -0
  155. homeassistant-stubs/components/hardware/__init__.pyi +3 -1
  156. homeassistant-stubs/components/hardware/const.pyi +4 -0
  157. homeassistant-stubs/components/hardware/hardware.pyi +1 -1
  158. homeassistant-stubs/components/hardware/models.pyi +14 -1
  159. homeassistant-stubs/components/hardware/websocket_api.pyi +2 -12
  160. homeassistant-stubs/components/heos/media_player.pyi +1 -0
  161. homeassistant-stubs/components/here_travel_time/__init__.pyi +4 -6
  162. homeassistant-stubs/components/here_travel_time/coordinator.pyi +9 -10
  163. homeassistant-stubs/components/here_travel_time/model.pyi +6 -10
  164. homeassistant-stubs/components/here_travel_time/sensor.pyi +4 -5
  165. homeassistant-stubs/components/history_stats/__init__.pyi +2 -1
  166. homeassistant-stubs/components/history_stats/config_flow.pyi +2 -2
  167. homeassistant-stubs/components/home_connect/application_credentials.pyi +1 -0
  168. homeassistant-stubs/components/home_connect/config_flow.pyi +2 -0
  169. homeassistant-stubs/components/home_connect/diagnostics.pyi +1 -2
  170. homeassistant-stubs/components/home_connect/entity.pyi +0 -1
  171. homeassistant-stubs/components/home_connect/light.pyi +2 -2
  172. homeassistant-stubs/components/home_connect/number.pyi +1 -0
  173. homeassistant-stubs/components/home_connect/sensor.pyi +4 -5
  174. homeassistant-stubs/components/home_connect/switch.pyi +1 -19
  175. homeassistant-stubs/components/homeassistant/__init__.pyi +5 -0
  176. homeassistant-stubs/components/homee/alarm_control_panel.pyi +39 -0
  177. homeassistant-stubs/components/homee/const.pyi +2 -0
  178. homeassistant-stubs/components/homee/event.pyi +19 -0
  179. homeassistant-stubs/components/homee/fan.pyi +38 -0
  180. homeassistant-stubs/components/homee/sensor.pyi +5 -1
  181. homeassistant-stubs/components/homekit/const.pyi +1 -0
  182. homeassistant-stubs/components/homekit/util.pyi +1 -1
  183. homeassistant-stubs/components/homeworks/__init__.pyi +5 -5
  184. homeassistant-stubs/components/homeworks/binary_sensor.pyi +2 -3
  185. homeassistant-stubs/components/homeworks/button.pyi +2 -3
  186. homeassistant-stubs/components/homeworks/light.pyi +2 -3
  187. homeassistant-stubs/components/http/decorators.pyi +1 -1
  188. homeassistant-stubs/components/huawei_lte/__init__.pyi +0 -1
  189. homeassistant-stubs/components/husqvarna_automower/binary_sensor.pyi +0 -7
  190. homeassistant-stubs/components/hydrawise/__init__.pyi +4 -5
  191. homeassistant-stubs/components/hydrawise/binary_sensor.pyi +3 -4
  192. homeassistant-stubs/components/hydrawise/coordinator.pyi +4 -3
  193. homeassistant-stubs/components/hydrawise/sensor.pyi +2 -4
  194. homeassistant-stubs/components/hydrawise/switch.pyi +3 -4
  195. homeassistant-stubs/components/hydrawise/valve.pyi +2 -4
  196. homeassistant-stubs/components/immich/__init__.pyi +10 -0
  197. homeassistant-stubs/components/immich/config_flow.pyi +27 -0
  198. homeassistant-stubs/components/immich/const.pyi +4 -0
  199. homeassistant-stubs/components/immich/coordinator.pyi +27 -0
  200. homeassistant-stubs/components/immich/diagnostics.pyi +10 -0
  201. homeassistant-stubs/components/immich/entity.pyi +10 -0
  202. homeassistant-stubs/components/immich/media_source.pyi +38 -0
  203. homeassistant-stubs/components/immich/sensor.pyi +28 -0
  204. homeassistant-stubs/components/integration/__init__.pyi +2 -1
  205. homeassistant-stubs/components/iqvia/__init__.pyi +4 -7
  206. homeassistant-stubs/components/iqvia/coordinator.pyi +16 -0
  207. homeassistant-stubs/components/iqvia/diagnostics.pyi +3 -4
  208. homeassistant-stubs/components/iqvia/entity.pyi +5 -6
  209. homeassistant-stubs/components/iqvia/sensor.pyi +3 -3
  210. homeassistant-stubs/components/isy994/__init__.pyi +6 -7
  211. homeassistant-stubs/components/isy994/binary_sensor.pyi +3 -4
  212. homeassistant-stubs/components/isy994/button.pyi +2 -3
  213. homeassistant-stubs/components/isy994/climate.pyi +3 -4
  214. homeassistant-stubs/components/isy994/config_flow.pyi +4 -3
  215. homeassistant-stubs/components/isy994/cover.pyi +3 -5
  216. homeassistant-stubs/components/isy994/fan.pyi +3 -5
  217. homeassistant-stubs/components/isy994/light.pyi +3 -4
  218. homeassistant-stubs/components/isy994/lock.pyi +2 -5
  219. homeassistant-stubs/components/isy994/models.pyi +2 -0
  220. homeassistant-stubs/components/isy994/number.pyi +3 -4
  221. homeassistant-stubs/components/isy994/select.pyi +3 -4
  222. homeassistant-stubs/components/isy994/sensor.pyi +3 -4
  223. homeassistant-stubs/components/isy994/services.pyi +1 -1
  224. homeassistant-stubs/components/isy994/switch.pyi +2 -4
  225. homeassistant-stubs/components/isy994/system_health.pyi +1 -3
  226. homeassistant-stubs/components/isy994/util.pyi +3 -2
  227. homeassistant-stubs/components/jellyfin/__init__.pyi +1 -1
  228. homeassistant-stubs/components/jellyfin/entity.pyi +2 -2
  229. homeassistant-stubs/components/jewish_calendar/binary_sensor.pyi +3 -2
  230. homeassistant-stubs/components/jewish_calendar/config_flow.pyi +3 -2
  231. homeassistant-stubs/components/jewish_calendar/const.pyi +1 -0
  232. homeassistant-stubs/components/jewish_calendar/diagnostics.pyi +11 -0
  233. homeassistant-stubs/components/jewish_calendar/entity.pyi +12 -5
  234. homeassistant-stubs/components/jewish_calendar/sensor.pyi +34 -15
  235. homeassistant-stubs/components/jewish_calendar/service.pyi +1 -0
  236. homeassistant-stubs/components/kaleidescape/entity.pyi +1 -0
  237. homeassistant-stubs/components/kaleidescape/media_player.pyi +1 -0
  238. homeassistant-stubs/components/kaleidescape/remote.pyi +1 -0
  239. homeassistant-stubs/components/kaleidescape/sensor.pyi +1 -0
  240. homeassistant-stubs/components/knocki/config_flow.pyi +2 -0
  241. homeassistant-stubs/components/knx/const.pyi +7 -0
  242. homeassistant-stubs/components/knx/cover.pyi +20 -9
  243. homeassistant-stubs/components/knx/schema.pyi +1 -6
  244. homeassistant-stubs/components/knx/storage/const.pyi +6 -0
  245. homeassistant-stubs/components/knx/storage/entity_store_schema.pyi +4 -3
  246. homeassistant-stubs/components/lcn/config_flow.pyi +0 -2
  247. homeassistant-stubs/components/lcn/const.pyi +3 -1
  248. homeassistant-stubs/components/lcn/cover.pyi +7 -2
  249. homeassistant-stubs/components/lcn/entity.pyi +1 -0
  250. homeassistant-stubs/components/lcn/helpers.pyi +0 -1
  251. homeassistant-stubs/components/lcn/schemas.pyi +1 -1
  252. homeassistant-stubs/components/lcn/services.pyi +2 -3
  253. homeassistant-stubs/components/litterrobot/entity.pyi +1 -1
  254. homeassistant-stubs/components/matter/select.pyi +2 -0
  255. homeassistant-stubs/components/matter/sensor.pyi +3 -1
  256. homeassistant-stubs/components/media_player/intent.pyi +11 -1
  257. homeassistant-stubs/components/metoffice/__init__.pyi +3 -5
  258. homeassistant-stubs/components/metoffice/config_flow.pyi +4 -2
  259. homeassistant-stubs/components/metoffice/const.pyi +7 -6
  260. homeassistant-stubs/components/metoffice/helpers.pyi +5 -6
  261. homeassistant-stubs/components/metoffice/sensor.pyi +15 -13
  262. homeassistant-stubs/components/metoffice/weather.pyi +23 -11
  263. homeassistant-stubs/components/miele/__init__.pyi +15 -0
  264. homeassistant-stubs/components/miele/api.pyi +9 -0
  265. homeassistant-stubs/components/miele/application_credentials.pyi +5 -0
  266. homeassistant-stubs/components/miele/binary_sensor.pyi +34 -0
  267. homeassistant-stubs/components/miele/button.pyi +32 -0
  268. homeassistant-stubs/components/miele/climate.pyi +55 -0
  269. homeassistant-stubs/components/miele/config_flow.pyi +17 -0
  270. homeassistant-stubs/components/miele/const.pyi +127 -0
  271. homeassistant-stubs/components/miele/coordinator.pyi +29 -0
  272. homeassistant-stubs/components/miele/diagnostics.pyi +13 -0
  273. homeassistant-stubs/components/miele/entity.pyi +24 -0
  274. homeassistant-stubs/components/miele/fan.pyi +39 -0
  275. homeassistant-stubs/components/miele/light.pyi +39 -0
  276. homeassistant-stubs/components/miele/sensor.pyi +72 -0
  277. homeassistant-stubs/components/miele/switch.pyi +52 -0
  278. homeassistant-stubs/components/miele/vacuum.pyi +84 -0
  279. homeassistant-stubs/components/minecraft_server/api.pyi +1 -1
  280. homeassistant-stubs/components/modbus/__init__.pyi +1 -1
  281. homeassistant-stubs/components/modbus/const.pyi +9 -0
  282. homeassistant-stubs/components/modbus/light.pyi +24 -1
  283. homeassistant-stubs/components/modbus/sensor.pyi +5 -3
  284. homeassistant-stubs/components/mqtt/binary_sensor.pyi +1 -2
  285. homeassistant-stubs/components/mqtt/button.pyi +1 -3
  286. homeassistant-stubs/components/mqtt/config_flow.pyi +26 -9
  287. homeassistant-stubs/components/mqtt/const.pyi +57 -0
  288. homeassistant-stubs/components/mqtt/cover.pyi +1 -25
  289. homeassistant-stubs/components/mqtt/fan.pyi +1 -31
  290. homeassistant-stubs/components/mqtt/sensor.pyi +1 -1
  291. homeassistant-stubs/components/mqtt/switch.pyi +1 -5
  292. homeassistant-stubs/components/music_assistant/media_player.pyi +6 -2
  293. homeassistant-stubs/components/number/const.pyi +3 -2
  294. homeassistant-stubs/components/nut/__init__.pyi +1 -1
  295. homeassistant-stubs/components/openai_conversation/conversation.pyi +2 -0
  296. homeassistant-stubs/components/openuv/binary_sensor.pyi +2 -1
  297. homeassistant-stubs/components/openuv/entity.pyi +1 -0
  298. homeassistant-stubs/components/pandora/__init__.pyi +1 -0
  299. homeassistant-stubs/components/pandora/media_player.pyi +14 -13
  300. homeassistant-stubs/components/paperless_ngx/__init__.pyi +13 -0
  301. homeassistant-stubs/components/paperless_ngx/config_flow.pyi +16 -0
  302. homeassistant-stubs/components/paperless_ngx/const.pyi +4 -0
  303. homeassistant-stubs/components/paperless_ngx/coordinator.pyi +39 -0
  304. homeassistant-stubs/components/{rtsp_to_webrtc → paperless_ngx}/diagnostics.pyi +2 -2
  305. homeassistant-stubs/components/paperless_ngx/entity.pyi +16 -0
  306. homeassistant-stubs/components/paperless_ngx/sensor.pyi +27 -0
  307. homeassistant-stubs/components/plugwise/coordinator.pyi +2 -2
  308. homeassistant-stubs/components/qbus/climate.pyi +1 -0
  309. homeassistant-stubs/components/qbus/entity.pyi +3 -3
  310. homeassistant-stubs/components/qbus/light.pyi +1 -0
  311. homeassistant-stubs/components/qbus/scene.pyi +21 -0
  312. homeassistant-stubs/components/qbus/switch.pyi +1 -0
  313. homeassistant-stubs/components/recorder/services.pyi +7 -1
  314. homeassistant-stubs/components/recorder/statistics.pyi +1 -1
  315. homeassistant-stubs/components/recorder/websocket_api.pyi +1 -1
  316. homeassistant-stubs/components/reolink/__init__.pyi +3 -1
  317. homeassistant-stubs/components/reolink/const.pyi +5 -0
  318. homeassistant-stubs/components/reolink/host.pyi +3 -3
  319. homeassistant-stubs/components/reolink/media_source.pyi +2 -1
  320. homeassistant-stubs/components/reolink/views.pyi +1 -0
  321. homeassistant-stubs/components/repairs/websocket_api.pyi +0 -1
  322. homeassistant-stubs/components/samsungtv/__init__.pyi +5 -5
  323. homeassistant-stubs/components/samsungtv/bridge.pyi +2 -1
  324. homeassistant-stubs/components/samsungtv/config_flow.pyi +4 -4
  325. homeassistant-stubs/components/samsungtv/entity.pyi +1 -1
  326. homeassistant-stubs/components/samsungtv/media_player.pyi +2 -1
  327. homeassistant-stubs/components/sensor/__init__.pyi +1 -0
  328. homeassistant-stubs/components/sensor/const.pyi +5 -2
  329. homeassistant-stubs/components/sensor/device_condition.pyi +1 -0
  330. homeassistant-stubs/components/sensor/device_trigger.pyi +1 -0
  331. homeassistant-stubs/components/shelly/__init__.pyi +1 -1
  332. homeassistant-stubs/components/shelly/binary_sensor.pyi +3 -2
  333. homeassistant-stubs/components/shelly/button.pyi +5 -4
  334. homeassistant-stubs/components/shelly/climate.pyi +5 -5
  335. homeassistant-stubs/components/shelly/const.pyi +2 -0
  336. homeassistant-stubs/components/shelly/cover.pyi +2 -0
  337. homeassistant-stubs/components/shelly/entity.pyi +4 -2
  338. homeassistant-stubs/components/shelly/event.pyi +4 -2
  339. homeassistant-stubs/components/shelly/light.pyi +2 -0
  340. homeassistant-stubs/components/shelly/number.pyi +3 -2
  341. homeassistant-stubs/components/shelly/select.pyi +2 -0
  342. homeassistant-stubs/components/shelly/sensor.pyi +9 -2
  343. homeassistant-stubs/components/shelly/switch.pyi +2 -2
  344. homeassistant-stubs/components/shelly/text.pyi +2 -0
  345. homeassistant-stubs/components/shelly/update.pyi +1 -0
  346. homeassistant-stubs/components/shelly/utils.pyi +14 -7
  347. homeassistant-stubs/components/shelly/valve.pyi +2 -0
  348. homeassistant-stubs/components/smlight/button.pyi +3 -2
  349. homeassistant-stubs/components/squeezebox/__init__.pyi +1 -1
  350. homeassistant-stubs/components/squeezebox/binary_sensor.pyi +1 -0
  351. homeassistant-stubs/components/squeezebox/browse_media.pyi +1 -1
  352. homeassistant-stubs/components/squeezebox/button.pyi +3 -0
  353. homeassistant-stubs/components/squeezebox/const.pyi +12 -2
  354. homeassistant-stubs/components/squeezebox/coordinator.pyi +7 -3
  355. homeassistant-stubs/components/squeezebox/media_player.pyi +3 -1
  356. homeassistant-stubs/components/squeezebox/sensor.pyi +1 -0
  357. homeassistant-stubs/components/squeezebox/switch.pyi +47 -0
  358. homeassistant-stubs/components/squeezebox/update.pyi +50 -0
  359. homeassistant-stubs/components/statistics/__init__.pyi +2 -1
  360. homeassistant-stubs/components/suez_water/coordinator.pyi +19 -4
  361. homeassistant-stubs/components/suez_water/sensor.pyi +2 -0
  362. homeassistant-stubs/components/sun/condition.pyi +13 -0
  363. homeassistant-stubs/components/switch_as_x/__init__.pyi +16 -3
  364. homeassistant-stubs/components/switchbot_cloud/__init__.pyi +15 -9
  365. homeassistant-stubs/components/switchbot_cloud/binary_sensor.pyi +29 -0
  366. homeassistant-stubs/components/switchbot_cloud/coordinator.pyi +6 -1
  367. homeassistant-stubs/components/threshold/__init__.pyi +2 -1
  368. homeassistant-stubs/components/tibber/coordinator.pyi +1 -0
  369. homeassistant-stubs/components/tibber/notify.pyi +2 -2
  370. homeassistant-stubs/components/tibber/sensor.pyi +1 -1
  371. homeassistant-stubs/components/trend/__init__.pyi +2 -1
  372. homeassistant-stubs/components/tts/__init__.pyi +4 -1
  373. homeassistant-stubs/components/tts/const.pyi +1 -0
  374. homeassistant-stubs/components/tts/entity.pyi +4 -0
  375. homeassistant-stubs/components/tts/legacy.pyi +3 -1
  376. homeassistant-stubs/components/tts/media_source.pyi +5 -2
  377. homeassistant-stubs/components/unifi/__init__.pyi +1 -1
  378. homeassistant-stubs/components/unifi/config_flow.pyi +2 -2
  379. homeassistant-stubs/components/unifi/device_tracker.pyi +1 -0
  380. homeassistant-stubs/components/unifi/services.pyi +1 -0
  381. homeassistant-stubs/components/uptimerobot/coordinator.pyi +0 -1
  382. homeassistant-stubs/components/uptimerobot/switch.pyi +2 -1
  383. homeassistant-stubs/components/wallbox/const.pyi +10 -0
  384. homeassistant-stubs/components/wallbox/coordinator.pyi +4 -1
  385. homeassistant-stubs/components/wallbox/select.pyi +29 -0
  386. homeassistant-stubs/components/wallbox/sensor.pyi +1 -1
  387. homeassistant-stubs/components/wemo/device_trigger.pyi +1 -1
  388. homeassistant-stubs/components/wemo/light.pyi +1 -0
  389. homeassistant-stubs/components/whois/const.pyi +1 -0
  390. homeassistant-stubs/components/whois/sensor.pyi +2 -1
  391. homeassistant-stubs/components/withings/application_credentials.pyi +2 -0
  392. homeassistant-stubs/components/youtube/sensor.pyi +1 -1
  393. homeassistant-stubs/components/zwave_js/__init__.pyi +1 -2
  394. homeassistant-stubs/components/zwave_js/config_flow.pyi +7 -7
  395. homeassistant-stubs/components/zwave_js/const.pyi +1 -2
  396. homeassistant-stubs/config_entries.pyi +0 -1
  397. homeassistant-stubs/const.pyi +5 -0
  398. homeassistant-stubs/core_config.pyi +0 -2
  399. homeassistant-stubs/helpers/condition.pyi +1 -6
  400. homeassistant-stubs/helpers/config_entry_oauth2_flow.pyi +10 -0
  401. homeassistant-stubs/helpers/config_validation.pyi +7 -2
  402. homeassistant-stubs/helpers/device.pyi +1 -1
  403. homeassistant-stubs/helpers/device_registry.pyi +4 -4
  404. homeassistant-stubs/helpers/entity_component.pyi +5 -2
  405. homeassistant-stubs/helpers/entity_platform.pyi +4 -1
  406. homeassistant-stubs/helpers/entity_registry.pyi +7 -6
  407. homeassistant-stubs/helpers/helper_integration.pyi +6 -0
  408. homeassistant-stubs/helpers/selector.pyi +55 -50
  409. homeassistant-stubs/helpers/service.pyi +3 -3
  410. homeassistant-stubs/helpers/template.pyi +4 -1
  411. homeassistant-stubs/util/aiohttp.pyi +5 -0
  412. homeassistant-stubs/util/unit_conversion.pyi +11 -1
  413. {homeassistant_stubs-2025.5.3.dist-info → homeassistant_stubs-2025.6.0.dist-info}/METADATA +2 -2
  414. {homeassistant_stubs-2025.5.3.dist-info → homeassistant_stubs-2025.6.0.dist-info}/RECORD +416 -357
  415. homeassistant-stubs/components/metoffice/data.pyi +0 -10
  416. homeassistant-stubs/components/rtsp_to_webrtc/__init__.pyi +0 -19
  417. homeassistant-stubs/components/rtsp_to_webrtc/config_flow.pyi +0 -24
  418. {homeassistant_stubs-2025.5.3.dist-info → homeassistant_stubs-2025.6.0.dist-info}/WHEEL +0 -0
  419. {homeassistant_stubs-2025.5.3.dist-info → homeassistant_stubs-2025.6.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,6 +1,4 @@
1
1
  import logging
2
- import voluptuous as vol
3
- from .sun import get_astral_event_date as get_astral_event_date
4
2
  from .template import Template as Template, render_complex as render_complex
5
3
  from .trace import TraceElement as TraceElement, trace_append_element as trace_append_element, trace_path as trace_path, trace_path_get as trace_path_get, trace_stack_cv as trace_stack_cv, trace_stack_pop as trace_stack_pop, trace_stack_push as trace_stack_push, trace_stack_top as trace_stack_top
6
4
  from .typing import ConfigType as ConfigType, TemplateVarsType as TemplateVarsType
@@ -9,7 +7,7 @@ from collections.abc import Callable, Container, Generator
9
7
  from contextlib import contextmanager
10
8
  from datetime import time as dt_time, timedelta
11
9
  from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass
12
- from homeassistant.const import ATTR_DEVICE_CLASS as ATTR_DEVICE_CLASS, ATTR_GPS_ACCURACY as ATTR_GPS_ACCURACY, ATTR_LATITUDE as ATTR_LATITUDE, ATTR_LONGITUDE as ATTR_LONGITUDE, CONF_ABOVE as CONF_ABOVE, CONF_AFTER as CONF_AFTER, CONF_ATTRIBUTE as CONF_ATTRIBUTE, CONF_BEFORE as CONF_BEFORE, CONF_BELOW as CONF_BELOW, CONF_CONDITION as CONF_CONDITION, CONF_DEVICE_ID as CONF_DEVICE_ID, CONF_ENABLED as CONF_ENABLED, CONF_ENTITY_ID as CONF_ENTITY_ID, CONF_FOR as CONF_FOR, CONF_ID as CONF_ID, CONF_MATCH as CONF_MATCH, CONF_STATE as CONF_STATE, CONF_VALUE_TEMPLATE as CONF_VALUE_TEMPLATE, CONF_WEEKDAY as CONF_WEEKDAY, CONF_ZONE as CONF_ZONE, ENTITY_MATCH_ALL as ENTITY_MATCH_ALL, ENTITY_MATCH_ANY as ENTITY_MATCH_ANY, STATE_UNAVAILABLE as STATE_UNAVAILABLE, STATE_UNKNOWN as STATE_UNKNOWN, SUN_EVENT_SUNRISE as SUN_EVENT_SUNRISE, SUN_EVENT_SUNSET as SUN_EVENT_SUNSET, WEEKDAYS as WEEKDAYS
10
+ from homeassistant.const import ATTR_DEVICE_CLASS as ATTR_DEVICE_CLASS, ATTR_GPS_ACCURACY as ATTR_GPS_ACCURACY, ATTR_LATITUDE as ATTR_LATITUDE, ATTR_LONGITUDE as ATTR_LONGITUDE, CONF_ABOVE as CONF_ABOVE, CONF_AFTER as CONF_AFTER, CONF_ATTRIBUTE as CONF_ATTRIBUTE, CONF_BEFORE as CONF_BEFORE, CONF_BELOW as CONF_BELOW, CONF_CONDITION as CONF_CONDITION, CONF_DEVICE_ID as CONF_DEVICE_ID, CONF_ENABLED as CONF_ENABLED, CONF_ENTITY_ID as CONF_ENTITY_ID, CONF_FOR as CONF_FOR, CONF_ID as CONF_ID, CONF_MATCH as CONF_MATCH, CONF_STATE as CONF_STATE, CONF_VALUE_TEMPLATE as CONF_VALUE_TEMPLATE, CONF_WEEKDAY as CONF_WEEKDAY, CONF_ZONE as CONF_ZONE, ENTITY_MATCH_ALL as ENTITY_MATCH_ALL, ENTITY_MATCH_ANY as ENTITY_MATCH_ANY, STATE_UNAVAILABLE as STATE_UNAVAILABLE, STATE_UNKNOWN as STATE_UNKNOWN, WEEKDAYS as WEEKDAYS
13
11
  from homeassistant.core import HomeAssistant as HomeAssistant, State as State, callback as callback
14
12
  from homeassistant.exceptions import ConditionError as ConditionError, ConditionErrorContainer as ConditionErrorContainer, ConditionErrorIndex as ConditionErrorIndex, ConditionErrorMessage as ConditionErrorMessage, HomeAssistantError as HomeAssistantError, TemplateError as TemplateError
15
13
  from homeassistant.loader import IntegrationNotFound as IntegrationNotFound, async_get_integration as async_get_integration
@@ -23,7 +21,6 @@ _PLATFORM_ALIASES: Incomplete
23
21
  INPUT_ENTITY_ID: Incomplete
24
22
 
25
23
  class ConditionProtocol(Protocol):
26
- CONDITION_SCHEMA: vol.Schema
27
24
  async def async_validate_condition_config(self, hass: HomeAssistant, config: ConfigType) -> ConfigType: ...
28
25
  def async_condition_from_config(self, hass: HomeAssistant, config: ConfigType) -> ConditionCheckerType: ...
29
26
  type ConditionCheckerType = Callable[[HomeAssistant, TemplateVarsType], bool | None]
@@ -44,8 +41,6 @@ def async_numeric_state(hass: HomeAssistant, entity: str | State | None, below:
44
41
  def async_numeric_state_from_config(config: ConfigType) -> ConditionCheckerType: ...
45
42
  def state(hass: HomeAssistant, entity: str | State | None, req_state: Any, for_period: timedelta | None = None, attribute: str | None = None, variables: TemplateVarsType = None) -> bool: ...
46
43
  def state_from_config(config: ConfigType) -> ConditionCheckerType: ...
47
- def sun(hass: HomeAssistant, before: str | None = None, after: str | None = None, before_offset: timedelta | None = None, after_offset: timedelta | None = None) -> bool: ...
48
- def sun_from_config(config: ConfigType) -> ConditionCheckerType: ...
49
44
  def template(hass: HomeAssistant, value_template: Template, variables: TemplateVarsType = None) -> bool: ...
50
45
  def async_template(hass: HomeAssistant, value_template: Template, variables: TemplateVarsType = None, trace_result: bool = True) -> bool: ...
51
46
  def async_template_from_config(config: ConfigType) -> ConditionCheckerType: ...
@@ -3,10 +3,14 @@ import logging
3
3
  from . import http as http
4
4
  from .aiohttp_client import async_get_clientsession as async_get_clientsession
5
5
  from .network import NoURLAvailableError as NoURLAvailableError
6
+ from .service_info.dhcp import DhcpServiceInfo as DhcpServiceInfo
7
+ from .service_info.ssdp import SsdpServiceInfo as SsdpServiceInfo
8
+ from .service_info.zeroconf import ZeroconfServiceInfo as ZeroconfServiceInfo
6
9
  from _typeshed import Incomplete
7
10
  from abc import ABC, ABCMeta, abstractmethod
8
11
  from aiohttp import client as client, web
9
12
  from collections.abc import Awaitable, Callable as Callable
13
+ from habluetooth import BluetoothServiceInfoBleak as BluetoothServiceInfoBleak
10
14
  from homeassistant import config_entries as config_entries
11
15
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
12
16
  from homeassistant.loader import async_get_application_credentials as async_get_application_credentials
@@ -95,6 +99,12 @@ class AbstractOAuth2FlowHandler(config_entries.ConfigFlow, metaclass=ABCMeta):
95
99
  async def async_step_authorize_rejected(self, data: None = None) -> config_entries.ConfigFlowResult: ...
96
100
  async def async_oauth_create_entry(self, data: dict) -> config_entries.ConfigFlowResult: ...
97
101
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> config_entries.ConfigFlowResult: ...
102
+ async def async_step_bluetooth(self, discovery_info: BluetoothServiceInfoBleak) -> config_entries.ConfigFlowResult: ...
103
+ async def async_step_dhcp(self, discovery_info: DhcpServiceInfo) -> config_entries.ConfigFlowResult: ...
104
+ async def async_step_homekit(self, discovery_info: ZeroconfServiceInfo) -> config_entries.ConfigFlowResult: ...
105
+ async def async_step_ssdp(self, discovery_info: SsdpServiceInfo) -> config_entries.ConfigFlowResult: ...
106
+ async def async_step_zeroconf(self, discovery_info: ZeroconfServiceInfo) -> config_entries.ConfigFlowResult: ...
107
+ async def async_step_oauth_discovery(self, user_input: dict[str, Any] | None = None) -> config_entries.ConfigFlowResult: ...
98
108
  @classmethod
99
109
  def async_register_implementation(cls, hass: HomeAssistant, local_impl: LocalOAuth2Implementation) -> None: ...
100
110
 
@@ -5,7 +5,7 @@ from . import template as template_helper
5
5
  from .frame import get_integration_logger as get_integration_logger
6
6
  from .typing import VolDictType as VolDictType, VolSchemaType as VolSchemaType
7
7
  from _typeshed import Incomplete
8
- from collections.abc import Callable as Callable, Hashable
8
+ from collections.abc import Callable, Hashable
9
9
  from contextvars import ContextVar
10
10
  from datetime import date as date_sys, datetime as datetime_sys, time as time_sys, timedelta
11
11
  from enum import Enum, StrEnum
@@ -146,7 +146,8 @@ def _deprecated_or_removed(key: str, replacement_key: str | None, default: Any |
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
148
  def renamed(old_key: str, new_key: str) -> Callable[[Any], Any]: ...
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
+ type ValueSchemas = dict[Hashable, VolSchemaType | Callable[[Any], dict[str, Any]]]
150
+ def key_value_schemas(key: str, value_schemas: ValueSchemas, default_schema: VolSchemaType | Callable[[Any], dict[str, Any]] | None = None, default_description: str | None = None) -> Callable[[Any], dict[Hashable, Any]]: ...
150
151
  def key_dependency[_KT: Hashable, _VT](key: Hashable, dependency: Hashable) -> Callable[[dict[_KT, _VT]], dict[_KT, _VT]]: ...
151
152
  def custom_serializer(schema: Any) -> Any: ...
152
153
  def _custom_serializer(schema: Any, *, allow_section: bool) -> Any: ...
@@ -207,6 +208,10 @@ def expand_condition_shorthand(value: Any | None) -> Any: ...
207
208
 
208
209
  dynamic_template_condition: Incomplete
209
210
  CONDITION_SHORTHAND_SCHEMA: Incomplete
211
+ BUILT_IN_CONDITIONS: ValueSchemas
212
+
213
+ def _base_condition_validator(value: Any) -> Any: ...
214
+
210
215
  CONDITION_SCHEMA: vol.Schema
211
216
  CONDITIONS_SCHEMA: Incomplete
212
217
  dynamic_template_condition_action: Incomplete
@@ -8,6 +8,6 @@ def async_device_info_to_link_from_entity(hass: HomeAssistant, entity_id_or_uuid
8
8
  @callback
9
9
  def async_device_info_to_link_from_device_id(hass: HomeAssistant, device_id: str | None) -> dr.DeviceInfo | None: ...
10
10
  @callback
11
- def async_remove_stale_devices_links_keep_entity_device(hass: HomeAssistant, entry_id: str, source_entity_id_or_uuid: str) -> None: ...
11
+ def async_remove_stale_devices_links_keep_entity_device(hass: HomeAssistant, entry_id: str, source_entity_id_or_uuid: str | None) -> None: ...
12
12
  @callback
13
13
  def async_remove_stale_devices_links_keep_current_device(hass: HomeAssistant, entry_id: str, current_device_id: str | None) -> None: ...
@@ -144,16 +144,16 @@ class DeletedDeviceEntry:
144
144
  config_entries: set[str]
145
145
  config_entries_subentries: dict[str, set[str | None]]
146
146
  connections: set[tuple[str, str]]
147
- identifiers: set[tuple[str, str]]
148
- id: str
149
- orphaned_timestamp: float | None
150
147
  created_at: datetime
148
+ id: str
149
+ identifiers: set[tuple[str, str]]
151
150
  modified_at: datetime
151
+ orphaned_timestamp: float | None
152
152
  _cache: dict[str, Any]
153
153
  def to_device_entry(self, config_entry_id: str, config_subentry_id: str | None, connections: set[tuple[str, str]], identifiers: set[tuple[str, str]]) -> DeviceEntry: ...
154
154
  @under_cached_property
155
155
  def as_storage_fragment(self) -> json_fragment: ...
156
- def __init__(self, config_entries, config_entries_subentries, connections, identifiers, id, orphaned_timestamp, created_at, modified_at, cache) -> None: ...
156
+ def __init__(self, config_entries, config_entries_subentries, connections, created_at, id, identifiers, modified_at, orphaned_timestamp, cache) -> None: ...
157
157
  def __lt__(self, other): ...
158
158
  def __le__(self, other): ...
159
159
  def __gt__(self, other): ...
@@ -1,6 +1,6 @@
1
1
  import logging
2
2
  from . import discovery as discovery, entity as entity, service as service
3
- from .entity_platform import EntityPlatform as EntityPlatform
3
+ from .entity_platform import EntityPlatform as EntityPlatform, async_calculate_suggested_object_id as async_calculate_suggested_object_id
4
4
  from .typing import ConfigType as ConfigType, DiscoveryInfoType as DiscoveryInfoType, VolDictType as VolDictType, VolSchemaType as VolSchemaType
5
5
  from _typeshed import Incomplete
6
6
  from collections.abc import Callable as Callable, Iterable
@@ -11,14 +11,17 @@ from homeassistant.core import Event as Event, HassJob as HassJob, HassJobType a
11
11
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
12
12
  from homeassistant.loader import async_get_integration as async_get_integration, bind_hass as bind_hass
13
13
  from homeassistant.setup import async_prepare_setup_platform as async_prepare_setup_platform
14
+ from homeassistant.util.hass_dict import HassKey as HassKey
14
15
  from types import ModuleType
15
16
  from typing import Any
16
17
 
17
18
  DEFAULT_SCAN_INTERVAL: Incomplete
18
- DATA_INSTANCES: str
19
+ DATA_INSTANCES: HassKey[dict[str, EntityComponent]]
19
20
 
20
21
  @bind_hass
21
22
  async def async_update_entity(hass: HomeAssistant, entity_id: str) -> None: ...
23
+ @callback
24
+ def async_get_entity_suggested_object_id(hass: HomeAssistant, entity_id: str) -> str | None: ...
22
25
 
23
26
  class EntityComponent[_EntityT: entity.Entity = entity.Entity]:
24
27
  logger: Incomplete
@@ -1,5 +1,5 @@
1
1
  import asyncio
2
- from . import service as service, translation as translation
2
+ from . import device_registry as dev_reg, service as service, translation as translation
3
3
  from .entity import Entity as Entity
4
4
  from .entity_registry import EntityRegistry as EntityRegistry, RegistryEntryDisabler as RegistryEntryDisabler, RegistryEntryHider as RegistryEntryHider
5
5
  from .event import async_call_later as async_call_later
@@ -106,6 +106,9 @@ class EntityPlatform:
106
106
  def async_register_entity_service(self, name: str, schema: VolDictType | VolSchemaType | None, func: str | Callable[..., Any], required_features: Iterable[int] | None = None, supports_response: SupportsResponse = ...) -> None: ...
107
107
  async def _async_update_entity_states(self) -> None: ...
108
108
 
109
+ @callback
110
+ def async_calculate_suggested_object_id(entity: Entity, device: dev_reg.DeviceEntry | None) -> str | None: ...
111
+
109
112
  current_platform: ContextVar[EntityPlatform | None]
110
113
 
111
114
  @callback
@@ -90,6 +90,7 @@ class RegistryEntry:
90
90
  original_device_class: str | None
91
91
  original_icon: str | None
92
92
  original_name: str | None
93
+ suggested_object_id: str | None
93
94
  supported_features: int
94
95
  translation_key: str | None
95
96
  unit_of_measurement: str | None
@@ -114,7 +115,7 @@ class RegistryEntry:
114
115
  def as_storage_fragment(self) -> json_fragment: ...
115
116
  @callback
116
117
  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, 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
+ 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, suggested_object_id, supported_features, translation_key, unit_of_measurement, cache) -> None: ...
118
119
  def __lt__(self, other): ...
119
120
  def __le__(self, other): ...
120
121
  def __gt__(self, other): ...
@@ -126,17 +127,17 @@ class DeletedRegistryEntry:
126
127
  platform: str
127
128
  config_entry_id: str | None
128
129
  config_subentry_id: str | None
130
+ created_at: datetime
129
131
  domain: str
130
132
  id: str
131
- orphaned_timestamp: float | None
132
- created_at: datetime
133
133
  modified_at: datetime
134
+ orphaned_timestamp: float | None
134
135
  _cache: dict[str, Any]
135
136
  @domain.default
136
137
  def _domain_default(self) -> str: ...
137
138
  @under_cached_property
138
139
  def as_storage_fragment(self) -> json_fragment: ...
139
- def __init__(self, entity_id, unique_id, platform, config_entry_id, config_subentry_id, domain, id, orphaned_timestamp, created_at, modified_at, cache) -> None: ...
140
+ def __init__(self, entity_id, unique_id, platform, config_entry_id, config_subentry_id, created_at, domain, id, modified_at, orphaned_timestamp, cache) -> None: ...
140
141
  def __lt__(self, other): ...
141
142
  def __le__(self, other): ...
142
143
  def __gt__(self, other): ...
@@ -182,9 +183,9 @@ class EntityRegistry(BaseRegistry):
182
183
  def async_device_ids(self) -> list[str]: ...
183
184
  def _entity_id_available(self, entity_id: str) -> bool: ...
184
185
  @callback
185
- def async_generate_entity_id(self, domain: str, suggested_object_id: str) -> str: ...
186
+ def async_generate_entity_id(self, domain: str, suggested_object_id: str, *, current_entity_id: str | None = None, reserved_entity_ids: set[str] | None = None) -> str: ...
186
187
  @callback
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
+ def async_get_or_create(self, domain: str, platform: str, unique_id: str, *, calculated_object_id: 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: ...
188
189
  @callback
189
190
  def async_remove(self, entity_id: str) -> None: ...
190
191
  @callback
@@ -0,0 +1,6 @@
1
+ from .event import async_track_entity_registry_updated_event as async_track_entity_registry_updated_event
2
+ from collections.abc import Callable as Callable, Coroutine
3
+ from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, Event as Event, HomeAssistant as HomeAssistant, valid_entity_id as valid_entity_id
4
+ from typing import Any
5
+
6
+ def async_handle_source_entity_changes(hass: HomeAssistant, *, helper_config_entry_id: str, set_source_entity_id_or_uuid: Callable[[str], None], source_device_id: str | None, source_entity_id_or_uuid: str, source_entity_removed: Callable[[], Coroutine[Any, Any, None]]) -> CALLBACK_TYPE: ...
@@ -28,6 +28,11 @@ def _entity_feature_flag(domain: str, enum_name: str, feature_name: str) -> int:
28
28
  def _validate_supported_feature(supported_feature: str) -> int: ...
29
29
  def _validate_supported_features(supported_features: int | list[str]) -> int: ...
30
30
 
31
+ BASE_SELECTOR_CONFIG_SCHEMA: Incomplete
32
+
33
+ class BaseSelectorConfig(TypedDict, total=False):
34
+ read_only: bool
35
+
31
36
  ENTITY_FILTER_SELECTOR_CONFIG_SCHEMA: Incomplete
32
37
 
33
38
  class EntityFilterSelectorConfig(TypedDict, total=False):
@@ -44,15 +49,15 @@ class DeviceFilterSelectorConfig(TypedDict, total=False):
44
49
  model: str
45
50
  model_id: str
46
51
 
47
- class ActionSelectorConfig(TypedDict): ...
52
+ class ActionSelectorConfig(BaseSelectorConfig): ...
48
53
 
49
54
  class ActionSelector(Selector[ActionSelectorConfig]):
50
55
  selector_type: str
51
- CONFIG_SCHEMA: Incomplete
56
+ CONFIG_SCHEMA = BASE_SELECTOR_CONFIG_SCHEMA
52
57
  def __init__(self, config: ActionSelectorConfig | None = None) -> None: ...
53
58
  def __call__(self, data: Any) -> Any: ...
54
59
 
55
- class AddonSelectorConfig(TypedDict, total=False):
60
+ class AddonSelectorConfig(BaseSelectorConfig, total=False):
56
61
  name: str
57
62
  slug: str
58
63
 
@@ -62,7 +67,7 @@ class AddonSelector(Selector[AddonSelectorConfig]):
62
67
  def __init__(self, config: AddonSelectorConfig | None = None) -> None: ...
63
68
  def __call__(self, data: Any) -> str: ...
64
69
 
65
- class AreaSelectorConfig(TypedDict, total=False):
70
+ class AreaSelectorConfig(BaseSelectorConfig, total=False):
66
71
  entity: EntityFilterSelectorConfig | list[EntityFilterSelectorConfig]
67
72
  device: DeviceFilterSelectorConfig | list[DeviceFilterSelectorConfig]
68
73
  multiple: bool
@@ -73,15 +78,15 @@ class AreaSelector(Selector[AreaSelectorConfig]):
73
78
  def __init__(self, config: AreaSelectorConfig | None = None) -> None: ...
74
79
  def __call__(self, data: Any) -> str | list[str]: ...
75
80
 
76
- class AssistPipelineSelectorConfig(TypedDict, total=False): ...
81
+ class AssistPipelineSelectorConfig(BaseSelectorConfig, total=False): ...
77
82
 
78
83
  class AssistPipelineSelector(Selector[AssistPipelineSelectorConfig]):
79
84
  selector_type: str
80
- CONFIG_SCHEMA: Incomplete
85
+ CONFIG_SCHEMA = BASE_SELECTOR_CONFIG_SCHEMA
81
86
  def __init__(self, config: AssistPipelineSelectorConfig | None = None) -> None: ...
82
87
  def __call__(self, data: Any) -> str: ...
83
88
 
84
- class AttributeSelectorConfig(TypedDict, total=False):
89
+ class AttributeSelectorConfig(BaseSelectorConfig, total=False):
85
90
  entity_id: Required[str]
86
91
  hide_attributes: list[str]
87
92
 
@@ -91,31 +96,31 @@ class AttributeSelector(Selector[AttributeSelectorConfig]):
91
96
  def __init__(self, config: AttributeSelectorConfig) -> None: ...
92
97
  def __call__(self, data: Any) -> str: ...
93
98
 
94
- class BackupLocationSelectorConfig(TypedDict, total=False): ...
99
+ class BackupLocationSelectorConfig(BaseSelectorConfig, total=False): ...
95
100
 
96
101
  class BackupLocationSelector(Selector[BackupLocationSelectorConfig]):
97
102
  selector_type: str
98
- CONFIG_SCHEMA: Incomplete
103
+ CONFIG_SCHEMA = BASE_SELECTOR_CONFIG_SCHEMA
99
104
  def __init__(self, config: BackupLocationSelectorConfig | None = None) -> None: ...
100
105
  def __call__(self, data: Any) -> str: ...
101
106
 
102
- class BooleanSelectorConfig(TypedDict): ...
107
+ class BooleanSelectorConfig(BaseSelectorConfig): ...
103
108
 
104
109
  class BooleanSelector(Selector[BooleanSelectorConfig]):
105
110
  selector_type: str
106
- CONFIG_SCHEMA: Incomplete
111
+ CONFIG_SCHEMA = BASE_SELECTOR_CONFIG_SCHEMA
107
112
  def __init__(self, config: BooleanSelectorConfig | None = None) -> None: ...
108
113
  def __call__(self, data: Any) -> bool: ...
109
114
 
110
- class ColorRGBSelectorConfig(TypedDict): ...
115
+ class ColorRGBSelectorConfig(BaseSelectorConfig): ...
111
116
 
112
117
  class ColorRGBSelector(Selector[ColorRGBSelectorConfig]):
113
118
  selector_type: str
114
- CONFIG_SCHEMA: Incomplete
119
+ CONFIG_SCHEMA = BASE_SELECTOR_CONFIG_SCHEMA
115
120
  def __init__(self, config: ColorRGBSelectorConfig | None = None) -> None: ...
116
121
  def __call__(self, data: Any) -> list[int]: ...
117
122
 
118
- class ColorTempSelectorConfig(TypedDict, total=False):
123
+ class ColorTempSelectorConfig(BaseSelectorConfig, total=False):
119
124
  unit: ColorTempSelectorUnit
120
125
  min: int
121
126
  max: int
@@ -132,15 +137,15 @@ class ColorTempSelector(Selector[ColorTempSelectorConfig]):
132
137
  def __init__(self, config: ColorTempSelectorConfig | None = None) -> None: ...
133
138
  def __call__(self, data: Any) -> int: ...
134
139
 
135
- class ConditionSelectorConfig(TypedDict): ...
140
+ class ConditionSelectorConfig(BaseSelectorConfig): ...
136
141
 
137
142
  class ConditionSelector(Selector[ConditionSelectorConfig]):
138
143
  selector_type: str
139
- CONFIG_SCHEMA: Incomplete
144
+ CONFIG_SCHEMA = BASE_SELECTOR_CONFIG_SCHEMA
140
145
  def __init__(self, config: ConditionSelectorConfig | None = None) -> None: ...
141
146
  def __call__(self, data: Any) -> Any: ...
142
147
 
143
- class ConfigEntrySelectorConfig(TypedDict, total=False):
148
+ class ConfigEntrySelectorConfig(BaseSelectorConfig, total=False):
144
149
  integration: str
145
150
 
146
151
  class ConfigEntrySelector(Selector[ConfigEntrySelectorConfig]):
@@ -149,7 +154,7 @@ class ConfigEntrySelector(Selector[ConfigEntrySelectorConfig]):
149
154
  def __init__(self, config: ConfigEntrySelectorConfig | None = None) -> None: ...
150
155
  def __call__(self, data: Any) -> str: ...
151
156
 
152
- class ConstantSelectorConfig(TypedDict, total=False):
157
+ class ConstantSelectorConfig(BaseSelectorConfig, total=False):
153
158
  label: str
154
159
  translation_key: str
155
160
  value: str | int | bool
@@ -166,7 +171,7 @@ class QrErrorCorrectionLevel(StrEnum):
166
171
  QUARTILE = 'quartile'
167
172
  HIGH = 'high'
168
173
 
169
- class QrCodeSelectorConfig(TypedDict, total=False):
174
+ class QrCodeSelectorConfig(BaseSelectorConfig, total=False):
170
175
  data: str
171
176
  scale: int
172
177
  error_correction_level: QrErrorCorrectionLevel
@@ -177,7 +182,7 @@ class QrCodeSelector(Selector[QrCodeSelectorConfig]):
177
182
  def __init__(self, config: QrCodeSelectorConfig) -> None: ...
178
183
  def __call__(self, data: Any) -> Any: ...
179
184
 
180
- class ConversationAgentSelectorConfig(TypedDict, total=False):
185
+ class ConversationAgentSelectorConfig(BaseSelectorConfig, total=False):
181
186
  language: str
182
187
 
183
188
  class ConversationAgentSelector(Selector[ConversationAgentSelectorConfig]):
@@ -186,7 +191,7 @@ class ConversationAgentSelector(Selector[ConversationAgentSelectorConfig]):
186
191
  def __init__(self, config: ConversationAgentSelectorConfig | None = None) -> None: ...
187
192
  def __call__(self, data: Any) -> str: ...
188
193
 
189
- class CountrySelectorConfig(TypedDict, total=False):
194
+ class CountrySelectorConfig(BaseSelectorConfig, total=False):
190
195
  countries: list[str]
191
196
  no_sort: bool
192
197
 
@@ -196,23 +201,23 @@ class CountrySelector(Selector[CountrySelectorConfig]):
196
201
  def __init__(self, config: CountrySelectorConfig | None = None) -> None: ...
197
202
  def __call__(self, data: Any) -> Any: ...
198
203
 
199
- class DateSelectorConfig(TypedDict): ...
204
+ class DateSelectorConfig(BaseSelectorConfig): ...
200
205
 
201
206
  class DateSelector(Selector[DateSelectorConfig]):
202
207
  selector_type: str
203
- CONFIG_SCHEMA: Incomplete
208
+ CONFIG_SCHEMA = BASE_SELECTOR_CONFIG_SCHEMA
204
209
  def __init__(self, config: DateSelectorConfig | None = None) -> None: ...
205
210
  def __call__(self, data: Any) -> Any: ...
206
211
 
207
- class DateTimeSelectorConfig(TypedDict): ...
212
+ class DateTimeSelectorConfig(BaseSelectorConfig): ...
208
213
 
209
214
  class DateTimeSelector(Selector[DateTimeSelectorConfig]):
210
215
  selector_type: str
211
- CONFIG_SCHEMA: Incomplete
216
+ CONFIG_SCHEMA = BASE_SELECTOR_CONFIG_SCHEMA
212
217
  def __init__(self, config: DateTimeSelectorConfig | None = None) -> None: ...
213
218
  def __call__(self, data: Any) -> Any: ...
214
219
 
215
- class DeviceSelectorConfig(DeviceFilterSelectorConfig, total=False):
220
+ class DeviceSelectorConfig(BaseSelectorConfig, DeviceFilterSelectorConfig, total=False):
216
221
  entity: EntityFilterSelectorConfig | list[EntityFilterSelectorConfig]
217
222
  multiple: bool
218
223
  filter: DeviceFilterSelectorConfig | list[DeviceFilterSelectorConfig]
@@ -223,7 +228,7 @@ class DeviceSelector(Selector[DeviceSelectorConfig]):
223
228
  def __init__(self, config: DeviceSelectorConfig | None = None) -> None: ...
224
229
  def __call__(self, data: Any) -> str | list[str]: ...
225
230
 
226
- class DurationSelectorConfig(TypedDict, total=False):
231
+ class DurationSelectorConfig(BaseSelectorConfig, total=False):
227
232
  enable_day: bool
228
233
  enable_millisecond: bool
229
234
  allow_negative: bool
@@ -234,7 +239,7 @@ class DurationSelector(Selector[DurationSelectorConfig]):
234
239
  def __init__(self, config: DurationSelectorConfig | None = None) -> None: ...
235
240
  def __call__(self, data: Any) -> dict[str, float]: ...
236
241
 
237
- class EntitySelectorConfig(EntityFilterSelectorConfig, total=False):
242
+ class EntitySelectorConfig(BaseSelectorConfig, EntityFilterSelectorConfig, total=False):
238
243
  exclude_entities: list[str]
239
244
  include_entities: list[str]
240
245
  multiple: bool
@@ -246,7 +251,7 @@ class EntitySelector(Selector[EntitySelectorConfig]):
246
251
  def __init__(self, config: EntitySelectorConfig | None = None) -> None: ...
247
252
  def __call__(self, data: Any) -> str | list[str]: ...
248
253
 
249
- class FloorSelectorConfig(TypedDict, total=False):
254
+ class FloorSelectorConfig(BaseSelectorConfig, total=False):
250
255
  entity: EntityFilterSelectorConfig | list[EntityFilterSelectorConfig]
251
256
  device: DeviceFilterSelectorConfig | list[DeviceFilterSelectorConfig]
252
257
  multiple: bool
@@ -257,7 +262,7 @@ class FloorSelector(Selector[FloorSelectorConfig]):
257
262
  def __init__(self, config: FloorSelectorConfig | None = None) -> None: ...
258
263
  def __call__(self, data: Any) -> str | list[str]: ...
259
264
 
260
- class IconSelectorConfig(TypedDict, total=False):
265
+ class IconSelectorConfig(BaseSelectorConfig, total=False):
261
266
  placeholder: str
262
267
 
263
268
  class IconSelector(Selector[IconSelectorConfig]):
@@ -266,7 +271,7 @@ class IconSelector(Selector[IconSelectorConfig]):
266
271
  def __init__(self, config: IconSelectorConfig | None = None) -> None: ...
267
272
  def __call__(self, data: Any) -> str: ...
268
273
 
269
- class LabelSelectorConfig(TypedDict, total=False):
274
+ class LabelSelectorConfig(BaseSelectorConfig, total=False):
270
275
  multiple: bool
271
276
 
272
277
  class LabelSelector(Selector[LabelSelectorConfig]):
@@ -275,7 +280,7 @@ class LabelSelector(Selector[LabelSelectorConfig]):
275
280
  def __init__(self, config: LabelSelectorConfig | None = None) -> None: ...
276
281
  def __call__(self, data: Any) -> str | list[str]: ...
277
282
 
278
- class LanguageSelectorConfig(TypedDict, total=False):
283
+ class LanguageSelectorConfig(BaseSelectorConfig, total=False):
279
284
  languages: list[str]
280
285
  native_name: bool
281
286
  no_sort: bool
@@ -286,7 +291,7 @@ class LanguageSelector(Selector[LanguageSelectorConfig]):
286
291
  def __init__(self, config: LanguageSelectorConfig | None = None) -> None: ...
287
292
  def __call__(self, data: Any) -> str: ...
288
293
 
289
- class LocationSelectorConfig(TypedDict, total=False):
294
+ class LocationSelectorConfig(BaseSelectorConfig, total=False):
290
295
  radius: bool
291
296
  icon: str
292
297
 
@@ -297,16 +302,16 @@ class LocationSelector(Selector[LocationSelectorConfig]):
297
302
  def __init__(self, config: LocationSelectorConfig | None = None) -> None: ...
298
303
  def __call__(self, data: Any) -> dict[str, float]: ...
299
304
 
300
- class MediaSelectorConfig(TypedDict): ...
305
+ class MediaSelectorConfig(BaseSelectorConfig): ...
301
306
 
302
307
  class MediaSelector(Selector[MediaSelectorConfig]):
303
308
  selector_type: str
304
- CONFIG_SCHEMA: Incomplete
309
+ CONFIG_SCHEMA = BASE_SELECTOR_CONFIG_SCHEMA
305
310
  DATA_SCHEMA: Incomplete
306
311
  def __init__(self, config: MediaSelectorConfig | None = None) -> None: ...
307
312
  def __call__(self, data: Any) -> dict[str, float]: ...
308
313
 
309
- class NumberSelectorConfig(TypedDict, total=False):
314
+ class NumberSelectorConfig(BaseSelectorConfig, total=False):
310
315
  min: float
311
316
  max: float
312
317
  step: float | Literal['any']
@@ -325,11 +330,11 @@ class NumberSelector(Selector[NumberSelectorConfig]):
325
330
  def __init__(self, config: NumberSelectorConfig | None = None) -> None: ...
326
331
  def __call__(self, data: Any) -> float: ...
327
332
 
328
- class ObjectSelectorConfig(TypedDict): ...
333
+ class ObjectSelectorConfig(BaseSelectorConfig): ...
329
334
 
330
335
  class ObjectSelector(Selector[ObjectSelectorConfig]):
331
336
  selector_type: str
332
- CONFIG_SCHEMA: Incomplete
337
+ CONFIG_SCHEMA = BASE_SELECTOR_CONFIG_SCHEMA
333
338
  def __init__(self, config: ObjectSelectorConfig | None = None) -> None: ...
334
339
  def __call__(self, data: Any) -> Any: ...
335
340
 
@@ -343,7 +348,7 @@ class SelectSelectorMode(StrEnum):
343
348
  LIST = 'list'
344
349
  DROPDOWN = 'dropdown'
345
350
 
346
- class SelectSelectorConfig(TypedDict, total=False):
351
+ class SelectSelectorConfig(BaseSelectorConfig, total=False):
347
352
  options: Required[Sequence[SelectOptionDict] | Sequence[str]]
348
353
  multiple: bool
349
354
  custom_value: bool
@@ -357,11 +362,11 @@ class SelectSelector(Selector[SelectSelectorConfig]):
357
362
  def __init__(self, config: SelectSelectorConfig) -> None: ...
358
363
  def __call__(self, data: Any) -> Any: ...
359
364
 
360
- class TargetSelectorConfig(TypedDict, total=False):
365
+ class TargetSelectorConfig(BaseSelectorConfig, total=False):
361
366
  entity: EntityFilterSelectorConfig | list[EntityFilterSelectorConfig]
362
367
  device: DeviceFilterSelectorConfig | list[DeviceFilterSelectorConfig]
363
368
 
364
- class StateSelectorConfig(TypedDict, total=False):
369
+ class StateSelectorConfig(BaseSelectorConfig, total=False):
365
370
  entity_id: Required[str]
366
371
 
367
372
  class StateSelector(Selector[StateSelectorConfig]):
@@ -377,15 +382,15 @@ class TargetSelector(Selector[TargetSelectorConfig]):
377
382
  def __init__(self, config: TargetSelectorConfig | None = None) -> None: ...
378
383
  def __call__(self, data: Any) -> dict[str, list[str]]: ...
379
384
 
380
- class TemplateSelectorConfig(TypedDict): ...
385
+ class TemplateSelectorConfig(BaseSelectorConfig): ...
381
386
 
382
387
  class TemplateSelector(Selector[TemplateSelectorConfig]):
383
388
  selector_type: str
384
- CONFIG_SCHEMA: Incomplete
389
+ CONFIG_SCHEMA = BASE_SELECTOR_CONFIG_SCHEMA
385
390
  def __init__(self, config: TemplateSelectorConfig | None = None) -> None: ...
386
391
  def __call__(self, data: Any) -> str: ...
387
392
 
388
- class TextSelectorConfig(TypedDict, total=False):
393
+ class TextSelectorConfig(BaseSelectorConfig, total=False):
389
394
  multiline: bool
390
395
  prefix: str
391
396
  suffix: str
@@ -414,7 +419,7 @@ class TextSelector(Selector[TextSelectorConfig]):
414
419
  def __init__(self, config: TextSelectorConfig | None = None) -> None: ...
415
420
  def __call__(self, data: Any) -> str | list[str]: ...
416
421
 
417
- class ThemeSelectorConfig(TypedDict): ...
422
+ class ThemeSelectorConfig(BaseSelectorConfig): ...
418
423
 
419
424
  class ThemeSelector(Selector[ThemeSelectorConfig]):
420
425
  selector_type: str
@@ -422,23 +427,23 @@ class ThemeSelector(Selector[ThemeSelectorConfig]):
422
427
  def __init__(self, config: ThemeSelectorConfig | None = None) -> None: ...
423
428
  def __call__(self, data: Any) -> str: ...
424
429
 
425
- class TimeSelectorConfig(TypedDict): ...
430
+ class TimeSelectorConfig(BaseSelectorConfig): ...
426
431
 
427
432
  class TimeSelector(Selector[TimeSelectorConfig]):
428
433
  selector_type: str
429
- CONFIG_SCHEMA: Incomplete
434
+ CONFIG_SCHEMA = BASE_SELECTOR_CONFIG_SCHEMA
430
435
  def __init__(self, config: TimeSelectorConfig | None = None) -> None: ...
431
436
  def __call__(self, data: Any) -> str: ...
432
437
 
433
- class TriggerSelectorConfig(TypedDict): ...
438
+ class TriggerSelectorConfig(BaseSelectorConfig): ...
434
439
 
435
440
  class TriggerSelector(Selector[TriggerSelectorConfig]):
436
441
  selector_type: str
437
- CONFIG_SCHEMA: Incomplete
442
+ CONFIG_SCHEMA = BASE_SELECTOR_CONFIG_SCHEMA
438
443
  def __init__(self, config: TriggerSelectorConfig | None = None) -> None: ...
439
444
  def __call__(self, data: Any) -> Any: ...
440
445
 
441
- class FileSelectorConfig(TypedDict):
446
+ class FileSelectorConfig(BaseSelectorConfig):
442
447
  accept: str
443
448
 
444
449
  class FileSelector(Selector[FileSelectorConfig]):
@@ -5,7 +5,7 @@ from .group import expand_entity_ids as expand_entity_ids
5
5
  from .selector import TargetSelector as TargetSelector
6
6
  from .typing import ConfigType as ConfigType, TemplateVarsType as TemplateVarsType, VolDictType as VolDictType, VolSchemaType as VolSchemaType
7
7
  from _typeshed import Incomplete
8
- from collections.abc import Awaitable, Callable as Callable, Coroutine, Iterable
8
+ from collections.abc import Callable as Callable, Coroutine, Iterable
9
9
  from functools import cache
10
10
  from homeassistant.auth.permissions.const import CAT_ENTITIES as CAT_ENTITIES, POLICY_CONTROL as POLICY_CONTROL
11
11
  from homeassistant.const import ATTR_AREA_ID as ATTR_AREA_ID, ATTR_DEVICE_ID as ATTR_DEVICE_ID, ATTR_ENTITY_ID as ATTR_ENTITY_ID, ATTR_FLOOR_ID as ATTR_FLOOR_ID, ATTR_LABEL_ID as ATTR_LABEL_ID, CONF_ACTION as CONF_ACTION, CONF_ENTITY_ID as CONF_ENTITY_ID, CONF_SERVICE_DATA as CONF_SERVICE_DATA, CONF_SERVICE_DATA_TEMPLATE as CONF_SERVICE_DATA_TEMPLATE, CONF_SERVICE_TEMPLATE as CONF_SERVICE_TEMPLATE, CONF_TARGET as CONF_TARGET, ENTITY_MATCH_ALL as ENTITY_MATCH_ALL, ENTITY_MATCH_NONE as ENTITY_MATCH_NONE
@@ -100,10 +100,10 @@ def _get_permissible_entity_candidates(call: ServiceCall, entities: dict[str, En
100
100
  @bind_hass
101
101
  async def entity_service_call(hass: HomeAssistant, registered_entities: dict[str, Entity], func: str | HassJob, call: ServiceCall, required_features: Iterable[int] | None = None) -> EntityServiceResponse | None: ...
102
102
  async def _handle_entity_call(hass: HomeAssistant, entity: Entity, func: str | HassJob, data: dict | ServiceCall, context: Context) -> ServiceResponse: ...
103
- async def _async_admin_handler(hass: HomeAssistant, service_job: HassJob[[ServiceCall], Awaitable[None] | None], call: ServiceCall) -> None: ...
103
+ async def _async_admin_handler(hass: HomeAssistant, service_job: HassJob[[ServiceCall], Coroutine[Any, Any, ServiceResponse | EntityServiceResponse] | ServiceResponse | EntityServiceResponse | None], call: ServiceCall) -> ServiceResponse | EntityServiceResponse | None: ...
104
104
  @bind_hass
105
105
  @callback
106
- def async_register_admin_service(hass: HomeAssistant, domain: str, service: str, service_func: Callable[[ServiceCall], Awaitable[None] | None], schema: VolSchemaType = ...) -> None: ...
106
+ def async_register_admin_service(hass: HomeAssistant, domain: str, service: str, service_func: Callable[[ServiceCall], Coroutine[Any, Any, ServiceResponse | EntityServiceResponse] | ServiceResponse | EntityServiceResponse | None], schema: VolSchemaType = ..., supports_response: SupportsResponse = ...) -> None: ...
107
107
  @bind_hass
108
108
  @callback
109
109
  def verify_domain_control(hass: HomeAssistant, domain: str) -> Callable[[Callable[[ServiceCall], Any]], Callable[[ServiceCall], Any]]: ...
@@ -284,6 +284,8 @@ def raise_no_default(function: str, value: Any) -> NoReturn: ...
284
284
  def forgiving_round(value, precision: int = 0, method: str = 'common', default=...): ...
285
285
  def multiply(value, amount, default=...): ...
286
286
  def add(value, amount, default=...): ...
287
+ def apply(value, fn, *args, **kwargs): ...
288
+ def as_function(macro: jinja2.runtime.Macro) -> Callable[..., Any]: ...
287
289
  def logarithm(value, base=..., default=...): ...
288
290
  def sine(value, default=...): ...
289
291
  def cosine(value, default=...): ...
@@ -332,7 +334,8 @@ def bitwise_or(first_value, second_value): ...
332
334
  def bitwise_xor(first_value, second_value): ...
333
335
  def struct_pack(value: Any | None, format_string: str) -> bytes | None: ...
334
336
  def struct_unpack(value: bytes, format_string: str, offset: int = 0) -> Any | None: ...
335
- def base64_encode(value: str) -> str: ...
337
+ def from_hex(value: str) -> bytes: ...
338
+ def base64_encode(value: str | bytes) -> str: ...
336
339
  def base64_decode(value: str, encoding: str | None = 'utf-8') -> str | bytes: ...
337
340
  def ordinal(value): ...
338
341
  def from_json(value): ...
@@ -10,9 +10,14 @@ class MockStreamReader:
10
10
  def __init__(self, content: bytes) -> None: ...
11
11
  async def read(self, byte_count: int = -1) -> bytes: ...
12
12
 
13
+ class MockStreamReaderChunked(MockStreamReader):
14
+ async def readchunk(self) -> tuple[bytes, bool]: ...
15
+
13
16
  class MockPayloadWriter:
14
17
  def enable_chunking(self) -> None: ...
18
+ def send_headers(self, *args: Any, **kwargs: Any) -> None: ...
15
19
  async def write_headers(self, *args: Any, **kwargs: Any) -> None: ...
20
+ async def write(self, *args: Any, **kwargs: Any) -> None: ...
16
21
 
17
22
  _MOCK_PAYLOAD_WRITER: Incomplete
18
23