homeassistant-stubs 2025.7.3__py3-none-any.whl → 2025.8.0b0__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 (484) 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/entity.pyi +11 -0
  9. homeassistant-stubs/components/airos/sensor.pyi +29 -0
  10. homeassistant-stubs/components/airq/const.pyi +0 -1
  11. homeassistant-stubs/components/airq/sensor.pyi +2 -2
  12. homeassistant-stubs/components/airthings/sensor.pyi +1 -1
  13. homeassistant-stubs/components/alexa_devices/__init__.pyi +6 -0
  14. homeassistant-stubs/components/alexa_devices/config_flow.pyi +10 -0
  15. homeassistant-stubs/components/alexa_devices/coordinator.pyi +4 -3
  16. homeassistant-stubs/components/alexa_devices/services.pyi +24 -0
  17. homeassistant-stubs/components/amberelectric/__init__.pyi +7 -1
  18. homeassistant-stubs/components/amberelectric/const.pyi +8 -1
  19. homeassistant-stubs/components/amberelectric/coordinator.pyi +1 -2
  20. homeassistant-stubs/components/amberelectric/helpers.pyi +6 -0
  21. homeassistant-stubs/components/amberelectric/sensor.pyi +2 -2
  22. homeassistant-stubs/components/amberelectric/services.pyi +15 -0
  23. homeassistant-stubs/components/analytics/__init__.pyi +1 -0
  24. homeassistant-stubs/components/analytics/analytics.pyi +3 -0
  25. homeassistant-stubs/components/analytics/http.pyi +10 -0
  26. homeassistant-stubs/components/analytics_insights/__init__.pyi +0 -1
  27. homeassistant-stubs/components/analytics_insights/config_flow.pyi +2 -2
  28. homeassistant-stubs/components/androidtv_remote/__init__.pyi +2 -6
  29. homeassistant-stubs/components/androidtv_remote/config_flow.pyi +6 -6
  30. homeassistant-stubs/components/androidtv_remote/diagnostics.pyi +1 -1
  31. homeassistant-stubs/components/androidtv_remote/entity.pyi +2 -2
  32. homeassistant-stubs/components/androidtv_remote/helpers.pyi +3 -1
  33. homeassistant-stubs/components/androidtv_remote/media_player.pyi +4 -4
  34. homeassistant-stubs/components/androidtv_remote/remote.pyi +1 -1
  35. homeassistant-stubs/components/assist_pipeline/__init__.pyi +2 -2
  36. homeassistant-stubs/components/assist_pipeline/const.pyi +0 -1
  37. homeassistant-stubs/components/assist_pipeline/pipeline.pyi +2 -5
  38. homeassistant-stubs/components/awair/const.pyi +1 -0
  39. homeassistant-stubs/components/awair/sensor.pyi +1 -1
  40. homeassistant-stubs/components/backup/__init__.pyi +6 -2
  41. homeassistant-stubs/components/backup/coordinator.pyi +0 -1
  42. homeassistant-stubs/components/backup/manager.pyi +6 -3
  43. homeassistant-stubs/components/backup/onboarding.pyi +1 -1
  44. homeassistant-stubs/components/backup/services.pyi +7 -0
  45. homeassistant-stubs/components/backup/websocket.pyi +4 -1
  46. homeassistant-stubs/components/blue_current/__init__.pyi +5 -5
  47. homeassistant-stubs/components/blue_current/const.pyi +11 -0
  48. homeassistant-stubs/components/blue_current/switch.pyi +40 -0
  49. homeassistant-stubs/components/bosch_alarm/__init__.pyi +1 -1
  50. homeassistant-stubs/components/bosch_alarm/services.pyi +3 -2
  51. homeassistant-stubs/components/bring/__init__.pyi +5 -0
  52. homeassistant-stubs/components/bring/const.pyi +4 -0
  53. homeassistant-stubs/components/bring/services.pyi +14 -0
  54. homeassistant-stubs/components/cloud/backup.pyi +3 -3
  55. homeassistant-stubs/components/cloud/repairs.pyi +3 -3
  56. homeassistant-stubs/components/cloud/subscription.pyi +2 -1
  57. homeassistant-stubs/components/cloud/tts.pyi +2 -1
  58. homeassistant-stubs/components/command_line/sensor.pyi +0 -2
  59. homeassistant-stubs/components/demo/vacuum.pyi +0 -3
  60. homeassistant-stubs/components/derivative/__init__.pyi +5 -1
  61. homeassistant-stubs/components/derivative/config_flow.pyi +2 -0
  62. homeassistant-stubs/components/derivative/sensor.pyi +7 -4
  63. homeassistant-stubs/components/devolo_home_control/config_flow.pyi +3 -7
  64. homeassistant-stubs/components/devolo_home_control/entity.pyi +0 -1
  65. homeassistant-stubs/components/devolo_home_network/coordinator.pyi +2 -2
  66. homeassistant-stubs/components/devolo_home_network/device_tracker.pyi +2 -2
  67. homeassistant-stubs/components/devolo_home_network/entity.pyi +1 -1
  68. homeassistant-stubs/components/devolo_home_network/sensor.pyi +1 -1
  69. homeassistant-stubs/components/discovergy/__init__.pyi +1 -0
  70. homeassistant-stubs/components/discovergy/coordinator.pyi +1 -0
  71. homeassistant-stubs/components/dnsip/__init__.pyi +0 -1
  72. homeassistant-stubs/components/dnsip/config_flow.pyi +2 -2
  73. homeassistant-stubs/components/ecovacs/binary_sensor.pyi +13 -3
  74. homeassistant-stubs/components/ecovacs/sensor.pyi +13 -0
  75. homeassistant-stubs/components/ecovacs/vacuum.pyi +1 -7
  76. homeassistant-stubs/components/eheimdigital/config_flow.pyi +2 -1
  77. homeassistant-stubs/components/elevenlabs/config_flow.pyi +1 -1
  78. homeassistant-stubs/components/elevenlabs/const.pyi +0 -2
  79. homeassistant-stubs/components/elevenlabs/tts.pyi +2 -3
  80. homeassistant-stubs/components/enphase_envoy/__init__.pyi +0 -2
  81. homeassistant-stubs/components/enphase_envoy/config_flow.pyi +2 -2
  82. homeassistant-stubs/components/esphome/config_flow.pyi +2 -0
  83. homeassistant-stubs/components/esphome/encryption_key_storage.pyi +29 -0
  84. homeassistant-stubs/components/esphome/entity.pyi +3 -1
  85. homeassistant-stubs/components/esphome/entry_data.pyi +14 -6
  86. homeassistant-stubs/components/esphome/manager.pyi +3 -1
  87. homeassistant-stubs/components/feedreader/__init__.pyi +0 -1
  88. homeassistant-stubs/components/feedreader/config_flow.pyi +3 -3
  89. homeassistant-stubs/components/forecast_solar/__init__.pyi +0 -1
  90. homeassistant-stubs/components/forecast_solar/config_flow.pyi +2 -2
  91. homeassistant-stubs/components/fritz/__init__.pyi +0 -1
  92. homeassistant-stubs/components/fritz/config_flow.pyi +2 -2
  93. homeassistant-stubs/components/fritzbox_callmonitor/__init__.pyi +0 -1
  94. homeassistant-stubs/components/fritzbox_callmonitor/config_flow.pyi +2 -2
  95. homeassistant-stubs/components/frontend/__init__.pyi +1 -0
  96. homeassistant-stubs/components/fujitsu_fglair/climate.pyi +1 -1
  97. homeassistant-stubs/components/generic_hygrostat/__init__.pyi +3 -1
  98. homeassistant-stubs/components/generic_hygrostat/config_flow.pyi +1 -0
  99. homeassistant-stubs/components/generic_hygrostat/humidifier.pyi +3 -3
  100. homeassistant-stubs/components/generic_thermostat/__init__.pyi +5 -1
  101. homeassistant-stubs/components/generic_thermostat/climate.pyi +3 -3
  102. homeassistant-stubs/components/generic_thermostat/config_flow.pyi +1 -0
  103. homeassistant-stubs/components/geo_location/trigger.pyi +0 -1
  104. homeassistant-stubs/components/gios/const.pyi +2 -0
  105. homeassistant-stubs/components/gios/sensor.pyi +1 -1
  106. homeassistant-stubs/components/google_assistant_sdk/application_credentials.pyi +1 -0
  107. homeassistant-stubs/components/google_cloud/const.pyi +1 -0
  108. homeassistant-stubs/components/google_cloud/stt.pyi +3 -2
  109. homeassistant-stubs/components/guardian/__init__.pyi +1 -1
  110. homeassistant-stubs/components/guardian/services.pyi +2 -1
  111. homeassistant-stubs/components/habitica/button.pyi +3 -4
  112. homeassistant-stubs/components/habitica/coordinator.pyi +2 -3
  113. homeassistant-stubs/components/habitica/entity.pyi +1 -1
  114. homeassistant-stubs/components/habitica/sensor.pyi +3 -18
  115. homeassistant-stubs/components/habitica/switch.pyi +4 -3
  116. homeassistant-stubs/components/habitica/util.pyi +2 -1
  117. homeassistant-stubs/components/heos/__init__.pyi +1 -1
  118. homeassistant-stubs/components/heos/config_flow.pyi +3 -0
  119. homeassistant-stubs/components/heos/services.pyi +3 -2
  120. homeassistant-stubs/components/here_travel_time/__init__.pyi +3 -1
  121. homeassistant-stubs/components/here_travel_time/config_flow.pyi +3 -2
  122. homeassistant-stubs/components/here_travel_time/const.pyi +1 -0
  123. homeassistant-stubs/components/here_travel_time/coordinator.pyi +1 -1
  124. homeassistant-stubs/components/here_travel_time/model.pyi +2 -1
  125. homeassistant-stubs/components/history_stats/__init__.pyi +5 -1
  126. homeassistant-stubs/components/history_stats/config_flow.pyi +14 -0
  127. homeassistant-stubs/components/history_stats/coordinator.pyi +3 -1
  128. homeassistant-stubs/components/history_stats/data.pyi +2 -1
  129. homeassistant-stubs/components/history_stats/helpers.pyi +1 -1
  130. homeassistant-stubs/components/history_stats/sensor.pyi +7 -4
  131. homeassistant-stubs/components/holiday/__init__.pyi +0 -1
  132. homeassistant-stubs/components/holiday/config_flow.pyi +2 -2
  133. homeassistant-stubs/components/home_connect/__init__.pyi +1 -1
  134. homeassistant-stubs/components/home_connect/services.pyi +3 -2
  135. homeassistant-stubs/components/homeassistant/__init__.pyi +2 -1
  136. homeassistant-stubs/components/homeassistant/triggers/time.pyi +2 -1
  137. homeassistant-stubs/components/homee/__init__.pyi +1 -1
  138. homeassistant-stubs/components/homee/config_flow.pyi +5 -0
  139. homeassistant-stubs/components/homekit/__init__.pyi +2 -1
  140. homeassistant-stubs/components/http/__init__.pyi +1 -2
  141. homeassistant-stubs/components/huawei_lte/__init__.pyi +1 -2
  142. homeassistant-stubs/components/huawei_lte/config_flow.pyi +5 -4
  143. homeassistant-stubs/components/huawei_lte/const.pyi +1 -1
  144. homeassistant-stubs/components/huawei_lte/diagnostics.pyi +18 -0
  145. homeassistant-stubs/components/husqvarna_automower/button.pyi +2 -2
  146. homeassistant-stubs/components/husqvarna_automower/calendar.pyi +3 -0
  147. homeassistant-stubs/components/husqvarna_automower/coordinator.pyi +15 -13
  148. homeassistant-stubs/components/husqvarna_automower/entity.pyi +2 -6
  149. homeassistant-stubs/components/husqvarna_automower/lawn_mower.pyi +2 -2
  150. homeassistant-stubs/components/husqvarna_automower/sensor.pyi +5 -0
  151. homeassistant-stubs/components/hydrawise/binary_sensor.pyi +1 -1
  152. homeassistant-stubs/components/hydrawise/const.pyi +1 -0
  153. homeassistant-stubs/components/hydrawise/coordinator.pyi +9 -2
  154. homeassistant-stubs/components/hydrawise/entity.pyi +1 -1
  155. homeassistant-stubs/components/hydrawise/sensor.pyi +1 -1
  156. homeassistant-stubs/components/hydrawise/switch.pyi +1 -1
  157. homeassistant-stubs/components/hydrawise/valve.pyi +1 -1
  158. homeassistant-stubs/components/hyperion/__init__.pyi +0 -1
  159. homeassistant-stubs/components/hyperion/config_flow.pyi +2 -2
  160. homeassistant-stubs/components/imgw_pib/sensor.pyi +7 -1
  161. homeassistant-stubs/components/immich/__init__.pyi +6 -0
  162. homeassistant-stubs/components/immich/media_source.pyi +1 -0
  163. homeassistant-stubs/components/immich/services.pyi +18 -0
  164. homeassistant-stubs/components/input_text/__init__.pyi +1 -1
  165. homeassistant-stubs/components/integration/__init__.pyi +5 -1
  166. homeassistant-stubs/components/integration/config_flow.pyi +1 -0
  167. homeassistant-stubs/components/integration/sensor.pyi +5 -6
  168. homeassistant-stubs/components/iron_os/__init__.pyi +0 -3
  169. homeassistant-stubs/components/iron_os/const.pyi +4 -0
  170. homeassistant-stubs/components/iron_os/coordinator.pyi +1 -1
  171. homeassistant-stubs/components/iron_os/number.pyi +20 -4
  172. homeassistant-stubs/components/iron_os/switch.pyi +2 -0
  173. homeassistant-stubs/components/isy994/__init__.pyi +0 -1
  174. homeassistant-stubs/components/isy994/config_flow.pyi +3 -3
  175. homeassistant-stubs/components/jellyfin/browse_media.pyi +2 -1
  176. homeassistant-stubs/components/jellyfin/media_player.pyi +5 -2
  177. homeassistant-stubs/components/jewish_calendar/binary_sensor.pyi +5 -15
  178. homeassistant-stubs/components/jewish_calendar/config_flow.pyi +2 -2
  179. homeassistant-stubs/components/jewish_calendar/entity.pyi +19 -5
  180. homeassistant-stubs/components/jewish_calendar/sensor.pyi +11 -7
  181. homeassistant-stubs/components/knx/__init__.pyi +6 -40
  182. homeassistant-stubs/components/knx/binary_sensor.pyi +3 -2
  183. homeassistant-stubs/components/knx/button.pyi +1 -1
  184. homeassistant-stubs/components/knx/climate.pyi +1 -1
  185. homeassistant-stubs/components/knx/config_flow.pyi +14 -21
  186. homeassistant-stubs/components/knx/const.pyi +1 -1
  187. homeassistant-stubs/components/knx/cover.pyi +3 -2
  188. homeassistant-stubs/components/knx/date.pyi +1 -1
  189. homeassistant-stubs/components/knx/datetime.pyi +1 -1
  190. homeassistant-stubs/components/knx/entity.pyi +1 -1
  191. homeassistant-stubs/components/knx/fan.pyi +1 -1
  192. homeassistant-stubs/components/knx/knx_module.pyi +43 -0
  193. homeassistant-stubs/components/knx/light.pyi +3 -2
  194. homeassistant-stubs/components/knx/notify.pyi +1 -1
  195. homeassistant-stubs/components/knx/number.pyi +1 -1
  196. homeassistant-stubs/components/knx/scene.pyi +1 -1
  197. homeassistant-stubs/components/knx/select.pyi +1 -1
  198. homeassistant-stubs/components/knx/sensor.pyi +1 -1
  199. homeassistant-stubs/components/knx/services.pyi +2 -2
  200. homeassistant-stubs/components/knx/storage/config_store.pyi +4 -0
  201. homeassistant-stubs/components/knx/storage/const.pyi +8 -7
  202. homeassistant-stubs/components/knx/storage/entity_store_schema.pyi +3 -10
  203. homeassistant-stubs/components/knx/storage/knx_selector.pyi +4 -0
  204. homeassistant-stubs/components/knx/storage/migration.pyi +5 -0
  205. homeassistant-stubs/components/knx/storage/util.pyi +16 -0
  206. homeassistant-stubs/components/knx/switch.pyi +3 -2
  207. homeassistant-stubs/components/knx/text.pyi +1 -1
  208. homeassistant-stubs/components/knx/time.pyi +1 -1
  209. homeassistant-stubs/components/knx/weather.pyi +1 -1
  210. homeassistant-stubs/components/knx/websocket.pyi +1 -1
  211. homeassistant-stubs/components/lamarzocco/config_flow.pyi +2 -2
  212. homeassistant-stubs/components/lcn/binary_sensor.pyi +1 -20
  213. homeassistant-stubs/components/lcn/helpers.pyi +1 -0
  214. homeassistant-stubs/components/lcn/light.pyi +2 -1
  215. homeassistant-stubs/components/letpot/coordinator.pyi +3 -4
  216. homeassistant-stubs/components/letpot/switch.pyi +1 -1
  217. homeassistant-stubs/components/letpot/time.pyi +1 -1
  218. homeassistant-stubs/components/lifx/const.pyi +1 -0
  219. homeassistant-stubs/components/lifx/coordinator.pyi +5 -1
  220. homeassistant-stubs/components/lifx/light.pyi +1 -1
  221. homeassistant-stubs/components/lifx/manager.pyi +1 -1
  222. homeassistant-stubs/components/linkplay/select.pyi +35 -0
  223. homeassistant-stubs/components/litterrobot/sensor.pyi +3 -0
  224. homeassistant-stubs/components/matrix/__init__.pyi +1 -1
  225. homeassistant-stubs/components/matrix/services.pyi +3 -2
  226. homeassistant-stubs/components/matter/entity.pyi +2 -2
  227. homeassistant-stubs/components/matter/light.pyi +1 -1
  228. homeassistant-stubs/components/matter/number.pyi +29 -1
  229. homeassistant-stubs/components/matter/select.pyi +2 -2
  230. homeassistant-stubs/components/matter/vacuum.pyi +2 -0
  231. homeassistant-stubs/components/mcp_server/server.pyi +1 -1
  232. homeassistant-stubs/components/mealie/const.pyi +2 -0
  233. homeassistant-stubs/components/mealie/services.pyi +4 -1
  234. homeassistant-stubs/components/media_player/const.pyi +2 -2
  235. homeassistant-stubs/components/media_source/const.pyi +3 -0
  236. homeassistant-stubs/components/media_source/local_source.pyi +1 -1
  237. homeassistant-stubs/components/media_source/models.pyi +6 -2
  238. homeassistant-stubs/components/met_eireann/__init__.pyi +2 -17
  239. homeassistant-stubs/components/met_eireann/coordinator.pyi +28 -0
  240. homeassistant-stubs/components/met_eireann/weather.pyi +1 -3
  241. homeassistant-stubs/components/miele/__init__.pyi +5 -0
  242. homeassistant-stubs/components/miele/entity.pyi +2 -0
  243. homeassistant-stubs/components/miele/sensor.pyi +7 -6
  244. homeassistant-stubs/components/miele/services.pyi +24 -0
  245. homeassistant-stubs/components/miele/vacuum.pyi +0 -2
  246. homeassistant-stubs/components/modem_callerid/sensor.pyi +2 -2
  247. homeassistant-stubs/components/mold_indicator/__init__.pyi +8 -1
  248. homeassistant-stubs/components/mold_indicator/config_flow.pyi +2 -0
  249. homeassistant-stubs/components/mold_indicator/sensor.pyi +2 -2
  250. homeassistant-stubs/components/mqtt/climate.pyi +1 -37
  251. homeassistant-stubs/components/mqtt/config_flow.pyi +38 -6
  252. homeassistant-stubs/components/mqtt/const.pyi +33 -2
  253. homeassistant-stubs/components/mqtt/repairs.pyi +15 -0
  254. homeassistant-stubs/components/nasweb/const.pyi +1 -0
  255. homeassistant-stubs/components/nasweb/coordinator.pyi +3 -1
  256. homeassistant-stubs/components/nasweb/sensor.pyi +54 -0
  257. homeassistant-stubs/components/netatmo/climate.pyi +1 -1
  258. homeassistant-stubs/components/netatmo/const.pyi +1 -0
  259. homeassistant-stubs/components/nextdns/__init__.pyi +2 -3
  260. homeassistant-stubs/components/nextdns/coordinator.pyi +10 -2
  261. homeassistant-stubs/components/nordpool/const.pyi +1 -0
  262. homeassistant-stubs/components/nordpool/services.pyi +5 -1
  263. homeassistant-stubs/components/number/const.pyi +2 -1
  264. homeassistant-stubs/components/nut/__init__.pyi +0 -1
  265. homeassistant-stubs/components/onewire/__init__.pyi +0 -1
  266. homeassistant-stubs/components/onewire/config_flow.pyi +2 -2
  267. homeassistant-stubs/components/onkyo/__init__.pyi +2 -3
  268. homeassistant-stubs/components/onkyo/config_flow.pyi +9 -6
  269. homeassistant-stubs/components/onkyo/const.pyi +7 -65
  270. homeassistant-stubs/components/onkyo/media_player.pyi +16 -44
  271. homeassistant-stubs/components/onkyo/receiver.pyi +24 -25
  272. homeassistant-stubs/components/onkyo/services.pyi +3 -3
  273. homeassistant-stubs/components/onkyo/util.pyi +3 -0
  274. homeassistant-stubs/components/open_router/__init__.pyi +15 -0
  275. homeassistant-stubs/components/open_router/ai_task.pyi +17 -0
  276. homeassistant-stubs/components/open_router/config_flow.pyi +30 -0
  277. homeassistant-stubs/components/open_router/const.pyi +8 -0
  278. homeassistant-stubs/components/open_router/conversation.pyi +20 -0
  279. homeassistant-stubs/components/open_router/entity.pyi +33 -0
  280. homeassistant-stubs/components/openai_conversation/__init__.pyi +3 -2
  281. homeassistant-stubs/components/openai_conversation/ai_task.pyi +16 -0
  282. homeassistant-stubs/components/openai_conversation/config_flow.pyi +2 -3
  283. homeassistant-stubs/components/openai_conversation/const.pyi +9 -1
  284. homeassistant-stubs/components/openai_conversation/conversation.pyi +6 -22
  285. homeassistant-stubs/components/openai_conversation/entity.pyi +36 -0
  286. homeassistant-stubs/components/opower/__init__.pyi +8 -0
  287. homeassistant-stubs/components/opower/config_flow.pyi +25 -0
  288. homeassistant-stubs/components/opower/const.pyi +3 -0
  289. homeassistant-stubs/components/opower/coordinator.pyi +24 -0
  290. homeassistant-stubs/components/opower/sensor.pyi +35 -0
  291. homeassistant-stubs/components/pegel_online/__init__.pyi +1 -1
  292. homeassistant-stubs/components/pegel_online/sensor.pyi +2 -0
  293. homeassistant-stubs/components/pi_hole/__init__.pyi +6 -2
  294. homeassistant-stubs/components/pi_hole/config_flow.pyi +1 -2
  295. homeassistant-stubs/components/pi_hole/const.pyi +1 -0
  296. homeassistant-stubs/components/pi_hole/sensor.pyi +5 -0
  297. homeassistant-stubs/components/pi_hole/update.pyi +3 -3
  298. homeassistant-stubs/components/ping/__init__.pyi +0 -1
  299. homeassistant-stubs/components/ping/config_flow.pyi +3 -3
  300. homeassistant-stubs/components/plugwise/select.pyi +1 -1
  301. homeassistant-stubs/components/proximity/__init__.pyi +0 -1
  302. homeassistant-stubs/components/proximity/config_flow.pyi +3 -3
  303. homeassistant-stubs/components/purpleair/__init__.pyi +0 -1
  304. homeassistant-stubs/components/purpleair/config_flow.pyi +2 -2
  305. homeassistant-stubs/components/pyload/config_flow.pyi +4 -0
  306. homeassistant-stubs/components/recorder/pool.pyi +2 -1
  307. homeassistant-stubs/components/renault/__init__.pyi +1 -1
  308. homeassistant-stubs/components/renault/services.pyi +3 -2
  309. homeassistant-stubs/components/reolink/__init__.pyi +0 -1
  310. homeassistant-stubs/components/reolink/config_flow.pyi +2 -2
  311. homeassistant-stubs/components/reolink/number.pyi +1 -1
  312. homeassistant-stubs/components/reolink/sensor.pyi +1 -1
  313. homeassistant-stubs/components/rest/sensor.pyi +1 -3
  314. homeassistant-stubs/components/roborock/__init__.pyi +0 -1
  315. homeassistant-stubs/components/roborock/config_flow.pyi +2 -2
  316. homeassistant-stubs/components/roku/__init__.pyi +0 -1
  317. homeassistant-stubs/components/roku/config_flow.pyi +2 -2
  318. homeassistant-stubs/components/russound_rio/const.pyi +2 -0
  319. homeassistant-stubs/components/russound_rio/media_player.pyi +6 -0
  320. homeassistant-stubs/components/scrape/sensor.pyi +1 -2
  321. homeassistant-stubs/components/sensor/const.pyi +2 -1
  322. homeassistant-stubs/components/sensor/device_condition.pyi +1 -0
  323. homeassistant-stubs/components/sensor/device_trigger.pyi +1 -0
  324. homeassistant-stubs/components/shelly/button.pyi +2 -2
  325. homeassistant-stubs/components/shelly/climate.pyi +2 -2
  326. homeassistant-stubs/components/shelly/coordinator.pyi +5 -1
  327. homeassistant-stubs/components/shelly/entity.pyi +3 -0
  328. homeassistant-stubs/components/shelly/event.pyi +2 -2
  329. homeassistant-stubs/components/shelly/sensor.pyi +2 -2
  330. homeassistant-stubs/components/shelly/utils.pyi +2 -2
  331. homeassistant-stubs/components/sleepiq/const.pyi +2 -0
  332. homeassistant-stubs/components/sleepiq/number.pyi +7 -3
  333. homeassistant-stubs/components/sleepiq/select.pyi +15 -2
  334. homeassistant-stubs/components/smhi/coordinator.pyi +3 -0
  335. homeassistant-stubs/components/smhi/entity.pyi +3 -1
  336. homeassistant-stubs/components/smhi/sensor.pyi +30 -0
  337. homeassistant-stubs/components/smhi/weather.pyi +4 -2
  338. homeassistant-stubs/components/sonarr/__init__.pyi +0 -1
  339. homeassistant-stubs/components/sonarr/config_flow.pyi +2 -2
  340. homeassistant-stubs/components/speedtestdotnet/__init__.pyi +0 -1
  341. homeassistant-stubs/components/speedtestdotnet/config_flow.pyi +2 -2
  342. homeassistant-stubs/components/sql/__init__.pyi +0 -1
  343. homeassistant-stubs/components/sql/config_flow.pyi +2 -2
  344. homeassistant-stubs/components/squeezebox/__init__.pyi +3 -2
  345. homeassistant-stubs/components/squeezebox/const.pyi +2 -3
  346. homeassistant-stubs/components/squeezebox/coordinator.pyi +2 -2
  347. homeassistant-stubs/components/squeezebox/media_player.pyi +2 -2
  348. homeassistant-stubs/components/statistics/__init__.pyi +3 -1
  349. homeassistant-stubs/components/statistics/config_flow.pyi +1 -0
  350. homeassistant-stubs/components/statistics/sensor.pyi +5 -5
  351. homeassistant-stubs/components/stookwijzer/__init__.pyi +4 -0
  352. homeassistant-stubs/components/stookwijzer/const.pyi +2 -0
  353. homeassistant-stubs/components/stookwijzer/services.pyi +17 -0
  354. homeassistant-stubs/components/switch_as_x/__init__.pyi +2 -2
  355. homeassistant-stubs/components/switch_as_x/entity.pyi +1 -3
  356. homeassistant-stubs/components/switchbot_cloud/__init__.pyi +2 -0
  357. homeassistant-stubs/components/switchbot_cloud/const.pyi +1 -0
  358. homeassistant-stubs/components/switchbot_cloud/fan.pyi +26 -0
  359. homeassistant-stubs/components/switchbot_cloud/light.pyi +40 -0
  360. homeassistant-stubs/components/switchbot_cloud/vacuum.pyi +17 -1
  361. homeassistant-stubs/components/synology_dsm/__init__.pyi +0 -1
  362. homeassistant-stubs/components/synology_dsm/config_flow.pyi +2 -2
  363. homeassistant-stubs/components/tankerkoenig/__init__.pyi +10 -0
  364. homeassistant-stubs/components/tankerkoenig/binary_sensor.pyi +23 -0
  365. homeassistant-stubs/components/tankerkoenig/config_flow.pyi +33 -0
  366. homeassistant-stubs/components/tankerkoenig/const.pyi +13 -0
  367. homeassistant-stubs/components/tankerkoenig/coordinator.pyi +22 -0
  368. homeassistant-stubs/components/tankerkoenig/diagnostics.pyi +10 -0
  369. homeassistant-stubs/components/tankerkoenig/entity.pyi +11 -0
  370. homeassistant-stubs/components/tankerkoenig/sensor.pyi +28 -0
  371. homeassistant-stubs/components/telegram_bot/webhooks.pyi +3 -1
  372. homeassistant-stubs/components/threshold/__init__.pyi +5 -1
  373. homeassistant-stubs/components/threshold/binary_sensor.pyi +3 -4
  374. homeassistant-stubs/components/threshold/config_flow.pyi +1 -0
  375. homeassistant-stubs/components/time_date/config_flow.pyi +1 -2
  376. homeassistant-stubs/components/trafikverket_train/__init__.pyi +0 -1
  377. homeassistant-stubs/components/trafikverket_train/config_flow.pyi +2 -2
  378. homeassistant-stubs/components/trend/__init__.pyi +3 -1
  379. homeassistant-stubs/components/trend/binary_sensor.pyi +3 -4
  380. homeassistant-stubs/components/trend/config_flow.pyi +1 -0
  381. homeassistant-stubs/components/tts/entity.pyi +0 -2
  382. homeassistant-stubs/components/unifiprotect/__init__.pyi +5 -5
  383. homeassistant-stubs/components/unifiprotect/config_flow.pyi +5 -5
  384. homeassistant-stubs/components/unifiprotect/repairs.pyi +0 -6
  385. homeassistant-stubs/components/unifiprotect/services.pyi +1 -1
  386. homeassistant-stubs/components/uptime_kuma/__init__.pyi +14 -0
  387. homeassistant-stubs/components/uptime_kuma/config_flow.pyi +26 -0
  388. homeassistant-stubs/components/uptime_kuma/const.pyi +7 -0
  389. homeassistant-stubs/components/uptime_kuma/coordinator.pyi +30 -0
  390. homeassistant-stubs/components/uptime_kuma/diagnostics.pyi +9 -0
  391. homeassistant-stubs/components/uptime_kuma/sensor.pyi +46 -0
  392. homeassistant-stubs/components/uptime_kuma/update.pyi +39 -0
  393. homeassistant-stubs/components/vacuum/__init__.pyi +7 -0
  394. homeassistant-stubs/components/velbus/__init__.pyi +1 -1
  395. homeassistant-stubs/components/velbus/const.pyi +0 -1
  396. homeassistant-stubs/components/velbus/services.pyi +4 -4
  397. homeassistant-stubs/components/vodafone_station/__init__.pyi +0 -1
  398. homeassistant-stubs/components/vodafone_station/config_flow.pyi +2 -2
  399. homeassistant-stubs/components/volvo/__init__.pyi +15 -0
  400. homeassistant-stubs/components/volvo/api.pyi +14 -0
  401. homeassistant-stubs/components/volvo/application_credentials.pyi +9 -0
  402. homeassistant-stubs/components/volvo/config_flow.pyi +34 -0
  403. homeassistant-stubs/components/volvo/const.pyi +8 -0
  404. homeassistant-stubs/components/volvo/coordinator.pyi +46 -0
  405. homeassistant-stubs/components/volvo/entity.pyi +33 -0
  406. homeassistant-stubs/components/volvo/sensor.pyi +35 -0
  407. homeassistant-stubs/components/wallbox/__init__.pyi +4 -5
  408. homeassistant-stubs/components/wallbox/coordinator.pyi +8 -2
  409. homeassistant-stubs/components/wallbox/lock.pyi +5 -4
  410. homeassistant-stubs/components/wallbox/number.pyi +6 -5
  411. homeassistant-stubs/components/wallbox/select.pyi +4 -3
  412. homeassistant-stubs/components/wallbox/sensor.pyi +5 -4
  413. homeassistant-stubs/components/wallbox/switch.pyi +5 -4
  414. homeassistant-stubs/components/waqi/__init__.pyi +3 -5
  415. homeassistant-stubs/components/waqi/coordinator.pyi +3 -2
  416. homeassistant-stubs/components/waqi/sensor.pyi +2 -13
  417. homeassistant-stubs/components/webostv/__init__.pyi +0 -1
  418. homeassistant-stubs/components/webostv/config_flow.pyi +3 -3
  419. homeassistant-stubs/components/websocket_api/commands.pyi +4 -0
  420. homeassistant-stubs/components/wiz/fan.pyi +34 -0
  421. homeassistant-stubs/components/wled/__init__.pyi +0 -1
  422. homeassistant-stubs/components/wled/config_flow.pyi +2 -2
  423. homeassistant-stubs/components/workday/__init__.pyi +0 -1
  424. homeassistant-stubs/components/workday/config_flow.pyi +2 -2
  425. homeassistant-stubs/components/yale_smart_alarm/__init__.pyi +0 -1
  426. homeassistant-stubs/components/yale_smart_alarm/config_flow.pyi +2 -2
  427. homeassistant-stubs/components/yalexs_ble/lock.pyi +14 -2
  428. homeassistant-stubs/components/zone/condition.pyi +22 -0
  429. homeassistant-stubs/components/zone/trigger.pyi +2 -1
  430. homeassistant-stubs/components/zwave_js/__init__.pyi +10 -9
  431. homeassistant-stubs/components/zwave_js/api.pyi +35 -34
  432. homeassistant-stubs/components/zwave_js/binary_sensor.pyi +7 -7
  433. homeassistant-stubs/components/zwave_js/button.pyi +5 -5
  434. homeassistant-stubs/components/zwave_js/climate.pyi +5 -5
  435. homeassistant-stubs/components/zwave_js/config_flow.pyi +5 -3
  436. homeassistant-stubs/components/zwave_js/const.pyi +0 -2
  437. homeassistant-stubs/components/zwave_js/cover.pyi +7 -7
  438. homeassistant-stubs/components/zwave_js/device_automation_helpers.pyi +1 -1
  439. homeassistant-stubs/components/zwave_js/diagnostics.pyi +5 -5
  440. homeassistant-stubs/components/zwave_js/entity.pyi +0 -4
  441. homeassistant-stubs/components/zwave_js/event.pyi +4 -4
  442. homeassistant-stubs/components/zwave_js/fan.pyi +6 -6
  443. homeassistant-stubs/components/zwave_js/helpers.pyi +6 -5
  444. homeassistant-stubs/components/zwave_js/humidifier.pyi +4 -4
  445. homeassistant-stubs/components/zwave_js/light.pyi +15 -5
  446. homeassistant-stubs/components/zwave_js/lock.pyi +3 -3
  447. homeassistant-stubs/components/zwave_js/models.pyi +12 -0
  448. homeassistant-stubs/components/zwave_js/number.pyi +6 -6
  449. homeassistant-stubs/components/zwave_js/select.pyi +8 -8
  450. homeassistant-stubs/components/zwave_js/sensor.pyi +10 -10
  451. homeassistant-stubs/components/zwave_js/siren.pyi +4 -4
  452. homeassistant-stubs/components/zwave_js/switch.pyi +7 -7
  453. homeassistant-stubs/components/zwave_js/triggers/event.pyi +1 -2
  454. homeassistant-stubs/components/zwave_js/triggers/trigger_helpers.pyi +1 -1
  455. homeassistant-stubs/components/zwave_js/update.pyi +28 -18
  456. homeassistant-stubs/config.pyi +0 -2
  457. homeassistant-stubs/config_entries.pyi +3 -0
  458. homeassistant-stubs/const.pyi +2 -0
  459. homeassistant-stubs/core.pyi +12 -8
  460. homeassistant-stubs/helpers/condition.pyi +25 -6
  461. homeassistant-stubs/helpers/config_validation.pyi +0 -2
  462. homeassistant-stubs/helpers/device.pyi +2 -0
  463. homeassistant-stubs/helpers/device_registry.pyi +11 -6
  464. homeassistant-stubs/helpers/entity.pyi +3 -1
  465. homeassistant-stubs/helpers/entity_platform.pyi +30 -9
  466. homeassistant-stubs/helpers/frame.pyi +1 -1
  467. homeassistant-stubs/helpers/helper_integration.pyi +2 -1
  468. homeassistant-stubs/helpers/llm.pyi +5 -1
  469. homeassistant-stubs/helpers/schema_config_entry_flow.pyi +1 -0
  470. homeassistant-stubs/helpers/selector.pyi +42 -37
  471. homeassistant-stubs/helpers/service.pyi +9 -26
  472. homeassistant-stubs/helpers/target.pyi +59 -0
  473. homeassistant-stubs/helpers/trigger.pyi +3 -1
  474. homeassistant-stubs/helpers/trigger_template_entity.pyi +5 -1
  475. homeassistant-stubs/loader.pyi +2 -9
  476. homeassistant-stubs/runner.pyi +1 -0
  477. homeassistant-stubs/util/resource.pyi +7 -0
  478. homeassistant-stubs/util/unit_conversion.pyi +1 -1
  479. {homeassistant_stubs-2025.7.3.dist-info → homeassistant_stubs-2025.8.0b0.dist-info}/METADATA +2 -2
  480. {homeassistant_stubs-2025.7.3.dist-info → homeassistant_stubs-2025.8.0b0.dist-info}/RECORD +482 -414
  481. homeassistant-stubs/components/backup/basic_websocket.pyi +0 -12
  482. homeassistant-stubs/helpers/backup.pyi +0 -24
  483. {homeassistant_stubs-2025.7.3.dist-info → homeassistant_stubs-2025.8.0b0.dist-info}/WHEEL +0 -0
  484. {homeassistant_stubs-2025.7.3.dist-info → homeassistant_stubs-2025.8.0b0.dist-info}/licenses/LICENSE +0 -0
