homeassistant-stubs 2025.7.3__py3-none-any.whl → 2025.8.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of homeassistant-stubs might be problematic. Click here for more details.

Files changed (495) hide show
  1. homeassistant-stubs/bootstrap.pyi +1 -1
  2. homeassistant-stubs/components/airnow/__init__.pyi +0 -1
  3. homeassistant-stubs/components/airnow/config_flow.pyi +2 -2
  4. homeassistant-stubs/components/airos/__init__.pyi +9 -0
  5. homeassistant-stubs/components/airos/config_flow.pyi +14 -0
  6. homeassistant-stubs/components/airos/const.pyi +5 -0
  7. homeassistant-stubs/components/airos/coordinator.pyi +16 -0
  8. homeassistant-stubs/components/airos/diagnostics.pyi +13 -0
  9. homeassistant-stubs/components/airos/entity.pyi +11 -0
  10. homeassistant-stubs/components/airos/sensor.pyi +29 -0
  11. homeassistant-stubs/components/airq/const.pyi +0 -1
  12. homeassistant-stubs/components/airq/sensor.pyi +2 -2
  13. homeassistant-stubs/components/airthings/__init__.pyi +1 -3
  14. homeassistant-stubs/components/airthings/coordinator.pyi +3 -1
  15. homeassistant-stubs/components/airthings/sensor.pyi +1 -1
  16. homeassistant-stubs/components/alexa_devices/__init__.pyi +6 -0
  17. homeassistant-stubs/components/alexa_devices/config_flow.pyi +10 -0
  18. homeassistant-stubs/components/alexa_devices/coordinator.pyi +4 -3
  19. homeassistant-stubs/components/alexa_devices/services.pyi +24 -0
  20. homeassistant-stubs/components/amberelectric/__init__.pyi +7 -1
  21. homeassistant-stubs/components/amberelectric/const.pyi +8 -1
  22. homeassistant-stubs/components/amberelectric/coordinator.pyi +1 -2
  23. homeassistant-stubs/components/amberelectric/helpers.pyi +6 -0
  24. homeassistant-stubs/components/amberelectric/sensor.pyi +2 -2
  25. homeassistant-stubs/components/amberelectric/services.pyi +15 -0
  26. homeassistant-stubs/components/analytics/__init__.pyi +1 -0
  27. homeassistant-stubs/components/analytics/analytics.pyi +3 -0
  28. homeassistant-stubs/components/analytics/http.pyi +10 -0
  29. homeassistant-stubs/components/analytics_insights/__init__.pyi +0 -1
  30. homeassistant-stubs/components/analytics_insights/config_flow.pyi +2 -2
  31. homeassistant-stubs/components/androidtv_remote/__init__.pyi +2 -6
  32. homeassistant-stubs/components/androidtv_remote/config_flow.pyi +6 -6
  33. homeassistant-stubs/components/androidtv_remote/diagnostics.pyi +1 -1
  34. homeassistant-stubs/components/androidtv_remote/entity.pyi +2 -2
  35. homeassistant-stubs/components/androidtv_remote/helpers.pyi +3 -1
  36. homeassistant-stubs/components/androidtv_remote/media_player.pyi +4 -4
  37. homeassistant-stubs/components/androidtv_remote/remote.pyi +1 -1
  38. homeassistant-stubs/components/assist_pipeline/__init__.pyi +2 -2
  39. homeassistant-stubs/components/assist_pipeline/const.pyi +0 -1
  40. homeassistant-stubs/components/assist_pipeline/pipeline.pyi +2 -5
  41. homeassistant-stubs/components/asuswrt/router.pyi +3 -1
  42. homeassistant-stubs/components/awair/const.pyi +1 -0
  43. homeassistant-stubs/components/awair/sensor.pyi +1 -1
  44. homeassistant-stubs/components/backup/__init__.pyi +6 -2
  45. homeassistant-stubs/components/backup/coordinator.pyi +0 -1
  46. homeassistant-stubs/components/backup/manager.pyi +6 -3
  47. homeassistant-stubs/components/backup/onboarding.pyi +1 -1
  48. homeassistant-stubs/components/backup/services.pyi +7 -0
  49. homeassistant-stubs/components/backup/websocket.pyi +4 -1
  50. homeassistant-stubs/components/blue_current/__init__.pyi +5 -5
  51. homeassistant-stubs/components/blue_current/const.pyi +11 -0
  52. homeassistant-stubs/components/blue_current/switch.pyi +40 -0
  53. homeassistant-stubs/components/bosch_alarm/__init__.pyi +1 -1
  54. homeassistant-stubs/components/bosch_alarm/services.pyi +3 -2
  55. homeassistant-stubs/components/bring/__init__.pyi +5 -0
  56. homeassistant-stubs/components/bring/const.pyi +4 -0
  57. homeassistant-stubs/components/bring/services.pyi +14 -0
  58. homeassistant-stubs/components/cloud/backup.pyi +3 -3
  59. homeassistant-stubs/components/cloud/repairs.pyi +3 -3
  60. homeassistant-stubs/components/cloud/subscription.pyi +2 -1
  61. homeassistant-stubs/components/cloud/tts.pyi +2 -1
  62. homeassistant-stubs/components/command_line/sensor.pyi +0 -2
  63. homeassistant-stubs/components/demo/vacuum.pyi +0 -3
  64. homeassistant-stubs/components/derivative/__init__.pyi +5 -1
  65. homeassistant-stubs/components/derivative/config_flow.pyi +2 -0
  66. homeassistant-stubs/components/derivative/sensor.pyi +7 -4
  67. homeassistant-stubs/components/devolo_home_control/config_flow.pyi +3 -7
  68. homeassistant-stubs/components/devolo_home_control/entity.pyi +0 -1
  69. homeassistant-stubs/components/devolo_home_network/coordinator.pyi +2 -2
  70. homeassistant-stubs/components/devolo_home_network/device_tracker.pyi +2 -2
  71. homeassistant-stubs/components/devolo_home_network/entity.pyi +1 -1
  72. homeassistant-stubs/components/devolo_home_network/sensor.pyi +1 -1
  73. homeassistant-stubs/components/discovergy/__init__.pyi +1 -0
  74. homeassistant-stubs/components/discovergy/coordinator.pyi +1 -0
  75. homeassistant-stubs/components/dnsip/__init__.pyi +0 -1
  76. homeassistant-stubs/components/dnsip/config_flow.pyi +2 -2
  77. homeassistant-stubs/components/downloader/services.pyi +1 -0
  78. homeassistant-stubs/components/ecovacs/binary_sensor.pyi +13 -3
  79. homeassistant-stubs/components/ecovacs/sensor.pyi +13 -0
  80. homeassistant-stubs/components/ecovacs/vacuum.pyi +1 -7
  81. homeassistant-stubs/components/eheimdigital/config_flow.pyi +2 -1
  82. homeassistant-stubs/components/elevenlabs/config_flow.pyi +1 -1
  83. homeassistant-stubs/components/elevenlabs/const.pyi +0 -2
  84. homeassistant-stubs/components/elevenlabs/tts.pyi +2 -3
  85. homeassistant-stubs/components/enphase_envoy/__init__.pyi +0 -2
  86. homeassistant-stubs/components/enphase_envoy/config_flow.pyi +2 -2
  87. homeassistant-stubs/components/esphome/config_flow.pyi +2 -0
  88. homeassistant-stubs/components/esphome/encryption_key_storage.pyi +29 -0
  89. homeassistant-stubs/components/esphome/entity.pyi +3 -1
  90. homeassistant-stubs/components/esphome/entry_data.pyi +14 -6
  91. homeassistant-stubs/components/esphome/manager.pyi +3 -1
  92. homeassistant-stubs/components/feedreader/__init__.pyi +0 -1
  93. homeassistant-stubs/components/feedreader/config_flow.pyi +3 -3
  94. homeassistant-stubs/components/forecast_solar/__init__.pyi +0 -1
  95. homeassistant-stubs/components/forecast_solar/config_flow.pyi +2 -2
  96. homeassistant-stubs/components/fritz/__init__.pyi +0 -1
  97. homeassistant-stubs/components/fritz/config_flow.pyi +2 -2
  98. homeassistant-stubs/components/fritzbox_callmonitor/__init__.pyi +0 -1
  99. homeassistant-stubs/components/fritzbox_callmonitor/config_flow.pyi +2 -2
  100. homeassistant-stubs/components/frontend/__init__.pyi +1 -0
  101. homeassistant-stubs/components/fujitsu_fglair/climate.pyi +1 -1
  102. homeassistant-stubs/components/generic_hygrostat/__init__.pyi +3 -1
  103. homeassistant-stubs/components/generic_hygrostat/config_flow.pyi +1 -0
  104. homeassistant-stubs/components/generic_hygrostat/humidifier.pyi +3 -3
  105. homeassistant-stubs/components/generic_thermostat/__init__.pyi +5 -1
  106. homeassistant-stubs/components/generic_thermostat/climate.pyi +3 -3
  107. homeassistant-stubs/components/generic_thermostat/config_flow.pyi +1 -0
  108. homeassistant-stubs/components/geo_location/trigger.pyi +0 -1
  109. homeassistant-stubs/components/gios/const.pyi +2 -0
  110. homeassistant-stubs/components/gios/sensor.pyi +1 -1
  111. homeassistant-stubs/components/google_assistant_sdk/application_credentials.pyi +1 -0
  112. homeassistant-stubs/components/google_cloud/const.pyi +1 -0
  113. homeassistant-stubs/components/google_cloud/stt.pyi +3 -2
  114. homeassistant-stubs/components/guardian/__init__.pyi +1 -1
  115. homeassistant-stubs/components/guardian/services.pyi +2 -1
  116. homeassistant-stubs/components/habitica/button.pyi +3 -4
  117. homeassistant-stubs/components/habitica/coordinator.pyi +2 -3
  118. homeassistant-stubs/components/habitica/entity.pyi +1 -1
  119. homeassistant-stubs/components/habitica/sensor.pyi +3 -18
  120. homeassistant-stubs/components/habitica/switch.pyi +4 -3
  121. homeassistant-stubs/components/habitica/util.pyi +2 -1
  122. homeassistant-stubs/components/heos/__init__.pyi +1 -1
  123. homeassistant-stubs/components/heos/config_flow.pyi +3 -0
  124. homeassistant-stubs/components/heos/services.pyi +3 -2
  125. homeassistant-stubs/components/here_travel_time/__init__.pyi +3 -1
  126. homeassistant-stubs/components/here_travel_time/config_flow.pyi +3 -2
  127. homeassistant-stubs/components/here_travel_time/const.pyi +1 -0
  128. homeassistant-stubs/components/here_travel_time/coordinator.pyi +1 -1
  129. homeassistant-stubs/components/here_travel_time/model.pyi +2 -1
  130. homeassistant-stubs/components/history_stats/__init__.pyi +5 -1
  131. homeassistant-stubs/components/history_stats/config_flow.pyi +14 -0
  132. homeassistant-stubs/components/history_stats/coordinator.pyi +3 -1
  133. homeassistant-stubs/components/history_stats/data.pyi +2 -1
  134. homeassistant-stubs/components/history_stats/helpers.pyi +1 -1
  135. homeassistant-stubs/components/history_stats/sensor.pyi +7 -4
  136. homeassistant-stubs/components/holiday/__init__.pyi +0 -1
  137. homeassistant-stubs/components/holiday/config_flow.pyi +2 -2
  138. homeassistant-stubs/components/home_connect/__init__.pyi +1 -1
  139. homeassistant-stubs/components/home_connect/services.pyi +3 -2
  140. homeassistant-stubs/components/homeassistant/__init__.pyi +2 -1
  141. homeassistant-stubs/components/homeassistant/triggers/time.pyi +2 -1
  142. homeassistant-stubs/components/homeassistant_hardware/coordinator.pyi +2 -1
  143. homeassistant-stubs/components/homee/__init__.pyi +1 -1
  144. homeassistant-stubs/components/homee/config_flow.pyi +5 -0
  145. homeassistant-stubs/components/homekit/__init__.pyi +2 -1
  146. homeassistant-stubs/components/http/__init__.pyi +1 -2
  147. homeassistant-stubs/components/huawei_lte/__init__.pyi +1 -2
  148. homeassistant-stubs/components/huawei_lte/config_flow.pyi +5 -4
  149. homeassistant-stubs/components/huawei_lte/const.pyi +1 -1
  150. homeassistant-stubs/components/huawei_lte/diagnostics.pyi +18 -0
  151. homeassistant-stubs/components/husqvarna_automower/button.pyi +2 -2
  152. homeassistant-stubs/components/husqvarna_automower/calendar.pyi +3 -0
  153. homeassistant-stubs/components/husqvarna_automower/coordinator.pyi +15 -13
  154. homeassistant-stubs/components/husqvarna_automower/entity.pyi +2 -6
  155. homeassistant-stubs/components/husqvarna_automower/lawn_mower.pyi +2 -2
  156. homeassistant-stubs/components/husqvarna_automower/sensor.pyi +5 -0
  157. homeassistant-stubs/components/hydrawise/binary_sensor.pyi +1 -1
  158. homeassistant-stubs/components/hydrawise/const.pyi +1 -0
  159. homeassistant-stubs/components/hydrawise/coordinator.pyi +9 -2
  160. homeassistant-stubs/components/hydrawise/entity.pyi +1 -1
  161. homeassistant-stubs/components/hydrawise/sensor.pyi +1 -1
  162. homeassistant-stubs/components/hydrawise/switch.pyi +1 -1
  163. homeassistant-stubs/components/hydrawise/valve.pyi +1 -1
  164. homeassistant-stubs/components/hyperion/__init__.pyi +0 -1
  165. homeassistant-stubs/components/hyperion/config_flow.pyi +2 -2
  166. homeassistant-stubs/components/imgw_pib/sensor.pyi +7 -1
  167. homeassistant-stubs/components/immich/__init__.pyi +6 -0
  168. homeassistant-stubs/components/immich/media_source.pyi +1 -0
  169. homeassistant-stubs/components/immich/services.pyi +18 -0
  170. homeassistant-stubs/components/input_text/__init__.pyi +1 -1
  171. homeassistant-stubs/components/integration/__init__.pyi +5 -1
  172. homeassistant-stubs/components/integration/config_flow.pyi +1 -0
  173. homeassistant-stubs/components/integration/sensor.pyi +5 -6
  174. homeassistant-stubs/components/iron_os/__init__.pyi +0 -3
  175. homeassistant-stubs/components/iron_os/const.pyi +4 -0
  176. homeassistant-stubs/components/iron_os/coordinator.pyi +1 -1
  177. homeassistant-stubs/components/iron_os/number.pyi +20 -4
  178. homeassistant-stubs/components/iron_os/switch.pyi +2 -0
  179. homeassistant-stubs/components/isy994/__init__.pyi +0 -1
  180. homeassistant-stubs/components/isy994/config_flow.pyi +3 -3
  181. homeassistant-stubs/components/jellyfin/browse_media.pyi +2 -1
  182. homeassistant-stubs/components/jellyfin/media_player.pyi +5 -2
  183. homeassistant-stubs/components/jewish_calendar/binary_sensor.pyi +5 -15
  184. homeassistant-stubs/components/jewish_calendar/config_flow.pyi +2 -2
  185. homeassistant-stubs/components/jewish_calendar/entity.pyi +19 -5
  186. homeassistant-stubs/components/jewish_calendar/sensor.pyi +11 -7
  187. homeassistant-stubs/components/knx/__init__.pyi +6 -40
  188. homeassistant-stubs/components/knx/binary_sensor.pyi +3 -2
  189. homeassistant-stubs/components/knx/button.pyi +1 -1
  190. homeassistant-stubs/components/knx/climate.pyi +1 -1
  191. homeassistant-stubs/components/knx/config_flow.pyi +14 -21
  192. homeassistant-stubs/components/knx/const.pyi +1 -1
  193. homeassistant-stubs/components/knx/cover.pyi +3 -2
  194. homeassistant-stubs/components/knx/date.pyi +1 -1
  195. homeassistant-stubs/components/knx/datetime.pyi +1 -1
  196. homeassistant-stubs/components/knx/entity.pyi +1 -1
  197. homeassistant-stubs/components/knx/fan.pyi +1 -1
  198. homeassistant-stubs/components/knx/knx_module.pyi +43 -0
  199. homeassistant-stubs/components/knx/light.pyi +3 -2
  200. homeassistant-stubs/components/knx/notify.pyi +1 -1
  201. homeassistant-stubs/components/knx/number.pyi +1 -1
  202. homeassistant-stubs/components/knx/scene.pyi +1 -1
  203. homeassistant-stubs/components/knx/select.pyi +1 -1
  204. homeassistant-stubs/components/knx/sensor.pyi +1 -1
  205. homeassistant-stubs/components/knx/services.pyi +2 -2
  206. homeassistant-stubs/components/knx/storage/config_store.pyi +4 -0
  207. homeassistant-stubs/components/knx/storage/const.pyi +8 -7
  208. homeassistant-stubs/components/knx/storage/entity_store_schema.pyi +3 -10
  209. homeassistant-stubs/components/knx/storage/knx_selector.pyi +4 -0
  210. homeassistant-stubs/components/knx/storage/migration.pyi +5 -0
  211. homeassistant-stubs/components/knx/storage/util.pyi +16 -0
  212. homeassistant-stubs/components/knx/switch.pyi +3 -2
  213. homeassistant-stubs/components/knx/text.pyi +1 -1
  214. homeassistant-stubs/components/knx/time.pyi +1 -1
  215. homeassistant-stubs/components/knx/weather.pyi +1 -1
  216. homeassistant-stubs/components/knx/websocket.pyi +1 -1
  217. homeassistant-stubs/components/lamarzocco/config_flow.pyi +2 -2
  218. homeassistant-stubs/components/lcn/binary_sensor.pyi +1 -20
  219. homeassistant-stubs/components/lcn/helpers.pyi +1 -0
  220. homeassistant-stubs/components/lcn/light.pyi +2 -1
  221. homeassistant-stubs/components/letpot/coordinator.pyi +3 -4
  222. homeassistant-stubs/components/letpot/switch.pyi +1 -1
  223. homeassistant-stubs/components/letpot/time.pyi +1 -1
  224. homeassistant-stubs/components/lifx/const.pyi +1 -0
  225. homeassistant-stubs/components/lifx/coordinator.pyi +5 -1
  226. homeassistant-stubs/components/lifx/light.pyi +1 -1
  227. homeassistant-stubs/components/lifx/manager.pyi +1 -1
  228. homeassistant-stubs/components/linkplay/select.pyi +35 -0
  229. homeassistant-stubs/components/litterrobot/sensor.pyi +3 -0
  230. homeassistant-stubs/components/matrix/__init__.pyi +1 -1
  231. homeassistant-stubs/components/matrix/services.pyi +3 -2
  232. homeassistant-stubs/components/matter/entity.pyi +2 -2
  233. homeassistant-stubs/components/matter/light.pyi +1 -1
  234. homeassistant-stubs/components/matter/number.pyi +29 -1
  235. homeassistant-stubs/components/matter/select.pyi +2 -2
  236. homeassistant-stubs/components/matter/vacuum.pyi +2 -1
  237. homeassistant-stubs/components/mcp_server/server.pyi +1 -1
  238. homeassistant-stubs/components/mealie/const.pyi +2 -0
  239. homeassistant-stubs/components/mealie/services.pyi +4 -1
  240. homeassistant-stubs/components/media_player/const.pyi +2 -2
  241. homeassistant-stubs/components/media_source/const.pyi +3 -0
  242. homeassistant-stubs/components/media_source/local_source.pyi +1 -1
  243. homeassistant-stubs/components/media_source/models.pyi +6 -2
  244. homeassistant-stubs/components/met_eireann/__init__.pyi +2 -17
  245. homeassistant-stubs/components/met_eireann/coordinator.pyi +28 -0
  246. homeassistant-stubs/components/met_eireann/weather.pyi +1 -3
  247. homeassistant-stubs/components/miele/__init__.pyi +5 -0
  248. homeassistant-stubs/components/miele/coordinator.pyi +1 -1
  249. homeassistant-stubs/components/miele/entity.pyi +2 -0
  250. homeassistant-stubs/components/miele/sensor.pyi +7 -6
  251. homeassistant-stubs/components/miele/services.pyi +24 -0
  252. homeassistant-stubs/components/miele/vacuum.pyi +0 -2
  253. homeassistant-stubs/components/modem_callerid/sensor.pyi +2 -2
  254. homeassistant-stubs/components/mold_indicator/__init__.pyi +8 -1
  255. homeassistant-stubs/components/mold_indicator/config_flow.pyi +2 -0
  256. homeassistant-stubs/components/mold_indicator/sensor.pyi +2 -2
  257. homeassistant-stubs/components/mqtt/climate.pyi +1 -37
  258. homeassistant-stubs/components/mqtt/config_flow.pyi +38 -6
  259. homeassistant-stubs/components/mqtt/const.pyi +33 -2
  260. homeassistant-stubs/components/mqtt/repairs.pyi +15 -0
  261. homeassistant-stubs/components/mqtt/vacuum.pyi +4 -3
  262. homeassistant-stubs/components/nasweb/const.pyi +1 -0
  263. homeassistant-stubs/components/nasweb/coordinator.pyi +3 -1
  264. homeassistant-stubs/components/nasweb/sensor.pyi +54 -0
  265. homeassistant-stubs/components/netatmo/climate.pyi +1 -1
  266. homeassistant-stubs/components/netatmo/const.pyi +1 -0
  267. homeassistant-stubs/components/nextdns/__init__.pyi +2 -3
  268. homeassistant-stubs/components/nextdns/coordinator.pyi +10 -2
  269. homeassistant-stubs/components/nordpool/const.pyi +1 -0
  270. homeassistant-stubs/components/nordpool/services.pyi +5 -1
  271. homeassistant-stubs/components/number/const.pyi +2 -1
  272. homeassistant-stubs/components/nut/__init__.pyi +0 -1
  273. homeassistant-stubs/components/onewire/__init__.pyi +0 -1
  274. homeassistant-stubs/components/onewire/config_flow.pyi +2 -2
  275. homeassistant-stubs/components/onkyo/__init__.pyi +2 -3
  276. homeassistant-stubs/components/onkyo/config_flow.pyi +9 -6
  277. homeassistant-stubs/components/onkyo/const.pyi +7 -65
  278. homeassistant-stubs/components/onkyo/media_player.pyi +16 -44
  279. homeassistant-stubs/components/onkyo/receiver.pyi +24 -25
  280. homeassistant-stubs/components/onkyo/services.pyi +3 -3
  281. homeassistant-stubs/components/onkyo/util.pyi +3 -0
  282. homeassistant-stubs/components/open_router/__init__.pyi +15 -0
  283. homeassistant-stubs/components/open_router/ai_task.pyi +17 -0
  284. homeassistant-stubs/components/open_router/config_flow.pyi +30 -0
  285. homeassistant-stubs/components/open_router/const.pyi +8 -0
  286. homeassistant-stubs/components/open_router/conversation.pyi +20 -0
  287. homeassistant-stubs/components/open_router/entity.pyi +33 -0
  288. homeassistant-stubs/components/openai_conversation/__init__.pyi +4 -2
  289. homeassistant-stubs/components/openai_conversation/ai_task.pyi +16 -0
  290. homeassistant-stubs/components/openai_conversation/config_flow.pyi +2 -3
  291. homeassistant-stubs/components/openai_conversation/const.pyi +9 -1
  292. homeassistant-stubs/components/openai_conversation/conversation.pyi +6 -22
  293. homeassistant-stubs/components/openai_conversation/entity.pyi +36 -0
  294. homeassistant-stubs/components/opower/__init__.pyi +8 -0
  295. homeassistant-stubs/components/opower/config_flow.pyi +30 -0
  296. homeassistant-stubs/components/opower/const.pyi +4 -0
  297. homeassistant-stubs/components/opower/coordinator.pyi +24 -0
  298. homeassistant-stubs/components/opower/sensor.pyi +35 -0
  299. homeassistant-stubs/components/pegel_online/__init__.pyi +1 -1
  300. homeassistant-stubs/components/pegel_online/sensor.pyi +2 -0
  301. homeassistant-stubs/components/pi_hole/__init__.pyi +6 -2
  302. homeassistant-stubs/components/pi_hole/config_flow.pyi +1 -2
  303. homeassistant-stubs/components/pi_hole/const.pyi +1 -0
  304. homeassistant-stubs/components/pi_hole/sensor.pyi +5 -0
  305. homeassistant-stubs/components/pi_hole/update.pyi +3 -3
  306. homeassistant-stubs/components/ping/__init__.pyi +0 -1
  307. homeassistant-stubs/components/ping/config_flow.pyi +3 -3
  308. homeassistant-stubs/components/plugwise/select.pyi +1 -1
  309. homeassistant-stubs/components/proximity/__init__.pyi +0 -1
  310. homeassistant-stubs/components/proximity/config_flow.pyi +3 -3
  311. homeassistant-stubs/components/purpleair/__init__.pyi +0 -1
  312. homeassistant-stubs/components/purpleair/config_flow.pyi +2 -2
  313. homeassistant-stubs/components/pyload/config_flow.pyi +4 -0
  314. homeassistant-stubs/components/recorder/pool.pyi +2 -1
  315. homeassistant-stubs/components/renault/__init__.pyi +1 -1
  316. homeassistant-stubs/components/renault/services.pyi +3 -2
  317. homeassistant-stubs/components/reolink/__init__.pyi +0 -1
  318. homeassistant-stubs/components/reolink/config_flow.pyi +2 -2
  319. homeassistant-stubs/components/reolink/number.pyi +1 -1
  320. homeassistant-stubs/components/reolink/sensor.pyi +1 -1
  321. homeassistant-stubs/components/rest/sensor.pyi +1 -3
  322. homeassistant-stubs/components/roborock/__init__.pyi +0 -1
  323. homeassistant-stubs/components/roborock/config_flow.pyi +2 -2
  324. homeassistant-stubs/components/roborock/vacuum.pyi +0 -2
  325. homeassistant-stubs/components/roku/__init__.pyi +0 -1
  326. homeassistant-stubs/components/roku/config_flow.pyi +2 -2
  327. homeassistant-stubs/components/russound_rio/const.pyi +2 -0
  328. homeassistant-stubs/components/russound_rio/media_player.pyi +6 -0
  329. homeassistant-stubs/components/scrape/sensor.pyi +1 -2
  330. homeassistant-stubs/components/sensor/const.pyi +2 -1
  331. homeassistant-stubs/components/sensor/device_condition.pyi +1 -0
  332. homeassistant-stubs/components/sensor/device_trigger.pyi +1 -0
  333. homeassistant-stubs/components/shelly/button.pyi +2 -2
  334. homeassistant-stubs/components/shelly/climate.pyi +2 -2
  335. homeassistant-stubs/components/shelly/coordinator.pyi +5 -1
  336. homeassistant-stubs/components/shelly/entity.pyi +3 -0
  337. homeassistant-stubs/components/shelly/event.pyi +2 -2
  338. homeassistant-stubs/components/shelly/sensor.pyi +2 -2
  339. homeassistant-stubs/components/shelly/utils.pyi +2 -2
  340. homeassistant-stubs/components/sleepiq/const.pyi +2 -0
  341. homeassistant-stubs/components/sleepiq/number.pyi +7 -3
  342. homeassistant-stubs/components/sleepiq/select.pyi +15 -2
  343. homeassistant-stubs/components/smhi/coordinator.pyi +3 -0
  344. homeassistant-stubs/components/smhi/entity.pyi +3 -1
  345. homeassistant-stubs/components/smhi/sensor.pyi +30 -0
  346. homeassistant-stubs/components/smhi/weather.pyi +4 -2
  347. homeassistant-stubs/components/sonarr/__init__.pyi +0 -1
  348. homeassistant-stubs/components/sonarr/config_flow.pyi +2 -2
  349. homeassistant-stubs/components/speedtestdotnet/__init__.pyi +0 -1
  350. homeassistant-stubs/components/speedtestdotnet/config_flow.pyi +2 -2
  351. homeassistant-stubs/components/sql/__init__.pyi +0 -1
  352. homeassistant-stubs/components/sql/config_flow.pyi +2 -2
  353. homeassistant-stubs/components/squeezebox/__init__.pyi +3 -2
  354. homeassistant-stubs/components/squeezebox/browse_media.pyi +3 -1
  355. homeassistant-stubs/components/squeezebox/const.pyi +2 -3
  356. homeassistant-stubs/components/squeezebox/coordinator.pyi +2 -2
  357. homeassistant-stubs/components/squeezebox/media_player.pyi +3 -2
  358. homeassistant-stubs/components/statistics/__init__.pyi +3 -1
  359. homeassistant-stubs/components/statistics/config_flow.pyi +1 -0
  360. homeassistant-stubs/components/statistics/sensor.pyi +5 -5
  361. homeassistant-stubs/components/stookwijzer/__init__.pyi +4 -0
  362. homeassistant-stubs/components/stookwijzer/const.pyi +2 -0
  363. homeassistant-stubs/components/stookwijzer/services.pyi +17 -0
  364. homeassistant-stubs/components/switch_as_x/__init__.pyi +2 -2
  365. homeassistant-stubs/components/switch_as_x/entity.pyi +1 -3
  366. homeassistant-stubs/components/switchbot_cloud/__init__.pyi +2 -0
  367. homeassistant-stubs/components/switchbot_cloud/const.pyi +1 -0
  368. homeassistant-stubs/components/switchbot_cloud/fan.pyi +26 -0
  369. homeassistant-stubs/components/switchbot_cloud/light.pyi +40 -0
  370. homeassistant-stubs/components/switchbot_cloud/vacuum.pyi +17 -1
  371. homeassistant-stubs/components/synology_dsm/__init__.pyi +0 -1
  372. homeassistant-stubs/components/synology_dsm/config_flow.pyi +2 -2
  373. homeassistant-stubs/components/tankerkoenig/__init__.pyi +10 -0
  374. homeassistant-stubs/components/tankerkoenig/binary_sensor.pyi +23 -0
  375. homeassistant-stubs/components/tankerkoenig/config_flow.pyi +33 -0
  376. homeassistant-stubs/components/tankerkoenig/const.pyi +13 -0
  377. homeassistant-stubs/components/tankerkoenig/coordinator.pyi +22 -0
  378. homeassistant-stubs/components/tankerkoenig/diagnostics.pyi +10 -0
  379. homeassistant-stubs/components/tankerkoenig/entity.pyi +11 -0
  380. homeassistant-stubs/components/tankerkoenig/sensor.pyi +28 -0
  381. homeassistant-stubs/components/telegram_bot/webhooks.pyi +3 -1
  382. homeassistant-stubs/components/threshold/__init__.pyi +5 -1
  383. homeassistant-stubs/components/threshold/binary_sensor.pyi +3 -4
  384. homeassistant-stubs/components/threshold/config_flow.pyi +1 -0
  385. homeassistant-stubs/components/time_date/config_flow.pyi +1 -2
  386. homeassistant-stubs/components/trafikverket_train/__init__.pyi +0 -1
  387. homeassistant-stubs/components/trafikverket_train/config_flow.pyi +2 -2
  388. homeassistant-stubs/components/trend/__init__.pyi +3 -1
  389. homeassistant-stubs/components/trend/binary_sensor.pyi +3 -4
  390. homeassistant-stubs/components/trend/config_flow.pyi +1 -0
  391. homeassistant-stubs/components/tts/entity.pyi +0 -2
  392. homeassistant-stubs/components/unifi/hub/entity_loader.pyi +3 -2
  393. homeassistant-stubs/components/unifiprotect/__init__.pyi +5 -5
  394. homeassistant-stubs/components/unifiprotect/config_flow.pyi +5 -5
  395. homeassistant-stubs/components/unifiprotect/repairs.pyi +0 -6
  396. homeassistant-stubs/components/unifiprotect/services.pyi +1 -1
  397. homeassistant-stubs/components/uptime_kuma/__init__.pyi +14 -0
  398. homeassistant-stubs/components/uptime_kuma/config_flow.pyi +26 -0
  399. homeassistant-stubs/components/uptime_kuma/const.pyi +7 -0
  400. homeassistant-stubs/components/uptime_kuma/coordinator.pyi +30 -0
  401. homeassistant-stubs/components/uptime_kuma/diagnostics.pyi +9 -0
  402. homeassistant-stubs/components/uptime_kuma/sensor.pyi +46 -0
  403. homeassistant-stubs/components/uptime_kuma/update.pyi +39 -0
  404. homeassistant-stubs/components/vacuum/__init__.pyi +8 -0
  405. homeassistant-stubs/components/velbus/__init__.pyi +1 -1
  406. homeassistant-stubs/components/velbus/const.pyi +0 -1
  407. homeassistant-stubs/components/velbus/services.pyi +4 -4
  408. homeassistant-stubs/components/vodafone_station/__init__.pyi +0 -1
  409. homeassistant-stubs/components/vodafone_station/config_flow.pyi +2 -2
  410. homeassistant-stubs/components/volvo/__init__.pyi +15 -0
  411. homeassistant-stubs/components/volvo/api.pyi +14 -0
  412. homeassistant-stubs/components/volvo/application_credentials.pyi +9 -0
  413. homeassistant-stubs/components/volvo/config_flow.pyi +36 -0
  414. homeassistant-stubs/components/volvo/const.pyi +8 -0
  415. homeassistant-stubs/components/volvo/coordinator.pyi +46 -0
  416. homeassistant-stubs/components/volvo/entity.pyi +33 -0
  417. homeassistant-stubs/components/volvo/sensor.pyi +35 -0
  418. homeassistant-stubs/components/wallbox/__init__.pyi +4 -5
  419. homeassistant-stubs/components/wallbox/coordinator.pyi +8 -2
  420. homeassistant-stubs/components/wallbox/lock.pyi +5 -4
  421. homeassistant-stubs/components/wallbox/number.pyi +6 -5
  422. homeassistant-stubs/components/wallbox/select.pyi +4 -3
  423. homeassistant-stubs/components/wallbox/sensor.pyi +5 -4
  424. homeassistant-stubs/components/wallbox/switch.pyi +5 -4
  425. homeassistant-stubs/components/waqi/__init__.pyi +3 -5
  426. homeassistant-stubs/components/waqi/coordinator.pyi +3 -2
  427. homeassistant-stubs/components/waqi/sensor.pyi +2 -13
  428. homeassistant-stubs/components/webostv/__init__.pyi +0 -1
  429. homeassistant-stubs/components/webostv/config_flow.pyi +3 -3
  430. homeassistant-stubs/components/websocket_api/commands.pyi +4 -0
  431. homeassistant-stubs/components/wiz/fan.pyi +34 -0
  432. homeassistant-stubs/components/wled/__init__.pyi +0 -1
  433. homeassistant-stubs/components/wled/config_flow.pyi +2 -2
  434. homeassistant-stubs/components/workday/__init__.pyi +0 -1
  435. homeassistant-stubs/components/workday/config_flow.pyi +2 -2
  436. homeassistant-stubs/components/yale_smart_alarm/__init__.pyi +0 -1
  437. homeassistant-stubs/components/yale_smart_alarm/config_flow.pyi +2 -2
  438. homeassistant-stubs/components/yalexs_ble/lock.pyi +14 -2
  439. homeassistant-stubs/components/zone/condition.pyi +22 -0
  440. homeassistant-stubs/components/zone/trigger.pyi +2 -1
  441. homeassistant-stubs/components/zwave_js/__init__.pyi +12 -10
  442. homeassistant-stubs/components/zwave_js/api.pyi +36 -35
  443. homeassistant-stubs/components/zwave_js/binary_sensor.pyi +7 -7
  444. homeassistant-stubs/components/zwave_js/button.pyi +5 -5
  445. homeassistant-stubs/components/zwave_js/climate.pyi +5 -5
  446. homeassistant-stubs/components/zwave_js/config_flow.pyi +7 -4
  447. homeassistant-stubs/components/zwave_js/const.pyi +0 -3
  448. homeassistant-stubs/components/zwave_js/cover.pyi +7 -7
  449. homeassistant-stubs/components/zwave_js/device_automation_helpers.pyi +1 -1
  450. homeassistant-stubs/components/zwave_js/diagnostics.pyi +5 -5
  451. homeassistant-stubs/components/zwave_js/entity.pyi +0 -4
  452. homeassistant-stubs/components/zwave_js/event.pyi +4 -4
  453. homeassistant-stubs/components/zwave_js/fan.pyi +6 -6
  454. homeassistant-stubs/components/zwave_js/helpers.pyi +10 -6
  455. homeassistant-stubs/components/zwave_js/humidifier.pyi +4 -4
  456. homeassistant-stubs/components/zwave_js/light.pyi +15 -5
  457. homeassistant-stubs/components/zwave_js/lock.pyi +3 -3
  458. homeassistant-stubs/components/zwave_js/models.pyi +12 -0
  459. homeassistant-stubs/components/zwave_js/number.pyi +6 -6
  460. homeassistant-stubs/components/zwave_js/select.pyi +8 -8
  461. homeassistant-stubs/components/zwave_js/sensor.pyi +10 -10
  462. homeassistant-stubs/components/zwave_js/siren.pyi +4 -4
  463. homeassistant-stubs/components/zwave_js/switch.pyi +7 -7
  464. homeassistant-stubs/components/zwave_js/triggers/event.pyi +1 -2
  465. homeassistant-stubs/components/zwave_js/triggers/trigger_helpers.pyi +1 -1
  466. homeassistant-stubs/components/zwave_js/update.pyi +28 -18
  467. homeassistant-stubs/config.pyi +0 -2
  468. homeassistant-stubs/config_entries.pyi +3 -0
  469. homeassistant-stubs/const.pyi +2 -0
  470. homeassistant-stubs/core.pyi +12 -8
  471. homeassistant-stubs/helpers/condition.pyi +25 -6
  472. homeassistant-stubs/helpers/config_validation.pyi +0 -2
  473. homeassistant-stubs/helpers/device.pyi +2 -0
  474. homeassistant-stubs/helpers/device_registry.pyi +16 -8
  475. homeassistant-stubs/helpers/entity.pyi +3 -1
  476. homeassistant-stubs/helpers/entity_platform.pyi +30 -9
  477. homeassistant-stubs/helpers/frame.pyi +1 -1
  478. homeassistant-stubs/helpers/helper_integration.pyi +2 -1
  479. homeassistant-stubs/helpers/llm.pyi +5 -1
  480. homeassistant-stubs/helpers/schema_config_entry_flow.pyi +1 -0
  481. homeassistant-stubs/helpers/selector.pyi +42 -37
  482. homeassistant-stubs/helpers/service.pyi +9 -26
  483. homeassistant-stubs/helpers/target.pyi +59 -0
  484. homeassistant-stubs/helpers/trigger.pyi +3 -1
  485. homeassistant-stubs/helpers/trigger_template_entity.pyi +5 -1
  486. homeassistant-stubs/loader.pyi +2 -9
  487. homeassistant-stubs/runner.pyi +1 -0
  488. homeassistant-stubs/util/resource.pyi +7 -0
  489. homeassistant-stubs/util/unit_conversion.pyi +1 -1
  490. {homeassistant_stubs-2025.7.3.dist-info → homeassistant_stubs-2025.8.0.dist-info}/METADATA +2 -2
  491. {homeassistant_stubs-2025.7.3.dist-info → homeassistant_stubs-2025.8.0.dist-info}/RECORD +493 -424
  492. homeassistant-stubs/components/backup/basic_websocket.pyi +0 -12
  493. homeassistant-stubs/helpers/backup.pyi +0 -24
  494. {homeassistant_stubs-2025.7.3.dist-info → homeassistant_stubs-2025.8.0.dist-info}/WHEEL +0 -0
  495. {homeassistant_stubs-2025.7.3.dist-info → homeassistant_stubs-2025.8.0.dist-info}/licenses/LICENSE +0 -0
