homeassistant-stubs 2024.6.4__py3-none-any.whl → 2024.7.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.
Files changed (605) hide show
  1. homeassistant-stubs/auth/__init__.pyi +2 -0
  2. homeassistant-stubs/auth/auth_store.pyi +1 -0
  3. homeassistant-stubs/auth/providers/homeassistant.pyi +8 -1
  4. homeassistant-stubs/block_async_io.pyi +23 -0
  5. homeassistant-stubs/components/accuweather/sensor.pyi +5 -9
  6. homeassistant-stubs/components/accuweather/weather.pyi +1 -1
  7. homeassistant-stubs/components/acer_projector/switch.pyi +2 -1
  8. homeassistant-stubs/components/air_quality/__init__.pyi +4 -3
  9. homeassistant-stubs/components/airgradient/__init__.pyi +8 -0
  10. homeassistant-stubs/components/airgradient/button.pyi +28 -0
  11. homeassistant-stubs/components/airgradient/const.pyi +2 -0
  12. homeassistant-stubs/components/airgradient/coordinator.pyi +2 -2
  13. homeassistant-stubs/components/airgradient/number.pyi +32 -0
  14. homeassistant-stubs/components/airgradient/select.pyi +14 -12
  15. homeassistant-stubs/components/airgradient/sensor.pyi +28 -10
  16. homeassistant-stubs/components/airgradient/switch.pyi +33 -0
  17. homeassistant-stubs/components/airnow/const.pyi +1 -0
  18. homeassistant-stubs/components/airnow/coordinator.pyi +1 -1
  19. homeassistant-stubs/components/airnow/sensor.pyi +1 -2
  20. homeassistant-stubs/components/airzone/__init__.pyi +4 -4
  21. homeassistant-stubs/components/airzone/binary_sensor.pyi +2 -2
  22. homeassistant-stubs/components/airzone/climate.pyi +3 -2
  23. homeassistant-stubs/components/airzone/diagnostics.pyi +2 -4
  24. homeassistant-stubs/components/airzone/entity.pyi +2 -1
  25. homeassistant-stubs/components/airzone/select.pyi +2 -2
  26. homeassistant-stubs/components/airzone/sensor.pyi +3 -2
  27. homeassistant-stubs/components/airzone/water_heater.pyi +3 -2
  28. homeassistant-stubs/components/airzone_cloud/__init__.pyi +3 -3
  29. homeassistant-stubs/components/airzone_cloud/binary_sensor.pyi +2 -3
  30. homeassistant-stubs/components/airzone_cloud/climate.pyi +8 -10
  31. homeassistant-stubs/components/airzone_cloud/diagnostics.pyi +2 -4
  32. homeassistant-stubs/components/airzone_cloud/select.pyi +2 -3
  33. homeassistant-stubs/components/airzone_cloud/sensor.pyi +2 -3
  34. homeassistant-stubs/components/airzone_cloud/water_heater.pyi +2 -3
  35. homeassistant-stubs/components/aladdin_connect/api.pyi +0 -1
  36. homeassistant-stubs/components/aladdin_connect/coordinator.pyi +0 -2
  37. homeassistant-stubs/components/aladdin_connect/cover.pyi +0 -1
  38. homeassistant-stubs/components/aladdin_connect/entity.pyi +0 -1
  39. homeassistant-stubs/components/aladdin_connect/sensor.pyi +0 -2
  40. homeassistant-stubs/components/alarm_control_panel/__init__.pyi +3 -3
  41. homeassistant-stubs/components/alexa/capabilities.pyi +2 -2
  42. homeassistant-stubs/components/alexa/entities.pyi +25 -24
  43. homeassistant-stubs/components/alpha_vantage/sensor.pyi +2 -1
  44. homeassistant-stubs/components/ambient_network/coordinator.pyi +2 -0
  45. homeassistant-stubs/components/ambient_network/sensor.pyi +1 -0
  46. homeassistant-stubs/components/androidtv/entity.pyi +1 -0
  47. homeassistant-stubs/components/androidtv/remote.pyi +21 -0
  48. homeassistant-stubs/components/androidtv_remote/config_flow.pyi +11 -1
  49. homeassistant-stubs/components/androidtv_remote/const.pyi +3 -0
  50. homeassistant-stubs/components/androidtv_remote/entity.pyi +2 -1
  51. homeassistant-stubs/components/androidtv_remote/media_player.pyi +4 -1
  52. homeassistant-stubs/components/androidtv_remote/remote.pyi +3 -0
  53. homeassistant-stubs/components/anel_pwrctrl/switch.pyi +2 -1
  54. homeassistant-stubs/components/apprise/notify.pyi +2 -1
  55. homeassistant-stubs/components/apsystems/__init__.pyi +9 -2
  56. homeassistant-stubs/components/apsystems/entity.pyi +10 -0
  57. homeassistant-stubs/components/apsystems/number.pyi +25 -0
  58. homeassistant-stubs/components/apsystems/sensor.pyi +6 -7
  59. homeassistant-stubs/components/aqualogic/sensor.pyi +2 -1
  60. homeassistant-stubs/components/aqualogic/switch.pyi +2 -1
  61. homeassistant-stubs/components/aquostv/media_player.pyi +2 -1
  62. homeassistant-stubs/components/assist_pipeline/pipeline.pyi +8 -7
  63. homeassistant-stubs/components/assist_pipeline/select.pyi +1 -1
  64. homeassistant-stubs/components/asuswrt/config_flow.pyi +1 -0
  65. homeassistant-stubs/components/automation/__init__.pyi +10 -5
  66. homeassistant-stubs/components/automation/config.pyi +11 -1
  67. homeassistant-stubs/components/automation/trace.pyi +2 -2
  68. homeassistant-stubs/components/axis/config_flow.pyi +1 -0
  69. homeassistant-stubs/components/baf/binary_sensor.pyi +2 -4
  70. homeassistant-stubs/components/baf/entity.pyi +6 -1
  71. homeassistant-stubs/components/baf/number.pyi +2 -4
  72. homeassistant-stubs/components/baf/sensor.pyi +2 -4
  73. homeassistant-stubs/components/baf/switch.pyi +2 -4
  74. homeassistant-stubs/components/bang_olufsen/const.pyi +2 -0
  75. homeassistant-stubs/components/bang_olufsen/media_player.pyi +3 -2
  76. homeassistant-stubs/components/bayesian/binary_sensor.pyi +2 -1
  77. homeassistant-stubs/components/binary_sensor/__init__.pyi +3 -2
  78. homeassistant-stubs/components/bitcoin/sensor.pyi +2 -1
  79. homeassistant-stubs/components/blockchain/sensor.pyi +2 -1
  80. homeassistant-stubs/components/blueprint/errors.pyi +1 -1
  81. homeassistant-stubs/components/blueprint/websocket_api.pyi +6 -3
  82. homeassistant-stubs/components/bluetooth/passive_update_coordinator.pyi +3 -3
  83. homeassistant-stubs/components/bmw_connected_drive/const.pyi +0 -1
  84. homeassistant-stubs/components/bmw_connected_drive/select.pyi +1 -1
  85. homeassistant-stubs/components/bmw_connected_drive/sensor.pyi +1 -1
  86. homeassistant-stubs/components/brother/config_flow.pyi +9 -1
  87. homeassistant-stubs/components/button/__init__.pyi +4 -3
  88. homeassistant-stubs/components/calendar/__init__.pyi +2 -4
  89. homeassistant-stubs/components/camera/__init__.pyi +8 -7
  90. homeassistant-stubs/components/cert_expiry/sensor.pyi +2 -1
  91. homeassistant-stubs/components/clickatell/notify.pyi +2 -1
  92. homeassistant-stubs/components/clicksend/notify.pyi +2 -1
  93. homeassistant-stubs/components/climate/__init__.pyi +5 -4
  94. homeassistant-stubs/components/cloud/__init__.pyi +1 -1
  95. homeassistant-stubs/components/cloud/account_link.pyi +1 -1
  96. homeassistant-stubs/components/cloud/binary_sensor.pyi +1 -1
  97. homeassistant-stubs/components/cloud/const.pyi +6 -1
  98. homeassistant-stubs/components/cloud/http_api.pyi +1 -1
  99. homeassistant-stubs/components/cloud/repairs.pyi +1 -3
  100. homeassistant-stubs/components/cloud/stt.pyi +1 -1
  101. homeassistant-stubs/components/cloud/system_health.pyi +1 -3
  102. homeassistant-stubs/components/cloud/tts.pyi +1 -1
  103. homeassistant-stubs/components/config/auth_provider_homeassistant.pyi +1 -0
  104. homeassistant-stubs/components/config/scene.pyi +3 -1
  105. homeassistant-stubs/components/counter/__init__.pyi +2 -2
  106. homeassistant-stubs/components/cover/__init__.pyi +3 -2
  107. homeassistant-stubs/components/demo/tts.pyi +2 -1
  108. homeassistant-stubs/components/derivative/__init__.pyi +2 -1
  109. homeassistant-stubs/components/derivative/config_flow.pyi +11 -4
  110. homeassistant-stubs/components/derivative/sensor.pyi +3 -1
  111. homeassistant-stubs/components/device_automation/__init__.pyi +2 -2
  112. homeassistant-stubs/components/dlna_dmr/config_flow.pyi +1 -0
  113. homeassistant-stubs/components/dnsip/__init__.pyi +4 -2
  114. homeassistant-stubs/components/dnsip/config_flow.pyi +4 -3
  115. homeassistant-stubs/components/dnsip/const.pyi +2 -0
  116. homeassistant-stubs/components/dnsip/sensor.pyi +4 -3
  117. homeassistant-stubs/components/ecovacs/binary_sensor.pyi +3 -3
  118. homeassistant-stubs/components/ecovacs/button.pyi +5 -5
  119. homeassistant-stubs/components/ecovacs/config_flow.pyi +1 -0
  120. homeassistant-stubs/components/ecovacs/controller.pyi +4 -4
  121. homeassistant-stubs/components/ecovacs/entity.pyi +8 -10
  122. homeassistant-stubs/components/ecovacs/event.pyi +3 -3
  123. homeassistant-stubs/components/ecovacs/image.pyi +2 -2
  124. homeassistant-stubs/components/ecovacs/lawn_mower.pyi +3 -3
  125. homeassistant-stubs/components/ecovacs/number.pyi +3 -3
  126. homeassistant-stubs/components/ecovacs/select.pyi +3 -3
  127. homeassistant-stubs/components/ecovacs/sensor.pyi +6 -6
  128. homeassistant-stubs/components/ecovacs/switch.pyi +4 -4
  129. homeassistant-stubs/components/ecovacs/vacuum.pyi +9 -5
  130. homeassistant-stubs/components/ecowitt/binary_sensor.pyi +1 -0
  131. homeassistant-stubs/components/efergy/__init__.pyi +3 -2
  132. homeassistant-stubs/components/efergy/sensor.pyi +3 -4
  133. homeassistant-stubs/components/electrasmart/__init__.pyi +12 -0
  134. homeassistant-stubs/components/electrasmart/climate.pyi +64 -0
  135. homeassistant-stubs/components/electrasmart/config_flow.pyi +24 -0
  136. homeassistant-stubs/components/electrasmart/const.pyi +10 -0
  137. homeassistant-stubs/components/elkm1/alarm_control_panel.pyi +2 -1
  138. homeassistant-stubs/components/elkm1/const.pyi +2 -1
  139. homeassistant-stubs/components/elkm1/sensor.pyi +2 -1
  140. homeassistant-stubs/components/energy/websocket_api.pyi +5 -5
  141. homeassistant-stubs/components/enigma2/__init__.pyi +3 -2
  142. homeassistant-stubs/components/enigma2/config_flow.pyi +10 -1
  143. homeassistant-stubs/components/enigma2/media_player.pyi +3 -2
  144. homeassistant-stubs/components/enphase_envoy/config_flow.pyi +8 -2
  145. homeassistant-stubs/components/enphase_envoy/const.pyi +2 -0
  146. homeassistant-stubs/components/enphase_envoy/diagnostics.pyi +3 -1
  147. homeassistant-stubs/components/esphome/__init__.pyi +5 -5
  148. homeassistant-stubs/components/esphome/alarm_control_panel.pyi +3 -5
  149. homeassistant-stubs/components/esphome/binary_sensor.pyi +2 -3
  150. homeassistant-stubs/components/esphome/button.pyi +3 -5
  151. homeassistant-stubs/components/esphome/camera.pyi +3 -5
  152. homeassistant-stubs/components/esphome/climate.pyi +3 -6
  153. homeassistant-stubs/components/esphome/cover.pyi +3 -5
  154. homeassistant-stubs/components/esphome/date.pyi +3 -5
  155. homeassistant-stubs/components/esphome/datetime.pyi +3 -5
  156. homeassistant-stubs/components/esphome/diagnostics.pyi +3 -3
  157. homeassistant-stubs/components/esphome/domain_data.pyi +4 -8
  158. homeassistant-stubs/components/esphome/entity.pyi +2 -4
  159. homeassistant-stubs/components/esphome/entry_data.pyi +4 -3
  160. homeassistant-stubs/components/esphome/event.pyi +3 -5
  161. homeassistant-stubs/components/esphome/fan.pyi +3 -6
  162. homeassistant-stubs/components/esphome/light.pyi +3 -6
  163. homeassistant-stubs/components/esphome/lock.pyi +3 -5
  164. homeassistant-stubs/components/esphome/manager.pyi +4 -5
  165. homeassistant-stubs/components/esphome/media_player.pyi +3 -5
  166. homeassistant-stubs/components/esphome/number.pyi +3 -5
  167. homeassistant-stubs/components/esphome/select.pyi +2 -4
  168. homeassistant-stubs/components/esphome/switch.pyi +3 -5
  169. homeassistant-stubs/components/esphome/text.pyi +3 -5
  170. homeassistant-stubs/components/esphome/time.pyi +3 -5
  171. homeassistant-stubs/components/esphome/update.pyi +22 -2
  172. homeassistant-stubs/components/esphome/valve.pyi +3 -5
  173. homeassistant-stubs/components/event/__init__.pyi +3 -1
  174. homeassistant-stubs/components/evohome/__init__.pyi +8 -49
  175. homeassistant-stubs/components/evohome/climate.pyi +2 -2
  176. homeassistant-stubs/components/evohome/const.pyi +39 -16
  177. homeassistant-stubs/components/evohome/coordinator.pyi +33 -0
  178. homeassistant-stubs/components/evohome/helpers.pyi +13 -0
  179. homeassistant-stubs/components/fan/__init__.pyi +3 -2
  180. homeassistant-stubs/components/fastdotcom/__init__.pyi +2 -7
  181. homeassistant-stubs/components/fastdotcom/config_flow.pyi +0 -2
  182. homeassistant-stubs/components/feedreader/__init__.pyi +10 -5
  183. homeassistant-stubs/components/feedreader/config_flow.pyi +30 -0
  184. homeassistant-stubs/components/feedreader/const.pyi +5 -0
  185. homeassistant-stubs/components/feedreader/coordinator.pyi +4 -4
  186. homeassistant-stubs/components/filter/sensor.pyi +2 -1
  187. homeassistant-stubs/components/flux_led/light.pyi +4 -3
  188. homeassistant-stubs/components/fritz/switch.pyi +1 -1
  189. homeassistant-stubs/components/fritzbox/climate.pyi +14 -9
  190. homeassistant-stubs/components/fronius/config_flow.pyi +3 -2
  191. homeassistant-stubs/components/frontend/__init__.pyi +9 -4
  192. homeassistant-stubs/components/fully_kiosk/camera.pyi +21 -0
  193. homeassistant-stubs/components/fully_kiosk/image.pyi +30 -0
  194. homeassistant-stubs/components/fully_kiosk/media_player.pyi +2 -0
  195. homeassistant-stubs/components/fully_kiosk/notify.pyi +25 -0
  196. homeassistant-stubs/components/generic_hygrostat/__init__.pyi +4 -0
  197. homeassistant-stubs/components/generic_hygrostat/config_flow.pyi +19 -0
  198. homeassistant-stubs/components/generic_hygrostat/humidifier.pyi +7 -2
  199. homeassistant-stubs/components/generic_thermostat/__init__.pyi +6 -0
  200. homeassistant-stubs/components/generic_thermostat/climate.pyi +7 -1
  201. homeassistant-stubs/components/generic_thermostat/config_flow.pyi +19 -0
  202. homeassistant-stubs/components/geo_location/__init__.pyi +4 -3
  203. homeassistant-stubs/components/glances/__init__.pyi +3 -2
  204. homeassistant-stubs/components/glances/sensor.pyi +2 -3
  205. homeassistant-stubs/components/goalzero/__init__.pyi +3 -5
  206. homeassistant-stubs/components/goalzero/binary_sensor.pyi +2 -3
  207. homeassistant-stubs/components/goalzero/coordinator.pyi +3 -1
  208. homeassistant-stubs/components/goalzero/sensor.pyi +2 -3
  209. homeassistant-stubs/components/goalzero/switch.pyi +2 -3
  210. homeassistant-stubs/components/google_assistant_sdk/__init__.pyi +2 -2
  211. homeassistant-stubs/components/google_assistant_sdk/diagnostics.pyi +9 -0
  212. homeassistant-stubs/components/google_assistant_sdk/helpers.pyi +1 -0
  213. homeassistant-stubs/components/google_sheets/__init__.pyi +4 -3
  214. homeassistant-stubs/components/google_sheets/config_flow.pyi +3 -2
  215. homeassistant-stubs/components/gpsd/sensor.pyi +2 -1
  216. homeassistant-stubs/components/group/binary_sensor.pyi +2 -1
  217. homeassistant-stubs/components/group/cover.pyi +2 -1
  218. homeassistant-stubs/components/group/entity.pyi +2 -2
  219. homeassistant-stubs/components/group/event.pyi +2 -1
  220. homeassistant-stubs/components/group/fan.pyi +2 -1
  221. homeassistant-stubs/components/group/light.pyi +2 -1
  222. homeassistant-stubs/components/group/lock.pyi +2 -1
  223. homeassistant-stubs/components/group/media_player.pyi +2 -1
  224. homeassistant-stubs/components/group/notify.pyi +2 -1
  225. homeassistant-stubs/components/group/registry.pyi +8 -2
  226. homeassistant-stubs/components/group/switch.pyi +2 -1
  227. homeassistant-stubs/components/history_stats/sensor.pyi +4 -1
  228. homeassistant-stubs/components/homeassistant/const.pyi +3 -1
  229. homeassistant-stubs/components/homekit/aidmanager.pyi +2 -2
  230. homeassistant-stubs/components/homekit_controller/config_flow.pyi +1 -0
  231. homeassistant-stubs/components/homeworks/__init__.pyi +2 -5
  232. homeassistant-stubs/components/homeworks/config_flow.pyi +1 -6
  233. homeassistant-stubs/components/http/__init__.pyi +20 -3
  234. homeassistant-stubs/components/http/cors.pyi +1 -1
  235. homeassistant-stubs/components/http/data_validator.pyi +2 -1
  236. homeassistant-stubs/components/humidifier/__init__.pyi +3 -2
  237. homeassistant-stubs/components/humidifier/device_action.pyi +1 -1
  238. homeassistant-stubs/components/husqvarna_automower/__init__.pyi +3 -3
  239. homeassistant-stubs/components/husqvarna_automower/binary_sensor.pyi +2 -3
  240. homeassistant-stubs/components/husqvarna_automower/button.pyi +22 -0
  241. homeassistant-stubs/components/husqvarna_automower/device_tracker.pyi +2 -3
  242. homeassistant-stubs/components/husqvarna_automower/diagnostics.pyi +2 -2
  243. homeassistant-stubs/components/husqvarna_automower/entity.pyi +7 -1
  244. homeassistant-stubs/components/husqvarna_automower/lawn_mower.pyi +14 -5
  245. homeassistant-stubs/components/husqvarna_automower/number.pyi +4 -5
  246. homeassistant-stubs/components/husqvarna_automower/select.pyi +2 -3
  247. homeassistant-stubs/components/husqvarna_automower/sensor.pyi +10 -5
  248. homeassistant-stubs/components/husqvarna_automower/switch.pyi +4 -8
  249. homeassistant-stubs/components/hydrawise/coordinator.pyi +3 -3
  250. homeassistant-stubs/components/hydrawise/sensor.pyi +3 -0
  251. homeassistant-stubs/components/ibeacon/config_flow.pyi +1 -0
  252. homeassistant-stubs/components/idasen_desk/coordinator.pyi +2 -5
  253. homeassistant-stubs/components/idasen_desk/sensor.pyi +3 -0
  254. homeassistant-stubs/components/image/__init__.pyi +3 -2
  255. homeassistant-stubs/components/image_upload/__init__.pyi +7 -3
  256. homeassistant-stubs/components/imap/__init__.pyi +5 -4
  257. homeassistant-stubs/components/imap/diagnostics.pyi +3 -5
  258. homeassistant-stubs/components/imap/sensor.pyi +5 -5
  259. homeassistant-stubs/components/input_button/__init__.pyi +3 -4
  260. homeassistant-stubs/components/input_select/__init__.pyi +2 -2
  261. homeassistant-stubs/components/input_text/__init__.pyi +3 -4
  262. homeassistant-stubs/components/integration/__init__.pyi +2 -0
  263. homeassistant-stubs/components/integration/config_flow.pyi +1 -1
  264. homeassistant-stubs/components/integration/const.pyi +1 -0
  265. homeassistant-stubs/components/integration/sensor.pyi +33 -12
  266. homeassistant-stubs/components/intent/timers.pyi +7 -3
  267. homeassistant-stubs/components/islamic_prayer_times/__init__.pyi +4 -3
  268. homeassistant-stubs/components/islamic_prayer_times/sensor.pyi +3 -3
  269. homeassistant-stubs/components/isy994/services.pyi +3 -2
  270. homeassistant-stubs/components/jewish_calendar/binary_sensor.pyi +6 -12
  271. homeassistant-stubs/components/jewish_calendar/entity.pyi +19 -0
  272. homeassistant-stubs/components/jewish_calendar/sensor.pyi +8 -13
  273. homeassistant-stubs/components/knocki/__init__.pyi +12 -0
  274. homeassistant-stubs/components/knocki/config_flow.pyi +12 -0
  275. homeassistant-stubs/components/knocki/const.pyi +4 -0
  276. homeassistant-stubs/components/knocki/coordinator.pyi +13 -0
  277. homeassistant-stubs/components/knocki/event.pyi +25 -0
  278. homeassistant-stubs/components/knx/config_flow.pyi +1 -1
  279. homeassistant-stubs/components/knx/device_trigger.pyi +1 -1
  280. homeassistant-stubs/components/knx/trigger.pyi +2 -3
  281. homeassistant-stubs/components/knx/websocket.pyi +1 -0
  282. homeassistant-stubs/components/lacrosse/sensor.pyi +2 -1
  283. homeassistant-stubs/components/lamarzocco/__init__.pyi +8 -3
  284. homeassistant-stubs/components/lamarzocco/binary_sensor.pyi +4 -5
  285. homeassistant-stubs/components/lamarzocco/button.pyi +4 -5
  286. homeassistant-stubs/components/lamarzocco/calendar.pyi +9 -3
  287. homeassistant-stubs/components/lamarzocco/config_flow.pyi +7 -3
  288. homeassistant-stubs/components/lamarzocco/const.pyi +1 -2
  289. homeassistant-stubs/components/lamarzocco/coordinator.pyi +13 -11
  290. homeassistant-stubs/components/lamarzocco/diagnostics.pyi +10 -5
  291. homeassistant-stubs/components/lamarzocco/entity.pyi +3 -3
  292. homeassistant-stubs/components/lamarzocco/number.pyi +9 -13
  293. homeassistant-stubs/components/lamarzocco/select.pyi +13 -7
  294. homeassistant-stubs/components/lamarzocco/sensor.pyi +4 -5
  295. homeassistant-stubs/components/lamarzocco/switch.pyi +20 -7
  296. homeassistant-stubs/components/lamarzocco/update.pyi +5 -10
  297. homeassistant-stubs/components/lawn_mower/__init__.pyi +3 -2
  298. homeassistant-stubs/components/lidarr/__init__.pyi +12 -2
  299. homeassistant-stubs/components/lidarr/config_flow.pyi +2 -1
  300. homeassistant-stubs/components/lidarr/coordinator.pyi +0 -1
  301. homeassistant-stubs/components/lidarr/sensor.pyi +3 -4
  302. homeassistant-stubs/components/lifx/light.pyi +3 -2
  303. homeassistant-stubs/components/light/__init__.pyi +8 -6
  304. homeassistant-stubs/components/light/device_action.pyi +1 -1
  305. homeassistant-stubs/components/litterrobot/__init__.pyi +4 -3
  306. homeassistant-stubs/components/litterrobot/binary_sensor.pyi +2 -4
  307. homeassistant-stubs/components/litterrobot/button.pyi +2 -4
  308. homeassistant-stubs/components/litterrobot/select.pyi +2 -3
  309. homeassistant-stubs/components/litterrobot/sensor.pyi +2 -4
  310. homeassistant-stubs/components/litterrobot/switch.pyi +2 -4
  311. homeassistant-stubs/components/litterrobot/time.pyi +2 -4
  312. homeassistant-stubs/components/litterrobot/update.pyi +3 -4
  313. homeassistant-stubs/components/litterrobot/vacuum.pyi +2 -4
  314. homeassistant-stubs/components/lock/__init__.pyi +4 -3
  315. homeassistant-stubs/components/logbook/processor.pyi +4 -3
  316. homeassistant-stubs/components/london_underground/sensor.pyi +2 -1
  317. homeassistant-stubs/components/mastodon/notify.pyi +2 -1
  318. homeassistant-stubs/components/matrix/notify.pyi +2 -1
  319. homeassistant-stubs/components/matter/binary_sensor.pyi +1 -1
  320. homeassistant-stubs/components/matter/discovery.pyi +3 -3
  321. homeassistant-stubs/components/matter/entity.pyi +8 -1
  322. homeassistant-stubs/components/matter/event.pyi +0 -2
  323. homeassistant-stubs/components/matter/lock.pyi +1 -0
  324. homeassistant-stubs/components/matter/models.pyi +1 -2
  325. homeassistant-stubs/components/matter/number.pyi +24 -0
  326. homeassistant-stubs/components/matter/sensor.pyi +1 -1
  327. homeassistant-stubs/components/media_player/__init__.pyi +3 -2
  328. homeassistant-stubs/components/media_player/intent.pyi +2 -1
  329. homeassistant-stubs/components/mikrotik/__init__.pyi +2 -1
  330. homeassistant-stubs/components/mikrotik/device_tracker.pyi +2 -3
  331. homeassistant-stubs/components/min_max/sensor.pyi +2 -1
  332. homeassistant-stubs/components/modbus/sensor.pyi +2 -2
  333. homeassistant-stubs/components/monzo/config_flow.pyi +5 -1
  334. homeassistant-stubs/components/monzo/coordinator.pyi +1 -0
  335. homeassistant-stubs/components/motionmount/select.pyi +5 -2
  336. homeassistant-stubs/components/mqtt/async_client.pyi +22 -0
  337. homeassistant-stubs/components/mqtt/client.pyi +13 -28
  338. homeassistant-stubs/components/mqtt/climate.pyi +2 -3
  339. homeassistant-stubs/components/mqtt/cover.pyi +2 -3
  340. homeassistant-stubs/components/mqtt/device_tracker.pyi +2 -3
  341. homeassistant-stubs/components/mqtt/event.pyi +2 -3
  342. homeassistant-stubs/components/mqtt/fan.pyi +2 -3
  343. homeassistant-stubs/components/mqtt/humidifier.pyi +2 -3
  344. homeassistant-stubs/components/mqtt/image.pyi +2 -3
  345. homeassistant-stubs/components/mqtt/lawn_mower.pyi +2 -3
  346. homeassistant-stubs/components/mqtt/light/__init__.pyi +1 -1
  347. homeassistant-stubs/components/mqtt/light/schema_basic.pyi +2 -3
  348. homeassistant-stubs/components/mqtt/light/schema_json.pyi +2 -3
  349. homeassistant-stubs/components/mqtt/light/schema_template.pyi +2 -3
  350. homeassistant-stubs/components/mqtt/mixins.pyi +4 -4
  351. homeassistant-stubs/components/mqtt/models.pyi +2 -3
  352. homeassistant-stubs/components/mqtt/number.pyi +2 -3
  353. homeassistant-stubs/components/mqtt/select.pyi +2 -3
  354. homeassistant-stubs/components/mqtt/sensor.pyi +2 -3
  355. homeassistant-stubs/components/mqtt/siren.pyi +2 -3
  356. homeassistant-stubs/components/mqtt/text.pyi +2 -3
  357. homeassistant-stubs/components/mqtt/update.pyi +2 -3
  358. homeassistant-stubs/components/mqtt/util.pyi +23 -2
  359. homeassistant-stubs/components/mqtt/vacuum.pyi +2 -3
  360. homeassistant-stubs/components/mqtt/valve.pyi +2 -3
  361. homeassistant-stubs/components/mqtt/water_heater.pyi +2 -3
  362. homeassistant-stubs/components/mysensors/config_flow.pyi +1 -0
  363. homeassistant-stubs/components/mysensors/sensor.pyi +1 -1
  364. homeassistant-stubs/components/myuplink/__init__.pyi +4 -1
  365. homeassistant-stubs/components/myuplink/binary_sensor.pyi +2 -4
  366. homeassistant-stubs/components/myuplink/diagnostics.pyi +2 -4
  367. homeassistant-stubs/components/myuplink/number.pyi +2 -4
  368. homeassistant-stubs/components/myuplink/sensor.pyi +3 -5
  369. homeassistant-stubs/components/myuplink/switch.pyi +2 -4
  370. homeassistant-stubs/components/myuplink/update.pyi +2 -4
  371. homeassistant-stubs/components/nam/const.pyi +1 -0
  372. homeassistant-stubs/components/nam/sensor.pyi +1 -1
  373. homeassistant-stubs/components/nanoleaf/__init__.pyi +6 -14
  374. homeassistant-stubs/components/nanoleaf/button.pyi +4 -7
  375. homeassistant-stubs/components/nanoleaf/coordinator.pyi +12 -0
  376. homeassistant-stubs/components/nanoleaf/device_trigger.pyi +1 -0
  377. homeassistant-stubs/components/nanoleaf/diagnostics.pyi +2 -4
  378. homeassistant-stubs/components/nanoleaf/entity.pyi +4 -4
  379. homeassistant-stubs/components/nanoleaf/event.pyi +18 -0
  380. homeassistant-stubs/components/nanoleaf/light.pyi +4 -7
  381. homeassistant-stubs/components/number/__init__.pyi +3 -1
  382. homeassistant-stubs/components/number/const.pyi +2 -1
  383. homeassistant-stubs/components/ping/binary_sensor.pyi +2 -8
  384. homeassistant-stubs/components/ping/config_flow.pyi +2 -4
  385. homeassistant-stubs/components/ping/device_tracker.pyi +4 -14
  386. homeassistant-stubs/components/plugwise/button.pyi +20 -0
  387. homeassistant-stubs/components/plugwise/const.pyi +3 -0
  388. homeassistant-stubs/components/plugwise/coordinator.pyi +5 -3
  389. homeassistant-stubs/components/plugwise/number.pyi +2 -4
  390. homeassistant-stubs/components/plugwise/select.pyi +3 -5
  391. homeassistant-stubs/components/proximity/config_flow.pyi +2 -1
  392. homeassistant-stubs/components/radarr/__init__.pyi +14 -2
  393. homeassistant-stubs/components/radarr/binary_sensor.pyi +3 -4
  394. homeassistant-stubs/components/radarr/calendar.pyi +2 -4
  395. homeassistant-stubs/components/radarr/config_flow.pyi +3 -4
  396. homeassistant-stubs/components/radarr/coordinator.pyi +2 -2
  397. homeassistant-stubs/components/radarr/sensor.pyi +2 -4
  398. homeassistant-stubs/components/rainmachine/switch.pyi +1 -0
  399. homeassistant-stubs/components/recorder/const.pyi +3 -1
  400. homeassistant-stubs/components/recorder/core.pyi +2 -2
  401. homeassistant-stubs/components/recorder/db_schema.pyi +2 -1
  402. homeassistant-stubs/components/recorder/purge.pyi +1 -1
  403. homeassistant-stubs/components/recorder/statistics.pyi +7 -4
  404. homeassistant-stubs/components/recorder/table_managers/event_data.pyi +3 -3
  405. homeassistant-stubs/components/recorder/table_managers/event_types.pyi +1 -1
  406. homeassistant-stubs/components/recorder/table_managers/state_attributes.pyi +3 -3
  407. homeassistant-stubs/components/recorder/table_managers/states_meta.pyi +1 -1
  408. homeassistant-stubs/components/recorder/util.pyi +4 -3
  409. homeassistant-stubs/components/remote/__init__.pyi +5 -4
  410. homeassistant-stubs/components/rest/binary_sensor.pyi +2 -1
  411. homeassistant-stubs/components/rest/notify.pyi +2 -1
  412. homeassistant-stubs/components/rest/sensor.pyi +2 -1
  413. homeassistant-stubs/components/rest/switch.pyi +2 -1
  414. homeassistant-stubs/components/rfxtrx/config_flow.pyi +1 -0
  415. homeassistant-stubs/components/roborock/__init__.pyi +30 -0
  416. homeassistant-stubs/components/roborock/binary_sensor.pyi +29 -0
  417. homeassistant-stubs/components/roborock/button.pyi +28 -0
  418. homeassistant-stubs/components/roborock/config_flow.pyi +30 -0
  419. homeassistant-stubs/components/roborock/const.pyi +13 -0
  420. homeassistant-stubs/components/roborock/coordinator.pyi +47 -0
  421. homeassistant-stubs/components/roborock/device.pyi +53 -0
  422. homeassistant-stubs/components/roborock/diagnostics.pyi +13 -0
  423. homeassistant-stubs/components/roborock/image.pyi +37 -0
  424. homeassistant-stubs/components/roborock/models.pyi +27 -0
  425. homeassistant-stubs/components/roborock/number.pyi +35 -0
  426. homeassistant-stubs/components/roborock/select.pyi +37 -0
  427. homeassistant-stubs/components/roborock/sensor.pyi +47 -0
  428. homeassistant-stubs/components/roborock/switch.pyi +37 -0
  429. homeassistant-stubs/components/roborock/time.pyi +38 -0
  430. homeassistant-stubs/components/roborock/vacuum.pyi +39 -0
  431. homeassistant-stubs/components/roku/media_player.pyi +2 -1
  432. homeassistant-stubs/components/schedule/__init__.pyi +5 -5
  433. homeassistant-stubs/components/select/__init__.pyi +3 -1
  434. homeassistant-stubs/components/sensor/__init__.pyi +3 -1
  435. homeassistant-stubs/components/sensor/const.pyi +3 -2
  436. homeassistant-stubs/components/sensor/device_condition.pyi +1 -0
  437. homeassistant-stubs/components/sensor/device_trigger.pyi +1 -0
  438. homeassistant-stubs/components/shelly/__init__.pyi +1 -2
  439. homeassistant-stubs/components/shelly/climate.pyi +3 -0
  440. homeassistant-stubs/components/shelly/coordinator.pyi +2 -1
  441. homeassistant-stubs/components/shelly/switch.pyi +2 -18
  442. homeassistant-stubs/components/shelly/valve.pyi +1 -1
  443. homeassistant-stubs/components/simplisafe/alarm_control_panel.pyi +4 -5
  444. homeassistant-stubs/components/siren/__init__.pyi +4 -3
  445. homeassistant-stubs/components/sql/sensor.pyi +2 -1
  446. homeassistant-stubs/components/starlink/const.pyi +1 -0
  447. homeassistant-stubs/components/starlink/device_tracker.pyi +6 -2
  448. homeassistant-stubs/components/statistics/__init__.pyi +6 -0
  449. homeassistant-stubs/components/statistics/config_flow.pyi +23 -0
  450. homeassistant-stubs/components/statistics/sensor.pyi +4 -1
  451. homeassistant-stubs/components/stream/fmp4utils.pyi +2 -2
  452. homeassistant-stubs/components/stream/worker.pyi +3 -2
  453. homeassistant-stubs/components/streamlabswater/__init__.pyi +1 -6
  454. homeassistant-stubs/components/streamlabswater/config_flow.pyi +0 -1
  455. homeassistant-stubs/components/suez_water/config_flow.pyi +0 -1
  456. homeassistant-stubs/components/suez_water/sensor.pyi +3 -8
  457. homeassistant-stubs/components/switch/__init__.pyi +4 -3
  458. homeassistant-stubs/components/switch/light.pyi +2 -1
  459. homeassistant-stubs/components/switcher_kis/__init__.pyi +3 -0
  460. homeassistant-stubs/components/switcher_kis/switch.pyi +3 -2
  461. homeassistant-stubs/components/synology_dsm/config_flow.pyi +2 -2
  462. homeassistant-stubs/components/systemmonitor/config_flow.pyi +0 -2
  463. homeassistant-stubs/components/systemmonitor/sensor.pyi +4 -7
  464. homeassistant-stubs/components/tag/__init__.pyi +4 -5
  465. homeassistant-stubs/components/tami4/__init__.pyi +1 -1
  466. homeassistant-stubs/components/tami4/coordinator.pyi +3 -5
  467. homeassistant-stubs/components/tami4/sensor.pyi +3 -3
  468. homeassistant-stubs/components/tautulli/__init__.pyi +3 -2
  469. homeassistant-stubs/components/tautulli/coordinator.pyi +2 -2
  470. homeassistant-stubs/components/tautulli/sensor.pyi +3 -3
  471. homeassistant-stubs/components/threshold/__init__.pyi +2 -1
  472. homeassistant-stubs/components/threshold/binary_sensor.pyi +11 -3
  473. homeassistant-stubs/components/threshold/config_flow.pyi +8 -0
  474. homeassistant-stubs/components/tibber/__init__.pyi +1 -0
  475. homeassistant-stubs/components/tibber/sensor.pyi +12 -6
  476. homeassistant-stubs/components/tibber/services.pyi +15 -0
  477. homeassistant-stubs/components/time_date/sensor.pyi +3 -3
  478. homeassistant-stubs/components/timer/__init__.pyi +2 -2
  479. homeassistant-stubs/components/todo/__init__.pyi +3 -2
  480. homeassistant-stubs/components/tplink/__init__.pyi +9 -6
  481. homeassistant-stubs/components/tplink/binary_sensor.pyi +22 -0
  482. homeassistant-stubs/components/tplink/button.pyi +22 -0
  483. homeassistant-stubs/components/tplink/climate.pyi +42 -0
  484. homeassistant-stubs/components/tplink/config_flow.pyi +4 -4
  485. homeassistant-stubs/components/tplink/const.pyi +3 -1
  486. homeassistant-stubs/components/tplink/coordinator.pyi +2 -2
  487. homeassistant-stubs/components/tplink/diagnostics.pyi +2 -4
  488. homeassistant-stubs/components/tplink/entity.pyi +49 -7
  489. homeassistant-stubs/components/tplink/fan.pyi +31 -0
  490. homeassistant-stubs/components/tplink/light.pyi +19 -19
  491. homeassistant-stubs/components/tplink/number.pyi +27 -0
  492. homeassistant-stubs/components/tplink/select.pyi +26 -0
  493. homeassistant-stubs/components/tplink/sensor.pyi +14 -22
  494. homeassistant-stubs/components/tplink/switch.pyi +14 -34
  495. homeassistant-stubs/components/tplink_omada/controller.pyi +4 -15
  496. homeassistant-stubs/components/tplink_omada/coordinator.pyi +20 -1
  497. homeassistant-stubs/components/tplink_omada/device_tracker.pyi +36 -0
  498. homeassistant-stubs/components/transmission/__init__.pyi +9 -3
  499. homeassistant-stubs/components/transmission/sensor.pyi +2 -2
  500. homeassistant-stubs/components/transmission/switch.pyi +2 -4
  501. homeassistant-stubs/components/trend/__init__.pyi +2 -1
  502. homeassistant-stubs/components/trend/binary_sensor.pyi +6 -2
  503. homeassistant-stubs/components/tts/notify.pyi +2 -1
  504. homeassistant-stubs/components/unifi/config_flow.pyi +1 -1
  505. homeassistant-stubs/components/unifi/sensor.pyi +1 -0
  506. homeassistant-stubs/components/unifi/services.pyi +1 -0
  507. homeassistant-stubs/components/unifiprotect/__init__.pyi +8 -9
  508. homeassistant-stubs/components/unifiprotect/binary_sensor.pyi +29 -21
  509. homeassistant-stubs/components/unifiprotect/button.pyi +8 -9
  510. homeassistant-stubs/components/unifiprotect/camera.pyi +10 -10
  511. homeassistant-stubs/components/unifiprotect/const.pyi +0 -1
  512. homeassistant-stubs/components/unifiprotect/data.pyi +27 -14
  513. homeassistant-stubs/components/unifiprotect/diagnostics.pyi +2 -4
  514. homeassistant-stubs/components/unifiprotect/entity.pyi +27 -17
  515. homeassistant-stubs/components/unifiprotect/light.pyi +3 -6
  516. homeassistant-stubs/components/unifiprotect/lock.pyi +3 -8
  517. homeassistant-stubs/components/unifiprotect/media_player.pyi +4 -8
  518. homeassistant-stubs/components/unifiprotect/media_source.pyi +2 -3
  519. homeassistant-stubs/components/unifiprotect/migrate.pyi +5 -5
  520. homeassistant-stubs/components/unifiprotect/models.pyi +16 -17
  521. homeassistant-stubs/components/unifiprotect/number.pyi +8 -12
  522. homeassistant-stubs/components/unifiprotect/repairs.pyi +5 -3
  523. homeassistant-stubs/components/unifiprotect/select.pyi +9 -11
  524. homeassistant-stubs/components/unifiprotect/sensor.pyi +25 -23
  525. homeassistant-stubs/components/unifiprotect/services.pyi +0 -4
  526. homeassistant-stubs/components/unifiprotect/switch.pyi +15 -24
  527. homeassistant-stubs/components/unifiprotect/text.pyi +8 -11
  528. homeassistant-stubs/components/unifiprotect/utils.pyi +6 -11
  529. homeassistant-stubs/components/unifiprotect/views.pyi +2 -4
  530. homeassistant-stubs/components/update/__init__.pyi +3 -1
  531. homeassistant-stubs/components/vacuum/__init__.pyi +2 -1
  532. homeassistant-stubs/components/vallox/sensor.pyi +5 -1
  533. homeassistant-stubs/components/valve/__init__.pyi +3 -2
  534. homeassistant-stubs/components/water_heater/__init__.pyi +4 -3
  535. homeassistant-stubs/components/weather/__init__.pyi +4 -5
  536. homeassistant-stubs/components/webhook/__init__.pyi +1 -1
  537. homeassistant-stubs/components/webostv/__init__.pyi +7 -0
  538. homeassistant-stubs/components/websocket_api/__init__.pyi +3 -4
  539. homeassistant-stubs/components/websocket_api/decorators.pyi +2 -1
  540. homeassistant-stubs/components/wemo/entity.pyi +2 -2
  541. homeassistant-stubs/components/wemo/fan.pyi +2 -1
  542. homeassistant-stubs/components/withings/coordinator.pyi +3 -3
  543. homeassistant-stubs/components/withings/sensor.pyi +6 -2
  544. homeassistant-stubs/components/worldclock/sensor.pyi +2 -1
  545. homeassistant-stubs/components/xiaomi_ble/sensor.pyi +1 -1
  546. homeassistant-stubs/components/zone/__init__.pyi +3 -3
  547. homeassistant-stubs/components/zwave_js/__init__.pyi +1 -1
  548. homeassistant-stubs/components/zwave_js/api.pyi +1 -5
  549. homeassistant-stubs/components/zwave_js/config_flow.pyi +8 -1
  550. homeassistant-stubs/components/zwave_js/const.pyi +5 -0
  551. homeassistant-stubs/components/zwave_js/discovery.pyi +4 -4
  552. homeassistant-stubs/components/zwave_js/helpers.pyi +2 -2
  553. homeassistant-stubs/components/zwave_js/sensor.pyi +2 -0
  554. homeassistant-stubs/components/zwave_js/services.pyi +3 -2
  555. homeassistant-stubs/config.pyi +4 -5
  556. homeassistant-stubs/config_entries.pyi +6 -3
  557. homeassistant-stubs/const.pyi +9 -3
  558. homeassistant-stubs/core.pyi +13 -8
  559. homeassistant-stubs/data_entry_flow.pyi +12 -2
  560. homeassistant-stubs/exceptions.pyi +6 -5
  561. homeassistant-stubs/helpers/__init__.pyi +0 -5
  562. homeassistant-stubs/helpers/collection.pyi +14 -11
  563. homeassistant-stubs/helpers/condition.pyi +3 -2
  564. homeassistant-stubs/helpers/config_validation.pyi +5 -4
  565. homeassistant-stubs/helpers/deprecation.pyi +10 -0
  566. homeassistant-stubs/helpers/device.pyi +8 -0
  567. homeassistant-stubs/helpers/device_registry.pyi +14 -2
  568. homeassistant-stubs/helpers/entity.pyi +3 -2
  569. homeassistant-stubs/helpers/entity_component.pyi +3 -4
  570. homeassistant-stubs/helpers/entity_platform.pyi +2 -3
  571. homeassistant-stubs/helpers/frame.pyi +1 -0
  572. homeassistant-stubs/helpers/http.pyi +1 -1
  573. homeassistant-stubs/helpers/intent.pyi +6 -4
  574. homeassistant-stubs/helpers/llm.pyi +17 -3
  575. homeassistant-stubs/helpers/schema_config_entry_flow.pyi +2 -2
  576. homeassistant-stubs/helpers/script.pyi +3 -2
  577. homeassistant-stubs/helpers/selector.pyi +10 -8
  578. homeassistant-stubs/helpers/service.pyi +6 -3
  579. homeassistant-stubs/helpers/template.pyi +8 -6
  580. homeassistant-stubs/helpers/trace.pyi +3 -2
  581. homeassistant-stubs/helpers/typing.pyi +6 -1
  582. homeassistant-stubs/helpers/update_coordinator.pyi +3 -3
  583. homeassistant-stubs/loader.pyi +1 -2
  584. homeassistant-stubs/requirements.pyi +0 -3
  585. homeassistant-stubs/setup.pyi +4 -3
  586. homeassistant-stubs/util/loop.pyi +2 -1
  587. homeassistant-stubs/util/unit_conversion.pyi +7 -1
  588. {homeassistant_stubs-2024.6.4.dist-info → homeassistant_stubs-2024.7.0b0.dist-info}/METADATA +2 -2
  589. {homeassistant_stubs-2024.6.4.dist-info → homeassistant_stubs-2024.7.0b0.dist-info}/RECORD +591 -548
  590. homeassistant-stubs/auth/providers/legacy_api_password.pyi +0 -30
  591. homeassistant-stubs/components/air_quality/group.pyi +0 -5
  592. homeassistant-stubs/components/alarm_control_panel/group.pyi +0 -6
  593. homeassistant-stubs/components/climate/group.pyi +0 -6
  594. homeassistant-stubs/components/cover/group.pyi +0 -6
  595. homeassistant-stubs/components/device_tracker/group.pyi +0 -6
  596. homeassistant-stubs/components/fastdotcom/services.pyi +0 -7
  597. homeassistant-stubs/components/lock/group.pyi +0 -6
  598. homeassistant-stubs/components/media_player/group.pyi +0 -6
  599. homeassistant-stubs/components/sensor/group.pyi +0 -5
  600. homeassistant-stubs/components/vacuum/group.pyi +0 -6
  601. homeassistant-stubs/components/water_heater/group.pyi +0 -6
  602. homeassistant-stubs/components/weather/group.pyi +0 -5
  603. homeassistant-stubs/components/wled/binary_sensor.pyi +0 -20
  604. {homeassistant_stubs-2024.6.4.dist-info → homeassistant_stubs-2024.7.0b0.dist-info}/LICENSE +0 -0
  605. {homeassistant_stubs-2024.6.4.dist-info → homeassistant_stubs-2024.7.0b0.dist-info}/WHEEL +0 -0
