homeassistant-stubs 2024.6.4__py3-none-any.whl → 2024.7.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (618) 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 +10 -2
  4. homeassistant-stubs/block_async_io.pyi +23 -0
  5. homeassistant-stubs/bootstrap.pyi +4 -3
  6. homeassistant-stubs/components/accuweather/sensor.pyi +5 -9
  7. homeassistant-stubs/components/accuweather/weather.pyi +1 -1
  8. homeassistant-stubs/components/acer_projector/switch.pyi +2 -1
  9. homeassistant-stubs/components/air_quality/__init__.pyi +4 -3
  10. homeassistant-stubs/components/airgradient/__init__.pyi +8 -0
  11. homeassistant-stubs/components/airgradient/button.pyi +28 -0
  12. homeassistant-stubs/components/airgradient/const.pyi +2 -0
  13. homeassistant-stubs/components/airgradient/coordinator.pyi +2 -2
  14. homeassistant-stubs/components/airgradient/number.pyi +32 -0
  15. homeassistant-stubs/components/airgradient/select.pyi +14 -12
  16. homeassistant-stubs/components/airgradient/sensor.pyi +28 -10
  17. homeassistant-stubs/components/airgradient/switch.pyi +33 -0
  18. homeassistant-stubs/components/airnow/const.pyi +1 -0
  19. homeassistant-stubs/components/airnow/coordinator.pyi +1 -1
  20. homeassistant-stubs/components/airnow/sensor.pyi +1 -2
  21. homeassistant-stubs/components/airzone/__init__.pyi +4 -4
  22. homeassistant-stubs/components/airzone/binary_sensor.pyi +2 -2
  23. homeassistant-stubs/components/airzone/climate.pyi +3 -2
  24. homeassistant-stubs/components/airzone/diagnostics.pyi +2 -4
  25. homeassistant-stubs/components/airzone/entity.pyi +2 -1
  26. homeassistant-stubs/components/airzone/select.pyi +2 -2
  27. homeassistant-stubs/components/airzone/sensor.pyi +3 -2
  28. homeassistant-stubs/components/airzone/water_heater.pyi +3 -2
  29. homeassistant-stubs/components/airzone_cloud/__init__.pyi +3 -3
  30. homeassistant-stubs/components/airzone_cloud/binary_sensor.pyi +2 -3
  31. homeassistant-stubs/components/airzone_cloud/climate.pyi +8 -10
  32. homeassistant-stubs/components/airzone_cloud/diagnostics.pyi +2 -4
  33. homeassistant-stubs/components/airzone_cloud/select.pyi +2 -3
  34. homeassistant-stubs/components/airzone_cloud/sensor.pyi +2 -3
  35. homeassistant-stubs/components/airzone_cloud/water_heater.pyi +2 -3
  36. homeassistant-stubs/components/aladdin_connect/__init__.pyi +4 -13
  37. homeassistant-stubs/components/aladdin_connect/config_flow.pyi +3 -16
  38. homeassistant-stubs/components/alarm_control_panel/__init__.pyi +3 -3
  39. homeassistant-stubs/components/alexa/capabilities.pyi +2 -2
  40. homeassistant-stubs/components/alexa/entities.pyi +25 -24
  41. homeassistant-stubs/components/alpha_vantage/sensor.pyi +2 -1
  42. homeassistant-stubs/components/ambient_network/coordinator.pyi +2 -0
  43. homeassistant-stubs/components/ambient_network/sensor.pyi +1 -0
  44. homeassistant-stubs/components/androidtv/entity.pyi +1 -0
  45. homeassistant-stubs/components/androidtv/remote.pyi +21 -0
  46. homeassistant-stubs/components/androidtv_remote/config_flow.pyi +11 -1
  47. homeassistant-stubs/components/androidtv_remote/const.pyi +3 -0
  48. homeassistant-stubs/components/androidtv_remote/entity.pyi +2 -1
  49. homeassistant-stubs/components/androidtv_remote/media_player.pyi +4 -1
  50. homeassistant-stubs/components/androidtv_remote/remote.pyi +3 -0
  51. homeassistant-stubs/components/anel_pwrctrl/switch.pyi +2 -1
  52. homeassistant-stubs/components/apprise/notify.pyi +2 -1
  53. homeassistant-stubs/components/apsystems/__init__.pyi +9 -2
  54. homeassistant-stubs/components/apsystems/entity.pyi +10 -0
  55. homeassistant-stubs/components/apsystems/number.pyi +25 -0
  56. homeassistant-stubs/components/apsystems/sensor.pyi +6 -7
  57. homeassistant-stubs/components/aqualogic/sensor.pyi +2 -1
  58. homeassistant-stubs/components/aqualogic/switch.pyi +2 -1
  59. homeassistant-stubs/components/aquostv/media_player.pyi +2 -1
  60. homeassistant-stubs/components/assist_pipeline/pipeline.pyi +8 -7
  61. homeassistant-stubs/components/assist_pipeline/select.pyi +1 -1
  62. homeassistant-stubs/components/asuswrt/config_flow.pyi +1 -0
  63. homeassistant-stubs/components/automation/__init__.pyi +10 -5
  64. homeassistant-stubs/components/automation/config.pyi +11 -1
  65. homeassistant-stubs/components/automation/trace.pyi +2 -2
  66. homeassistant-stubs/components/axis/config_flow.pyi +1 -0
  67. homeassistant-stubs/components/baf/binary_sensor.pyi +2 -4
  68. homeassistant-stubs/components/baf/entity.pyi +6 -1
  69. homeassistant-stubs/components/baf/number.pyi +2 -4
  70. homeassistant-stubs/components/baf/sensor.pyi +2 -4
  71. homeassistant-stubs/components/baf/switch.pyi +2 -4
  72. homeassistant-stubs/components/bang_olufsen/const.pyi +2 -0
  73. homeassistant-stubs/components/bang_olufsen/media_player.pyi +3 -2
  74. homeassistant-stubs/components/bayesian/binary_sensor.pyi +2 -1
  75. homeassistant-stubs/components/binary_sensor/__init__.pyi +3 -2
  76. homeassistant-stubs/components/bitcoin/sensor.pyi +2 -1
  77. homeassistant-stubs/components/blockchain/sensor.pyi +2 -1
  78. homeassistant-stubs/components/blueprint/errors.pyi +1 -1
  79. homeassistant-stubs/components/blueprint/websocket_api.pyi +6 -3
  80. homeassistant-stubs/components/bluetooth/passive_update_coordinator.pyi +3 -3
  81. homeassistant-stubs/components/bmw_connected_drive/const.pyi +0 -1
  82. homeassistant-stubs/components/bmw_connected_drive/select.pyi +1 -1
  83. homeassistant-stubs/components/bmw_connected_drive/sensor.pyi +1 -1
  84. homeassistant-stubs/components/brother/config_flow.pyi +9 -1
  85. homeassistant-stubs/components/button/__init__.pyi +4 -3
  86. homeassistant-stubs/components/calendar/__init__.pyi +2 -4
  87. homeassistant-stubs/components/camera/__init__.pyi +8 -7
  88. homeassistant-stubs/components/cert_expiry/sensor.pyi +2 -1
  89. homeassistant-stubs/components/clickatell/notify.pyi +2 -1
  90. homeassistant-stubs/components/clicksend/notify.pyi +2 -1
  91. homeassistant-stubs/components/climate/__init__.pyi +5 -4
  92. homeassistant-stubs/components/cloud/__init__.pyi +1 -1
  93. homeassistant-stubs/components/cloud/account_link.pyi +1 -1
  94. homeassistant-stubs/components/cloud/binary_sensor.pyi +1 -1
  95. homeassistant-stubs/components/cloud/const.pyi +6 -1
  96. homeassistant-stubs/components/cloud/http_api.pyi +1 -1
  97. homeassistant-stubs/components/cloud/repairs.pyi +1 -3
  98. homeassistant-stubs/components/cloud/stt.pyi +1 -1
  99. homeassistant-stubs/components/cloud/system_health.pyi +1 -3
  100. homeassistant-stubs/components/cloud/tts.pyi +1 -1
  101. homeassistant-stubs/components/config/auth_provider_homeassistant.pyi +1 -0
  102. homeassistant-stubs/components/config/scene.pyi +3 -1
  103. homeassistant-stubs/components/counter/__init__.pyi +2 -2
  104. homeassistant-stubs/components/cover/__init__.pyi +3 -2
  105. homeassistant-stubs/components/demo/tts.pyi +2 -1
  106. homeassistant-stubs/components/derivative/__init__.pyi +2 -1
  107. homeassistant-stubs/components/derivative/config_flow.pyi +11 -4
  108. homeassistant-stubs/components/derivative/sensor.pyi +3 -1
  109. homeassistant-stubs/components/device_automation/__init__.pyi +2 -2
  110. homeassistant-stubs/components/dlna_dmr/config_flow.pyi +1 -0
  111. homeassistant-stubs/components/dnsip/__init__.pyi +4 -2
  112. homeassistant-stubs/components/dnsip/config_flow.pyi +4 -3
  113. homeassistant-stubs/components/dnsip/const.pyi +2 -0
  114. homeassistant-stubs/components/dnsip/sensor.pyi +4 -3
  115. homeassistant-stubs/components/ecovacs/binary_sensor.pyi +3 -3
  116. homeassistant-stubs/components/ecovacs/button.pyi +5 -5
  117. homeassistant-stubs/components/ecovacs/config_flow.pyi +1 -0
  118. homeassistant-stubs/components/ecovacs/controller.pyi +4 -4
  119. homeassistant-stubs/components/ecovacs/entity.pyi +8 -10
  120. homeassistant-stubs/components/ecovacs/event.pyi +3 -3
  121. homeassistant-stubs/components/ecovacs/image.pyi +2 -2
  122. homeassistant-stubs/components/ecovacs/lawn_mower.pyi +3 -3
  123. homeassistant-stubs/components/ecovacs/number.pyi +3 -3
  124. homeassistant-stubs/components/ecovacs/select.pyi +3 -3
  125. homeassistant-stubs/components/ecovacs/sensor.pyi +6 -6
  126. homeassistant-stubs/components/ecovacs/switch.pyi +4 -4
  127. homeassistant-stubs/components/ecovacs/vacuum.pyi +9 -5
  128. homeassistant-stubs/components/ecowitt/binary_sensor.pyi +1 -0
  129. homeassistant-stubs/components/efergy/__init__.pyi +3 -2
  130. homeassistant-stubs/components/efergy/sensor.pyi +3 -4
  131. homeassistant-stubs/components/electrasmart/__init__.pyi +12 -0
  132. homeassistant-stubs/components/electrasmart/climate.pyi +64 -0
  133. homeassistant-stubs/components/electrasmart/config_flow.pyi +24 -0
  134. homeassistant-stubs/components/electrasmart/const.pyi +10 -0
  135. homeassistant-stubs/components/elkm1/alarm_control_panel.pyi +2 -1
  136. homeassistant-stubs/components/elkm1/const.pyi +2 -1
  137. homeassistant-stubs/components/elkm1/sensor.pyi +2 -1
  138. homeassistant-stubs/components/energy/websocket_api.pyi +5 -5
  139. homeassistant-stubs/components/enigma2/__init__.pyi +3 -2
  140. homeassistant-stubs/components/enigma2/config_flow.pyi +10 -1
  141. homeassistant-stubs/components/enigma2/media_player.pyi +3 -2
  142. homeassistant-stubs/components/enphase_envoy/config_flow.pyi +8 -2
  143. homeassistant-stubs/components/enphase_envoy/const.pyi +2 -0
  144. homeassistant-stubs/components/enphase_envoy/diagnostics.pyi +3 -1
  145. homeassistant-stubs/components/esphome/__init__.pyi +5 -5
  146. homeassistant-stubs/components/esphome/alarm_control_panel.pyi +3 -5
  147. homeassistant-stubs/components/esphome/binary_sensor.pyi +2 -3
  148. homeassistant-stubs/components/esphome/button.pyi +3 -5
  149. homeassistant-stubs/components/esphome/camera.pyi +3 -5
  150. homeassistant-stubs/components/esphome/climate.pyi +3 -6
  151. homeassistant-stubs/components/esphome/cover.pyi +3 -5
  152. homeassistant-stubs/components/esphome/date.pyi +3 -5
  153. homeassistant-stubs/components/esphome/datetime.pyi +3 -5
  154. homeassistant-stubs/components/esphome/diagnostics.pyi +3 -3
  155. homeassistant-stubs/components/esphome/domain_data.pyi +4 -8
  156. homeassistant-stubs/components/esphome/entity.pyi +2 -4
  157. homeassistant-stubs/components/esphome/entry_data.pyi +4 -3
  158. homeassistant-stubs/components/esphome/event.pyi +3 -5
  159. homeassistant-stubs/components/esphome/fan.pyi +3 -6
  160. homeassistant-stubs/components/esphome/light.pyi +3 -6
  161. homeassistant-stubs/components/esphome/lock.pyi +3 -5
  162. homeassistant-stubs/components/esphome/manager.pyi +4 -5
  163. homeassistant-stubs/components/esphome/media_player.pyi +3 -5
  164. homeassistant-stubs/components/esphome/number.pyi +3 -5
  165. homeassistant-stubs/components/esphome/select.pyi +2 -4
  166. homeassistant-stubs/components/esphome/switch.pyi +3 -5
  167. homeassistant-stubs/components/esphome/text.pyi +3 -5
  168. homeassistant-stubs/components/esphome/time.pyi +3 -5
  169. homeassistant-stubs/components/esphome/update.pyi +23 -2
  170. homeassistant-stubs/components/esphome/valve.pyi +3 -5
  171. homeassistant-stubs/components/event/__init__.pyi +3 -1
  172. homeassistant-stubs/components/evohome/__init__.pyi +8 -49
  173. homeassistant-stubs/components/evohome/climate.pyi +2 -2
  174. homeassistant-stubs/components/evohome/const.pyi +39 -16
  175. homeassistant-stubs/components/evohome/coordinator.pyi +33 -0
  176. homeassistant-stubs/components/evohome/helpers.pyi +13 -0
  177. homeassistant-stubs/components/fan/__init__.pyi +3 -2
  178. homeassistant-stubs/components/fastdotcom/__init__.pyi +2 -7
  179. homeassistant-stubs/components/fastdotcom/config_flow.pyi +0 -2
  180. homeassistant-stubs/components/feedreader/__init__.pyi +10 -5
  181. homeassistant-stubs/components/feedreader/config_flow.pyi +30 -0
  182. homeassistant-stubs/components/feedreader/const.pyi +5 -0
  183. homeassistant-stubs/components/feedreader/coordinator.pyi +4 -4
  184. homeassistant-stubs/components/filter/sensor.pyi +2 -1
  185. homeassistant-stubs/components/flux_led/light.pyi +4 -3
  186. homeassistant-stubs/components/fritz/switch.pyi +1 -1
  187. homeassistant-stubs/components/fritzbox/climate.pyi +14 -9
  188. homeassistant-stubs/components/fritzbox/switch.pyi +3 -0
  189. homeassistant-stubs/components/fronius/config_flow.pyi +3 -2
  190. homeassistant-stubs/components/frontend/__init__.pyi +9 -4
  191. homeassistant-stubs/components/fully_kiosk/camera.pyi +21 -0
  192. homeassistant-stubs/components/fully_kiosk/image.pyi +30 -0
  193. homeassistant-stubs/components/fully_kiosk/media_player.pyi +2 -0
  194. homeassistant-stubs/components/fully_kiosk/notify.pyi +25 -0
  195. homeassistant-stubs/components/generic_hygrostat/__init__.pyi +4 -0
  196. homeassistant-stubs/components/generic_hygrostat/config_flow.pyi +19 -0
  197. homeassistant-stubs/components/generic_hygrostat/humidifier.pyi +7 -2
  198. homeassistant-stubs/components/generic_thermostat/__init__.pyi +6 -0
  199. homeassistant-stubs/components/generic_thermostat/climate.pyi +7 -1
  200. homeassistant-stubs/components/generic_thermostat/config_flow.pyi +19 -0
  201. homeassistant-stubs/components/geo_location/__init__.pyi +4 -3
  202. homeassistant-stubs/components/glances/__init__.pyi +3 -2
  203. homeassistant-stubs/components/glances/sensor.pyi +2 -3
  204. homeassistant-stubs/components/goalzero/__init__.pyi +3 -5
  205. homeassistant-stubs/components/goalzero/binary_sensor.pyi +2 -3
  206. homeassistant-stubs/components/goalzero/coordinator.pyi +3 -1
  207. homeassistant-stubs/components/goalzero/sensor.pyi +2 -3
  208. homeassistant-stubs/components/goalzero/switch.pyi +2 -3
  209. homeassistant-stubs/components/google_assistant_sdk/__init__.pyi +2 -2
  210. homeassistant-stubs/components/google_assistant_sdk/diagnostics.pyi +9 -0
  211. homeassistant-stubs/components/google_assistant_sdk/helpers.pyi +1 -0
  212. homeassistant-stubs/components/google_sheets/__init__.pyi +4 -3
  213. homeassistant-stubs/components/google_sheets/config_flow.pyi +3 -2
  214. homeassistant-stubs/components/gpsd/sensor.pyi +2 -1
  215. homeassistant-stubs/components/group/binary_sensor.pyi +2 -1
  216. homeassistant-stubs/components/group/cover.pyi +2 -1
  217. homeassistant-stubs/components/group/entity.pyi +2 -2
  218. homeassistant-stubs/components/group/event.pyi +2 -1
  219. homeassistant-stubs/components/group/fan.pyi +2 -1
  220. homeassistant-stubs/components/group/light.pyi +2 -1
  221. homeassistant-stubs/components/group/lock.pyi +2 -1
  222. homeassistant-stubs/components/group/media_player.pyi +2 -1
  223. homeassistant-stubs/components/group/notify.pyi +2 -1
  224. homeassistant-stubs/components/group/registry.pyi +8 -2
  225. homeassistant-stubs/components/group/switch.pyi +2 -1
  226. homeassistant-stubs/components/history_stats/sensor.pyi +4 -1
  227. homeassistant-stubs/components/homeassistant/const.pyi +3 -1
  228. homeassistant-stubs/components/homekit/aidmanager.pyi +2 -2
  229. homeassistant-stubs/components/homekit_controller/config_flow.pyi +1 -0
  230. homeassistant-stubs/components/homeworks/__init__.pyi +2 -5
  231. homeassistant-stubs/components/homeworks/config_flow.pyi +1 -6
  232. homeassistant-stubs/components/http/__init__.pyi +20 -3
  233. homeassistant-stubs/components/http/cors.pyi +1 -1
  234. homeassistant-stubs/components/http/data_validator.pyi +2 -1
  235. homeassistant-stubs/components/humidifier/__init__.pyi +3 -2
  236. homeassistant-stubs/components/humidifier/device_action.pyi +1 -1
  237. homeassistant-stubs/components/husqvarna_automower/__init__.pyi +3 -3
  238. homeassistant-stubs/components/husqvarna_automower/binary_sensor.pyi +2 -3
  239. homeassistant-stubs/components/husqvarna_automower/button.pyi +22 -0
  240. homeassistant-stubs/components/husqvarna_automower/device_tracker.pyi +2 -3
  241. homeassistant-stubs/components/husqvarna_automower/diagnostics.pyi +2 -2
  242. homeassistant-stubs/components/husqvarna_automower/entity.pyi +7 -1
  243. homeassistant-stubs/components/husqvarna_automower/lawn_mower.pyi +14 -5
  244. homeassistant-stubs/components/husqvarna_automower/number.pyi +4 -5
  245. homeassistant-stubs/components/husqvarna_automower/select.pyi +2 -3
  246. homeassistant-stubs/components/husqvarna_automower/sensor.pyi +10 -5
  247. homeassistant-stubs/components/husqvarna_automower/switch.pyi +4 -8
  248. homeassistant-stubs/components/hydrawise/coordinator.pyi +3 -3
  249. homeassistant-stubs/components/hydrawise/sensor.pyi +3 -0
  250. homeassistant-stubs/components/ibeacon/config_flow.pyi +1 -0
  251. homeassistant-stubs/components/idasen_desk/coordinator.pyi +2 -5
  252. homeassistant-stubs/components/idasen_desk/sensor.pyi +3 -0
  253. homeassistant-stubs/components/image/__init__.pyi +3 -2
  254. homeassistant-stubs/components/image_upload/__init__.pyi +7 -3
  255. homeassistant-stubs/components/imap/__init__.pyi +5 -4
  256. homeassistant-stubs/components/imap/diagnostics.pyi +3 -5
  257. homeassistant-stubs/components/imap/sensor.pyi +5 -5
  258. homeassistant-stubs/components/input_button/__init__.pyi +3 -4
  259. homeassistant-stubs/components/input_select/__init__.pyi +2 -2
  260. homeassistant-stubs/components/input_text/__init__.pyi +3 -4
  261. homeassistant-stubs/components/integration/__init__.pyi +2 -0
  262. homeassistant-stubs/components/integration/config_flow.pyi +1 -1
  263. homeassistant-stubs/components/integration/const.pyi +1 -0
  264. homeassistant-stubs/components/integration/sensor.pyi +33 -12
  265. homeassistant-stubs/components/intent/timers.pyi +7 -3
  266. homeassistant-stubs/components/islamic_prayer_times/__init__.pyi +4 -3
  267. homeassistant-stubs/components/islamic_prayer_times/sensor.pyi +3 -3
  268. homeassistant-stubs/components/isy994/services.pyi +3 -2
  269. homeassistant-stubs/components/jewish_calendar/binary_sensor.pyi +6 -12
  270. homeassistant-stubs/components/jewish_calendar/entity.pyi +19 -0
  271. homeassistant-stubs/components/jewish_calendar/sensor.pyi +8 -13
  272. homeassistant-stubs/components/knocki/__init__.pyi +12 -0
  273. homeassistant-stubs/components/knocki/config_flow.pyi +12 -0
  274. homeassistant-stubs/components/knocki/const.pyi +4 -0
  275. homeassistant-stubs/components/knocki/coordinator.pyi +13 -0
  276. homeassistant-stubs/components/knocki/event.pyi +26 -0
  277. homeassistant-stubs/components/knx/config_flow.pyi +1 -1
  278. homeassistant-stubs/components/knx/device_trigger.pyi +1 -1
  279. homeassistant-stubs/components/knx/trigger.pyi +2 -3
  280. homeassistant-stubs/components/knx/websocket.pyi +1 -0
  281. homeassistant-stubs/components/lacrosse/sensor.pyi +2 -1
  282. homeassistant-stubs/components/lamarzocco/__init__.pyi +8 -3
  283. homeassistant-stubs/components/lamarzocco/binary_sensor.pyi +4 -5
  284. homeassistant-stubs/components/lamarzocco/button.pyi +4 -5
  285. homeassistant-stubs/components/lamarzocco/calendar.pyi +9 -3
  286. homeassistant-stubs/components/lamarzocco/config_flow.pyi +7 -3
  287. homeassistant-stubs/components/lamarzocco/const.pyi +1 -2
  288. homeassistant-stubs/components/lamarzocco/coordinator.pyi +13 -11
  289. homeassistant-stubs/components/lamarzocco/diagnostics.pyi +10 -5
  290. homeassistant-stubs/components/lamarzocco/entity.pyi +3 -3
  291. homeassistant-stubs/components/lamarzocco/number.pyi +9 -13
  292. homeassistant-stubs/components/lamarzocco/select.pyi +13 -7
  293. homeassistant-stubs/components/lamarzocco/sensor.pyi +4 -5
  294. homeassistant-stubs/components/lamarzocco/switch.pyi +21 -6
  295. homeassistant-stubs/components/lamarzocco/update.pyi +5 -10
  296. homeassistant-stubs/components/lawn_mower/__init__.pyi +3 -2
  297. homeassistant-stubs/components/lidarr/__init__.pyi +12 -2
  298. homeassistant-stubs/components/lidarr/config_flow.pyi +2 -1
  299. homeassistant-stubs/components/lidarr/coordinator.pyi +0 -1
  300. homeassistant-stubs/components/lidarr/sensor.pyi +3 -4
  301. homeassistant-stubs/components/lifx/light.pyi +3 -2
  302. homeassistant-stubs/components/light/__init__.pyi +8 -6
  303. homeassistant-stubs/components/light/device_action.pyi +1 -1
  304. homeassistant-stubs/components/litterrobot/__init__.pyi +4 -3
  305. homeassistant-stubs/components/litterrobot/binary_sensor.pyi +2 -4
  306. homeassistant-stubs/components/litterrobot/button.pyi +2 -4
  307. homeassistant-stubs/components/litterrobot/select.pyi +2 -3
  308. homeassistant-stubs/components/litterrobot/sensor.pyi +2 -4
  309. homeassistant-stubs/components/litterrobot/switch.pyi +2 -4
  310. homeassistant-stubs/components/litterrobot/time.pyi +2 -4
  311. homeassistant-stubs/components/litterrobot/update.pyi +3 -4
  312. homeassistant-stubs/components/litterrobot/vacuum.pyi +2 -4
  313. homeassistant-stubs/components/lock/__init__.pyi +4 -3
  314. homeassistant-stubs/components/logbook/processor.pyi +4 -3
  315. homeassistant-stubs/components/london_underground/sensor.pyi +2 -1
  316. homeassistant-stubs/components/mastodon/notify.pyi +2 -1
  317. homeassistant-stubs/components/matrix/notify.pyi +2 -1
  318. homeassistant-stubs/components/matter/binary_sensor.pyi +1 -1
  319. homeassistant-stubs/components/matter/discovery.pyi +3 -3
  320. homeassistant-stubs/components/matter/entity.pyi +8 -1
  321. homeassistant-stubs/components/matter/event.pyi +0 -2
  322. homeassistant-stubs/components/matter/fan.pyi +2 -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/overkiz/water_heater.pyi +2 -1
  384. homeassistant-stubs/components/overkiz/water_heater_entities/__init__.pyi +2 -0
  385. homeassistant-stubs/components/overkiz/water_heater_entities/atlantic_domestic_hot_water_production_mlb_component.pyi +32 -0
  386. homeassistant-stubs/components/ping/binary_sensor.pyi +2 -8
  387. homeassistant-stubs/components/ping/config_flow.pyi +2 -4
  388. homeassistant-stubs/components/ping/device_tracker.pyi +4 -14
  389. homeassistant-stubs/components/plugwise/button.pyi +20 -0
  390. homeassistant-stubs/components/plugwise/const.pyi +3 -0
  391. homeassistant-stubs/components/plugwise/coordinator.pyi +5 -3
  392. homeassistant-stubs/components/plugwise/number.pyi +2 -4
  393. homeassistant-stubs/components/plugwise/select.pyi +3 -5
  394. homeassistant-stubs/components/prometheus/__init__.pyi +1 -1
  395. homeassistant-stubs/components/proximity/config_flow.pyi +2 -1
  396. homeassistant-stubs/components/radarr/__init__.pyi +14 -2
  397. homeassistant-stubs/components/radarr/binary_sensor.pyi +3 -4
  398. homeassistant-stubs/components/radarr/calendar.pyi +2 -4
  399. homeassistant-stubs/components/radarr/config_flow.pyi +3 -4
  400. homeassistant-stubs/components/radarr/coordinator.pyi +2 -2
  401. homeassistant-stubs/components/radarr/sensor.pyi +2 -4
  402. homeassistant-stubs/components/rainmachine/switch.pyi +1 -0
  403. homeassistant-stubs/components/recorder/const.pyi +3 -1
  404. homeassistant-stubs/components/recorder/core.pyi +2 -2
  405. homeassistant-stubs/components/recorder/db_schema.pyi +3 -1
  406. homeassistant-stubs/components/recorder/purge.pyi +1 -1
  407. homeassistant-stubs/components/recorder/statistics.pyi +7 -4
  408. homeassistant-stubs/components/recorder/table_managers/event_data.pyi +3 -3
  409. homeassistant-stubs/components/recorder/table_managers/event_types.pyi +1 -1
  410. homeassistant-stubs/components/recorder/table_managers/state_attributes.pyi +3 -3
  411. homeassistant-stubs/components/recorder/table_managers/states_meta.pyi +1 -1
  412. homeassistant-stubs/components/recorder/util.pyi +4 -3
  413. homeassistant-stubs/components/remote/__init__.pyi +5 -4
  414. homeassistant-stubs/components/rest/binary_sensor.pyi +2 -1
  415. homeassistant-stubs/components/rest/notify.pyi +2 -1
  416. homeassistant-stubs/components/rest/sensor.pyi +2 -1
  417. homeassistant-stubs/components/rest/switch.pyi +2 -1
  418. homeassistant-stubs/components/rfxtrx/config_flow.pyi +1 -0
  419. homeassistant-stubs/components/roborock/__init__.pyi +30 -0
  420. homeassistant-stubs/components/roborock/binary_sensor.pyi +29 -0
  421. homeassistant-stubs/components/roborock/button.pyi +28 -0
  422. homeassistant-stubs/components/roborock/config_flow.pyi +30 -0
  423. homeassistant-stubs/components/roborock/const.pyi +13 -0
  424. homeassistant-stubs/components/roborock/coordinator.pyi +47 -0
  425. homeassistant-stubs/components/roborock/device.pyi +53 -0
  426. homeassistant-stubs/components/roborock/diagnostics.pyi +13 -0
  427. homeassistant-stubs/components/roborock/image.pyi +37 -0
  428. homeassistant-stubs/components/roborock/models.pyi +27 -0
  429. homeassistant-stubs/components/roborock/number.pyi +35 -0
  430. homeassistant-stubs/components/roborock/select.pyi +37 -0
  431. homeassistant-stubs/components/roborock/sensor.pyi +47 -0
  432. homeassistant-stubs/components/roborock/switch.pyi +37 -0
  433. homeassistant-stubs/components/roborock/time.pyi +38 -0
  434. homeassistant-stubs/components/roborock/vacuum.pyi +39 -0
  435. homeassistant-stubs/components/roku/media_player.pyi +2 -1
  436. homeassistant-stubs/components/schedule/__init__.pyi +5 -5
  437. homeassistant-stubs/components/select/__init__.pyi +3 -1
  438. homeassistant-stubs/components/sensor/__init__.pyi +3 -1
  439. homeassistant-stubs/components/sensor/const.pyi +3 -2
  440. homeassistant-stubs/components/sensor/device_condition.pyi +1 -0
  441. homeassistant-stubs/components/sensor/device_trigger.pyi +1 -0
  442. homeassistant-stubs/components/shelly/__init__.pyi +1 -2
  443. homeassistant-stubs/components/shelly/climate.pyi +3 -0
  444. homeassistant-stubs/components/shelly/const.pyi +0 -1
  445. homeassistant-stubs/components/shelly/coordinator.pyi +3 -2
  446. homeassistant-stubs/components/shelly/switch.pyi +2 -18
  447. homeassistant-stubs/components/shelly/valve.pyi +1 -1
  448. homeassistant-stubs/components/simplisafe/alarm_control_panel.pyi +4 -5
  449. homeassistant-stubs/components/siren/__init__.pyi +4 -3
  450. homeassistant-stubs/components/sql/sensor.pyi +2 -1
  451. homeassistant-stubs/components/starlink/const.pyi +1 -0
  452. homeassistant-stubs/components/starlink/device_tracker.pyi +6 -2
  453. homeassistant-stubs/components/statistics/__init__.pyi +8 -1
  454. homeassistant-stubs/components/statistics/config_flow.pyi +23 -0
  455. homeassistant-stubs/components/statistics/sensor.pyi +7 -2
  456. homeassistant-stubs/components/stream/fmp4utils.pyi +2 -2
  457. homeassistant-stubs/components/stream/worker.pyi +3 -2
  458. homeassistant-stubs/components/streamlabswater/__init__.pyi +1 -6
  459. homeassistant-stubs/components/streamlabswater/config_flow.pyi +0 -1
  460. homeassistant-stubs/components/suez_water/config_flow.pyi +0 -1
  461. homeassistant-stubs/components/suez_water/sensor.pyi +3 -8
  462. homeassistant-stubs/components/switch/__init__.pyi +4 -3
  463. homeassistant-stubs/components/switch/light.pyi +2 -1
  464. homeassistant-stubs/components/switcher_kis/__init__.pyi +3 -0
  465. homeassistant-stubs/components/switcher_kis/switch.pyi +3 -2
  466. homeassistant-stubs/components/synology_dsm/config_flow.pyi +2 -2
  467. homeassistant-stubs/components/systemmonitor/config_flow.pyi +0 -2
  468. homeassistant-stubs/components/systemmonitor/sensor.pyi +4 -7
  469. homeassistant-stubs/components/tag/__init__.pyi +4 -5
  470. homeassistant-stubs/components/tami4/__init__.pyi +1 -1
  471. homeassistant-stubs/components/tami4/coordinator.pyi +3 -5
  472. homeassistant-stubs/components/tami4/sensor.pyi +3 -3
  473. homeassistant-stubs/components/tautulli/__init__.pyi +3 -2
  474. homeassistant-stubs/components/tautulli/coordinator.pyi +2 -2
  475. homeassistant-stubs/components/tautulli/sensor.pyi +3 -3
  476. homeassistant-stubs/components/threshold/__init__.pyi +2 -1
  477. homeassistant-stubs/components/threshold/binary_sensor.pyi +11 -3
  478. homeassistant-stubs/components/threshold/config_flow.pyi +8 -0
  479. homeassistant-stubs/components/tibber/__init__.pyi +1 -0
  480. homeassistant-stubs/components/tibber/sensor.pyi +12 -6
  481. homeassistant-stubs/components/tibber/services.pyi +15 -0
  482. homeassistant-stubs/components/time_date/sensor.pyi +3 -3
  483. homeassistant-stubs/components/timer/__init__.pyi +2 -2
  484. homeassistant-stubs/components/todo/__init__.pyi +3 -2
  485. homeassistant-stubs/components/tplink/__init__.pyi +14 -8
  486. homeassistant-stubs/components/tplink/binary_sensor.pyi +22 -0
  487. homeassistant-stubs/components/tplink/button.pyi +22 -0
  488. homeassistant-stubs/components/tplink/climate.pyi +42 -0
  489. homeassistant-stubs/components/tplink/config_flow.pyi +5 -5
  490. homeassistant-stubs/components/tplink/const.pyi +5 -1
  491. homeassistant-stubs/components/tplink/coordinator.pyi +2 -2
  492. homeassistant-stubs/components/tplink/diagnostics.pyi +2 -4
  493. homeassistant-stubs/components/tplink/entity.pyi +49 -7
  494. homeassistant-stubs/components/tplink/fan.pyi +31 -0
  495. homeassistant-stubs/components/tplink/light.pyi +20 -19
  496. homeassistant-stubs/components/tplink/number.pyi +27 -0
  497. homeassistant-stubs/components/tplink/select.pyi +26 -0
  498. homeassistant-stubs/components/tplink/sensor.pyi +12 -23
  499. homeassistant-stubs/components/tplink/switch.pyi +12 -35
  500. homeassistant-stubs/components/tplink_omada/controller.pyi +4 -15
  501. homeassistant-stubs/components/tplink_omada/coordinator.pyi +20 -1
  502. homeassistant-stubs/components/tplink_omada/device_tracker.pyi +36 -0
  503. homeassistant-stubs/components/transmission/__init__.pyi +9 -3
  504. homeassistant-stubs/components/transmission/sensor.pyi +2 -2
  505. homeassistant-stubs/components/transmission/switch.pyi +2 -4
  506. homeassistant-stubs/components/trend/__init__.pyi +2 -1
  507. homeassistant-stubs/components/trend/binary_sensor.pyi +6 -2
  508. homeassistant-stubs/components/tts/notify.pyi +2 -1
  509. homeassistant-stubs/components/unifi/config_flow.pyi +1 -1
  510. homeassistant-stubs/components/unifi/sensor.pyi +2 -1
  511. homeassistant-stubs/components/unifi/services.pyi +1 -0
  512. homeassistant-stubs/components/unifiprotect/__init__.pyi +8 -9
  513. homeassistant-stubs/components/unifiprotect/binary_sensor.pyi +29 -21
  514. homeassistant-stubs/components/unifiprotect/button.pyi +8 -9
  515. homeassistant-stubs/components/unifiprotect/camera.pyi +10 -10
  516. homeassistant-stubs/components/unifiprotect/const.pyi +0 -1
  517. homeassistant-stubs/components/unifiprotect/data.pyi +27 -14
  518. homeassistant-stubs/components/unifiprotect/diagnostics.pyi +2 -4
  519. homeassistant-stubs/components/unifiprotect/entity.pyi +27 -17
  520. homeassistant-stubs/components/unifiprotect/light.pyi +3 -6
  521. homeassistant-stubs/components/unifiprotect/lock.pyi +3 -8
  522. homeassistant-stubs/components/unifiprotect/media_player.pyi +4 -8
  523. homeassistant-stubs/components/unifiprotect/media_source.pyi +2 -3
  524. homeassistant-stubs/components/unifiprotect/migrate.pyi +5 -5
  525. homeassistant-stubs/components/unifiprotect/models.pyi +16 -17
  526. homeassistant-stubs/components/unifiprotect/number.pyi +8 -12
  527. homeassistant-stubs/components/unifiprotect/repairs.pyi +5 -3
  528. homeassistant-stubs/components/unifiprotect/select.pyi +9 -11
  529. homeassistant-stubs/components/unifiprotect/sensor.pyi +25 -23
  530. homeassistant-stubs/components/unifiprotect/services.pyi +0 -4
  531. homeassistant-stubs/components/unifiprotect/switch.pyi +15 -24
  532. homeassistant-stubs/components/unifiprotect/text.pyi +8 -11
  533. homeassistant-stubs/components/unifiprotect/utils.pyi +6 -11
  534. homeassistant-stubs/components/unifiprotect/views.pyi +2 -4
  535. homeassistant-stubs/components/update/__init__.pyi +3 -1
  536. homeassistant-stubs/components/vacuum/__init__.pyi +2 -1
  537. homeassistant-stubs/components/vallox/sensor.pyi +5 -1
  538. homeassistant-stubs/components/valve/__init__.pyi +3 -2
  539. homeassistant-stubs/components/water_heater/__init__.pyi +4 -3
  540. homeassistant-stubs/components/weather/__init__.pyi +4 -5
  541. homeassistant-stubs/components/webhook/__init__.pyi +1 -1
  542. homeassistant-stubs/components/webostv/__init__.pyi +7 -0
  543. homeassistant-stubs/components/websocket_api/__init__.pyi +3 -4
  544. homeassistant-stubs/components/websocket_api/decorators.pyi +2 -1
  545. homeassistant-stubs/components/wemo/entity.pyi +2 -2
  546. homeassistant-stubs/components/wemo/fan.pyi +2 -1
  547. homeassistant-stubs/components/withings/coordinator.pyi +3 -3
  548. homeassistant-stubs/components/withings/sensor.pyi +6 -2
  549. homeassistant-stubs/components/worldclock/sensor.pyi +2 -1
  550. homeassistant-stubs/components/xiaomi_ble/sensor.pyi +1 -1
  551. homeassistant-stubs/components/zone/__init__.pyi +3 -3
  552. homeassistant-stubs/components/zwave_js/__init__.pyi +1 -1
  553. homeassistant-stubs/components/zwave_js/api.pyi +1 -5
  554. homeassistant-stubs/components/zwave_js/config_flow.pyi +8 -1
  555. homeassistant-stubs/components/zwave_js/const.pyi +5 -0
  556. homeassistant-stubs/components/zwave_js/discovery.pyi +4 -4
  557. homeassistant-stubs/components/zwave_js/helpers.pyi +2 -2
  558. homeassistant-stubs/components/zwave_js/sensor.pyi +2 -0
  559. homeassistant-stubs/components/zwave_js/services.pyi +3 -2
  560. homeassistant-stubs/config.pyi +4 -5
  561. homeassistant-stubs/config_entries.pyi +6 -3
  562. homeassistant-stubs/const.pyi +9 -3
  563. homeassistant-stubs/core.pyi +15 -10
  564. homeassistant-stubs/data_entry_flow.pyi +12 -2
  565. homeassistant-stubs/exceptions.pyi +6 -5
  566. homeassistant-stubs/helpers/__init__.pyi +0 -5
  567. homeassistant-stubs/helpers/collection.pyi +14 -11
  568. homeassistant-stubs/helpers/condition.pyi +3 -2
  569. homeassistant-stubs/helpers/config_validation.pyi +5 -4
  570. homeassistant-stubs/helpers/deprecation.pyi +10 -0
  571. homeassistant-stubs/helpers/device.pyi +8 -0
  572. homeassistant-stubs/helpers/device_registry.pyi +14 -2
  573. homeassistant-stubs/helpers/entity.pyi +3 -2
  574. homeassistant-stubs/helpers/entity_component.pyi +3 -4
  575. homeassistant-stubs/helpers/entity_platform.pyi +2 -3
  576. homeassistant-stubs/helpers/event.pyi +10 -4
  577. homeassistant-stubs/helpers/frame.pyi +1 -0
  578. homeassistant-stubs/helpers/http.pyi +1 -1
  579. homeassistant-stubs/helpers/intent.pyi +6 -4
  580. homeassistant-stubs/helpers/llm.pyi +17 -3
  581. homeassistant-stubs/helpers/schema_config_entry_flow.pyi +2 -2
  582. homeassistant-stubs/helpers/script.pyi +3 -2
  583. homeassistant-stubs/helpers/selector.pyi +10 -8
  584. homeassistant-stubs/helpers/service.pyi +6 -3
  585. homeassistant-stubs/helpers/template.pyi +8 -6
  586. homeassistant-stubs/helpers/trace.pyi +3 -2
  587. homeassistant-stubs/helpers/typing.pyi +6 -1
  588. homeassistant-stubs/helpers/update_coordinator.pyi +3 -3
  589. homeassistant-stubs/loader.pyi +1 -2
  590. homeassistant-stubs/requirements.pyi +0 -3
  591. homeassistant-stubs/setup.pyi +4 -3
  592. homeassistant-stubs/util/loop.pyi +5 -1
  593. homeassistant-stubs/util/unit_conversion.pyi +7 -1
  594. {homeassistant_stubs-2024.6.4.dist-info → homeassistant_stubs-2024.7.0.dist-info}/METADATA +2 -2
  595. {homeassistant_stubs-2024.6.4.dist-info → homeassistant_stubs-2024.7.0.dist-info}/RECORD +597 -560
  596. homeassistant-stubs/auth/providers/legacy_api_password.pyi +0 -30
  597. homeassistant-stubs/components/air_quality/group.pyi +0 -5
  598. homeassistant-stubs/components/aladdin_connect/api.pyi +0 -12
  599. homeassistant-stubs/components/aladdin_connect/application_credentials.pyi +0 -5
  600. homeassistant-stubs/components/aladdin_connect/const.pyi +0 -3
  601. homeassistant-stubs/components/aladdin_connect/coordinator.pyi +0 -15
  602. homeassistant-stubs/components/aladdin_connect/cover.pyi +0 -25
  603. homeassistant-stubs/components/aladdin_connect/entity.pyi +0 -12
  604. homeassistant-stubs/components/aladdin_connect/sensor.pyi +0 -27
  605. homeassistant-stubs/components/alarm_control_panel/group.pyi +0 -6
  606. homeassistant-stubs/components/climate/group.pyi +0 -6
  607. homeassistant-stubs/components/cover/group.pyi +0 -6
  608. homeassistant-stubs/components/device_tracker/group.pyi +0 -6
  609. homeassistant-stubs/components/fastdotcom/services.pyi +0 -7
  610. homeassistant-stubs/components/lock/group.pyi +0 -6
  611. homeassistant-stubs/components/media_player/group.pyi +0 -6
  612. homeassistant-stubs/components/sensor/group.pyi +0 -5
  613. homeassistant-stubs/components/vacuum/group.pyi +0 -6
  614. homeassistant-stubs/components/water_heater/group.pyi +0 -6
  615. homeassistant-stubs/components/weather/group.pyi +0 -5
  616. homeassistant-stubs/components/wled/binary_sensor.pyi +0 -20
  617. {homeassistant_stubs-2024.6.4.dist-info → homeassistant_stubs-2024.7.0.dist-info}/LICENSE +0 -0
  618. {homeassistant_stubs-2024.6.4.dist-info → homeassistant_stubs-2024.7.0.dist-info}/WHEEL +0 -0