@@ -210,6 +210,7 @@ CONF_PLATFORM: Final[str]
210
210
  CONF_PORT: Final[str]
211
211
  CONF_PREFIX: Final[str]
212
212
  CONF_PROFILE_NAME: Final[str]
213
+ CONF_PROMPT: Final[str]
213
214
  CONF_PROTOCOL: Final[str]
214
215
  CONF_PROXY_SSL: Final[str]
215
216
  CONF_QUOTE: Final[str]
@@ -569,6 +570,7 @@ class UnitOfPrecipitationDepth(StrEnum):
569
570
  MILLIMETERS = 'mm'
570
571
  CENTIMETERS = 'cm'
571
572
 
573
+ CONCENTRATION_GRAMS_PER_CUBIC_METER: Final[str]
572
574
  CONCENTRATION_MICROGRAMS_PER_CUBIC_METER: Final[str]
573
575
  CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER: Final[str]
574
576
  CONCENTRATION_MICROGRAMS_PER_CUBIC_FOOT: Final[str]
@@ -50,12 +50,14 @@ class ConfigSource(enum.StrEnum, deprecated={'DEFAULT': ('core_config.ConfigSour
50
50
 
51
51
  class EventStateEventData(TypedDict):
52
52
  entity_id: str
53
- new_state: State | None
54
53
 
55
54
  class EventStateChangedData(EventStateEventData):
55
+ new_state: State | None
56
56
  old_state: State | None
57
57
 
58
58
  class EventStateReportedData(EventStateEventData):
59
+ last_reported: datetime.datetime
60
+ new_state: State
59
61
  old_last_reported: datetime.datetime
60
62
 
61
63
  def _deprecated_core_config() -> Any: ...
@@ -328,15 +330,17 @@ class CompressedState(TypedDict):
328
330
  lu: NotRequired[float]
329
331
 
330
332
  class State:
333
+ entity_id: str
334
+ domain: str
335
+ object_id: str
336
+ state: str
337
+ attributes: ReadOnlyDict[str, Any]
338
+ last_changed: datetime.datetime
339
+ last_reported: datetime.datetime
340
+ last_updated: datetime.datetime
341
+ context: Context
331
342
  __slots__: Incomplete
332
343
  _cache: dict[str, Any]
333
- entity_id: Incomplete
334
- state: Incomplete
335
- attributes: Incomplete
336
- last_reported: Incomplete
337
- last_updated: Incomplete
338
- last_changed: Incomplete
339
- context: Incomplete
340
344
  state_info: Incomplete
341
345
  last_updated_timestamp: Incomplete
342
346
  def __init__(self, entity_id: str, state: str, attributes: Mapping[str, Any] | None = None, last_changed: datetime.datetime | None = None, last_reported: datetime.datetime | None = None, last_updated: datetime.datetime | None = None, context: Context | None = None, validate_entity_id: bool | None = True, state_info: StateInfo | None = None, last_updated_timestamp: float | None = None) -> None: ...
@@ -1,25 +1,43 @@
1
1
  import abc
2
2
  import logging
3
+ from .integration_platform import async_process_integration_platforms as async_process_integration_platforms
3
4
  from .template import Template as Template, render_complex as render_complex
4
5
  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
5
6
  from .typing import ConfigType as ConfigType, TemplateVarsType as TemplateVarsType
6
7
  from _typeshed import Incomplete
7
- from collections.abc import Callable, Container, Generator
8
+ from collections.abc import Callable, Container, Coroutine, Generator, Iterable
8
9
  from contextlib import contextmanager
9
10
  from datetime import time as dt_time, timedelta
10
- from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass
11
- 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
11
+ from homeassistant.const import ATTR_DEVICE_CLASS as ATTR_DEVICE_CLASS, 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, 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
12
12
  from homeassistant.core import HomeAssistant as HomeAssistant, State as State, callback as callback
13
13
  from homeassistant.exceptions import ConditionError as ConditionError, ConditionErrorContainer as ConditionErrorContainer, ConditionErrorIndex as ConditionErrorIndex, ConditionErrorMessage as ConditionErrorMessage, HomeAssistantError as HomeAssistantError, TemplateError as TemplateError
14
- from homeassistant.loader import IntegrationNotFound as IntegrationNotFound, async_get_integration as async_get_integration
14
+ from homeassistant.loader import Integration as Integration, IntegrationNotFound as IntegrationNotFound, async_get_integration as async_get_integration, async_get_integrations as async_get_integrations
15
15
  from homeassistant.util.async_ import run_callback_threadsafe as run_callback_threadsafe
16
+ from homeassistant.util.hass_dict import HassKey as HassKey
17
+ from homeassistant.util.yaml import load_yaml_dict as load_yaml_dict
18
+ from homeassistant.util.yaml.loader import JSON_TYPE as JSON_TYPE
16
19
  from typing import Any, Protocol
17
20
 
18
21
  ASYNC_FROM_CONFIG_FORMAT: str
19
22
  FROM_CONFIG_FORMAT: str
20
23
  VALIDATE_CONFIG_FORMAT: str
24
+ _LOGGER: Incomplete
21
25
  _PLATFORM_ALIASES: dict[str | None, str | None]
22
26
  INPUT_ENTITY_ID: Incomplete
27
+ CONDITION_DESCRIPTION_CACHE: HassKey[dict[str, dict[str, Any] | None]]
28
+ CONDITION_PLATFORM_SUBSCRIPTIONS: HassKey[list[Callable[[set[str]], Coroutine[Any, Any, None]]]]
29
+ CONDITIONS: HassKey[dict[str, str]]
30
+ _FIELD_SCHEMA: Incomplete
31
+ _CONDITION_SCHEMA: Incomplete
32
+
33
+ def starts_with_dot(key: str) -> str: ...
34
+
35
+ _CONDITIONS_SCHEMA: Incomplete
36
+
37
+ async def async_setup(hass: HomeAssistant) -> None: ...
38
+ @callback
39
+ def async_subscribe_platform_events(hass: HomeAssistant, on_event: Callable[[set[str]], Coroutine[Any, Any, None]]) -> Callable[[], None]: ...
40
+ async def _register_condition_platform(hass: HomeAssistant, integration_domain: str, platform: ConditionProtocol) -> None: ...
23
41
 
24
42
  class Condition(abc.ABC, metaclass=abc.ABCMeta):
25
43
  def __init__(self, hass: HomeAssistant, config: ConfigType) -> None: ...
@@ -54,8 +72,6 @@ def async_template(hass: HomeAssistant, value_template: Template, variables: Tem
54
72
  def async_template_from_config(config: ConfigType) -> ConditionCheckerType: ...
55
73
  def time(hass: HomeAssistant, before: dt_time | str | None = None, after: dt_time | str | None = None, weekday: str | Container[str] | None = None) -> bool: ...
56
74
  def time_from_config(config: ConfigType) -> ConditionCheckerType: ...
57
- def zone(hass: HomeAssistant, zone_ent: str | State | None, entity: str | State | None) -> bool: ...
58
- def zone_from_config(config: ConfigType) -> ConditionCheckerType: ...
59
75
  async def async_trigger_from_config(hass: HomeAssistant, config: ConfigType) -> ConditionCheckerType: ...
60
76
  def numeric_state_validate_config(hass: HomeAssistant, config: ConfigType) -> ConfigType: ...
61
77
  def state_validate_config(hass: HomeAssistant, config: ConfigType) -> ConfigType: ...
@@ -66,3 +82,6 @@ async def async_conditions_from_config(hass: HomeAssistant, condition_configs: l
66
82
  def async_extract_entities(config: ConfigType | Template) -> set[str]: ...
67
83
  @callback
68
84
  def async_extract_devices(config: ConfigType | Template) -> set[str]: ...
85
+ def _load_conditions_file(hass: HomeAssistant, integration: Integration) -> JSON_TYPE: ...
86
+ def _load_conditions_files(hass: HomeAssistant, integrations: Iterable[Integration]) -> dict[str, JSON_TYPE]: ...
87
+ async def async_get_all_descriptions(hass: HomeAssistant) -> dict[str, dict[str, Any] | None]: ...
@@ -190,11 +190,9 @@ STATE_CONDITION_ATTRIBUTE_SCHEMA: Incomplete
190
190
 
191
191
  def STATE_CONDITION_SCHEMA(value: Any) -> dict[str, Any]: ...
192
192
 
193
- SUN_CONDITION_SCHEMA: Incomplete
194
193
  TEMPLATE_CONDITION_SCHEMA: Incomplete
195
194
  TIME_CONDITION_SCHEMA: Incomplete
196
195
  TRIGGER_CONDITION_SCHEMA: Incomplete
197
- ZONE_CONDITION_SCHEMA: Incomplete
198
196
  AND_CONDITION_SCHEMA: Incomplete
199
197
  AND_CONDITION_SHORTHAND_SCHEMA: Incomplete
200
198
  OR_CONDITION_SCHEMA: Incomplete
@@ -4,6 +4,8 @@ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callb
4
4
  @callback
5
5
  def async_entity_id_to_device_id(hass: HomeAssistant, entity_id_or_uuid: str) -> str | None: ...
6
6
  @callback
7
+ def async_entity_id_to_device(hass: HomeAssistant, entity_id_or_uuid: str) -> dr.DeviceEntry | None: ...
8
+ @callback
7
9
  def async_device_info_to_link_from_entity(hass: HomeAssistant, entity_id_or_uuid: str) -> dr.DeviceInfo | None: ...
8
10
  @callback
9
11
  def async_device_info_to_link_from_device_id(hass: HomeAssistant, device_id: str | None) -> dr.DeviceInfo | None: ...
@@ -1,5 +1,6 @@
1
1
  from . import entity_registry as entity_registry, storage as storage, translation as translation
2
2
  from .debounce import Debouncer as Debouncer
3
+ from .deprecation import deprecated_function as deprecated_function
3
4
  from .frame import ReportBehavior as ReportBehavior, report_usage as report_usage
4
5
  from .json import JSON_DUMP as JSON_DUMP, find_paths_unserializable_data as find_paths_unserializable_data, json_bytes as json_bytes, json_fragment as json_fragment
5
6
  from .registry import BaseRegistry as BaseRegistry, BaseRegistryItems as BaseRegistryItems, RegistryIndexType as RegistryIndexType
@@ -68,15 +69,20 @@ DEVICE_INFO_TYPES: Incomplete
68
69
  DEVICE_INFO_KEYS: Incomplete
69
70
  LOW_PRIO_CONFIG_ENTRY_DOMAINS: Incomplete
70
71
 
71
- class _EventDeviceRegistryUpdatedData_CreateRemove(TypedDict):
72
- action: Literal['create', 'remove']
72
+ class _EventDeviceRegistryUpdatedData_Create(TypedDict):
73
+ action: Literal['create']
73
74
  device_id: str
74
75
 
76
+ class _EventDeviceRegistryUpdatedData_Remove(TypedDict):
77
+ action: Literal['remove']
78
+ device_id: str
79
+ device: dict[str, Any]
80
+
75
81
  class _EventDeviceRegistryUpdatedData_Update(TypedDict):
76
82
  action: Literal['update']
77
83
  device_id: str
78
84
  changes: dict[str, Any]
79
- type EventDeviceRegistryUpdatedData = _EventDeviceRegistryUpdatedData_CreateRemove | _EventDeviceRegistryUpdatedData_Update
85
+ type EventDeviceRegistryUpdatedData = _EventDeviceRegistryUpdatedData_Create | _EventDeviceRegistryUpdatedData_Remove | _EventDeviceRegistryUpdatedData_Update
80
86
 
81
87
  class DeviceEntryType(StrEnum):
82
88
  SERVICE = 'service'
@@ -99,6 +105,9 @@ def _validate_device_info(config_entry: ConfigEntry, device_info: DeviceInfo) ->
99
105
  _cached_parse_url: Incomplete
100
106
 
101
107
  def _validate_configuration_url(value: Any) -> str | None: ...
108
+ def format_mac(mac: str) -> str: ...
109
+ def _normalize_connections(connections: Iterable[tuple[str, str]]) -> set[tuple[str, str]]: ...
110
+ def _normalize_connections_validator(instance: Any, attribute: Any, connections: Iterable[tuple[str, str]]) -> None: ...
102
111
 
103
112
  class DeviceEntry:
104
113
  area_id: str | None
@@ -121,7 +130,7 @@ class DeviceEntry:
121
130
  name: str | None
122
131
  primary_config_entry: str | None
123
132
  serial_number: str | None
124
- suggested_area: str | None
133
+ _suggested_area: str | None
125
134
  sw_version: str | None
126
135
  via_device_id: str | None
127
136
  is_new: bool
@@ -134,6 +143,8 @@ class DeviceEntry:
134
143
  def json_repr(self) -> bytes | None: ...
135
144
  @under_cached_property
136
145
  def as_storage_fragment(self) -> json_fragment: ...
146
+ @property
147
+ def suggested_area(self) -> str | None: ...
137
148
  def __init__(self, area_id, config_entries, config_entries_subentries, configuration_url, connections, created_at, disabled_by, entry_type, hw_version, id, identifiers, labels, manufacturer, model, model_id, modified_at, name_by_user, name, primary_config_entry, serial_number, suggested_area, sw_version, via_device_id, is_new, cache) -> None: ...
138
149
  def __lt__(self, other): ...
139
150
  def __le__(self, other): ...
@@ -163,8 +174,6 @@ class DeletedDeviceEntry:
163
174
  def __gt__(self, other): ...
164
175
  def __ge__(self, other): ...
165
176
 
166
- def format_mac(mac: str) -> str: ...
167
-
168
177
  class DeviceRegistryStore(storage.Store[dict[str, list[dict[str, Any]]]]):
169
178
  async def _async_migrate_func(self, old_major_version: int, old_minor_version: int, old_data: dict[str, list[dict[str, Any]]]) -> dict[str, Any]: ...
170
179
 
@@ -203,7 +212,7 @@ class DeviceRegistry(BaseRegistry[dict[str, list[dict[str, Any]]]]):
203
212
  @callback
204
213
  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: ...
205
214
  @callback
206
- def async_update_device(self, device_id: str, *, add_config_entry_id: str | UndefinedType = ..., add_config_subentry_id: str | None | UndefinedType = ..., allow_collisions: bool = False, area_id: str | None | UndefinedType = ..., configuration_url: str | URL | None | UndefinedType = ..., device_info_type: str | UndefinedType = ..., disabled_by: DeviceEntryDisabler | None | UndefinedType = ..., entry_type: DeviceEntryType | None | UndefinedType = ..., hw_version: str | None | UndefinedType = ..., labels: set[str] | UndefinedType = ..., manufacturer: str | None | UndefinedType = ..., merge_connections: set[tuple[str, str]] | UndefinedType = ..., merge_identifiers: set[tuple[str, str]] | UndefinedType = ..., model: str | None | UndefinedType = ..., model_id: str | None | UndefinedType = ..., name_by_user: str | None | UndefinedType = ..., name: str | None | UndefinedType = ..., new_connections: set[tuple[str, str]] | UndefinedType = ..., new_identifiers: set[tuple[str, str]] | UndefinedType = ..., remove_config_entry_id: str | UndefinedType = ..., remove_config_subentry_id: str | None | UndefinedType = ..., serial_number: str | None | UndefinedType = ..., suggested_area: str | None | UndefinedType = ..., sw_version: str | None | UndefinedType = ..., via_device_id: str | None | UndefinedType = ...) -> DeviceEntry | None: ...
215
+ def async_update_device(self, device_id: str, *, add_config_entry_id: str | UndefinedType = ..., add_config_subentry_id: str | None | UndefinedType = ..., allow_collisions: bool = False, area_id: str | None | UndefinedType = ..., configuration_url: str | URL | None | UndefinedType = ..., device_info_type: str | UndefinedType = ..., disabled_by: DeviceEntryDisabler | None | UndefinedType = ..., entry_type: DeviceEntryType | None | UndefinedType = ..., hw_version: str | None | UndefinedType = ..., labels: set[str] | UndefinedType = ..., manufacturer: str | None | UndefinedType = ..., merge_connections: set[tuple[str, str]] | UndefinedType = ..., merge_identifiers: set[tuple[str, str]] | UndefinedType = ..., model: str | None | UndefinedType = ..., model_id: str | None | UndefinedType = ..., name_by_user: str | None | UndefinedType = ..., name: str | None | UndefinedType = ..., new_connections: set[tuple[str, str]] | UndefinedType = ..., new_identifiers: set[tuple[str, str]] | UndefinedType = ..., remove_config_entry_id: str | UndefinedType = ..., remove_config_subentry_id: str | None | UndefinedType = ..., serial_number: str | None | UndefinedType = ..., _suggested_area: str | None | UndefinedType = ..., suggested_area: str | None | UndefinedType = ..., sw_version: str | None | UndefinedType = ..., via_device_id: str | None | UndefinedType = ...) -> DeviceEntry | None: ...
207
216
  @callback
208
217
  def _validate_connections(self, device_id: str, connections: set[tuple[str, str]], allow_collisions: bool) -> set[tuple[str, str]]: ...
209
218
  @callback
@@ -239,4 +248,3 @@ def async_config_entry_disabled_by_changed(registry: DeviceRegistry, config_entr
239
248
  def async_cleanup(hass: HomeAssistant, dev_reg: DeviceRegistry, ent_reg: entity_registry.EntityRegistry) -> None: ...
240
249
  @callback
241
250
  def async_setup_cleanup(hass: HomeAssistant, dev_reg: DeviceRegistry) -> None: ...
242
- def _normalize_connections(connections: set[tuple[str, str]]) -> set[tuple[str, str]]: ...
@@ -3,7 +3,7 @@ import dataclasses
3
3
  import time
4
4
  from . import device_registry as dr, entity_registry as er, singleton as singleton
5
5
  from .device_registry import DeviceInfo as DeviceInfo, EventDeviceRegistryUpdatedData as EventDeviceRegistryUpdatedData
6
- from .entity_platform import EntityPlatform as EntityPlatform
6
+ from .entity_platform import EntityPlatform as EntityPlatform, PlatformData as PlatformData
7
7
  from .event import async_track_device_registry_updated_event as async_track_device_registry_updated_event, async_track_entity_registry_updated_event as async_track_entity_registry_updated_event
8
8
  from .frame import report_non_thread_safe_operation as report_non_thread_safe_operation
9
9
  from .typing import StateType as StateType, UNDEFINED as UNDEFINED, UndefinedType as UndefinedType
@@ -54,6 +54,7 @@ class StateInfo(TypedDict):
54
54
 
55
55
  class EntityPlatformState(Enum):
56
56
  NOT_ADDED = ...
57
+ ADDING = ...
57
58
  ADDED = ...
58
59
  REMOVED = ...
59
60
 
@@ -91,6 +92,7 @@ class Entity(cached_properties=CACHED_PROPERTIES_WITH_ATTR_, metaclass=ABCCached
91
92
  entity_id: str
92
93
  hass: HomeAssistant
93
94
  platform: EntityPlatform
95
+ platform_data: PlatformData
94
96
  entity_description: EntityDescription
95
97
  _slow_reported: bool
96
98
  _deprecated_supported_features_reported: bool
@@ -1,5 +1,6 @@
1
1
  import asyncio
2
2
  from . import device_registry as dev_reg, service as service, translation as translation
3
+ from .deprecation import deprecated_function as deprecated_function
3
4
  from .entity import Entity as Entity
4
5
  from .entity_registry import EntityRegistry as EntityRegistry, RegistryEntryDisabler as RegistryEntryDisabler, RegistryEntryHider as RegistryEntryHider
5
6
  from .event import async_call_later as async_call_later
@@ -42,22 +43,28 @@ class EntityPlatformModule(Protocol):
42
43
  def setup_platform(self, hass: HomeAssistant, config: ConfigType, add_entities: AddEntitiesCallback, discovery_info: DiscoveryInfoType | None = None) -> None: ...
43
44
  async def async_setup_entry(self, hass: HomeAssistant, entry: config_entries.ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
44
45
 
45
- class EntityPlatform:
46
+ class PlatformData:
46
47
  hass: Incomplete
47
- logger: Incomplete
48
48
  domain: Incomplete
49
49
  platform_name: Incomplete
50
+ component_translations: dict[str, str]
51
+ platform_translations: dict[str, str]
52
+ object_id_component_translations: dict[str, str]
53
+ object_id_platform_translations: dict[str, str]
54
+ default_language_platform_translations: dict[str, str]
55
+ def __init__(self, hass: HomeAssistant, *, domain: str, platform_name: str) -> None: ...
56
+ async def _async_get_translations(self, language: str, category: str, integration: str) -> dict[str, str]: ...
57
+ async def async_load_translations(self) -> None: ...
58
+
59
+ class EntityPlatform:
60
+ hass: Incomplete
61
+ logger: Incomplete
50
62
  platform: Incomplete
51
63
  scan_interval: Incomplete
52
64
  scan_interval_seconds: Incomplete
53
65
  entity_namespace: Incomplete
54
66
  config_entry: config_entries.ConfigEntry | None
55
67
  entities: dict[str, Entity]
56
- component_translations: dict[str, str]
57
- platform_translations: dict[str, str]
58
- object_id_component_translations: dict[str, str]
59
- object_id_platform_translations: dict[str, str]
60
- default_language_platform_translations: dict[str, str]
61
68
  _tasks: list[asyncio.Task[None]]
62
69
  _setup_complete: bool
63
70
  _async_polling_timer: asyncio.TimerHandle | None
@@ -68,6 +75,7 @@ class EntityPlatform:
68
75
  parallel_updates_created: Incomplete
69
76
  domain_entities: Incomplete
70
77
  domain_platform_entities: Incomplete
78
+ platform_data: Incomplete
71
79
  def __init__(self, *, hass: HomeAssistant, logger: Logger, domain: str, platform_name: str, platform: EntityPlatformModule | None, scan_interval: timedelta, entity_namespace: str | None) -> None: ...
72
80
  def __repr__(self) -> str: ...
73
81
  @callback
@@ -79,8 +87,6 @@ class EntityPlatform:
79
87
  def async_cancel_retry_setup(self) -> None: ...
80
88
  async def async_setup_entry(self, config_entry: config_entries.ConfigEntry) -> bool: ...
81
89
  async def _async_setup_platform(self, async_create_setup_awaitable: Callable[[], Awaitable[None]], tries: int = 0) -> bool: ...
82
- async def _async_get_translations(self, language: str, category: str, integration: str) -> dict[str, str]: ...
83
- async def async_load_translations(self) -> None: ...
84
90
  def _schedule_add_entities(self, new_entities: Iterable[Entity], update_before_add: bool = False) -> None: ...
85
91
  @callback
86
92
  def _async_schedule_add_entities(self, new_entities: Iterable[Entity], update_before_add: bool = False) -> None: ...
@@ -105,6 +111,21 @@ class EntityPlatform:
105
111
  @callback
106
112
  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
113
  async def _async_update_entity_states(self) -> None: ...
114
+ @property
115
+ def domain(self) -> str: ...
116
+ @property
117
+ def platform_name(self) -> str: ...
118
+ @property
119
+ def component_translations(self) -> dict[str, str]: ...
120
+ @property
121
+ def platform_translations(self) -> dict[str, str]: ...
122
+ @property
123
+ def object_id_component_translations(self) -> dict[str, str]: ...
124
+ @property
125
+ def object_id_platform_translations(self) -> dict[str, str]: ...
126
+ @property
127
+ def default_language_platform_translations(self) -> dict[str, str]: ...
128
+ async def async_load_translations(self) -> None: ...
108
129
 
109
130
  @callback
110
131
  def async_calculate_suggested_object_id(entity: Entity, device: dev_reg.DeviceEntry | None) -> str | None: ...
@@ -47,7 +47,7 @@ class ReportBehavior(enum.Enum):
47
47
  ERROR = ...
48
48
 
49
49
  def report_usage(what: str, *, breaks_in_ha_version: str | None = None, core_behavior: ReportBehavior = ..., core_integration_behavior: ReportBehavior = ..., custom_integration_behavior: ReportBehavior = ..., exclude_integrations: set[str] | None = None, integration_domain: str | None = None, level: int = ...) -> None: ...
50
- def _report_usage(hass: HomeAssistant, what: str, *, breaks_in_ha_version: str | None, core_behavior: ReportBehavior, core_integration_behavior: ReportBehavior, custom_integration_behavior: ReportBehavior, exclude_integrations: set[str] | None, integration_domain: str | None, level: int) -> None: ...
50
+ def _report_usage(hass: HomeAssistant, what: str, *, breaks_in_ha_version: str | None, core_behavior: ReportBehavior, core_integration_behavior: ReportBehavior, custom_integration_behavior: ReportBehavior, integration_domain: str | None, integration_frame: IntegrationFrame | None, integration_frame_err: MissingIntegrationFrame | None, level: int) -> None: ...
51
51
  def _report_usage_integration_domain(hass: HomeAssistant | None, what: str, breaks_in_ha_version: str | None, integration: Integration, core_integration_behavior: ReportBehavior, custom_integration_behavior: ReportBehavior, level: int) -> None: ...
52
52
  def _report_usage_integration_frame(hass: HomeAssistant, what: str, breaks_in_ha_version: str | None, integration_frame: IntegrationFrame, level: int = ..., error: bool = False) -> None: ...
53
53
  def _report_usage_no_integration(what: str, core_behavior: ReportBehavior, breaks_in_ha_version: str | None, err: MissingIntegrationFrame | None) -> None: ...
@@ -3,4 +3,5 @@ from collections.abc import Callable as Callable, Coroutine
3
3
  from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, Event as Event, HomeAssistant as HomeAssistant, valid_entity_id as valid_entity_id
4
4
  from typing import Any
5
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: ...
6
+ def async_handle_source_entity_changes(hass: HomeAssistant, *, add_helper_config_entry_to_device: bool = True, 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]] | None = None) -> CALLBACK_TYPE: ...
7
+ def async_remove_helper_config_entry_from_source_device(hass: HomeAssistant, *, helper_config_entry_id: str, source_device_id: str) -> None: ...
@@ -84,6 +84,10 @@ class IntentTool(Tool):
84
84
  def __init__(self, name: str, intent_handler: intent.IntentHandler) -> None: ...
85
85
  async def async_call(self, hass: HomeAssistant, tool_input: ToolInput, llm_context: LLMContext) -> JsonObjectType: ...
86
86
 
87
+ class IntentResponseDict(dict):
88
+ original: Incomplete
89
+ def __init__(self, intent_response: Any) -> None: ...
90
+
87
91
  class NamespacedTool(Tool):
88
92
  namespace: Incomplete
89
93
  name: Incomplete
@@ -114,7 +118,7 @@ class AssistAPI(API):
114
118
  def _async_get_tools(self, llm_context: LLMContext, exposed_entities: dict | None) -> list[Tool]: ...
115
119
 
116
120
  def _get_exposed_entities(hass: HomeAssistant, assistant: str, include_state: bool = True) -> dict[str, dict[str, dict[str, Any]]]: ...
117
- def _selector_serializer(schema: Any) -> Any: ...
121
+ def selector_serializer(schema: Any) -> Any: ...
118
122
  def _get_cached_action_parameters(hass: HomeAssistant, domain: str, action: str) -> tuple[str | None, vol.Schema]: ...
119
123
 
120
124
  class ActionTool(Tool):
@@ -22,6 +22,7 @@ class SchemaFlowFormStep(SchemaFlowStep):
22
22
  next_step: Callable[[dict[str, Any]], Coroutine[Any, Any, str | None]] | str | None = ...
23
23
  suggested_values: Callable[[SchemaCommonFlowHandler], Coroutine[Any, Any, dict[str, Any]]] | None | UndefinedType = ...
24
24
  preview: str | None = ...
25
+ description_placeholders: Callable[[SchemaCommonFlowHandler], Coroutine[Any, Any, dict[str, str]]] | UndefinedType = ...
25
26
 
26
27
  @dataclass(slots=True)
27
28
  class SchemaFlowMenuStep(SchemaFlowStep):
@@ -26,7 +26,7 @@ class Selector[_T: Mapping[str, Any]]:
26
26
  @cache
27
27
  def _entity_feature_flag(domain: str, enum_name: str, feature_name: str) -> int: ...
28
28
  def _validate_supported_feature(supported_feature: str) -> int: ...
29
- def _validate_supported_features(supported_features: int | list[str]) -> int: ...
29
+ def _validate_supported_features(supported_features: list[str]) -> int: ...
30
30
 
31
31
  BASE_SELECTOR_CONFIG_SCHEMA: Incomplete
32
32
 
@@ -34,6 +34,7 @@ class BaseSelectorConfig(TypedDict, total=False):
34
34
  read_only: bool
35
35
 
36
36
  ENTITY_FILTER_SELECTOR_CONFIG_SCHEMA: Incomplete
37
+ LEGACY_ENTITY_SELECTOR_CONFIG_SCHEMA: Incomplete
37
38
 
38
39
  class EntityFilterSelectorConfig(TypedDict, total=False):
39
40
  integration: str
@@ -42,6 +43,7 @@ class EntityFilterSelectorConfig(TypedDict, total=False):
42
43
  supported_features: list[str]
43
44
 
44
45
  DEVICE_FILTER_SELECTOR_CONFIG_SCHEMA: Incomplete
46
+ LEGACY_DEVICE_SELECTOR_CONFIG_SCHEMA: Incomplete
45
47
 
46
48
  class DeviceFilterSelectorConfig(TypedDict, total=False):
47
49
  integration: str
@@ -165,23 +167,6 @@ class ConstantSelector(Selector[ConstantSelectorConfig]):
165
167
  def __init__(self, config: ConstantSelectorConfig) -> None: ...
166
168
  def __call__(self, data: Any) -> Any: ...
167
169
 
168
- class QrErrorCorrectionLevel(StrEnum):
169
- LOW = 'low'
170
- MEDIUM = 'medium'
171
- QUARTILE = 'quartile'
172
- HIGH = 'high'
173
-
174
- class QrCodeSelectorConfig(BaseSelectorConfig, total=False):
175
- data: str
176
- scale: int
177
- error_correction_level: QrErrorCorrectionLevel
178
-
179
- class QrCodeSelector(Selector[QrCodeSelectorConfig]):
180
- selector_type: str
181
- CONFIG_SCHEMA: Incomplete
182
- def __init__(self, config: QrCodeSelectorConfig) -> None: ...
183
- def __call__(self, data: Any) -> Any: ...
184
-
185
170
  class ConversationAgentSelectorConfig(BaseSelectorConfig, total=False):
186
171
  language: str
187
172
 
@@ -243,6 +228,7 @@ class EntitySelectorConfig(BaseSelectorConfig, EntityFilterSelectorConfig, total
243
228
  exclude_entities: list[str]
244
229
  include_entities: list[str]
245
230
  multiple: bool
231
+ reorder: bool
246
232
  filter: EntityFilterSelectorConfig | list[EntityFilterSelectorConfig]
247
233
 
248
234
  class EntitySelector(Selector[EntitySelectorConfig]):
@@ -251,6 +237,15 @@ class EntitySelector(Selector[EntitySelectorConfig]):
251
237
  def __init__(self, config: EntitySelectorConfig | None = None) -> None: ...
252
238
  def __call__(self, data: Any) -> str | list[str]: ...
253
239
 
240
+ class FileSelectorConfig(BaseSelectorConfig):
241
+ accept: str
242
+
243
+ class FileSelector(Selector[FileSelectorConfig]):
244
+ selector_type: str
245
+ CONFIG_SCHEMA: Incomplete
246
+ def __init__(self, config: FileSelectorConfig) -> None: ...
247
+ def __call__(self, data: Any) -> str: ...
248
+
254
249
  class FloorSelectorConfig(BaseSelectorConfig, total=False):
255
250
  entity: EntityFilterSelectorConfig | list[EntityFilterSelectorConfig]
256
251
  device: DeviceFilterSelectorConfig | list[DeviceFilterSelectorConfig]
@@ -310,7 +305,7 @@ class MediaSelector(Selector[MediaSelectorConfig]):
310
305
  CONFIG_SCHEMA: Incomplete
311
306
  DATA_SCHEMA: Incomplete
312
307
  def __init__(self, config: MediaSelectorConfig | None = None) -> None: ...
313
- def __call__(self, data: Any) -> dict[str, float]: ...
308
+ def __call__(self, data: Any) -> dict[str, str]: ...
314
309
 
315
310
  class NumberSelectorConfig(BaseSelectorConfig, total=False):
316
311
  min: float
@@ -318,6 +313,7 @@ class NumberSelectorConfig(BaseSelectorConfig, total=False):
318
313
  step: float | Literal['any']
319
314
  unit_of_measurement: str
320
315
  mode: NumberSelectorMode
316
+ translation_key: str
321
317
 
322
318
  class NumberSelectorMode(StrEnum):
323
319
  BOX = 'box'
@@ -349,6 +345,23 @@ class ObjectSelector(Selector[ObjectSelectorConfig]):
349
345
  def __init__(self, config: ObjectSelectorConfig | None = None) -> None: ...
350
346
  def __call__(self, data: Any) -> Any: ...
351
347
 
348
+ class QrErrorCorrectionLevel(StrEnum):
349
+ LOW = 'low'
350
+ MEDIUM = 'medium'
351
+ QUARTILE = 'quartile'
352
+ HIGH = 'high'
353
+
354
+ class QrCodeSelectorConfig(BaseSelectorConfig, total=False):
355
+ data: str
356
+ scale: int
357
+ error_correction_level: QrErrorCorrectionLevel
358
+
359
+ class QrCodeSelector(Selector[QrCodeSelectorConfig]):
360
+ selector_type: str
361
+ CONFIG_SCHEMA: Incomplete
362
+ def __init__(self, config: QrCodeSelectorConfig) -> None: ...
363
+ def __call__(self, data: Any) -> Any: ...
364
+
352
365
  select_option: Incomplete
353
366
 
354
367
  class SelectOptionDict(TypedDict):
@@ -373,6 +386,16 @@ class SelectSelector(Selector[SelectSelectorConfig]):
373
386
  def __init__(self, config: SelectSelectorConfig) -> None: ...
374
387
  def __call__(self, data: Any) -> Any: ...
375
388
 
389
+ class StateSelectorConfig(BaseSelectorConfig, total=False):
390
+ entity_id: str
391
+ hide_states: list[str]
392
+
393
+ class StateSelector(Selector[StateSelectorConfig]):
394
+ selector_type: str
395
+ CONFIG_SCHEMA: Incomplete
396
+ def __init__(self, config: StateSelectorConfig) -> None: ...
397
+ def __call__(self, data: Any) -> str: ...
398
+
376
399
  class StatisticSelectorConfig(BaseSelectorConfig, total=False):
377
400
  multiple: bool
378
401
 
@@ -386,15 +409,6 @@ class TargetSelectorConfig(BaseSelectorConfig, total=False):
386
409
  entity: EntityFilterSelectorConfig | list[EntityFilterSelectorConfig]
387
410
  device: DeviceFilterSelectorConfig | list[DeviceFilterSelectorConfig]
388
411
 
389
- class StateSelectorConfig(BaseSelectorConfig, total=False):
390
- entity_id: Required[str]
391
-
392
- class StateSelector(Selector[StateSelectorConfig]):
393
- selector_type: str
394
- CONFIG_SCHEMA: Incomplete
395
- def __init__(self, config: StateSelectorConfig) -> None: ...
396
- def __call__(self, data: Any) -> str: ...
397
-
398
412
  class TargetSelector(Selector[TargetSelectorConfig]):
399
413
  selector_type: str
400
414
  CONFIG_SCHEMA: Incomplete
@@ -462,12 +476,3 @@ class TriggerSelector(Selector[TriggerSelectorConfig]):
462
476
  CONFIG_SCHEMA = BASE_SELECTOR_CONFIG_SCHEMA
463
477
  def __init__(self, config: TriggerSelectorConfig | None = None) -> None: ...
464
478
  def __call__(self, data: Any) -> Any: ...
465
-
466
- class FileSelectorConfig(BaseSelectorConfig):
467
- accept: str
468
-
469
- class FileSelector(Selector[FileSelectorConfig]):
470
- selector_type: str
471
- CONFIG_SCHEMA: Incomplete
472
- def __init__(self, config: FileSelectorConfig) -> None: ...
473
- def __call__(self, data: Any) -> str: ...
@@ -1,14 +1,14 @@
1
- import dataclasses
2
- from . import area_registry as area_registry, device_registry as device_registry, entity_registry as entity_registry, floor_registry as floor_registry, label_registry as label_registry, template as template, translation as translation
1
+ import logging
2
+ from . import device_registry as device_registry, entity_registry as entity_registry, selector as selector, target as target_helpers, template as template, translation as translation
3
+ from .deprecation import deprecated_class as deprecated_class, deprecated_function as deprecated_function
3
4
  from .entity import Entity as Entity
4
- 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
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
- 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
11
+ from homeassistant.const import ATTR_ENTITY_ID as ATTR_ENTITY_ID, CONF_ACTION as CONF_ACTION, CONF_ENTITY_ID as CONF_ENTITY_ID, CONF_SELECTOR as CONF_SELECTOR, 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
12
12
  from homeassistant.core import Context as Context, EntityServiceResponse as EntityServiceResponse, HassJob as HassJob, HassJobType as HassJobType, HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, ServiceResponse as ServiceResponse, SupportsResponse as SupportsResponse, callback as callback
13
13
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, ServiceNotSupported as ServiceNotSupported, TemplateError as TemplateError, Unauthorized as Unauthorized, UnknownUser as UnknownUser
14
14
  from homeassistant.loader import Integration as Integration, async_get_integrations as async_get_integrations, bind_hass as bind_hass
@@ -17,7 +17,7 @@ from homeassistant.util.hass_dict import HassKey as HassKey
17
17
  from homeassistant.util.yaml import load_yaml_dict as load_yaml_dict
18
18
  from homeassistant.util.yaml.loader import JSON_TYPE as JSON_TYPE
19
19
  from types import ModuleType
20
- from typing import Any, TypeGuard, TypedDict
20
+ from typing import Any, TypedDict, override
21
21
 
22
22
  CONF_SERVICE_ENTITY_ID: str
23
23
  _LOGGER: Incomplete
@@ -44,28 +44,12 @@ class ServiceParams(TypedDict):
44
44
  service_data: dict[str, Any]
45
45
  target: dict | None
46
46
 
47
- class ServiceTargetSelector:
48
- __slots__: Incomplete
49
- entity_ids: Incomplete
50
- device_ids: Incomplete
51
- area_ids: Incomplete
52
- floor_ids: Incomplete
53
- label_ids: Incomplete
47
+ class ServiceTargetSelector(target_helpers.TargetSelectorData):
54
48
  def __init__(self, service_call: ServiceCall) -> None: ...
55
- @property
56
- def has_any_selector(self) -> bool: ...
57
49
 
58
- @dataclasses.dataclass(slots=True)
59
- class SelectedEntities:
60
- referenced: set[str] = dataclasses.field(default_factory=set)
61
- indirectly_referenced: set[str] = dataclasses.field(default_factory=set)
62
- missing_devices: set[str] = dataclasses.field(default_factory=set)
63
- missing_areas: set[str] = dataclasses.field(default_factory=set)
64
- missing_floors: set[str] = dataclasses.field(default_factory=set)
65
- missing_labels: set[str] = dataclasses.field(default_factory=set)
66
- referenced_devices: set[str] = dataclasses.field(default_factory=set)
67
- referenced_areas: set[str] = dataclasses.field(default_factory=set)
68
- def log_missing(self, missing_entities: set[str]) -> None: ...
50
+ class SelectedEntities(target_helpers.SelectedEntities):
51
+ @override
52
+ def log_missing(self, missing_entities: set[str], logger: logging.Logger | None = None) -> None: ...
69
53
 
70
54
  @bind_hass
71
55
  def call_from_config(hass: HomeAssistant, config: ConfigType, blocking: bool = False, variables: TemplateVarsType = None, validate_config: bool = True) -> None: ...
@@ -80,7 +64,6 @@ def extract_entity_ids(hass: HomeAssistant, service_call: ServiceCall, expand_gr
80
64
  async def async_extract_entities[_EntityT: Entity](hass: HomeAssistant, entities: Iterable[_EntityT], service_call: ServiceCall, expand_group: bool = True) -> list[_EntityT]: ...
81
65
  @bind_hass
82
66
  async def async_extract_entity_ids(hass: HomeAssistant, service_call: ServiceCall, expand_group: bool = True) -> set[str]: ...
83
- def _has_match(ids: str | list[str] | None) -> TypeGuard[str | list[str]]: ...
84
67
  @bind_hass
85
68
  def async_extract_referenced_entity_ids(hass: HomeAssistant, service_call: ServiceCall, expand_group: bool = True) -> SelectedEntities: ...
86
69
  @bind_hass