@@ -2,6 +2,7 @@ import re
2
2
  import voluptuous as vol
3
3
  from . import template as template_helper
4
4
  from .frame import get_integration_logger as get_integration_logger
5
+ from .typing import VolDictType as VolDictType, VolSchemaType as VolSchemaType
5
6
  from _typeshed import Incomplete
6
7
  from collections.abc import Callable as Callable, Hashable
7
8
  from datetime import date as date_sys, datetime as datetime_sys, time as time_sys, timedelta
@@ -126,8 +127,8 @@ class multi_select:
126
127
  def _deprecated_or_removed(key: str, replacement_key: str | None, default: Any | None, raise_if_present: bool, option_removed: bool) -> Callable[[dict], dict]: ...
127
128
  def deprecated(key: str, replacement_key: str | None = None, default: Any | None = None, raise_if_present: bool | None = False) -> Callable[[dict], dict]: ...
128
129
  def removed(key: str, default: Any | None = None, raise_if_present: bool | None = True) -> Callable[[dict], dict]: ...
129
- def key_value_schemas(key: str, value_schemas: dict[Hashable, vol.Schema], default_schema: vol.Schema | None = None, default_description: str | None = None) -> Callable[[Any], dict[Hashable, Any]]: ...
130
- def key_dependency(key: Hashable, dependency: Hashable) -> Callable[[dict[Hashable, Any]], dict[Hashable, Any]]: ...
130
+ def key_value_schemas(key: str, value_schemas: dict[Hashable, VolSchemaType | Callable[[Any], dict[str, Any]]], default_schema: VolSchemaType | None = None, default_description: str | None = None) -> Callable[[Any], dict[Hashable, Any]]: ...
131
+ def key_dependency(key: Hashable, dependency: Hashable) -> Callable[[dict[_KT, _VT]], dict[_KT, _VT]]: ...
131
132
  def custom_serializer(schema: Any) -> Any: ...