@@ -1,9 +1,10 @@
1
1
  from .core import Context as Context
2
2
  from .util.event_type import EventType as EventType
3
3
  from _typeshed import Incomplete
4
- from collections.abc import Callable as Callable, Generator, Sequence
4
+ from collections.abc import Callable as Callable, Sequence
5
5
  from dataclasses import dataclass
6
6
  from typing import Any
7
+ from typing_extensions import Generator
7
8
 
8
9
  _function_cache: dict[str, Callable[[str, str, dict[str, str] | None], str]]
9
10
 
@@ -34,14 +35,14 @@ class ConditionError(HomeAssistantError):
34
35
  type: str
35
36
  @staticmethod
36
37
  def _indent(indent: int, message: str) -> str: ...
37
- def output(self, indent: int) -> Generator[str, None, None]: ...
38
+ def output(self, indent: int) -> Generator[str]: ...
38
39
  def __str__(self) -> str: ...
39
40
  def __init__(self, type) -> None: ...
40
41
 
41
42
  @dataclass(slots=True)
42
43
  class ConditionErrorMessage(ConditionError):
43
44
  message: str
44
- def output(self, indent: int) -> Generator[str, None, None]: ...
45
+ def output(self, indent: int) -> Generator[str]: ...
45
46
  def __init__(self, type, message) -> None: ...