@@ -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: ...
@@ -68,15 +68,20 @@ DEVICE_INFO_TYPES: Incomplete
68
68
  DEVICE_INFO_KEYS: Incomplete
69
69
  LOW_PRIO_CONFIG_ENTRY_DOMAINS: Incomplete
70
70
 
71
- class _EventDeviceRegistryUpdatedData_CreateRemove(TypedDict):
72
- action: Literal['create', 'remove']
71
+ class _EventDeviceRegistryUpdatedData_Create(TypedDict):
72
+ action: Literal['create']
73
73
  device_id: str
74
74
 
75
+ class _EventDeviceRegistryUpdatedData_Remove(TypedDict):
76
+ action: Literal['remove']
77
+ device_id: str
78
+ device: DeviceEntry
79
+
75
80
  class _EventDeviceRegistryUpdatedData_Update(TypedDict):
76
81
  action: Literal['update']
77
82
  device_id: str
78
83
  changes: dict[str, Any]
79
- type EventDeviceRegistryUpdatedData = _EventDeviceRegistryUpdatedData_CreateRemove | _EventDeviceRegistryUpdatedData_Update
84
+ type EventDeviceRegistryUpdatedData = _EventDeviceRegistryUpdatedData_Create | _EventDeviceRegistryUpdatedData_Remove | _EventDeviceRegistryUpdatedData_Update
80
85
 