132
133
  def expand_condition_shorthand(value: Any | None) -> Any: ...
133
134
  def empty_config_schema(domain: str) -> Callable[[dict], dict]: ...
@@ -157,13 +158,13 @@ SCRIPT_ACTION_BASE_SCHEMA: Incomplete
157
158
  EVENT_SCHEMA: Incomplete
158
159
  SERVICE_SCHEMA: Incomplete
159
160
  NUMERIC_STATE_THRESHOLD_SCHEMA: Incomplete
160
- CONDITION_BASE_SCHEMA: Incomplete
161
+ CONDITION_BASE_SCHEMA: VolDictType
161
162
  NUMERIC_STATE_CONDITION_SCHEMA: Incomplete
162
163
  STATE_CONDITION_BASE_SCHEMA: Incomplete
163
164
  STATE_CONDITION_STATE_SCHEMA: Incomplete
164
165
  STATE_CONDITION_ATTRIBUTE_SCHEMA: Incomplete
165
166
 
166
- def STATE_CONDITION_SCHEMA(value: Any) -> dict: ...
167
+ def STATE_CONDITION_SCHEMA(value: Any) -> dict[str, Any]: ...
167
168
 
168
169
  SUN_CONDITION_SCHEMA: Incomplete
169
170
  TEMPLATE_CONDITION_SCHEMA: Incomplete