46
47
 
47
48
  @dataclass(slots=True)
@@ -49,13 +50,13 @@ class ConditionErrorIndex(ConditionError):
49
50
  index: int
50
51
  total: int
51
52
  error: ConditionError
52
- def output(self, indent: int) -> Generator[str, None, None]: ...
53
+ def output(self, indent: int) -> Generator[str]: ...
53
54
  def __init__(self, type, index, total, error) -> None: ...
54
55
 
55
56
  @dataclass(slots=True)
56
57
  class ConditionErrorContainer(ConditionError):
57
58
  errors: Sequence[ConditionError]
58
- def output(self, indent: int) -> Generator[str, None, None]: ...
59
+ def output(self, indent: int) -> Generator[str]: ...
59
60
  def __init__(self, type, errors) -> None: ...
60
61
 
61
62
  class IntegrationError(HomeAssistantError):
@@ -1,5 +0,0 @@
1
- from .typing import ConfigType as ConfigType
2
- from collections.abc import Iterable, Sequence
3
-
4
- def config_per_platform(config: ConfigType, domain: str) -> Iterable[tuple[str | None, ConfigType]]: ...
5
- def extract_domain_configs(config: ConfigType, domain: str) -> Sequence[str]: ...
@@ -4,14 +4,14 @@ from . import entity_registry as entity_registry
4
4
  from .entity import Entity as Entity