81
86
  class DeviceEntryType(StrEnum):
82
87
  SERVICE = 'service'
@@ -99,6 +104,9 @@ def _validate_device_info(config_entry: ConfigEntry, device_info: DeviceInfo) ->
99
104
  _cached_parse_url: Incomplete
100
105
 
101
106
  def _validate_configuration_url(value: Any) -> str | None: ...
107
+ def format_mac(mac: str) -> str: ...
108
+ def _normalize_connections(connections: Iterable[tuple[str, str]]) -> set[tuple[str, str]]: ...
109
+ def _normalize_connections_validator(instance: Any, attribute: Any, connections: Iterable[tuple[str, str]]) -> None: ...
102
110
 
103
111
  class DeviceEntry:
104
112
  area_id: str | None
@@ -163,8 +171,6 @@ class DeletedDeviceEntry:
163
171
  def __gt__(self, other): ...
164
172
  def __ge__(self, other): ...
165
173
 
166
- def format_mac(mac: str) -> str: ...
167
-
168
174
  class DeviceRegistryStore(storage.Store[dict[str, list[dict[str, Any]]]]):
169
175
  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
176
 
@@ -239,4 +245,3 @@ def async_config_entry_disabled_by_changed(registry: DeviceRegistry, config_entr
239
245
  def async_cleanup(hass: HomeAssistant, dev_reg: DeviceRegistry, ent_reg: entity_registry.EntityRegistry) -> None: ...
240
246
  @callback
241
247
  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
@@ -0,0 +1,59 @@
1
+ import dataclasses
2
+ from . import group as group
3
+ from .event import async_track_state_change_event as async_track_state_change_event
4
+ from .typing import ConfigType as ConfigType
5
+ from _typeshed import Incomplete
6
+ from collections.abc import Callable as Callable
7
+ 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, ENTITY_MATCH_NONE as ENTITY_MATCH_NONE
8
+ from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, Event as Event, EventStateChangedData as EventStateChangedData, HomeAssistant as HomeAssistant, callback as callback
9
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
10
+ from logging import Logger
11
+ from typing import Any, TypeGuard
12
+
13
+ _LOGGER: Incomplete
14
+
15
+ @dataclasses.dataclass(slots=True, frozen=True)
16
+ class TargetStateChangedData:
17
+ state_change_event: Event[EventStateChangedData]
18
+ targeted_entity_ids: set[str]
19
+
20
+ def _has_match(ids: str | list[str] | None) -> TypeGuard[str | list[str]]: ...
21
+
22
+ class TargetSelectorData:
23
+ __slots__: Incomplete
24
+ entity_ids: Incomplete
25
+ device_ids: Incomplete
26
+ area_ids: Incomplete
27
+ floor_ids: Incomplete
28
+ label_ids: Incomplete
29
+ def __init__(self, config: ConfigType) -> None: ...
30
+ @property
31
+ def has_any_selector(self) -> bool: ...
32
+
33
+ @dataclasses.dataclass(slots=True)
34
+ class SelectedEntities:
35
+ referenced: set[str] = dataclasses.field(default_factory=set)
36
+ indirectly_referenced: set[str] = dataclasses.field(default_factory=set)
37
+ missing_devices: set[str] = dataclasses.field(default_factory=set)
38
+ missing_areas: set[str] = dataclasses.field(default_factory=set)
39
+ missing_floors: set[str] = dataclasses.field(default_factory=set)
40
+ missing_labels: set[str] = dataclasses.field(default_factory=set)
41
+ referenced_devices: set[str] = dataclasses.field(default_factory=set)
42
+ referenced_areas: set[str] = dataclasses.field(default_factory=set)
43
+ def log_missing(self, missing_entities: set[str], logger: Logger) -> None: ...
44
+
45
+ def async_extract_referenced_entity_ids(hass: HomeAssistant, selector_data: TargetSelectorData, expand_group: bool = True) -> SelectedEntities: ...
46
+
47
+ class TargetStateChangeTracker:
48
+ _hass: Incomplete
49
+ _selector_data: Incomplete
50
+ _action: Incomplete
51
+ _state_change_unsub: CALLBACK_TYPE | None
52
+ _registry_unsubs: list[CALLBACK_TYPE]
53
+ def __init__(self, hass: HomeAssistant, selector_data: TargetSelectorData, action: Callable[[TargetStateChangedData], Any]) -> None: ...
54
+ def async_setup(self) -> Callable[[], None]: ...
55
+ def _track_entities_state_change(self) -> None: ...
56
+ def _setup_registry_listeners(self) -> None: ...
57
+ def _unsubscribe(self) -> None: ...
58
+
59
+ def async_track_target_selector_state_change_event(hass: HomeAssistant, target_selector_config: ConfigType, action: Callable[[TargetStateChangedData], Any]) -> CALLBACK_TYPE: ...
@@ -1,13 +1,15 @@
1
1
  import abc
2
2
  import voluptuous as vol
3
+ from . import selector as selector
3
4
  from .integration_platform import async_process_integration_platforms as async_process_integration_platforms
5
+ from .selector import TargetSelector as TargetSelector
4
6
  from .template import Template as Template
5
7
  from .typing import ConfigType as ConfigType, TemplateVarsType as TemplateVarsType
6
8
  from _typeshed import Incomplete
7
9
  from collections import defaultdict
8
10
  from collections.abc import Callable, Coroutine, Iterable
9
11
  from dataclasses import dataclass, field
10
- from homeassistant.const import CONF_ALIAS as CONF_ALIAS, CONF_ENABLED as CONF_ENABLED, CONF_ID as CONF_ID, CONF_PLATFORM as CONF_PLATFORM, CONF_VARIABLES as CONF_VARIABLES
12
+ from homeassistant.const import CONF_ALIAS as CONF_ALIAS, CONF_ENABLED as CONF_ENABLED, CONF_ID as CONF_ID, CONF_PLATFORM as CONF_PLATFORM, CONF_SELECTOR as CONF_SELECTOR, CONF_VARIABLES as CONF_VARIABLES
11
13
  from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, Context as Context, HassJob as HassJob, HomeAssistant as HomeAssistant, callback as callback, is_callback as is_callback
12
14
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, TemplateError as TemplateError
13
15
  from homeassistant.loader import Integration as Integration, IntegrationNotFound as IntegrationNotFound, async_get_integration as async_get_integration, async_get_integrations as async_get_integrations
@@ -3,7 +3,8 @@ from .entity import Entity as Entity
3
3
  from .template import Template as Template, TemplateStateFromEntityId as TemplateStateFromEntityId, _SENTINEL as _SENTINEL, _render_with_context as _render_with_context, render_complex as render_complex, result_as_boolean as result_as_boolean
4
4
  from .typing import ConfigType as ConfigType
5
5
  from _typeshed import Incomplete
6
- from homeassistant.components.sensor import CONF_STATE_CLASS as CONF_STATE_CLASS, DEVICE_CLASSES_SCHEMA as DEVICE_CLASSES_SCHEMA, STATE_CLASSES_SCHEMA as STATE_CLASSES_SCHEMA, SensorEntity as SensorEntity
6
+ from homeassistant.components.sensor import CONF_STATE_CLASS as CONF_STATE_CLASS, DEVICE_CLASSES_SCHEMA as DEVICE_CLASSES_SCHEMA, STATE_CLASSES_SCHEMA as STATE_CLASSES_SCHEMA, SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity
7
+ from homeassistant.components.sensor.helpers import async_parse_date_datetime as async_parse_date_datetime
7
8
  from homeassistant.const import ATTR_ENTITY_PICTURE as ATTR_ENTITY_PICTURE, ATTR_FRIENDLY_NAME as ATTR_FRIENDLY_NAME, ATTR_ICON as ATTR_ICON, CONF_DEVICE_CLASS as CONF_DEVICE_CLASS, CONF_ICON as CONF_ICON, CONF_NAME as CONF_NAME, CONF_UNIQUE_ID as CONF_UNIQUE_ID, CONF_UNIT_OF_MEASUREMENT as CONF_UNIT_OF_MEASUREMENT
8
9
  from homeassistant.core import HomeAssistant as HomeAssistant, State as State, callback as callback
9
10
  from homeassistant.exceptions import TemplateError as TemplateError
@@ -74,3 +75,6 @@ class ManualTriggerSensorEntity(ManualTriggerEntity, SensorEntity):
74
75
  _attr_native_unit_of_measurement: Incomplete
75
76
  _attr_state_class: Incomplete
76
77
  def __init__(self, hass: HomeAssistant, config: ConfigType) -> None: ...
78
+ _attr_native_value: Incomplete
79
+ @callback
80
+ def _set_native_value_with_possible_timestamp(self, value: Any) -> None: ...
@@ -198,6 +198,8 @@ class Integration:
198
198
  @cached_property
199
199
  def import_executor(self) -> bool: ...
200
200
  @cached_property
201
+ def has_conditions(self) -> bool: ...
202
+ @cached_property
201
203
  def has_services(self) -> bool: ...
202
204
  @cached_property
203
205
  def has_translations(self) -> bool: ...
@@ -279,17 +281,8 @@ class CircularDependency(LoaderError):
279
281
  def __init__(self, domain_cycle: list[str]) -> None: ...
280
282
  def extend_cycle(self, domain: str) -> None: ...
281
283
 
282
- def _load_file(hass: HomeAssistant, comp_or_platform: str, base_paths: list[str]) -> ComponentProtocol | None: ...
283
-
284
- class ModuleWrapper:
285
- _hass: Incomplete
286
- _module: Incomplete
287
- def __init__(self, hass: HomeAssistant, module: ComponentProtocol) -> None: ...
288
- def __getattr__(self, attr: str) -> Any: ...
289
-
290
284
  def bind_hass[_CallableT: Callable[..., Any]](func: _CallableT) -> _CallableT: ...
291
285
  def _async_mount_config_dir(hass: HomeAssistant) -> None: ...
292
- def _lookup_path(hass: HomeAssistant) -> list[str]: ...
293
286
  def is_component_module_loaded(hass: HomeAssistant, module: str) -> bool: ...
294
287
  @callback
295
288
  def async_get_issue_integration(hass: HomeAssistant | None, integration_domain: str | None) -> Integration | None: ...
@@ -4,6 +4,7 @@ from . import bootstrap as bootstrap
4
4
  from .core import callback as callback
5
5
  from .helpers.frame import warn_use as warn_use
6
6
  from .util.executor import InterruptibleThreadPoolExecutor as InterruptibleThreadPoolExecutor
7
+ from .util.resource import set_open_file_descriptor_limit as set_open_file_descriptor_limit
7
8
  from .util.thread import deadlock_safe_shutdown as deadlock_safe_shutdown
8
9
  from _typeshed import Incomplete
9
10
  from typing import Any