@@ -1,3 +1,5 @@
1
+ import functools
2
+ from _typeshed import Incomplete
1
3
  from collections.abc import Callable as Callable
2
4
  from enum import Enum
3
5
  from typing import Any, NamedTuple
@@ -23,6 +25,14 @@ class DeprecatedAlias(NamedTuple):
23
25
  replacement: str
24
26
  breaks_in_ha_version: str | None
25
27
 
28
+ class DeferredDeprecatedAlias:
29
+ breaks_in_ha_version: Incomplete
30
+ replacement: Incomplete
31
+ _value_fn: Incomplete
32
+ def __init__(self, value_fn: Callable[[], Any], replacement: str, breaks_in_ha_version: str | None) -> None: ...
33
+ @functools.cached_property
34
+ def value(self) -> Any: ...
35
+
26
36
  _PREFIX_DEPRECATED: str
27
37
 
28
38
  def check_if_deprecated_constant(name: str, module_globals: dict[str, Any]) -> Any: ...
@@ -0,0 +1,8 @@
1
+ from . import device_registry as dr
2
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
3
+
4
+ def async_entity_id_to_device_id(hass: HomeAssistant, entity_id_or_uuid: str) -> str | None: ...
5
+ def async_device_info_to_link_from_entity(hass: HomeAssistant, entity_id_or_uuid: str) -> dr.DeviceInfo | None: ...
6
+ def async_device_info_to_link_from_device_id(hass: HomeAssistant, device_id: str | None) -> dr.DeviceInfo | None: ...
7
+ def async_remove_stale_devices_links_keep_entity_device(hass: HomeAssistant, entry_id: str, source_entity_id_or_uuid: str) -> None: ...
8
+ def async_remove_stale_devices_links_keep_current_device(hass: HomeAssistant, entry_id: str, current_device_id: str | None) -> None: ...
@@ -66,6 +66,7 @@ class DeviceInfo(TypedDict, total=False):
66
66
 