5
5
  from .entity_component import EntityComponent as EntityComponent
6
6
  from .storage import Store as Store
7
- from .typing import ConfigType as ConfigType
7
+ from .typing import ConfigType as ConfigType, VolDictType as VolDictType
8
8
  from _typeshed import Incomplete
9
9
  from abc import ABC, abstractmethod
10
10
  from collections.abc import Awaitable, Callable, Iterable
11
11
  from dataclasses import dataclass
12
12
  from homeassistant.components import websocket_api as websocket_api
13
13
  from homeassistant.const import CONF_ID as CONF_ID
14
- from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
14
+ from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, HomeAssistant as HomeAssistant, callback as callback
15
15
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
16
16
  from homeassistant.util import slugify as slugify
17
17
  from typing import Any, Generic, TypedDict
@@ -25,13 +25,13 @@ CHANGE_REMOVED: str
25
25
  _EntityT = TypeVar('_EntityT', bound=Entity, default=Entity)
26
26
 
27
27
  @dataclass(slots=True)
28
- class CollectionChangeSet:
28
+ class CollectionChange:
29
29
  change_type: str
30
30
  item_id: str
31
31
  item: Any
32
32
  def __init__(self, change_type, item_id, item) -> None: ...
33
33
  ChangeListener = Callable[[str, str, dict], Awaitable[None]]
34
- ChangeSetListener = Callable[[Iterable[CollectionChangeSet]], Awaitable[None]]
34
+ ChangeSetListener = Callable[[Iterable[CollectionChange]], Awaitable[None]]
35
35
 
36
36
  class CollectionError(HomeAssistantError): ...
37
37
 
@@ -65,7 +65,7 @@ class ObservableCollection(ABC):
65
65
  def async_items(self) -> list[_ItemT]: ...
66
66
  def async_add_listener(self, listener: ChangeListener) -> Callable[[], None]: ...
67
67
  def async_add_change_set_listener(self, listener: ChangeSetListener) -> Callable[[], None]: ...
68
- async def notify_changes(self, change_sets: Iterable[CollectionChangeSet]) -> None: ...
68
+ async def notify_changes(self, change_set: Iterable[CollectionChange]) -> None: ...
69
69
 
70
70
  class YamlCollection(ObservableCollection[dict]):
71
71
  logger: Incomplete
@@ -129,10 +129,10 @@ class _CollectionLifeCycle(Generic[_EntityT]):
129
129
  entities: dict[str, CollectionEntity]
130
130
  def async_setup(self) -> None: ...
131
131
  def _entity_removed(self, item_id: str) -> None: ...
132
- def _add_entity(self, change_set: CollectionChangeSet) -> CollectionEntity: ...
133
- async def _remove_entity(self, change_set: CollectionChangeSet) -> None: ...
134
- async def _update_entity(self, change_set: CollectionChangeSet) -> None: ...
135
- async def _collection_changed(self, change_sets: Iterable[CollectionChangeSet]) -> None: ...
132
+ def _add_entity(self, change_set: CollectionChange) -> CollectionEntity: ...
133
+ async def _remove_entity(self, change_set: CollectionChange) -> None: ...
134
+ async def _update_entity(self, change_set: CollectionChange) -> None: ...
135
+ async def _collection_changed(self, change_set: Iterable[CollectionChange]) -> None: ...
136
136
  def __init__(self, domain, platform, entity_component, collection, entity_class, ent_reg, entities) -> None: ...