67
67
  DEVICE_INFO_TYPES: Incomplete
68
68
  DEVICE_INFO_KEYS: Incomplete
69
+ LOW_PRIO_CONFIG_ENTRY_DOMAINS: Incomplete
69
70
 
70
71
  class _EventDeviceRegistryUpdatedData_CreateRemove(TypedDict):
71
72
  action: Literal['create', 'remove']
@@ -86,6 +87,14 @@ class DeviceInfoError(HomeAssistantError):
86
87
  domain: Incomplete
87
88
  def __init__(self, domain: str, device_info: DeviceInfo, message: str) -> None: ...
88
89
 
90
+ class DeviceCollisionError(HomeAssistantError): ...
91
+
92
+ class DeviceIdentifierCollisionError(DeviceCollisionError):
93
+ def __init__(self, identifiers: set[tuple[str, str]], existing_device: DeviceEntry) -> None: ...
94
+
95
+ class DeviceConnectionCollisionError(DeviceCollisionError):
96
+ def __init__(self, normalized_connections: set[tuple[str, str]], existing_device: DeviceEntry) -> None: ...
97
+
89
98
  def _validate_device_info(config_entry: ConfigEntry, device_info: DeviceInfo) -> str: ...
90
99
 
91
100
  _cached_parse_url: Incomplete
@@ -107,6 +116,7 @@ class DeviceEntry:
107
116
  model: str | None
108
117
  name_by_user: str | None
109
118
  name: str | None
119
+ primary_config_entry: str | None
110
120
  serial_number: str | None
111
121
  suggested_area: str | None
112
122
  sw_version: str | None
@@ -120,7 +130,7 @@ class DeviceEntry:
120
130
  def json_repr(self) -> bytes | None: ...
121
131
  @cached_property
122
132
  def as_storage_fragment(self) -> json_fragment: ...
123
- def __init__(self, area_id, config_entries, configuration_url, connections, disabled_by, entry_type, hw_version, id, identifiers, labels, manufacturer, model, name_by_user, name, serial_number, suggested_area, sw_version, via_device_id, is_new) -> None: ...
133
+ def __init__(self, area_id, config_entries, configuration_url, connections, disabled_by, entry_type, hw_version, id, identifiers, labels, manufacturer, model, name_by_user, name, primary_config_entry, serial_number, suggested_area, sw_version, via_device_id, is_new) -> None: ...
124
134
  def __lt__(self, other): ...
125
135
  def __le__(self, other): ...
126
136
  def __gt__(self, other): ...
@@ -177,7 +187,9 @@ class DeviceRegistry(BaseRegistry[dict[str, list[dict[str, Any]]]]):
177
187
  def _async_get_deleted_device(self, identifiers: set[tuple[str, str]], connections: set[tuple[str, str]]) -> DeletedDeviceEntry | None: ...
178
188
  def _substitute_name_placeholders(self, domain: str, name: str, translation_placeholders: Mapping[str, str]) -> str: ...