137
137
 
138
138
  def sync_entity_lifecycle(hass: HomeAssistant, domain: str, platform: str, entity_component: EntityComponent[_EntityT], collection: StorageCollection | YamlCollection, entity_class: type[CollectionEntity]) -> None: ...
@@ -143,12 +143,15 @@ class StorageCollectionWebsocket:
143
143
  model_name: Incomplete
144
144
  create_schema: Incomplete
145
145
  update_schema: Incomplete
146
- def __init__(self, storage_collection: _StorageCollectionT, api_prefix: str, model_name: str, create_schema: dict, update_schema: dict) -> None: ...
146
+ _remove_subscription: Incomplete
147
+ _subscribers: Incomplete
148
+ def __init__(self, storage_collection: _StorageCollectionT, api_prefix: str, model_name: str, create_schema: VolDictType, update_schema: VolDictType) -> None: ...
147
149
  @property
148
150
  def item_id_key(self) -> str: ...
149
- def async_setup(self, hass: HomeAssistant, *, create_list: bool = True, create_create: bool = True) -> None: ...
151
+ def async_setup(self, hass: HomeAssistant) -> None: ...
150
152
  def ws_list_item(self, hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict) -> None: ...
151
153
  async def ws_create_item(self, hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict) -> None: ...
154
+ def _ws_subscribe(self, hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict) -> None: ...
152
155
  async def ws_update_item(self, hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict) -> None: ...