179
189
  def async_get_or_create(self, *, config_entry_id: str, configuration_url: str | URL | None | UndefinedType = ..., connections: set[tuple[str, str]] | None | 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 = ..., 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: ...
180
- def async_update_device(self, device_id: str, *, add_config_entry_id: str | UndefinedType = ..., area_id: str | None | UndefinedType = ..., configuration_url: str | URL | None | 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 = ..., 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 = ..., serial_number: str | None | UndefinedType = ..., suggested_area: str | None | UndefinedType = ..., sw_version: str | None | UndefinedType = ..., via_device_id: str | None | UndefinedType = ...) -> DeviceEntry | None: ...
190
+ def async_update_device(self, device_id: str, *, add_config_entry: ConfigEntry | UndefinedType = ..., add_config_entry_id: str | 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 = ..., 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 = ..., serial_number: str | None | UndefinedType = ..., suggested_area: str | None | UndefinedType = ..., sw_version: str | None | UndefinedType = ..., via_device_id: str | None | UndefinedType = ...) -> DeviceEntry | None: ...
191
+ def _validate_connections(self, device_id: str, connections: set[tuple[str, str]], allow_collisions: bool) -> set[tuple[str, str]]: ...
192
+ def _validate_identifiers(self, device_id: str, identifiers: set[tuple[str, str]], allow_collisions: bool) -> set[tuple[str, str]]: ...
181
193
  def async_remove_device(self, device_id: str) -> None: ...
182
194
  async def async_load(self) -> None: ...
183
195
  def _data_to_save(self) -> dict[str, Any]: ...
@@ -5,6 +5,7 @@ from . import device_registry as dr, entity_registry as er, singleton as singlet
5
5
  from .device_registry import DeviceInfo as DeviceInfo, EventDeviceRegistryUpdatedData as EventDeviceRegistryUpdatedData
6
6
  from .entity_platform import EntityPlatform as EntityPlatform
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
+ from .frame import report_non_thread_safe_operation as report_non_thread_safe_operation
8
9
  from .typing import StateType as StateType, UNDEFINED as UNDEFINED, UndefinedType as UndefinedType
9
10
  from _typeshed import Incomplete
10
11
  from abc import ABCMeta
@@ -98,6 +99,7 @@ class Entity(cached_properties=CACHED_PROPERTIES_WITH_ATTR_, metaclass=ABCCached
98
99
  _no_platform_reported: bool
99
100
  _name_translation_placeholders_reported: bool
100
101
  _update_staged: bool
102
+ _verified_state_writable: bool
101
103
  parallel_updates: asyncio.Semaphore | None
102
104
  registry_entry: er.RegistryEntry | None
103
105
  _removed_from_registry: bool
@@ -112,7 +114,6 @@ class Entity(cached_properties=CACHED_PROPERTIES_WITH_ATTR_, metaclass=ABCCached
112
114
  __combined_unrecorded_attributes: frozenset[str]
113
115
  _job_types: dict[str, HassJobType] | None
114
116
  _state_info: StateInfo
115
- _is_custom_component: bool
116
117
  __capabilities_updated_at: deque[float]
117
118
  __capabilities_updated_at_reported: bool
118
119
  __remove_future: asyncio.Future[None] | None
@@ -144,7 +145,7 @@ class Entity(cached_properties=CACHED_PROPERTIES_WITH_ATTR_, metaclass=ABCCached
144
145
  def should_poll(self) -> bool: ...
145
146
  @cached_property
146
147
  def unique_id(self) -> str | None: ...
147
- @property
148
+ @cached_property
148
149
  def use_device_name(self) -> bool: ...
149
150
  @cached_property
150
151
  def has_entity_name(self) -> bool: ...
@@ -1,8 +1,7 @@
1
1
  import logging
2
- import voluptuous as vol
3
2
  from . import discovery as discovery, entity as entity, service as service
4
3
  from .entity_platform import EntityPlatform as EntityPlatform
5
- from .typing import ConfigType as ConfigType, DiscoveryInfoType as DiscoveryInfoType
4
+ from .typing import ConfigType as ConfigType, DiscoveryInfoType as DiscoveryInfoType, VolDictType as VolDictType, VolSchemaType as VolSchemaType
6
5
  from _typeshed import Incomplete
7
6
  from collections.abc import Callable as Callable, Iterable
8
7
  from datetime import timedelta
@@ -43,8 +42,8 @@ class EntityComponent(Generic[_EntityT]):
43
42
  async def async_setup_entry(self, config_entry: ConfigEntry) -> bool: ...
44
43
  async def async_unload_entry(self, config_entry: ConfigEntry) -> bool: ...
45
44
  async def async_extract_from_service(self, service_call: ServiceCall, expand_group: bool = True) -> list[_EntityT]: ...
46
- def async_register_legacy_entity_service(self, name: str, schema: dict[str | vol.Marker, Any] | vol.Schema, func: str | Callable[..., Any], required_features: list[int] | None = None, supports_response: SupportsResponse = ...) -> None: ...
47
- def async_register_entity_service(self, name: str, schema: dict[str | vol.Marker, Any] | vol.Schema, func: str | Callable[..., Any], required_features: list[int] | None = None, supports_response: SupportsResponse = ...) -> None: ...
45
+ def async_register_legacy_entity_service(self, name: str, schema: VolDictType | VolSchemaType, func: str | Callable[..., Any], required_features: list[int] | None = None, supports_response: SupportsResponse = ...) -> None: ...
46
+ def async_register_entity_service(self, name: str, schema: VolDictType | VolSchemaType, func: str | Callable[..., Any], required_features: list[int] | None = None, supports_response: SupportsResponse = ...) -> None: ...
48
47
  async def async_setup_platform(self, platform_type: str, platform_config: ConfigType, discovery_info: DiscoveryInfoType | None = None) -> None: ...
49
48
  async def _async_reset(self) -> None: ...
50
49
  async def async_remove_entity(self, entity_id: str) -> None: ...
@@ -1,11 +1,10 @@
1
1
  import asyncio
2
- import voluptuous as vol
3
2
  from . import service as service, translation as translation
4
3
  from .entity import Entity as Entity
5
4
  from .entity_registry import EntityRegistry as EntityRegistry, RegistryEntryDisabler as RegistryEntryDisabler, RegistryEntryHider as RegistryEntryHider
6
5
  from .event import async_call_later as async_call_later
7
6
  from .issue_registry import IssueSeverity as IssueSeverity, async_create_issue as async_create_issue
8
- from .typing import ConfigType as ConfigType, DiscoveryInfoType as DiscoveryInfoType, UNDEFINED as UNDEFINED
7
+ from .typing import ConfigType as ConfigType, DiscoveryInfoType as DiscoveryInfoType, UNDEFINED as UNDEFINED, VolDictType as VolDictType, VolSchemaType as VolSchemaType
9
8
  from _typeshed import Incomplete
10
9
  from collections.abc import Awaitable, Callable as Callable, Coroutine, Iterable
11
10
  from contextvars import ContextVar
@@ -91,7 +90,7 @@ class EntityPlatform:
91
90
  async def async_destroy(self) -> None: ...
92
91
  async def async_remove_entity(self, entity_id: str) -> None: ...
93
92
  async def async_extract_from_service(self, service_call: ServiceCall, expand_group: bool = True) -> list[Entity]: ...
94
- def async_register_entity_service(self, name: str, schema: dict[str | vol.Marker, Any] | vol.Schema, func: str | Callable[..., Any], required_features: Iterable[int] | None = None, supports_response: SupportsResponse = ...) -> None: ...
93
+ 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: ...
95
94
  async def _async_update_entity_states(self) -> None: ...
96
95
 
97
96
  current_platform: ContextVar[EntityPlatform | None]
@@ -35,3 +35,4 @@ class MissingIntegrationFrame(HomeAssistantError): ...
35
35
  def report(what: str, exclude_integrations: set | None = None, error_if_core: bool = True, level: int = ..., log_custom_component_only: bool = False, error_if_integration: bool = False) -> None: ...
36
36
  def _report_integration(what: str, integration_frame: IntegrationFrame, level: int = ..., error: bool = False) -> None: ...
37
37
  def warn_use(func: _CallableT, what: str) -> _CallableT: ...
38
+ def report_non_thread_safe_operation(what: str) -> None: ...
@@ -16,7 +16,7 @@ _LOGGER: Incomplete
16
16
  AllowCorsType: Incomplete
17
17
  KEY_AUTHENTICATED: Final[str]
18
18
  KEY_ALLOW_ALL_CORS: Incomplete
19
- KEY_ALLOW_CONFIGRED_CORS: Incomplete
19
+ KEY_ALLOW_CONFIGURED_CORS: Incomplete
20
20
  KEY_HASS: AppKey[HomeAssistant]
21
21
  current_request: ContextVar[Request | None]
22
22
 
@@ -2,6 +2,7 @@ import abc
2
2
  import asyncio
3
3
  import voluptuous as vol
4
4
  from . import area_registry as area_registry, device_registry as device_registry, entity_registry as entity_registry, floor_registry as floor_registry
5
+ from .typing import VolSchemaType as VolSchemaType
5
6
  from _typeshed import Incomplete
6
7
  from abc import abstractmethod
7
8
  from collections.abc import Collection, Iterable
@@ -18,6 +19,7 @@ from typing import Any
18
19
 
19
20
  _LOGGER: Incomplete
20
21
  _SlotsType = dict[str, Any]
22
+ _IntentSlotsType: Incomplete
21
23
  INTENT_TURN_OFF: str
22
24
  INTENT_TURN_ON: str
23
25
  INTENT_TOGGLE: str
@@ -116,8 +118,8 @@ class MatchTargetsCandidate:
116
118
  matched_name: str | None = ...
117
119
  def __init__(self, state, entity, area, floor, device, matched_name) -> None: ...
118
120
 
119
- def _find_areas(name: str, areas: area_registry.AreaRegistry) -> Iterable[area_registry.AreaEntry]: ...
120
- def _find_floors(name: str, floors: floor_registry.FloorRegistry) -> Iterable[floor_registry.FloorEntry]: ...
121
+ def find_areas(name: str, areas: area_registry.AreaRegistry) -> Iterable[area_registry.AreaEntry]: ...
122
+ def find_floors(name: str, floors: floor_registry.FloorRegistry) -> Iterable[floor_registry.FloorEntry]: ...
121
123
  def _normalize_name(name: str) -> str: ...
122
124
  def _filter_by_name(name: str, candidates: Iterable[MatchTargetsCandidate]) -> Iterable[MatchTargetsCandidate]: ...
123
125
  def _filter_by_features(features: int, candidates: Iterable[MatchTargetsCandidate]) -> Iterable[MatchTargetsCandidate]: ...
@@ -153,7 +155,7 @@ class DynamicServiceIntentHandler(IntentHandler, metaclass=abc.ABCMeta):
153
155
  platforms: Incomplete
154
156
  required_slots: Incomplete
155
157
  optional_slots: Incomplete
156
- def __init__(self, intent_type: str, speech: str | None = None, required_slots: dict[str | tuple[str, str], vol.Schema] | None = None, optional_slots: dict[str | tuple[str, str], vol.Schema] | None = None, required_domains: set[str] | None = None, required_features: int | None = None, required_states: set[str] | None = None, description: str | None = None, platforms: set[str] | None = None) -> None: ...
158
+ def __init__(self, intent_type: str, speech: str | None = None, required_slots: _IntentSlotsType | None = None, optional_slots: _IntentSlotsType | None = None, required_domains: set[str] | None = None, required_features: int | None = None, required_states: set[str] | None = None, description: str | None = None, platforms: set[str] | None = None) -> None: ...
157
159
  @cached_property
158
160
  def slot_schema(self) -> dict: ...
159
161
  @abstractmethod
@@ -166,7 +168,7 @@ class DynamicServiceIntentHandler(IntentHandler, metaclass=abc.ABCMeta):
166
168
  class ServiceIntentHandler(DynamicServiceIntentHandler):
167
169
  domain: Incomplete
168
170
  service: Incomplete
169
- def __init__(self, intent_type: str, domain: str, service: str, speech: str | None = None, required_slots: dict[str | tuple[str, str], vol.Schema] | None = None, optional_slots: dict[str | tuple[str, str], vol.Schema] | None = None, required_domains: set[str] | None = None, required_features: int | None = None, required_states: set[str] | None = None, description: str | None = None, platforms: set[str] | None = None) -> None: ...
171
+ def __init__(self, intent_type: str, domain: str, service: str, speech: str | None = None, required_slots: _IntentSlotsType | None = None, optional_slots: _IntentSlotsType | None = None, required_domains: set[str] | None = None, required_features: int | None = None, required_states: set[str] | None = None, description: str | None = None, platforms: set[str] | None = None) -> None: ...
170
172
  def get_domain_and_service(self, intent_obj: Intent, state: State) -> tuple[str, str]: ...
171
173
 
172
174
  class IntentCategory(Enum):
@@ -1,22 +1,27 @@
1
1
  import abc
2
2
  import voluptuous as vol
3
- from . import intent as intent, service as service
3
+ from . import intent as intent, selector as selector, service as service
4
4
  from .singleton import singleton as singleton
5
5
  from _typeshed import Incomplete
6
6
  from abc import ABC, abstractmethod
7
+ from collections.abc import Callable as Callable
7
8
  from dataclasses import dataclass
8
9
  from homeassistant.components.climate.intent import INTENT_GET_TEMPERATURE as INTENT_GET_TEMPERATURE
9
10
  from homeassistant.components.conversation.trace import ConversationTraceEventType as ConversationTraceEventType, async_conversation_trace_append as async_conversation_trace_append
10
11
  from homeassistant.components.cover.intent import INTENT_CLOSE_COVER as INTENT_CLOSE_COVER, INTENT_OPEN_COVER as INTENT_OPEN_COVER
11
12
  from homeassistant.components.homeassistant.exposed_entities import async_should_expose as async_should_expose
12
13
  from homeassistant.components.intent import async_device_supports_timers as async_device_supports_timers
14
+ from homeassistant.components.script import ATTR_VARIABLES as ATTR_VARIABLES
13
15
  from homeassistant.components.weather.intent import INTENT_GET_WEATHER as INTENT_GET_WEATHER
14
- from homeassistant.core import Context as Context, HomeAssistant as HomeAssistant, callback as callback
16
+ from homeassistant.const import ATTR_DOMAIN as ATTR_DOMAIN, ATTR_ENTITY_ID as ATTR_ENTITY_ID, ATTR_SERVICE as ATTR_SERVICE, EVENT_HOMEASSISTANT_CLOSE as EVENT_HOMEASSISTANT_CLOSE, EVENT_SERVICE_REMOVED as EVENT_SERVICE_REMOVED, SERVICE_TURN_ON as SERVICE_TURN_ON
17
+ from homeassistant.core import Context as Context, Event as Event, HomeAssistant as HomeAssistant, callback as callback, split_entity_id as split_entity_id
15
18
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
16
19
  from homeassistant.util import yaml as yaml
20
+ from homeassistant.util.hass_dict import HassKey as HassKey
17
21
  from homeassistant.util.json import JsonObjectType as JsonObjectType
18
22
  from typing import Any
19
23
 
24
+ SCRIPT_PARAMETERS_CACHE: HassKey[dict[str, tuple[str | None, vol.Schema]]]
20
25
  LLM_API_ASSIST: str
21
26
  BASE_PROMPT: str
22
27
  DEFAULT_INSTRUCTIONS_PROMPT: str
@@ -57,8 +62,9 @@ class APIInstance:
57
62
  api_prompt: str
58
63
  llm_context: LLMContext
59
64
  tools: list[Tool]
65
+ custom_serializer: Callable[[Any], Any] | None = ...
60
66
  async def async_call_tool(self, tool_input: ToolInput) -> JsonObjectType: ...
61
- def __init__(self, api, api_prompt, llm_context, tools) -> None: ...
67
+ def __init__(self, api, api_prompt, llm_context, tools, custom_serializer) -> None: ...
62
68
 
63
69
  @dataclass(slots=True, kw_only=True)
64
70
  class API(ABC, metaclass=abc.ABCMeta):
@@ -86,3 +92,11 @@ class AssistAPI(API):
86
92
  def _async_get_tools(self, llm_context: LLMContext, exposed_entities: dict | None) -> list[Tool]: ...
87
93
 
88
94
  def _get_exposed_entities(hass: HomeAssistant, assistant: str) -> dict[str, dict[str, Any]]: ...
95
+ def _selector_serializer(schema: Any) -> Any: ...
96
+
97
+ class ScriptTool(Tool):
98
+ name: Incomplete
99
+ parameters: Incomplete
100
+ description: Incomplete
101
+ def __init__(self, hass: HomeAssistant, script_entity_id: str) -> None: ...
102
+ async def async_call(self, hass: HomeAssistant, tool_input: ToolInput, llm_context: LLMContext) -> JsonObjectType: ...
@@ -4,7 +4,7 @@ from . import selector as selector
4
4
  from .typing import UNDEFINED as UNDEFINED, UndefinedType as UndefinedType
5
5
  from _typeshed import Incomplete
6
6
  from abc import ABC, abstractmethod
7
- from collections.abc import Callable as Callable, Container, Coroutine, Mapping
7
+ from collections.abc import Callable, Container, Coroutine, Mapping
8
8
  from dataclasses import dataclass
9
9
  from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow, OptionsFlowWithConfigEntry as OptionsFlowWithConfigEntry
10
10
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback, split_entity_id as split_entity_id
@@ -78,4 +78,4 @@ class SchemaOptionsFlowHandler(OptionsFlowWithConfigEntry):
78
78
  def async_create_entry(self, data: Mapping[str, Any], **kwargs: Any) -> ConfigFlowResult: ...
79
79
 
80
80
  def wrapped_entity_config_entry_title(hass: HomeAssistant, entity_id_or_uuid: str) -> str: ...
81
- def entity_selector_without_own_entities(handler: SchemaOptionsFlowHandler, entity_selector_config: selector.EntitySelectorConfig) -> vol.Schema: ...
81
+ def entity_selector_without_own_entities(handler: SchemaOptionsFlowHandler, entity_selector_config: selector.EntitySelectorConfig) -> selector.EntitySelector: ...
@@ -11,7 +11,7 @@ from .trace import TraceElement as TraceElement, async_trace_path as async_trace
11
11
  from .trigger import async_initialize_triggers as async_initialize_triggers, async_validate_trigger_config as async_validate_trigger_config
12
12
  from .typing import ConfigType as ConfigType, UNDEFINED as UNDEFINED, UndefinedType as UndefinedType
13
13
  from _typeshed import Incomplete
14
- from collections.abc import AsyncGenerator, Callable as Callable, Mapping, Sequence
14
+ from collections.abc import Callable as Callable, Mapping, Sequence
15
15
  from contextvars import ContextVar
16
16
  from dataclasses import dataclass
17
17
  from datetime import datetime, timedelta
@@ -27,6 +27,7 @@ from homeassistant.util.dt import utcnow as utcnow
27
27
  from homeassistant.util.hass_dict import HassKey as HassKey
28
28
  from homeassistant.util.signal_type import SignalType as SignalType, SignalTypeFormat as SignalTypeFormat
29
29
  from typing import Any, Literal, TypedDict
30
+ from typing_extensions import AsyncGenerator
30
31
 
31
32
  SCRIPT_MODE_PARALLEL: str
32
33
  SCRIPT_MODE_QUEUED: str
@@ -64,7 +65,7 @@ class ScriptStoppedError(Exception): ...
64
65
 
65
66
  def _set_result_unless_done(future: asyncio.Future[None]) -> None: ...
66
67
  def action_trace_append(variables, path): ...
67
- async def trace_action(hass: HomeAssistant, script_run: _ScriptRun, stop: asyncio.Future[None], variables: dict[str, Any]) -> AsyncGenerator[TraceElement, None]: ...
68
+ async def trace_action(hass: HomeAssistant, script_run: _ScriptRun, stop: asyncio.Future[None], variables: dict[str, Any]) -> AsyncGenerator[TraceElement]: ...
68
69
  def make_script_schema(schema: Mapping[Any, Any], default_script_mode: str, extra: int = ...) -> vol.Schema: ...
69
70
 
70
71
  STATIC_VALIDATION_ACTION_TYPES: Incomplete
@@ -19,6 +19,7 @@ class Selector:
19
19
  config: _T
20
20
  selector_type: str
21
21
  def __init__(self, config: Mapping[str, Any] | None = None) -> None: ...
22
+ def __eq__(self, other: object) -> bool: ...
22
23
  def serialize(self) -> dict[str, dict[str, _T]]: ...
23
24
 
24
25
  def _entity_feature_flag(domain: str, enum_name: str, feature_name: str) -> int: ...
@@ -74,7 +75,7 @@ class AssistPipelineSelectorConfig(TypedDict, total=False): ...
74
75
  class AssistPipelineSelector(Selector[AssistPipelineSelectorConfig]):
75
76
  selector_type: str
76
77
  CONFIG_SCHEMA: Incomplete
77
- def __init__(self, config: AssistPipelineSelectorConfig) -> None: ...
78
+ def __init__(self, config: AssistPipelineSelectorConfig | None = None) -> None: ...
78
79
  def __call__(self, data: Any) -> str: ...
79
80
 
80
81
  class AttributeSelectorConfig(TypedDict, total=False):
@@ -153,7 +154,7 @@ class ConstantSelectorConfig(TypedDict, total=False):
153
154
  class ConstantSelector(Selector[ConstantSelectorConfig]):
154
155
  selector_type: str
155
156
  CONFIG_SCHEMA: Incomplete
156
- def __init__(self, config: ConstantSelectorConfig | None = None) -> None: ...
157
+ def __init__(self, config: ConstantSelectorConfig) -> None: ...
157
158
  def __call__(self, data: Any) -> Any: ...
158
159
 
159
160
  class QrErrorCorrectionLevel(StrEnum):
@@ -170,7 +171,7 @@ class QrCodeSelectorConfig(TypedDict, total=False):
170
171
  class QrCodeSelector(Selector[QrCodeSelectorConfig]):
171
172
  selector_type: str
172
173
  CONFIG_SCHEMA: Incomplete
173
- def __init__(self, config: QrCodeSelectorConfig | None = None) -> None: ...
174
+ def __init__(self, config: QrCodeSelectorConfig) -> None: ...
174
175
  def __call__(self, data: Any) -> Any: ...
175
176
 
176
177
  class ConversationAgentSelectorConfig(TypedDict, total=False):
@@ -179,7 +180,7 @@ class ConversationAgentSelectorConfig(TypedDict, total=False):
179
180
  class ConversationAgentSelector(Selector[ConversationAgentSelectorConfig]):
180
181
  selector_type: str
181
182
  CONFIG_SCHEMA: Incomplete
182
- def __init__(self, config: ConversationAgentSelectorConfig) -> None: ...
183
+ def __init__(self, config: ConversationAgentSelectorConfig | None = None) -> None: ...
183
184
  def __call__(self, data: Any) -> str: ...
184
185
 
185
186
  class CountrySelectorConfig(TypedDict, total=False):
@@ -221,6 +222,7 @@ class DeviceSelector(Selector[DeviceSelectorConfig]):
221
222
 
222
223
  class DurationSelectorConfig(TypedDict, total=False):
223
224
  enable_day: bool
225
+ allow_negative: bool
224
226
 
225
227
  class DurationSelector(Selector[DurationSelectorConfig]):
226
228
  selector_type: str
@@ -245,7 +247,7 @@ class FloorSelectorConfig(TypedDict, total=False):
245
247
  device: DeviceFilterSelectorConfig | list[DeviceFilterSelectorConfig]
246
248
  multiple: bool
247
249
 
248
- class FloorSelector(Selector[AreaSelectorConfig]):
250
+ class FloorSelector(Selector[FloorSelectorConfig]):
249
251
  selector_type: str
250
252
  CONFIG_SCHEMA: Incomplete
251
253
  def __init__(self, config: FloorSelectorConfig | None = None) -> None: ...
@@ -277,7 +279,7 @@ class LanguageSelectorConfig(TypedDict, total=False):
277
279
  class LanguageSelector(Selector[LanguageSelectorConfig]):
278
280
  selector_type: str
279
281
  CONFIG_SCHEMA: Incomplete
280
- def __init__(self, config: LanguageSelectorConfig) -> None: ...
282
+ def __init__(self, config: LanguageSelectorConfig | None = None) -> None: ...
281
283
  def __call__(self, data: Any) -> str: ...
282
284
 
283
285
  class LocationSelectorConfig(TypedDict, total=False):
@@ -348,7 +350,7 @@ class SelectSelectorConfig(TypedDict, total=False):
348
350
  class SelectSelector(Selector[SelectSelectorConfig]):
349
351
  selector_type: str
350
352
  CONFIG_SCHEMA: Incomplete
351
- def __init__(self, config: SelectSelectorConfig | None = None) -> None: ...
353
+ def __init__(self, config: SelectSelectorConfig) -> None: ...
352
354
  def __call__(self, data: Any) -> Any: ...
353
355
 
354
356
  class TargetSelectorConfig(TypedDict, total=False):
@@ -438,5 +440,5 @@ class FileSelectorConfig(TypedDict):
438
440
  class FileSelector(Selector[FileSelectorConfig]):
439
441
  selector_type: str
440
442
  CONFIG_SCHEMA: Incomplete
441
- def __init__(self, config: FileSelectorConfig | None = None) -> None: ...
443
+ def __init__(self, config: FileSelectorConfig) -> None: ...
442
444
  def __call__(self, data: Any) -> str: ...
@@ -1,10 +1,9 @@
1
1
  import dataclasses
2
- import voluptuous as vol
3
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
4
3
  from .entity import Entity as Entity
5
4
  from .group import expand_entity_ids as expand_entity_ids
6
5
  from .selector import TargetSelector as TargetSelector
7
- from .typing import ConfigType as ConfigType, TemplateVarsType as TemplateVarsType
6
+ from .typing import ConfigType as ConfigType, TemplateVarsType as TemplateVarsType, VolSchemaType as VolSchemaType
8
7
  from _typeshed import Incomplete
9
8
  from collections.abc import Awaitable, Callable as Callable, Coroutine, Iterable
10
9
  from homeassistant.auth.permissions.const import CAT_ENTITIES as CAT_ENTITIES, POLICY_CONTROL as POLICY_CONTROL
@@ -30,7 +29,11 @@ def validate_attribute_option(attribute_option: str) -> Any: ...
30
29
  def validate_supported_feature(supported_feature: str) -> Any: ...
31
30
 
32
31
  _FIELD_SCHEMA: Incomplete
32
+ _SECTION_SCHEMA: Incomplete
33
33
  _SERVICE_SCHEMA: Incomplete
34
+
35
+ def starts_with_dot(key: str) -> str: ...
36
+
34
37
  _SERVICES_SCHEMA: Incomplete
35
38
 
36
39
  class ServiceParams(TypedDict):
@@ -82,7 +85,7 @@ def _get_permissible_entity_candidates(call: ServiceCall, entities: dict[str, En
82
85
  async def entity_service_call(hass: HomeAssistant, registered_entities: dict[str, Entity], func: str | HassJob, call: ServiceCall, required_features: Iterable[int] | None = None) -> EntityServiceResponse | None: ...
83
86
  async def _handle_entity_call(hass: HomeAssistant, entity: Entity, func: str | HassJob, data: dict | ServiceCall, context: Context) -> ServiceResponse: ...
84
87
  async def _async_admin_handler(hass: HomeAssistant, service_job: HassJob[[ServiceCall], Awaitable[None] | None], call: ServiceCall) -> None: ...
85
- def async_register_admin_service(hass: HomeAssistant, domain: str, service: str, service_func: Callable[[ServiceCall], Awaitable[None] | None], schema: vol.Schema = ...) -> None: ...
88
+ def async_register_admin_service(hass: HomeAssistant, domain: str, service: str, service_func: Callable[[ServiceCall], Awaitable[None] | None], schema: VolSchemaType = ...) -> None: ...
86
89
  def verify_domain_control(hass: HomeAssistant, domain: str) -> Callable[[Callable[[ServiceCall], Any]], Callable[[ServiceCall], Any]]: ...
87
90
 
88
91
  class ReloadServiceHelper:
@@ -4,7 +4,7 @@ from .singleton import singleton as singleton
4
4
  from .translation import async_translate_state as async_translate_state
5
5
  from .typing import TemplateVarsType as TemplateVarsType
6
6
  from _typeshed import Incomplete
7
- from collections.abc import Callable as Callable, Generator, Iterable
7
+ from collections.abc import Callable as Callable, Iterable
8
8
  from contextlib import AbstractContextManager
9
9
  from contextvars import ContextVar
10
10
  from datetime import datetime, timedelta
@@ -22,6 +22,7 @@ from jinja2.sandbox import ImmutableSandboxedEnvironment
22
22
  from lru import LRU
23
23
  from types import CodeType, TracebackType
24
24
  from typing import Any, Literal, NoReturn, Self, overload
25
+ from typing_extensions import Generator
25
26
 
26
27
  _LOGGER: Incomplete
27
28
  _SENTINEL: Incomplete
@@ -139,7 +140,7 @@ class AllStates:
139
140
  __getitem__ = __getattr__
140
141
  def _collect_all(self) -> None: ...
141
142
  def _collect_all_lifecycle(self) -> None: ...
142
- def __iter__(self) -> Generator[TemplateState, None, None]: ...
143
+ def __iter__(self) -> Generator[TemplateState]: ...
143
144
  def __len__(self) -> int: ...
144
145
  def __call__(self, entity_id: str, rounded: bool | object = ..., with_unit: bool = False) -> str: ...
145
146
  def __repr__(self) -> str: ...
@@ -161,7 +162,7 @@ class DomainStates:
161
162
  __getitem__ = __getattr__
162
163
  def _collect_domain(self) -> None: ...
163
164
  def _collect_domain_lifecycle(self) -> None: ...
164
- def __iter__(self) -> Generator[TemplateState, None, None]: ...
165
+ def __iter__(self) -> Generator[TemplateState]: ...
165
166
  def __len__(self) -> int: ...
166
167
  def __repr__(self) -> str: ...
167
168
 
@@ -215,7 +216,7 @@ class TemplateStateFromEntityId(TemplateStateBase):
215
216
  _create_template_state_no_collect: Incomplete
216
217
 
217
218
  def _collect_state(hass: HomeAssistant, entity_id: str) -> None: ...
218
- def _state_generator(hass: HomeAssistant, domain: str | None) -> Generator[TemplateState, None, None]: ...
219
+ def _state_generator(hass: HomeAssistant, domain: str | None) -> Generator[TemplateState]: ...
219
220
  def _get_state_if_valid(hass: HomeAssistant, entity_id: str) -> TemplateState | None: ...
220
221
  def _get_state(hass: HomeAssistant, entity_id: str) -> TemplateState | None: ...
221
222
  def _get_template_state_from_state(hass: HomeAssistant, entity_id: str, state: State | None) -> TemplateState | None: ...
@@ -231,6 +232,7 @@ def integration_entities(hass: HomeAssistant, entry_name: str) -> Iterable[str]:
231
232
  def config_entry_id(hass: HomeAssistant, entity_id: str) -> str | None: ...
232
233
  def device_id(hass: HomeAssistant, entity_id_or_device_name: str) -> str | None: ...
233
234
  def device_attr(hass: HomeAssistant, device_or_entity_id: str, attr_name: str) -> Any: ...
235
+ def config_entry_attr(hass: HomeAssistant, config_entry_id_: str, attr_name: str) -> Any: ...
234
236
  def is_device_attr(hass: HomeAssistant, device_or_entity_id: str, attr_name: str, attr_value: Any) -> bool: ...
235
237
  def issues(hass: HomeAssistant) -> dict[tuple[str, str], dict[str, Any]]: ...
236
238
  def issue(hass: HomeAssistant, domain: str, issue_id: str) -> dict[str, Any] | None: ...
@@ -312,8 +314,8 @@ def bitwise_or(first_value, second_value): ...
312
314
  def bitwise_xor(first_value, second_value): ...
313
315
  def struct_pack(value: Any | None, format_string: str) -> bytes | None: ...
314
316
  def struct_unpack(value: bytes, format_string: str, offset: int = 0) -> Any | None: ...
315
- def base64_encode(value): ...
316
- def base64_decode(value): ...
317
+ def base64_encode(value: str) -> str: ...
318
+ def base64_decode(value: str, encoding: str | None = 'utf-8') -> str | bytes: ...
317
319
  def ordinal(value): ...
318
320
  def from_json(value): ...
319
321
  def _to_json_default(obj: Any) -> None: ...
@@ -1,10 +1,11 @@
1
1
  from .typing import TemplateVarsType as TemplateVarsType
2
2
  from _typeshed import Incomplete
3
3
  from collections import deque
4
- from collections.abc import Callable as Callable, Coroutine, Generator
4
+ from collections.abc import Callable as Callable, Coroutine
5
5
  from contextvars import ContextVar
6
6
  from homeassistant.core import ServiceResponse as ServiceResponse
7
7
  from typing import Any
8
+ from typing_extensions import Generator
8
9
 
9
10
  class TraceElement:
10
11
  __slots__: Incomplete
@@ -54,5 +55,5 @@ class StopReason:
54
55
 
55
56
  def script_execution_set(reason: str, response: ServiceResponse = None) -> None: ...
56
57
  def script_execution_get() -> str | None: ...
57
- def trace_path(suffix: str | list[str]) -> Generator[None, None, None]: ...
58
+ def trace_path(suffix: str | list[str]) -> Generator[None]: ...
58
59
  def async_trace_path(suffix: str | list[str]) -> Callable[[Callable[[Unpack[_Ts]], Coroutine[Any, Any, None]]], Callable[[Unpack[_Ts]], Coroutine[Any, Any, None]]]: ...
@@ -1,4 +1,4 @@
1
- from .deprecation import DeprecatedAlias as DeprecatedAlias, all_with_deprecated_constants as all_with_deprecated_constants, check_if_deprecated_constant as check_if_deprecated_constant, dir_with_deprecated_constants as dir_with_deprecated_constants
1
+ from .deprecation import DeferredDeprecatedAlias as DeferredDeprecatedAlias, all_with_deprecated_constants as all_with_deprecated_constants, check_if_deprecated_constant as check_if_deprecated_constant, dir_with_deprecated_constants as dir_with_deprecated_constants
2
2
  from _typeshed import Incomplete
3
3
  from collections.abc import Mapping
4
4
  from enum import Enum
@@ -11,12 +11,17 @@ ServiceDataType = dict[str, Any]
11
11
  StateType: Incomplete
12
12
  TemplateVarsType: Incomplete
13
13
  NoEventData = Mapping[str, Never]
14
+ VolSchemaType: Incomplete
15
+ VolDictType: Incomplete
14
16
  QueryType = Any
15
17
 
16
18
  class UndefinedType(Enum):
17
19
  _singleton: int
18
20
 
19
21
  UNDEFINED: Incomplete
22
+
23
+ def _deprecated_typing_helper(attr: str) -> DeferredDeprecatedAlias: ...
24
+
20
25
  _DEPRECATED_ContextType: Incomplete
21
26
  _DEPRECATED_EventType: Incomplete
22
27
  _DEPRECATED_HomeAssistantType: Incomplete
@@ -4,7 +4,7 @@ from . import entity as entity, event as event
4
4
  from .debounce import Debouncer as Debouncer
5
5
  from _typeshed import Incomplete
6
6
  from abc import abstractmethod
7
- from collections.abc import Awaitable, Callable as Callable, Coroutine, Generator
7
+ from collections.abc import Awaitable, Callable as Callable, Coroutine
8
8
  from datetime import datetime, timedelta
9
9
  from homeassistant import config_entries as config_entries
10
10
  from homeassistant.const import EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP
@@ -12,7 +12,7 @@ from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, Event as Event, H
12
12
  from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryError as ConfigEntryError, ConfigEntryNotReady as ConfigEntryNotReady
13
13
  from homeassistant.util.dt import utcnow as utcnow
14
14
  from typing import Any, Generic, Protocol
15
- from typing_extensions import TypeVar
15
+ from typing_extensions import Generator, TypeVar
16
16
 
17
17
  REQUEST_REFRESH_DEFAULT_COOLDOWN: int
18
18
  REQUEST_REFRESH_DEFAULT_IMMEDIATE: bool
@@ -48,7 +48,7 @@ class DataUpdateCoordinator(BaseDataUpdateCoordinatorProtocol, Generic[_DataT]):
48
48
  def async_update_listeners(self) -> None: ...
49
49
  async def async_shutdown(self) -> None: ...
50
50
  def _unschedule_refresh(self) -> None: ...
51
- def async_contexts(self) -> Generator[Any, None, None]: ...
51
+ def async_contexts(self) -> Generator[Any]: ...
52
52
  def _async_unsub_refresh(self) -> None: ...
53
53
  def _async_unsub_shutdown(self) -> None: ...
54
54
  @property
@@ -15,7 +15,7 @@ from .generated.usb import USB as USB
15
15
  from .generated.zeroconf import HOMEKIT as HOMEKIT, ZEROCONF as ZEROCONF
16
16
  from .helpers import device_registry as dr
17
17
  from .helpers.json import json_bytes as json_bytes, json_fragment as json_fragment
18
- from .helpers.typing import ConfigType as ConfigType
18
+ from .helpers.typing import ConfigType as ConfigType, UNDEFINED as UNDEFINED
19
19
  from .util.hass_dict import HassKey as HassKey
20
20
  from .util.json import JSON_DECODE_EXCEPTIONS as JSON_DECODE_EXCEPTIONS, json_loads as json_loads
21
21
  from _typeshed import Incomplete
@@ -45,7 +45,6 @@ PACKAGE_CUSTOM_COMPONENTS: str
45
45
  PACKAGE_BUILTIN: str
46
46
  CUSTOM_WARNING: str
47
47
  IMPORT_EVENT_LOOP_WARNING: str
48
- _UNDEF: Incomplete
49
48
  MOVED_ZEROCONF_PROPS: Incomplete
50
49
 
51
50
  class DHCPMatcherRequired(TypedDict, total=True):