153
156
  async def ws_delete_item(self, hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict) -> None: ...
154
157
 
@@ -4,7 +4,7 @@ from .template import Template as Template, render_complex as render_complex
4
4
  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
5
  from .typing import ConfigType as ConfigType, TemplateVarsType as TemplateVarsType
6
6
  from _typeshed import Incomplete
7
- from collections.abc import Container, Generator
7
+ from collections.abc import Container
8
8
  from datetime import time as dt_time, timedelta
9
9
  from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass
10
10
  from homeassistant.const import ATTR_DEVICE_CLASS as ATTR_DEVICE_CLASS, ATTR_GPS_ACCURACY as ATTR_GPS_ACCURACY, ATTR_LATITUDE as ATTR_LATITUDE, ATTR_LONGITUDE as ATTR_LONGITUDE, CONF_ABOVE as CONF_ABOVE, CONF_AFTER as CONF_AFTER, CONF_ATTRIBUTE as CONF_ATTRIBUTE, CONF_BEFORE as CONF_BEFORE, CONF_BELOW as CONF_BELOW, CONF_CONDITION as CONF_CONDITION, CONF_DEVICE_ID as CONF_DEVICE_ID, CONF_ENABLED as CONF_ENABLED, CONF_ENTITY_ID as CONF_ENTITY_ID, CONF_FOR as CONF_FOR, CONF_ID as CONF_ID, CONF_MATCH as CONF_MATCH, CONF_STATE as CONF_STATE, CONF_VALUE_TEMPLATE as CONF_VALUE_TEMPLATE, CONF_WEEKDAY as CONF_WEEKDAY, CONF_ZONE as CONF_ZONE, ENTITY_MATCH_ALL as ENTITY_MATCH_ALL, ENTITY_MATCH_ANY as ENTITY_MATCH_ANY, STATE_UNAVAILABLE as STATE_UNAVAILABLE, STATE_UNKNOWN as STATE_UNKNOWN, SUN_EVENT_SUNRISE as SUN_EVENT_SUNRISE, SUN_EVENT_SUNSET as SUN_EVENT_SUNSET, WEEKDAYS as WEEKDAYS
@@ -13,6 +13,7 @@ from homeassistant.exceptions import ConditionError as ConditionError, Condition
13
13
  from homeassistant.loader import IntegrationNotFound as IntegrationNotFound, async_get_integration as async_get_integration
14
14
  from homeassistant.util.async_ import run_callback_threadsafe as run_callback_threadsafe
15
15
  from typing import Any, Protocol
16
+ from typing_extensions import Generator
16
17
 
17
18
  ASYNC_FROM_CONFIG_FORMAT: str
18
19
  FROM_CONFIG_FORMAT: str
@@ -30,7 +31,7 @@ ConditionCheckerType: Incomplete
30
31
  def condition_trace_append(variables: TemplateVarsType, path: str) -> TraceElement: ...
31
32
  def condition_trace_set_result(result: bool, **kwargs: Any) -> None: ...
32
33
  def condition_trace_update_result(**kwargs: Any) -> None: ...
33
- def trace_condition(variables: TemplateVarsType) -> Generator[TraceElement, None, None]: ...
34
+ def trace_condition(variables: TemplateVarsType) -> Generator[TraceElement]: ...
34
35
  def trace_condition_function(condition: ConditionCheckerType) -> ConditionCheckerType: ...
35
36
  async def _async_get_condition_platform(hass: HomeAssistant, config: ConfigType) -> ConditionProtocol | None: ...
36
37
  async def async_from_config(hass: HomeAssistant, config: ConfigType) -> ConditionCheckerType: ...
@@ -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]
@@ -12,8 +12,8 @@ from collections import defaultdict
12
12
  from collections.abc import Callable, Coroutine, Iterable, Mapping, Sequence
13
13
  from dataclasses import dataclass
14
14
  from datetime import datetime, timedelta
15
- from homeassistant.const import EVENT_CORE_CONFIG_UPDATE as EVENT_CORE_CONFIG_UPDATE, EVENT_STATE_CHANGED as EVENT_STATE_CHANGED, MATCH_ALL as MATCH_ALL, SUN_EVENT_SUNRISE as SUN_EVENT_SUNRISE, SUN_EVENT_SUNSET as SUN_EVENT_SUNSET
16
- from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, Event as Event, EventStateChangedData as EventStateChangedData, HassJob as HassJob, HassJobType as HassJobType, HomeAssistant as HomeAssistant, State as State, callback as callback, split_entity_id as split_entity_id
15
+ from homeassistant.const import EVENT_CORE_CONFIG_UPDATE as EVENT_CORE_CONFIG_UPDATE, EVENT_STATE_CHANGED as EVENT_STATE_CHANGED, EVENT_STATE_REPORTED as EVENT_STATE_REPORTED, MATCH_ALL as MATCH_ALL, SUN_EVENT_SUNRISE as SUN_EVENT_SUNRISE, SUN_EVENT_SUNSET as SUN_EVENT_SUNSET
16
+ from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, Event as Event, EventStateChangedData as EventStateChangedData, EventStateEventData as EventStateEventData, EventStateReportedData as EventStateReportedData, HassJob as HassJob, HassJobType as HassJobType, HomeAssistant as HomeAssistant, State as State, callback as callback, split_entity_id as split_entity_id
17
17
  from homeassistant.exceptions import TemplateError as TemplateError
18
18
  from homeassistant.loader import bind_hass as bind_hass
19
19
  from homeassistant.util.async_ import run_callback_threadsafe as run_callback_threadsafe
@@ -22,6 +22,7 @@ from homeassistant.util.hass_dict import HassKey as HassKey
22
22
  from typing import Any, Concatenate, Generic, TypeVar
23
23
 
24
24
  _TRACK_STATE_CHANGE_DATA: HassKey[_KeyedEventData[EventStateChangedData]]
25
+ _TRACK_STATE_REPORT_DATA: HassKey[_KeyedEventData[EventStateReportedData]]
25
26
  _TRACK_STATE_ADDED_DOMAIN_DATA: HassKey[_KeyedEventData[EventStateChangedData]]
26
27
  _TRACK_STATE_REMOVED_DOMAIN_DATA: HassKey[_KeyedEventData[EventStateChangedData]]
27
28
  _TRACK_ENTITY_REGISTRY_UPDATED_DATA: HassKey[_KeyedEventData[EventEntityRegistryUpdatedData]]
@@ -33,6 +34,7 @@ _LOGGER: Incomplete
33
34
  RANDOM_MICROSECOND_MIN: int
34
35
  RANDOM_MICROSECOND_MAX: int
35
36
  _TypedDictT = TypeVar('_TypedDictT', bound=Mapping[str, Any])
37
+ _StateEventDataT = TypeVar('_StateEventDataT', bound=EventStateEventData)
36
38
 
37
39
  @dataclass(slots=True, frozen=True)
38
40
  class _KeyedEventTracker(Generic[_TypedDictT]):
@@ -75,12 +77,16 @@ def async_track_state_change(hass: HomeAssistant, entity_ids: str | Iterable[str
75
77
  track_state_change: Incomplete
76
78
 
77
79
  def async_track_state_change_event(hass: HomeAssistant, entity_ids: str | Iterable[str], action: Callable[[Event[EventStateChangedData]], Any], job_type: HassJobType | None = None) -> CALLBACK_TYPE: ...
78
- def _async_dispatch_entity_id_event(hass: HomeAssistant, callbacks: dict[str, list[HassJob[[Event[EventStateChangedData]], Any]]], event: Event[EventStateChangedData]) -> None: ...
79
- def _async_state_change_filter(hass: HomeAssistant, callbacks: dict[str, list[HassJob[[Event[EventStateChangedData]], Any]]], event_data: EventStateChangedData) -> bool: ...
80
+ def _async_dispatch_entity_id_event(hass: HomeAssistant, callbacks: dict[str, list[HassJob[[Event[_StateEventDataT]], Any]]], event: Event[_StateEventDataT]) -> None: ...
81
+ def _async_state_filter(hass: HomeAssistant, callbacks: dict[str, list[HassJob[[Event[_StateEventDataT]], Any]]], event_data: _StateEventDataT) -> bool: ...
80
82
 
81
83
  _KEYED_TRACK_STATE_CHANGE: Incomplete
82
84
 
83
85
  def _async_track_state_change_event(hass: HomeAssistant, entity_ids: str | Iterable[str], action: Callable[[Event[EventStateChangedData]], Any], job_type: HassJobType | None) -> CALLBACK_TYPE: ...
86
+
87
+ _KEYED_TRACK_STATE_REPORT: Incomplete
88
+
89
+ def async_track_state_report_event(hass: HomeAssistant, entity_ids: str | Iterable[str], action: Callable[[Event[EventStateReportedData]], Any], job_type: HassJobType | None = None) -> CALLBACK_TYPE: ...
84
90
  def _remove_empty_listener() -> None: ...
85
91
  def _remove_listener(hass: HomeAssistant, tracker: _KeyedEventTracker[_TypedDictT], keys: Iterable[str], job: HassJob[[Event[_TypedDictT]], Any], callbacks: dict[str, list[HassJob[[Event[_TypedDictT]], Any]]]) -> None: ...
86
92
  def _async_track_event(tracker: _KeyedEventTracker[_TypedDictT], hass: HomeAssistant, keys: str | Iterable[str], action: Callable[[Event[_TypedDictT]], None], job_type: HassJobType | None) -> CALLBACK_TYPE: ...
@@ -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