homeassistant-stubs 2023.7.2__py3-none-any.whl → 2023.8.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (368) hide show
  1. homeassistant-stubs/backports/enum.pyi +1 -9
  2. homeassistant-stubs/backports/functools.pyi +6 -8
  3. homeassistant-stubs/components/accuweather/sensor.pyi +3 -4
  4. homeassistant-stubs/components/accuweather/weather.pyi +3 -1
  5. homeassistant-stubs/components/airzone_cloud/binary_sensor.pyi +8 -1
  6. homeassistant-stubs/components/alarm_control_panel/const.pyi +1 -2
  7. homeassistant-stubs/components/alert/__init__.pyi +4 -4
  8. homeassistant-stubs/components/apcupsd/__init__.pyi +3 -4
  9. homeassistant-stubs/components/apcupsd/binary_sensor.pyi +0 -1
  10. homeassistant-stubs/components/apcupsd/sensor.pyi +0 -1
  11. homeassistant-stubs/components/aseko_pool_live/__init__.pyi +1 -7
  12. homeassistant-stubs/components/aseko_pool_live/binary_sensor.pyi +1 -1
  13. homeassistant-stubs/components/aseko_pool_live/coordinator.pyi +11 -0
  14. homeassistant-stubs/components/aseko_pool_live/entity.pyi +1 -1
  15. homeassistant-stubs/components/aseko_pool_live/sensor.pyi +2 -2
  16. homeassistant-stubs/components/assist_pipeline/pipeline.pyi +1 -1
  17. homeassistant-stubs/components/assist_pipeline/vad.pyi +1 -1
  18. homeassistant-stubs/components/asuswrt/bridge.pyi +78 -0
  19. homeassistant-stubs/components/asuswrt/config_flow.pyi +2 -4
  20. homeassistant-stubs/components/asuswrt/const.pyi +3 -0
  21. homeassistant-stubs/components/asuswrt/router.pyi +8 -30
  22. homeassistant-stubs/components/asuswrt/sensor.pyi +5 -4
  23. homeassistant-stubs/components/bayesian/binary_sensor.pyi +3 -3
  24. homeassistant-stubs/components/binary_sensor/__init__.pyi +1 -1
  25. homeassistant-stubs/components/bluetooth/advertisement_tracker.pyi +1 -0
  26. homeassistant-stubs/components/bluetooth/manager.pyi +1 -0
  27. homeassistant-stubs/components/bluetooth/wrappers.pyi +2 -1
  28. homeassistant-stubs/components/braviatv/const.pyi +1 -1
  29. homeassistant-stubs/components/button/__init__.pyi +1 -1
  30. homeassistant-stubs/components/camera/const.pyi +1 -1
  31. homeassistant-stubs/components/cover/__init__.pyi +1 -2
  32. homeassistant-stubs/components/crownstone/devices.pyi +1 -0
  33. homeassistant-stubs/components/crownstone/light.pyi +1 -1
  34. homeassistant-stubs/components/demo/button.pyi +2 -2
  35. homeassistant-stubs/components/demo/climate.pyi +1 -0
  36. homeassistant-stubs/components/demo/event.pyi +22 -0
  37. homeassistant-stubs/components/demo/sensor.pyi +2 -3
  38. homeassistant-stubs/components/demo/water_heater.pyi +2 -0
  39. homeassistant-stubs/components/demo/weather.pyi +13 -5
  40. homeassistant-stubs/components/derivative/sensor.pyi +3 -3
  41. homeassistant-stubs/components/device_tracker/const.pyi +1 -1
  42. homeassistant-stubs/components/dhcp/__init__.pyi +4 -4
  43. homeassistant-stubs/components/diagnostics/const.pyi +1 -1
  44. homeassistant-stubs/components/dlna_dmr/media_player.pyi +1 -1
  45. homeassistant-stubs/components/dsmr/sensor.pyi +1 -1
  46. homeassistant-stubs/components/dunehd/media_player.pyi +2 -2
  47. homeassistant-stubs/components/electric_kiwi/__init__.pyi +13 -0
  48. homeassistant-stubs/components/electric_kiwi/api.pyi +10 -0
  49. homeassistant-stubs/components/electric_kiwi/application_credentials.pyi +9 -0
  50. homeassistant-stubs/components/electric_kiwi/config_flow.pyi +20 -0
  51. homeassistant-stubs/components/electric_kiwi/const.pyi +7 -0
  52. homeassistant-stubs/components/electric_kiwi/coordinator.pyi +17 -0
  53. homeassistant-stubs/components/electric_kiwi/oauth2.pyi +15 -0
  54. homeassistant-stubs/components/electric_kiwi/sensor.pyi +37 -0
  55. homeassistant-stubs/components/emulated_hue/config.pyi +4 -4
  56. homeassistant-stubs/components/emulated_hue/hue_api.pyi +3 -1
  57. homeassistant-stubs/components/esphome/__init__.pyi +5 -39
  58. homeassistant-stubs/components/esphome/bluetooth/__init__.pyi +5 -4
  59. homeassistant-stubs/components/esphome/bluetooth/cache.pyi +15 -0
  60. homeassistant-stubs/components/esphome/bluetooth/client.pyi +27 -9
  61. homeassistant-stubs/components/esphome/bluetooth/device.pyi +15 -0
  62. homeassistant-stubs/components/esphome/camera.pyi +6 -3
  63. homeassistant-stubs/components/esphome/climate.pyi +1 -0
  64. homeassistant-stubs/components/esphome/config_flow.pyi +2 -2
  65. homeassistant-stubs/components/esphome/const.pyi +8 -0
  66. homeassistant-stubs/components/esphome/domain_data.pyi +4 -14
  67. homeassistant-stubs/components/esphome/entity.pyi +4 -2
  68. homeassistant-stubs/components/esphome/entry_data.pyi +4 -6
  69. homeassistant-stubs/components/esphome/manager.pyi +69 -0
  70. homeassistant-stubs/components/esphome/update.pyi +3 -0
  71. homeassistant-stubs/components/event/__init__.pyi +50 -0
  72. homeassistant-stubs/components/event/const.pyi +3 -0
  73. homeassistant-stubs/components/event/recorder.pyi +4 -0
  74. homeassistant-stubs/components/evil_genius_labs/__init__.pyi +1 -0
  75. homeassistant-stubs/components/evil_genius_labs/light.pyi +1 -2
  76. homeassistant-stubs/components/fastdotcom/sensor.pyi +2 -1
  77. homeassistant-stubs/components/filter/sensor.pyi +4 -4
  78. homeassistant-stubs/components/fitbit/const.pyi +1 -11
  79. homeassistant-stubs/components/fitbit/sensor.pyi +11 -3
  80. homeassistant-stubs/components/fritz/common.pyi +2 -7
  81. homeassistant-stubs/components/fritz/const.pyi +1 -1
  82. homeassistant-stubs/components/fritzbox_callmonitor/config_flow.pyi +1 -1
  83. homeassistant-stubs/components/fritzbox_callmonitor/const.pyi +1 -1
  84. homeassistant-stubs/components/fritzbox_callmonitor/sensor.pyi +1 -1
  85. homeassistant-stubs/components/fronius/__init__.pyi +6 -2
  86. homeassistant-stubs/components/fronius/const.pyi +2 -0
  87. homeassistant-stubs/components/fronius/sensor.pyi +2 -1
  88. homeassistant-stubs/components/frontend/__init__.pyi +4 -2
  89. homeassistant-stubs/components/geo_location/trigger.pyi +3 -3
  90. homeassistant-stubs/components/group/__init__.pyi +5 -4
  91. homeassistant-stubs/components/group/binary_sensor.pyi +3 -3
  92. homeassistant-stubs/components/group/cover.pyi +4 -4
  93. homeassistant-stubs/components/group/fan.pyi +4 -4
  94. homeassistant-stubs/components/group/light.pyi +3 -3
  95. homeassistant-stubs/components/group/lock.pyi +3 -3
  96. homeassistant-stubs/components/group/media_player.pyi +4 -2
  97. homeassistant-stubs/components/group/sensor.pyi +3 -3
  98. homeassistant-stubs/components/group/switch.pyi +3 -3
  99. homeassistant-stubs/components/guardian/__init__.pyi +0 -2
  100. homeassistant-stubs/components/history/websocket_api.pyi +2 -1
  101. homeassistant-stubs/components/homeassistant_hardware/silabs_multiprotocol_addon.pyi +3 -0
  102. homeassistant-stubs/components/homekit/accessories.pyi +6 -5
  103. homeassistant-stubs/components/homekit/util.pyi +4 -2
  104. homeassistant-stubs/components/http/__init__.pyi +7 -0
  105. homeassistant-stubs/components/hydrawise/binary_sensor.pyi +1 -1
  106. homeassistant-stubs/components/hydrawise/coordinator.pyi +2 -2
  107. homeassistant-stubs/components/hydrawise/sensor.pyi +1 -1
  108. homeassistant-stubs/components/hydrawise/switch.pyi +1 -1
  109. homeassistant-stubs/components/image/__init__.pyi +2 -0
  110. homeassistant-stubs/components/image_processing/__init__.pyi +1 -1
  111. homeassistant-stubs/components/imap/__init__.pyi +1 -1
  112. homeassistant-stubs/components/imap/config_flow.pyi +1 -1
  113. homeassistant-stubs/components/imap/const.pyi +1 -0
  114. homeassistant-stubs/components/imap/coordinator.pyi +5 -1
  115. homeassistant-stubs/components/input_button/__init__.pyi +1 -1
  116. homeassistant-stubs/components/input_select/__init__.pyi +1 -2
  117. homeassistant-stubs/components/integration/sensor.pyi +4 -5
  118. homeassistant-stubs/components/isy994/climate.pyi +1 -0
  119. homeassistant-stubs/components/jellyfin/__init__.pyi +2 -0
  120. homeassistant-stubs/components/jellyfin/coordinator.pyi +2 -0
  121. homeassistant-stubs/components/jellyfin/media_source.pyi +1 -1
  122. homeassistant-stubs/components/kaleidescape/entity.pyi +2 -2
  123. homeassistant-stubs/components/kaleidescape/media_player.pyi +1 -0
  124. homeassistant-stubs/components/kaleidescape/remote.pyi +1 -0
  125. homeassistant-stubs/components/kaleidescape/sensor.pyi +0 -1
  126. homeassistant-stubs/components/knx/__init__.pyi +1 -1
  127. homeassistant-stubs/components/knx/date.pyi +29 -0
  128. homeassistant-stubs/components/knx/datetime.pyi +26 -0
  129. homeassistant-stubs/components/knx/expose.pyi +4 -4
  130. homeassistant-stubs/components/knx/knx_entity.pyi +0 -1
  131. homeassistant-stubs/components/knx/schema.pyi +10 -0
  132. homeassistant-stubs/components/knx/sensor.pyi +0 -1
  133. homeassistant-stubs/components/knx/telegrams.pyi +10 -3
  134. homeassistant-stubs/components/kraken/const.pyi +0 -12
  135. homeassistant-stubs/components/kraken/sensor.pyi +12 -2
  136. homeassistant-stubs/components/lacrosse_view/sensor.pyi +1 -0
  137. homeassistant-stubs/components/laundrify/binary_sensor.pyi +2 -2
  138. homeassistant-stubs/components/ld2410_ble/binary_sensor.pyi +1 -0
  139. homeassistant-stubs/components/ld2410_ble/sensor.pyi +1 -0
  140. homeassistant-stubs/components/lifx/binary_sensor.pyi +0 -1
  141. homeassistant-stubs/components/lifx/button.pyi +0 -1
  142. homeassistant-stubs/components/lifx/entity.pyi +1 -0
  143. homeassistant-stubs/components/lifx/light.pyi +1 -1
  144. homeassistant-stubs/components/lifx/select.pyi +0 -2
  145. homeassistant-stubs/components/lifx/sensor.pyi +0 -1
  146. homeassistant-stubs/components/light/__init__.pyi +2 -4
  147. homeassistant-stubs/components/logbook/helpers.pyi +2 -1
  148. homeassistant-stubs/components/logger/helpers.pyi +1 -1
  149. homeassistant-stubs/components/matter/binary_sensor.pyi +1 -1
  150. homeassistant-stubs/components/matter/entity.pyi +1 -1
  151. homeassistant-stubs/components/matter/event.pyi +27 -0
  152. homeassistant-stubs/components/matter/sensor.pyi +1 -1
  153. homeassistant-stubs/components/media_player/__init__.pyi +2 -3
  154. homeassistant-stubs/components/media_player/const.pyi +3 -2
  155. homeassistant-stubs/components/min_max/sensor.pyi +3 -3
  156. homeassistant-stubs/components/mqtt/__init__.pyi +5 -3
  157. homeassistant-stubs/components/mqtt/alarm_control_panel.pyi +1 -0
  158. homeassistant-stubs/components/mqtt/binary_sensor.pyi +1 -0
  159. homeassistant-stubs/components/mqtt/button.pyi +1 -0
  160. homeassistant-stubs/components/mqtt/camera.pyi +1 -0
  161. homeassistant-stubs/components/mqtt/client.pyi +4 -1
  162. homeassistant-stubs/components/mqtt/climate.pyi +2 -3
  163. homeassistant-stubs/components/mqtt/config_integration.pyi +1 -1
  164. homeassistant-stubs/components/mqtt/const.pyi +2 -0
  165. homeassistant-stubs/components/mqtt/cover.pyi +1 -0
  166. homeassistant-stubs/components/mqtt/device_tracker.pyi +1 -0
  167. homeassistant-stubs/components/mqtt/event.pyi +46 -0
  168. homeassistant-stubs/components/mqtt/fan.pyi +1 -0
  169. homeassistant-stubs/components/mqtt/humidifier.pyi +1 -0
  170. homeassistant-stubs/components/mqtt/image.pyi +1 -0
  171. homeassistant-stubs/components/mqtt/light/schema_basic.pyi +1 -0
  172. homeassistant-stubs/components/mqtt/light/schema_json.pyi +1 -0
  173. homeassistant-stubs/components/mqtt/light/schema_template.pyi +1 -0
  174. homeassistant-stubs/components/mqtt/lock.pyi +1 -0
  175. homeassistant-stubs/components/mqtt/mixins.pyi +15 -10
  176. homeassistant-stubs/components/mqtt/models.pyi +4 -4
  177. homeassistant-stubs/components/mqtt/number.pyi +1 -0
  178. homeassistant-stubs/components/mqtt/scene.pyi +4 -4
  179. homeassistant-stubs/components/mqtt/select.pyi +1 -0
  180. homeassistant-stubs/components/mqtt/sensor.pyi +1 -0
  181. homeassistant-stubs/components/mqtt/siren.pyi +3 -2
  182. homeassistant-stubs/components/mqtt/switch.pyi +1 -0
  183. homeassistant-stubs/components/mqtt/tag.pyi +1 -1
  184. homeassistant-stubs/components/mqtt/text.pyi +1 -0
  185. homeassistant-stubs/components/mqtt/update.pyi +1 -0
  186. homeassistant-stubs/components/mqtt/vacuum/__init__.pyi +6 -0
  187. homeassistant-stubs/components/mqtt/vacuum/schema_legacy.pyi +1 -0
  188. homeassistant-stubs/components/mqtt/vacuum/schema_state.pyi +1 -0
  189. homeassistant-stubs/components/mqtt/water_heater.pyi +4 -1
  190. homeassistant-stubs/components/nanoleaf/button.pyi +3 -4
  191. homeassistant-stubs/components/nanoleaf/entity.pyi +1 -0
  192. homeassistant-stubs/components/nanoleaf/light.pyi +1 -1
  193. homeassistant-stubs/components/nest/__init__.pyi +2 -3
  194. homeassistant-stubs/components/nest/camera.pyi +53 -3
  195. homeassistant-stubs/components/nest/climate.pyi +76 -3
  196. homeassistant-stubs/components/nest/config_flow.pyi +0 -23
  197. homeassistant-stubs/components/nest/sensor.pyi +35 -3
  198. homeassistant-stubs/components/notion/const.pyi +1 -0
  199. homeassistant-stubs/components/notion/sensor.pyi +1 -1
  200. homeassistant-stubs/components/number/__init__.pyi +1 -2
  201. homeassistant-stubs/components/number/const.pyi +4 -2
  202. homeassistant-stubs/components/nut/diagnostics.pyi +1 -1
  203. homeassistant-stubs/components/opensky/__init__.pyi +7 -0
  204. homeassistant-stubs/components/opensky/config_flow.pyi +11 -0
  205. homeassistant-stubs/components/opensky/const.pyi +17 -0
  206. homeassistant-stubs/components/opensky/sensor.pyi +7 -17
  207. homeassistant-stubs/components/otbr/websocket_api.pyi +2 -0
  208. homeassistant-stubs/components/persistent_notification/__init__.pyi +1 -1
  209. homeassistant-stubs/components/pi_hole/binary_sensor.pyi +1 -1
  210. homeassistant-stubs/components/pure_energie/sensor.pyi +1 -0
  211. homeassistant-stubs/components/purpleair/__init__.pyi +6 -2
  212. homeassistant-stubs/components/purpleair/config_flow.pyi +7 -3
  213. homeassistant-stubs/components/purpleair/const.pyi +1 -0
  214. homeassistant-stubs/components/qnap_qsw/entity.pyi +1 -1
  215. homeassistant-stubs/components/rainmachine/util.pyi +1 -1
  216. homeassistant-stubs/components/recorder/const.pyi +1 -1
  217. homeassistant-stubs/components/recorder/db_schema.pyi +1 -2
  218. homeassistant-stubs/components/scrape/__init__.pyi +1 -1
  219. homeassistant-stubs/components/scrape/sensor.pyi +10 -6
  220. homeassistant-stubs/components/sensibo/entity.pyi +1 -2
  221. homeassistant-stubs/components/sensor/__init__.pyi +1 -2
  222. homeassistant-stubs/components/sensor/const.pyi +3 -2
  223. homeassistant-stubs/components/sensor/device_condition.pyi +1 -0
  224. homeassistant-stubs/components/sensor/device_trigger.pyi +1 -0
  225. homeassistant-stubs/components/sensor/recorder.pyi +1 -1
  226. homeassistant-stubs/components/senz/climate.pyi +2 -1
  227. homeassistant-stubs/components/sfr_box/binary_sensor.pyi +1 -0
  228. homeassistant-stubs/components/sfr_box/button.pyi +1 -0
  229. homeassistant-stubs/components/sfr_box/sensor.pyi +1 -0
  230. homeassistant-stubs/components/shelly/__init__.pyi +1 -1
  231. homeassistant-stubs/components/shelly/climate.pyi +1 -1
  232. homeassistant-stubs/components/shelly/const.pyi +5 -1
  233. homeassistant-stubs/components/shelly/coordinator.pyi +2 -1
  234. homeassistant-stubs/components/shelly/entity.pyi +0 -4
  235. homeassistant-stubs/components/shelly/logbook.pyi +2 -3
  236. homeassistant-stubs/components/shelly/sensor.pyi +1 -1
  237. homeassistant-stubs/components/shelly/utils.pyi +1 -2
  238. homeassistant-stubs/components/simplisafe/alarm_control_panel.pyi +1 -0
  239. homeassistant-stubs/components/simplisafe/binary_sensor.pyi +0 -1
  240. homeassistant-stubs/components/skybell/light.pyi +1 -0
  241. homeassistant-stubs/components/sql/__init__.pyi +2 -1
  242. homeassistant-stubs/components/sql/config_flow.pyi +3 -1
  243. homeassistant-stubs/components/sql/sensor.pyi +12 -10
  244. homeassistant-stubs/components/ssdp/__init__.pyi +3 -3
  245. homeassistant-stubs/components/statistics/sensor.pyi +3 -3
  246. homeassistant-stubs/components/stookalert/binary_sensor.pyi +1 -0
  247. homeassistant-stubs/components/stream/worker.pyi +1 -2
  248. homeassistant-stubs/components/switch/__init__.pyi +1 -1
  249. homeassistant-stubs/components/switch/light.pyi +3 -3
  250. homeassistant-stubs/components/text/__init__.pyi +1 -1
  251. homeassistant-stubs/components/threshold/binary_sensor.pyi +3 -3
  252. homeassistant-stubs/components/tolo/__init__.pyi +1 -0
  253. homeassistant-stubs/components/tolo/binary_sensor.pyi +2 -2
  254. homeassistant-stubs/components/tolo/button.pyi +1 -1
  255. homeassistant-stubs/components/tolo/climate.pyi +1 -1
  256. homeassistant-stubs/components/tolo/fan.pyi +1 -1
  257. homeassistant-stubs/components/tolo/light.pyi +1 -1
  258. homeassistant-stubs/components/tolo/select.pyi +0 -1
  259. homeassistant-stubs/components/tplink/entity.pyi +1 -1
  260. homeassistant-stubs/components/tplink/light.pyi +1 -0
  261. homeassistant-stubs/components/tplink/sensor.pyi +0 -2
  262. homeassistant-stubs/components/tplink/switch.pyi +10 -1
  263. homeassistant-stubs/components/tractive/__init__.pyi +2 -1
  264. homeassistant-stubs/components/tractive/binary_sensor.pyi +0 -3
  265. homeassistant-stubs/components/tractive/const.pyi +6 -1
  266. homeassistant-stubs/components/tractive/device_tracker.pyi +0 -1
  267. homeassistant-stubs/components/tractive/entity.pyi +1 -0
  268. homeassistant-stubs/components/tractive/sensor.pyi +6 -4
  269. homeassistant-stubs/components/tractive/switch.pyi +0 -1
  270. homeassistant-stubs/components/tradfri/base_class.pyi +1 -1
  271. homeassistant-stubs/components/tradfri/cover.pyi +1 -0
  272. homeassistant-stubs/components/tradfri/fan.pyi +1 -0
  273. homeassistant-stubs/components/tradfri/light.pyi +1 -0
  274. homeassistant-stubs/components/tradfri/sensor.pyi +0 -2
  275. homeassistant-stubs/components/tradfri/switch.pyi +1 -0
  276. homeassistant-stubs/components/trafikverket_train/__init__.pyi +1 -0
  277. homeassistant-stubs/components/trafikverket_train/coordinator.pyi +39 -0
  278. homeassistant-stubs/components/trafikverket_train/sensor.pyi +12 -20
  279. homeassistant-stubs/components/twentemilieu/sensor.pyi +1 -1
  280. homeassistant-stubs/components/unifi/device_tracker.pyi +1 -1
  281. homeassistant-stubs/components/unifi/entity.pyi +8 -5
  282. homeassistant-stubs/components/unifi/image.pyi +37 -0
  283. homeassistant-stubs/components/unifi/sensor.pyi +4 -2
  284. homeassistant-stubs/components/unifi/switch.pyi +3 -2
  285. homeassistant-stubs/components/unifi/update.pyi +1 -1
  286. homeassistant-stubs/components/unifiprotect/entity.pyi +0 -1
  287. homeassistant-stubs/components/unifiprotect/models.pyi +7 -4
  288. homeassistant-stubs/components/unifiprotect/sensor.pyi +0 -3
  289. homeassistant-stubs/components/unifiprotect/utils.pyi +1 -1
  290. homeassistant-stubs/components/update/__init__.pyi +1 -1
  291. homeassistant-stubs/components/uptimerobot/entity.pyi +2 -0
  292. homeassistant-stubs/components/vacuum/__init__.pyi +4 -6
  293. homeassistant-stubs/components/vallox/__init__.pyi +1 -0
  294. homeassistant-stubs/components/vallox/binary_sensor.pyi +0 -1
  295. homeassistant-stubs/components/vallox/fan.pyi +1 -1
  296. homeassistant-stubs/components/vallox/number.pyi +0 -1
  297. homeassistant-stubs/components/vallox/sensor.pyi +0 -1
  298. homeassistant-stubs/components/vallox/switch.pyi +0 -1
  299. homeassistant-stubs/components/vlc_telnet/media_player.pyi +2 -3
  300. homeassistant-stubs/components/wallbox/const.pyi +1 -1
  301. homeassistant-stubs/components/water_heater/__init__.pyi +5 -0
  302. homeassistant-stubs/components/weather/__init__.pyi +18 -4
  303. homeassistant-stubs/components/weather/const.pyi +7 -0
  304. homeassistant-stubs/components/weather/websocket_api.pyi +6 -1
  305. homeassistant-stubs/components/websocket_api/auth.pyi +1 -1
  306. homeassistant-stubs/components/websocket_api/commands.pyi +6 -1
  307. homeassistant-stubs/components/websocket_api/connection.pyi +2 -1
  308. homeassistant-stubs/components/websocket_api/http.pyi +2 -1
  309. homeassistant-stubs/components/wemo/__init__.pyi +10 -4
  310. homeassistant-stubs/components/wemo/binary_sensor.pyi +2 -2
  311. homeassistant-stubs/components/wemo/fan.pyi +2 -2
  312. homeassistant-stubs/components/wemo/light.pyi +1 -1
  313. homeassistant-stubs/components/wemo/models.pyi +21 -0
  314. homeassistant-stubs/components/wemo/sensor.pyi +2 -2
  315. homeassistant-stubs/components/wemo/switch.pyi +2 -2
  316. homeassistant-stubs/components/wemo/wemo_device.pyi +5 -0
  317. homeassistant-stubs/components/wiz/binary_sensor.pyi +0 -1
  318. homeassistant-stubs/components/yalexs_ble/binary_sensor.pyi +0 -1
  319. homeassistant-stubs/components/yalexs_ble/entity.pyi +1 -0
  320. homeassistant-stubs/components/yalexs_ble/lock.pyi +0 -1
  321. homeassistant-stubs/components/zodiac/__init__.pyi +4 -1
  322. homeassistant-stubs/components/zodiac/config_flow.pyi +9 -0
  323. homeassistant-stubs/components/zodiac/const.pyi +1 -0
  324. homeassistant-stubs/components/zodiac/sensor.pyi +9 -4
  325. homeassistant-stubs/components/zone/__init__.pyi +4 -5
  326. homeassistant-stubs/components/zone/trigger.pyi +3 -3
  327. homeassistant-stubs/components/zwave_js/climate.pyi +3 -1
  328. homeassistant-stubs/components/zwave_js/device_action.pyi +3 -1
  329. homeassistant-stubs/components/zwave_js/discovery.pyi +1 -1
  330. homeassistant-stubs/config_entries.pyi +3 -5
  331. homeassistant-stubs/const.pyi +3 -1
  332. homeassistant-stubs/core.pyi +10 -12
  333. homeassistant-stubs/data_entry_flow.pyi +2 -3
  334. homeassistant-stubs/exceptions.pyi +0 -4
  335. homeassistant-stubs/helpers/check_config.pyi +1 -2
  336. homeassistant-stubs/helpers/config_validation.pyi +11 -2
  337. homeassistant-stubs/helpers/device_registry.pyi +32 -8
  338. homeassistant-stubs/helpers/entity.pyi +9 -7
  339. homeassistant-stubs/helpers/entity_platform.pyi +2 -3
  340. homeassistant-stubs/helpers/entity_registry.pyi +15 -2
  341. homeassistant-stubs/helpers/event.pyi +39 -33
  342. homeassistant-stubs/helpers/httpx_client.pyi +4 -2
  343. homeassistant-stubs/helpers/issue_registry.pyi +1 -1
  344. homeassistant-stubs/helpers/restore_state.pyi +1 -2
  345. homeassistant-stubs/helpers/selector.pyi +14 -6
  346. homeassistant-stubs/helpers/service.pyi +1 -1
  347. homeassistant-stubs/helpers/state.pyi +0 -12
  348. homeassistant-stubs/helpers/storage.pyi +1 -0
  349. homeassistant-stubs/helpers/system_info.pyi +8 -1
  350. homeassistant-stubs/helpers/template_entity.pyi +7 -7
  351. homeassistant-stubs/helpers/trace.pyi +1 -0
  352. homeassistant-stubs/helpers/typing.pyi +5 -2
  353. homeassistant-stubs/util/ssl.pyi +1 -1
  354. homeassistant-stubs/util/timeout.pyi +1 -2
  355. {homeassistant_stubs-2023.7.2.dist-info → homeassistant_stubs-2023.8.0.dist-info}/METADATA +3 -4
  356. {homeassistant_stubs-2023.7.2.dist-info → homeassistant_stubs-2023.8.0.dist-info}/RECORD +358 -341
  357. homeassistant-stubs/components/nest/camera_sdm.pyi +0 -58
  358. homeassistant-stubs/components/nest/climate_sdm.pyi +0 -81
  359. homeassistant-stubs/components/nest/legacy/__init__.pyi +0 -62
  360. homeassistant-stubs/components/nest/legacy/binary_sensor.pyi +0 -38
  361. homeassistant-stubs/components/nest/legacy/camera.pyi +0 -45
  362. homeassistant-stubs/components/nest/legacy/climate.pyi +0 -89
  363. homeassistant-stubs/components/nest/legacy/const.pyi +0 -4
  364. homeassistant-stubs/components/nest/legacy/local_auth.pyi +0 -7
  365. homeassistant-stubs/components/nest/legacy/sensor.pyi +0 -54
  366. homeassistant-stubs/components/nest/sensor_sdm.pyi +0 -42
  367. {homeassistant_stubs-2023.7.2.dist-info → homeassistant_stubs-2023.8.0.dist-info}/LICENSE +0 -0
  368. {homeassistant_stubs-2023.7.2.dist-info → homeassistant_stubs-2023.8.0.dist-info}/WHEEL +0 -0
@@ -1,6 +1,5 @@
1
1
  import asyncio
2
2
  from . import data_entry_flow as data_entry_flow, loader as loader
3
- from .backports.enum import StrEnum as StrEnum
4
3
  from .components import persistent_notification as persistent_notification
5
4
  from .components.bluetooth import BluetoothServiceInfoBleak as BluetoothServiceInfoBleak
6
5
  from .components.dhcp import DhcpServiceInfo as DhcpServiceInfo
@@ -24,9 +23,8 @@ from .util.decorator import Registry as Registry
24
23
  from _typeshed import Incomplete
25
24
  from collections.abc import Callable, Coroutine, Generator, Iterable, Mapping
26
25
  from contextvars import ContextVar
27
- from enum import Enum
28
- from typing import Any, TypeVar
29
- from typing_extensions import Self
26
+ from enum import Enum, StrEnum
27
+ from typing import Any, Self, TypeVar
30
28
 
31
29
  _LOGGER: Incomplete
32
30
  SOURCE_BLUETOOTH: str
@@ -124,7 +122,7 @@ class ConfigEntry:
124
122
  def async_cancel_retry_setup(self) -> None: ...
125
123
  async def async_unload(self, hass: HomeAssistant, *, integration: loader.Integration | None = ...) -> bool: ...
126
124
  async def async_remove(self, hass: HomeAssistant) -> None: ...
127
- def async_set_state(self, hass: HomeAssistant, state: ConfigEntryState, reason: str | None) -> None: ...
125
+ def _async_set_state(self, hass: HomeAssistant, state: ConfigEntryState, reason: str | None) -> None: ...
128
126
  async def async_migrate(self, hass: HomeAssistant) -> bool: ...
129
127
  def add_update_listener(self, listener: UpdateListenerType) -> CALLBACK_TYPE: ...
130
128
  def as_dict(self) -> dict[str, Any]: ...
@@ -1,5 +1,5 @@
1
- from .backports.enum import StrEnum as StrEnum
2
1
  from _typeshed import Incomplete
2
+ from enum import StrEnum
3
3
  from typing import Final
4
4
 
5
5
  APPLICATION_NAME: Final[str]
@@ -25,6 +25,7 @@ class Platform(StrEnum):
25
25
  DATE: str
26
26
  DATETIME: str
27
27
  DEVICE_TRACKER: str
28
+ EVENT: str
28
29
  FAN: str
29
30
  GEO_LOCATION: str
30
31
  HUMIDIFIER: str
@@ -726,6 +727,7 @@ SERVER_PORT: Final[int]
726
727
  URL_ROOT: Final[str]
727
728
  URL_API: Final[str]
728
729
  URL_API_STREAM: Final[str]
730
+ URL_API_CORE_STATE: Final[str]
729
731
  URL_API_CONFIG: Final[str]
730
732
  URL_API_STATES: Final[str]
731
733
  URL_API_STATES_ENTITY: Final[str]
@@ -5,7 +5,6 @@ import threading
5
5
  import voluptuous as vol
6
6
  from . import block_async_io as block_async_io, loader as loader, util as util
7
7
  from .auth import AuthManager as AuthManager
8
- from .backports.enum import StrEnum as StrEnum
9
8
  from .components.http import ApiConfig as ApiConfig, HomeAssistantHTTP as HomeAssistantHTTP
10
9
  from .config_entries import ConfigEntries as ConfigEntries
11
10
  from .const import ATTR_DOMAIN as ATTR_DOMAIN, ATTR_FRIENDLY_NAME as ATTR_FRIENDLY_NAME, ATTR_SERVICE as ATTR_SERVICE, ATTR_SERVICE_DATA as ATTR_SERVICE_DATA, COMPRESSED_STATE_ATTRIBUTES as COMPRESSED_STATE_ATTRIBUTES, COMPRESSED_STATE_CONTEXT as COMPRESSED_STATE_CONTEXT, COMPRESSED_STATE_LAST_CHANGED as COMPRESSED_STATE_LAST_CHANGED, COMPRESSED_STATE_LAST_UPDATED as COMPRESSED_STATE_LAST_UPDATED, COMPRESSED_STATE_STATE as COMPRESSED_STATE_STATE, EVENT_CALL_SERVICE as EVENT_CALL_SERVICE, EVENT_CORE_CONFIG_UPDATE as EVENT_CORE_CONFIG_UPDATE, EVENT_HOMEASSISTANT_CLOSE as EVENT_HOMEASSISTANT_CLOSE, EVENT_HOMEASSISTANT_FINAL_WRITE as EVENT_HOMEASSISTANT_FINAL_WRITE, EVENT_HOMEASSISTANT_START as EVENT_HOMEASSISTANT_START, EVENT_HOMEASSISTANT_STARTED as EVENT_HOMEASSISTANT_STARTED, EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP, EVENT_SERVICE_REGISTERED as EVENT_SERVICE_REGISTERED, EVENT_SERVICE_REMOVED as EVENT_SERVICE_REMOVED, EVENT_STATE_CHANGED as EVENT_STATE_CHANGED, LENGTH_METERS as LENGTH_METERS, MATCH_ALL as MATCH_ALL, MAX_LENGTH_EVENT_EVENT_TYPE as MAX_LENGTH_EVENT_EVENT_TYPE, MAX_LENGTH_STATE_STATE as MAX_LENGTH_STATE_STATE, __version__ as __version__
@@ -22,8 +21,7 @@ from .util.ulid import ulid as ulid, ulid_at_time as ulid_at_time
22
21
  from .util.unit_system import METRIC_SYSTEM as METRIC_SYSTEM, UnitSystem as UnitSystem, _CONF_UNIT_SYSTEM_IMPERIAL as _CONF_UNIT_SYSTEM_IMPERIAL, _CONF_UNIT_SYSTEM_US_CUSTOMARY as _CONF_UNIT_SYSTEM_US_CUSTOMARY, get_unit_system as get_unit_system
23
22
  from _typeshed import Incomplete
24
23
  from collections.abc import Awaitable, Callable, Collection, Coroutine, Iterable, Mapping
25
- from typing import Any, Generic, NamedTuple, TypeVar, overload
26
- from typing_extensions import Self
24
+ from typing import Any, Generic, Self, TypeVar, overload
27
25
 
28
26
  STAGE_1_SHUTDOWN_TIMEOUT: int
29
27
  STAGE_2_SHUTDOWN_TIMEOUT: int
@@ -42,7 +40,7 @@ DOMAIN: str
42
40
  BLOCK_LOG_TIMEOUT: int
43
41
  ServiceResponse: Incomplete
44
42
 
45
- class ConfigSource(StrEnum):
43
+ class ConfigSource(enum.StrEnum):
46
44
  DEFAULT: str
47
45
  DISCOVERED: str
48
46
  STORAGE: str
@@ -190,12 +188,10 @@ class Event:
190
188
  def as_dict(self) -> ReadOnlyDict[str, Any]: ...
191
189
  def __repr__(self) -> str: ...
192
190
 
193
- class _FilterableJob(NamedTuple):
194
- job: HassJob[[Event], Coroutine[Any, Any, None] | None]
195
- event_filter: Callable[[Event], bool] | None
196
- run_immediately: bool
191
+ _FilterableJobType: Incomplete
197
192
 
198
193
  class EventBus:
194
+ __slots__: Incomplete
199
195
  _listeners: Incomplete
200
196
  _match_all_listeners: Incomplete
201
197
  _hass: Incomplete
@@ -207,10 +203,10 @@ class EventBus:
207
203
  def async_fire(self, event_type: str, event_data: dict[str, Any] | None = ..., origin: EventOrigin = ..., context: Context | None = ..., time_fired: datetime.datetime | None = ...) -> None: ...
208
204
  def listen(self, event_type: str, listener: Callable[[Event], Coroutine[Any, Any, None] | None]) -> CALLBACK_TYPE: ...
209
205
  def async_listen(self, event_type: str, listener: Callable[[Event], Coroutine[Any, Any, None] | None], event_filter: Callable[[Event], bool] | None = ..., run_immediately: bool = ...) -> CALLBACK_TYPE: ...
210
- def _async_listen_filterable_job(self, event_type: str, filterable_job: _FilterableJob) -> CALLBACK_TYPE: ...
206
+ def _async_listen_filterable_job(self, event_type: str, filterable_job: _FilterableJobType) -> CALLBACK_TYPE: ...
211
207
  def listen_once(self, event_type: str, listener: Callable[[Event], Coroutine[Any, Any, None] | None]) -> CALLBACK_TYPE: ...
212
208
  def async_listen_once(self, event_type: str, listener: Callable[[Event], Coroutine[Any, Any, None] | None]) -> CALLBACK_TYPE: ...
213
- def _async_remove_listener(self, event_type: str, filterable_job: _FilterableJob) -> None: ...
209
+ def _async_remove_listener(self, event_type: str, filterable_job: _FilterableJobType) -> None: ...
214
210
 
215
211
  class State:
216
212
  __slots__: Incomplete
@@ -236,6 +232,7 @@ class State:
236
232
  def __repr__(self) -> str: ...
237
233
 
238
234
  class StateMachine:
235
+ __slots__: Incomplete
239
236
  _states: Incomplete
240
237
  _reservations: Incomplete
241
238
  _bus: Incomplete
@@ -255,7 +252,7 @@ class StateMachine:
255
252
  def async_available(self, entity_id: str) -> bool: ...
256
253
  def async_set(self, entity_id: str, new_state: str, attributes: Mapping[str, Any] | None = ..., force_update: bool = ..., context: Context | None = ...) -> None: ...
257
254
 
258
- class SupportsResponse(StrEnum):
255
+ class SupportsResponse(enum.StrEnum):
259
256
  NONE: str
260
257
  OPTIONAL: str
261
258
  ONLY: str
@@ -278,6 +275,7 @@ class ServiceCall:
278
275
  def __repr__(self) -> str: ...
279
276
 
280
277
  class ServiceRegistry:
278
+ __slots__: Incomplete
281
279
  _services: Incomplete
282
280
  _hass: Incomplete
283
281
  def __init__(self, hass: HomeAssistant) -> None: ...
@@ -292,7 +290,7 @@ class ServiceRegistry:
292
290
  def async_remove(self, domain: str, service: str) -> None: ...
293
291
  def call(self, domain: str, service: str, service_data: dict[str, Any] | None = ..., blocking: bool = ..., context: Context | None = ..., target: dict[str, Any] | None = ..., return_response: bool = ...) -> ServiceResponse: ...
294
292
  async def async_call(self, domain: str, service: str, service_data: dict[str, Any] | None = ..., blocking: bool = ..., context: Context | None = ..., target: dict[str, Any] | None = ..., return_response: bool = ...) -> ServiceResponse: ...
295
- def _run_service_in_background(self, coro_or_task: Coroutine[Any, Any, Any] | asyncio.Task[Any], service_call: ServiceCall) -> None: ...
293
+ async def _run_service_call_catch_exceptions(self, coro_or_task: Coroutine[Any, Any, Any] | asyncio.Task[Any], service_call: ServiceCall) -> None: ...
296
294
  async def _execute_service(self, handler: Service, service_call: ServiceCall) -> ServiceResponse: ...
297
295
 
298
296
  class Config:
@@ -1,13 +1,12 @@
1
1
  import abc
2
2
  import voluptuous as vol
3
- from .backports.enum import StrEnum as StrEnum
4
3
  from .core import HomeAssistant as HomeAssistant, callback as callback
5
4
  from .exceptions import HomeAssistantError as HomeAssistantError
6
5
  from .helpers.frame import report as report
7
6
  from _typeshed import Incomplete
8
7
  from collections.abc import Callable as Callable, Iterable, Mapping
9
- from typing import Any, TypedDict
10
- from typing_extensions import Required
8
+ from enum import StrEnum
9
+ from typing import Any, Required, TypedDict
11
10
 
12
11
  _LOGGER: Incomplete
13
12
 
@@ -66,10 +66,6 @@ class MaxLengthExceeded(HomeAssistantError):
66
66
  max_length: Incomplete
67
67
  def __init__(self, value: str, property_name: str, max_length: int) -> None: ...
68
68
 
69
- class RequiredParameterMissing(HomeAssistantError):
70
- parameter_names: Incomplete
71
- def __init__(self, parameter_names: list[str]) -> None: ...
72
-
73
69
  class DependencyError(HomeAssistantError):
74
70
  failed_dependencies: Incomplete
75
71
  def __init__(self, failed_dependencies: list[str]) -> None: ...
@@ -6,8 +6,7 @@ from homeassistant.config import CONF_CORE as CONF_CORE, CONF_PACKAGES as CONF_P
6
6
  from homeassistant.core import HomeAssistant as HomeAssistant
7
7
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
8
8
  from homeassistant.requirements import RequirementsNotFound as RequirementsNotFound, async_clear_install_history as async_clear_install_history, async_get_integration_with_requirements as async_get_integration_with_requirements
9
- from typing import NamedTuple
10
- from typing_extensions import Self
9
+ from typing import NamedTuple, Self
11
10
 
12
11
  class CheckConfigError(NamedTuple):
13
12
  message: str
@@ -4,7 +4,7 @@ from . import template as template_helper
4
4
  from _typeshed import Incomplete
5
5
  from collections.abc import Callable as Callable, Hashable
6
6
  from datetime import date as date_sys, datetime as datetime_sys, time as time_sys, timedelta
7
- from enum import Enum
7
+ from enum import Enum, StrEnum
8
8
  from homeassistant.const import ATTR_AREA_ID as ATTR_AREA_ID, ATTR_DEVICE_ID as ATTR_DEVICE_ID, ATTR_ENTITY_ID as ATTR_ENTITY_ID, CONF_ABOVE as CONF_ABOVE, CONF_ALIAS as CONF_ALIAS, CONF_ATTRIBUTE as CONF_ATTRIBUTE, CONF_BELOW as CONF_BELOW, CONF_CHOOSE as CONF_CHOOSE, CONF_CONDITION as CONF_CONDITION, CONF_CONDITIONS as CONF_CONDITIONS, CONF_CONTINUE_ON_ERROR as CONF_CONTINUE_ON_ERROR, CONF_CONTINUE_ON_TIMEOUT as CONF_CONTINUE_ON_TIMEOUT, CONF_COUNT as CONF_COUNT, CONF_DEFAULT as CONF_DEFAULT, CONF_DELAY as CONF_DELAY, CONF_DEVICE_ID as CONF_DEVICE_ID, CONF_DOMAIN as CONF_DOMAIN, CONF_ELSE as CONF_ELSE, CONF_ENABLED as CONF_ENABLED, CONF_ENTITY_ID as CONF_ENTITY_ID, CONF_ENTITY_NAMESPACE as CONF_ENTITY_NAMESPACE, CONF_ERROR as CONF_ERROR, CONF_EVENT as CONF_EVENT, CONF_EVENT_DATA as CONF_EVENT_DATA, CONF_EVENT_DATA_TEMPLATE as CONF_EVENT_DATA_TEMPLATE, CONF_FOR as CONF_FOR, CONF_FOR_EACH as CONF_FOR_EACH, CONF_ID as CONF_ID, CONF_IF as CONF_IF, CONF_MATCH as CONF_MATCH, CONF_PARALLEL as CONF_PARALLEL, CONF_PLATFORM as CONF_PLATFORM, CONF_REPEAT as CONF_REPEAT, CONF_RESPONSE_VARIABLE as CONF_RESPONSE_VARIABLE, CONF_SCAN_INTERVAL as CONF_SCAN_INTERVAL, CONF_SCENE as CONF_SCENE, CONF_SEQUENCE as CONF_SEQUENCE, CONF_SERVICE as CONF_SERVICE, CONF_SERVICE_DATA as CONF_SERVICE_DATA, CONF_SERVICE_DATA_TEMPLATE as CONF_SERVICE_DATA_TEMPLATE, CONF_SERVICE_TEMPLATE as CONF_SERVICE_TEMPLATE, CONF_STATE as CONF_STATE, CONF_STOP as CONF_STOP, CONF_TARGET as CONF_TARGET, CONF_THEN as CONF_THEN, CONF_TIMEOUT as CONF_TIMEOUT, CONF_UNTIL as CONF_UNTIL, CONF_VALUE_TEMPLATE as CONF_VALUE_TEMPLATE, CONF_VARIABLES as CONF_VARIABLES, CONF_WAIT_FOR_TRIGGER as CONF_WAIT_FOR_TRIGGER, CONF_WAIT_TEMPLATE as CONF_WAIT_TEMPLATE, CONF_WHILE as CONF_WHILE, ENTITY_MATCH_ALL as ENTITY_MATCH_ALL, ENTITY_MATCH_ANY as ENTITY_MATCH_ANY, ENTITY_MATCH_NONE as ENTITY_MATCH_NONE, SUN_EVENT_SUNRISE as SUN_EVENT_SUNRISE, SUN_EVENT_SUNSET as SUN_EVENT_SUNSET, UnitOfTemperature as UnitOfTemperature, WEEKDAYS as WEEKDAYS
9
9
  from homeassistant.core import HomeAssistant as HomeAssistant, async_get_hass as async_get_hass, split_entity_id as split_entity_id, valid_entity_id as valid_entity_id
10
10
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, TemplateError as TemplateError
@@ -15,6 +15,14 @@ from homeassistant.util import raise_if_invalid_path as raise_if_invalid_path
15
15
  from typing import Any, TypeVar, overload
16
16
 
17
17
  TIME_PERIOD_ERROR: str
18
+
19
+ class UrlProtocolSchema(StrEnum):
20
+ HTTP: str
21
+ HTTPS: str
22
+ HOMEASSISTANT: str
23
+
24
+ EXTERNAL_URL_PROTOCOL_SCHEMA_LIST: Incomplete
25
+ CONFIGURATION_URL_PROTOCOL_SCHEMA_LIST: Incomplete
18
26
  byte: Incomplete
19
27
  small_float: Incomplete
20
28
  positive_int: Incomplete
@@ -96,7 +104,8 @@ def time_zone(value: str) -> str: ...
96
104
  weekdays: Incomplete
97
105
 
98
106
  def socket_timeout(value: Any | None) -> object: ...
99
- def url(value: Any) -> str: ...
107
+ def url(value: Any, _schema_list: frozenset[UrlProtocolSchema] = ...) -> str: ...
108
+ def configuration_url(value: Any) -> str: ...
100
109
  def url_no_path(value: Any) -> str: ...
101
110
  def x10_address(value: str) -> str: ...
102
111
  def uuid4_hex(value: Any) -> str: ...
@@ -1,18 +1,20 @@
1
1
  from . import entity_registry as entity_registry, storage as storage
2
2
  from .debounce import Debouncer as Debouncer
3
+ from .entity import DeviceInfo as DeviceInfo
3
4
  from .frame import report as report
4
5
  from .json import JSON_DUMP as JSON_DUMP, find_paths_unserializable_data as find_paths_unserializable_data
5
6
  from .typing import UNDEFINED as UNDEFINED, UndefinedType as UndefinedType
6
7
  from _typeshed import Incomplete
7
8
  from collections import UserDict
8
9
  from collections.abc import ValuesView
9
- from homeassistant.backports.enum import StrEnum as StrEnum
10
+ from enum import StrEnum
10
11
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
11
12
  from homeassistant.const import EVENT_HOMEASSISTANT_STARTED as EVENT_HOMEASSISTANT_STARTED, EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP
12
13
  from homeassistant.core import Event as Event, HomeAssistant as HomeAssistant, callback as callback
13
- from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, RequiredParameterMissing as RequiredParameterMissing
14
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
14
15
  from homeassistant.util.json import format_unserializable_data as format_unserializable_data
15
- from typing import Any, TypeVar
16
+ from typing import Any, Literal, TypeVar, TypedDict
17
+ from yarl import URL
16
18
 
17
19
  _LOGGER: Incomplete
18
20
  DATA_REGISTRY: str
@@ -28,6 +30,7 @@ CONNECTION_UPNP: str
28
30
  CONNECTION_ZIGBEE: str
29
31
  ORPHANED_DEVICE_KEEP_SECONDS: Incomplete
30
32
  RUNTIME_ONLY_ATTRS: Incomplete
33
+ CONFIGURATION_URL_SCHEMES: Incomplete
31
34
 
32
35
  class DeviceEntryDisabler(StrEnum):
33
36
  CONFIG_ENTRY: str
@@ -37,10 +40,31 @@ class DeviceEntryDisabler(StrEnum):
37
40
  DISABLED_CONFIG_ENTRY: Incomplete
38
41
  DISABLED_INTEGRATION: Incomplete
39
42
  DISABLED_USER: Incomplete
43
+ DEVICE_INFO_TYPES: Incomplete
44
+ DEVICE_INFO_KEYS: Incomplete
45
+
46
+ class _EventDeviceRegistryUpdatedData_CreateRemove(TypedDict):
47
+ action: Literal['create', 'remove']
48
+ device_id: str
49
+
50
+ class _EventDeviceRegistryUpdatedData_Update(TypedDict):
51
+ action: Literal['update']
52
+ device_id: str
53
+ changes: dict[str, Any]
54
+
55
+ EventDeviceRegistryUpdatedData: Incomplete
40
56
 
41
57
  class DeviceEntryType(StrEnum):
42
58
  SERVICE: str
43
59
 
60
+ class DeviceInfoError(HomeAssistantError):
61
+ device_info: Incomplete
62
+ domain: Incomplete
63
+ def __init__(self, domain: str, device_info: DeviceInfo, message: str) -> None: ...
64
+
65
+ def _validate_device_info(config_entry: ConfigEntry | None, device_info: DeviceInfo) -> str: ...
66
+ def _validate_configuration_url(value: Any) -> str | None: ...
67
+
44
68
  class DeviceEntry:
45
69
  area_id: str | None
46
70
  config_entries: set[str]
@@ -98,7 +122,7 @@ class DeviceRegistryItems(UserDict[str, _EntryTypeT]):
98
122
  def values(self) -> ValuesView[_EntryTypeT]: ...
99
123
  def __setitem__(self, key: str, entry: _EntryTypeT) -> None: ...
100
124
  def __delitem__(self, key: str) -> None: ...
101
- def get_entry(self, identifiers: set[tuple[str, str]], connections: set[tuple[str, str]] | None) -> _EntryTypeT | None: ...
125
+ def get_entry(self, identifiers: set[tuple[str, str]] | None, connections: set[tuple[str, str]] | None) -> _EntryTypeT | None: ...
102
126
 
103
127
  class DeviceRegistry:
104
128
  devices: DeviceRegistryItems[DeviceEntry]
@@ -108,10 +132,10 @@ class DeviceRegistry:
108
132
  _store: Incomplete
109
133
  def __init__(self, hass: HomeAssistant) -> None: ...
110
134
  def async_get(self, device_id: str) -> DeviceEntry | None: ...
111
- def async_get_device(self, identifiers: set[tuple[str, str]], connections: set[tuple[str, str]] | None = ...) -> DeviceEntry | None: ...
112
- def _async_get_deleted_device(self, identifiers: set[tuple[str, str]], connections: set[tuple[str, str]] | None) -> DeletedDeviceEntry | None: ...
113
- def async_get_or_create(self, *, config_entry_id: str, configuration_url: str | None | UndefinedType = ..., connections: set[tuple[str, str]] | None = ..., 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 = ..., manufacturer: str | None | UndefinedType = ..., model: str | None | UndefinedType = ..., name: str | None | UndefinedType = ..., suggested_area: str | None | UndefinedType = ..., sw_version: str | None | UndefinedType = ..., via_device: tuple[str, str] | None = ...) -> DeviceEntry: ...
114
- def async_update_device(self, device_id: str, *, add_config_entry_id: str | UndefinedType = ..., area_id: str | None | UndefinedType = ..., configuration_url: str | None | UndefinedType = ..., disabled_by: DeviceEntryDisabler | None | UndefinedType = ..., entry_type: DeviceEntryType | None | UndefinedType = ..., hw_version: str | None | 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_identifiers: set[tuple[str, str]] | UndefinedType = ..., remove_config_entry_id: str | UndefinedType = ..., suggested_area: str | None | UndefinedType = ..., sw_version: str | None | UndefinedType = ..., via_device_id: str | None | UndefinedType = ...) -> DeviceEntry | None: ...
135
+ def async_get_device(self, identifiers: set[tuple[str, str]] | None = ..., connections: set[tuple[str, str]] | None = ...) -> DeviceEntry | None: ...
136
+ def _async_get_deleted_device(self, identifiers: set[tuple[str, str]], connections: set[tuple[str, str]]) -> DeletedDeviceEntry | None: ...
137
+ 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 = ..., suggested_area: str | None | UndefinedType = ..., sw_version: str | None | UndefinedType = ..., via_device: tuple[str, str] | None | UndefinedType = ...) -> DeviceEntry: ...
138
+ 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 = ..., 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_identifiers: set[tuple[str, str]] | UndefinedType = ..., remove_config_entry_id: str | UndefinedType = ..., suggested_area: str | None | UndefinedType = ..., sw_version: str | None | UndefinedType = ..., via_device_id: str | None | UndefinedType = ...) -> DeviceEntry | None: ...
115
139
  def async_remove_device(self, device_id: str) -> None: ...
116
140
  async def async_load(self) -> None: ...
117
141
  def async_schedule_save(self) -> None: ...
@@ -1,9 +1,9 @@
1
1
  import asyncio
2
- from . import entity_registry as er
3
- from .device_registry import DeviceEntryType as DeviceEntryType
2
+ from . import device_registry as dr, entity_registry as er
3
+ from .device_registry import DeviceEntryType as DeviceEntryType, EventDeviceRegistryUpdatedData as EventDeviceRegistryUpdatedData
4
4
  from .entity_platform import EntityPlatform as EntityPlatform
5
5
  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
6
- from .typing import StateType as StateType, UNDEFINED as UNDEFINED, UndefinedType as UndefinedType
6
+ from .typing import EventType as EventType, StateType as StateType, UNDEFINED as UNDEFINED, UndefinedType as UndefinedType
7
7
  from _typeshed import Incomplete
8
8
  from abc import ABC
9
9
  from collections.abc import Coroutine, Iterable, Mapping, MutableMapping
@@ -12,11 +12,12 @@ from enum import Enum
12
12
  from homeassistant.backports.functools import cached_property as cached_property
13
13
  from homeassistant.config import DATA_CUSTOMIZE as DATA_CUSTOMIZE
14
14
  from homeassistant.const import ATTR_ASSUMED_STATE as ATTR_ASSUMED_STATE, ATTR_ATTRIBUTION as ATTR_ATTRIBUTION, ATTR_DEVICE_CLASS as ATTR_DEVICE_CLASS, ATTR_ENTITY_PICTURE as ATTR_ENTITY_PICTURE, ATTR_FRIENDLY_NAME as ATTR_FRIENDLY_NAME, ATTR_ICON as ATTR_ICON, ATTR_SUPPORTED_FEATURES as ATTR_SUPPORTED_FEATURES, ATTR_UNIT_OF_MEASUREMENT as ATTR_UNIT_OF_MEASUREMENT, DEVICE_DEFAULT_NAME as DEVICE_DEFAULT_NAME, EntityCategory as EntityCategory, STATE_OFF as STATE_OFF, STATE_ON as STATE_ON, STATE_UNAVAILABLE as STATE_UNAVAILABLE, STATE_UNKNOWN as STATE_UNKNOWN
15
- from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, Context as Context, Event as Event, HomeAssistant as HomeAssistant, callback as callback
15
+ from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, Context as Context, HomeAssistant as HomeAssistant, callback as callback
16
16
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, NoEntitySpecifiedError as NoEntitySpecifiedError
17
17
  from homeassistant.loader import bind_hass as bind_hass
18
18
  from homeassistant.util import ensure_unique_string as ensure_unique_string, slugify as slugify
19
19
  from typing import Any, Final, Literal, TypeVar, TypedDict
20
+ from yarl import URL
20
21
 
21
22
  _T = TypeVar('_T')
22
23
  _LOGGER: Incomplete
@@ -36,7 +37,7 @@ def get_supported_features(hass: HomeAssistant, entity_id: str) -> int: ...
36
37
  def get_unit_of_measurement(hass: HomeAssistant, entity_id: str) -> str | None: ...
37
38
 
38
39
  class DeviceInfo(TypedDict, total=False):
39
- configuration_url: str | None
40
+ configuration_url: str | URL | None
40
41
  connections: set[tuple[str, str]]
41
42
  default_manufacturer: str
42
43
  default_model: str
@@ -85,6 +86,7 @@ class Entity(ABC):
85
86
  _update_staged: bool
86
87
  parallel_updates: asyncio.Semaphore | None
87
88
  registry_entry: er.RegistryEntry | None
89
+ device_entry: dr.DeviceEntry | None
88
90
  _on_remove: list[CALLBACK_TYPE] | None
89
91
  _unsub_device_updates: CALLBACK_TYPE | None
90
92
  _context: Context | None
@@ -196,9 +198,9 @@ class Entity(ABC):
196
198
  def async_registry_entry_updated(self) -> None: ...
197
199
  async def async_internal_added_to_hass(self) -> None: ...
198
200
  async def async_internal_will_remove_from_hass(self) -> None: ...
199
- async def _async_registry_updated(self, event: Event) -> None: ...
201
+ async def _async_registry_updated(self, event: EventType[er.EventEntityRegistryUpdatedData]) -> None: ...
200
202
  def _async_unsubscribe_device_updates(self) -> None: ...
201
- def _async_device_registry_updated(self, event: Event) -> None: ...
203
+ def _async_device_registry_updated(self, event: EventType[EventDeviceRegistryUpdatedData]) -> None: ...
202
204
  def _async_subscribe_device_updates(self) -> None: ...
203
205
  def __repr__(self) -> str: ...
204
206
  async def async_request_call(self, coro: Coroutine[Any, Any, _T]) -> _T: ...
@@ -1,7 +1,6 @@
1
1
  import asyncio
2
2
  import voluptuous as vol
3
3
  from . import service as service, translation as translation
4
- from .device_registry import DeviceRegistry as DeviceRegistry
5
4
  from .entity import Entity as Entity
6
5
  from .entity_registry import EntityRegistry as EntityRegistry, RegistryEntryDisabler as RegistryEntryDisabler, RegistryEntryHider as RegistryEntryHider
7
6
  from .event import async_call_later as async_call_later, async_track_time_interval as async_track_time_interval
@@ -14,7 +13,7 @@ from datetime import datetime, timedelta
14
13
  from homeassistant import config_entries as config_entries
15
14
  from homeassistant.const import ATTR_RESTORED as ATTR_RESTORED, DEVICE_DEFAULT_NAME as DEVICE_DEFAULT_NAME, EVENT_HOMEASSISTANT_STARTED as EVENT_HOMEASSISTANT_STARTED
16
15
  from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, CoreState as CoreState, HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, callback as callback, split_entity_id as split_entity_id, valid_entity_id as valid_entity_id
17
- from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, PlatformNotReady as PlatformNotReady, RequiredParameterMissing as RequiredParameterMissing
16
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, PlatformNotReady as PlatformNotReady
18
17
  from homeassistant.generated import languages as languages
19
18
  from homeassistant.setup import async_start_setup as async_start_setup
20
19
  from homeassistant.util.async_ import run_callback_threadsafe as run_callback_threadsafe
@@ -74,7 +73,7 @@ class EntityPlatform:
74
73
  def add_entities(self, new_entities: Iterable[Entity], update_before_add: bool = ...) -> None: ...
75
74
  async def async_add_entities(self, new_entities: Iterable[Entity], update_before_add: bool = ...) -> None: ...
76
75
  def _entity_id_already_exists(self, entity_id: str) -> tuple[bool, bool]: ...
77
- async def _async_add_entity(self, entity: Entity, update_before_add: bool, entity_registry: EntityRegistry, device_registry: DeviceRegistry) -> None: ...
76
+ async def _async_add_entity(self, entity: Entity, update_before_add: bool, entity_registry: EntityRegistry) -> None: ...
78
77
  async def async_reset(self) -> None: ...
79
78
  def async_unsub_polling(self) -> None: ...
80
79
  async def async_destroy(self) -> None: ...
@@ -5,7 +5,7 @@ from .typing import UNDEFINED as UNDEFINED, UndefinedType as UndefinedType
5
5
  from _typeshed import Incomplete
6
6
  from collections import UserDict
7
7
  from collections.abc import Callable as Callable, Iterable, Mapping, ValuesView
8
- from homeassistant.backports.enum import StrEnum as StrEnum
8
+ from enum import StrEnum
9
9
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
10
10
  from homeassistant.const import ATTR_DEVICE_CLASS as ATTR_DEVICE_CLASS, ATTR_FRIENDLY_NAME as ATTR_FRIENDLY_NAME, ATTR_ICON as ATTR_ICON, ATTR_RESTORED as ATTR_RESTORED, ATTR_SUPPORTED_FEATURES as ATTR_SUPPORTED_FEATURES, ATTR_UNIT_OF_MEASUREMENT as ATTR_UNIT_OF_MEASUREMENT, EVENT_HOMEASSISTANT_START as EVENT_HOMEASSISTANT_START, EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP, EntityCategory as EntityCategory, MAX_LENGTH_STATE_DOMAIN as MAX_LENGTH_STATE_DOMAIN, MAX_LENGTH_STATE_ENTITY_ID as MAX_LENGTH_STATE_ENTITY_ID, Platform as Platform, STATE_UNAVAILABLE as STATE_UNAVAILABLE, STATE_UNKNOWN as STATE_UNKNOWN
11
11
  from homeassistant.core import Event as Event, HomeAssistant as HomeAssistant, callback as callback, split_entity_id as split_entity_id, valid_entity_id as valid_entity_id
@@ -13,7 +13,8 @@ from homeassistant.exceptions import MaxLengthExceeded as MaxLengthExceeded
13
13
  from homeassistant.util import slugify as slugify
14
14
  from homeassistant.util.json import format_unserializable_data as format_unserializable_data
15
15
  from homeassistant.util.read_only_dict import ReadOnlyDict as ReadOnlyDict
16
- from typing import Any, TypeVar
16
+ from typing import Any, Literal, TypeVar, TypedDict
17
+ from typing_extensions import NotRequired
17
18
 
18
19
  T = TypeVar('T')
19
20
  DATA_REGISTRY: str
@@ -39,6 +40,18 @@ class RegistryEntryDisabler(StrEnum):
39
40
  class RegistryEntryHider(StrEnum):
40
41
  INTEGRATION: str
41
42
  USER: str
43
+
44
+ class _EventEntityRegistryUpdatedData_CreateRemove(TypedDict):
45
+ action: Literal['create', 'remove']
46
+ entity_id: str
47
+
48
+ class _EventEntityRegistryUpdatedData_Update(TypedDict):
49
+ action: Literal['update']
50
+ entity_id: str
51
+ changes: dict[str, Any]
52
+ old_entity_id: NotRequired[str]
53
+
54
+ EventEntityRegistryUpdatedData: Incomplete
42
55
  EntityOptionsType = Mapping[str, Mapping[str, Any]]
43
56
  ReadOnlyEntityOptionsType = ReadOnlyDict[str, Mapping[str, Any]]
44
57
  DISLAY_DICT_OPTIONAL: Incomplete
@@ -1,19 +1,19 @@
1
1
  import time
2
- from .device_registry import EVENT_DEVICE_REGISTRY_UPDATED as EVENT_DEVICE_REGISTRY_UPDATED
3
- from .entity_registry import EVENT_ENTITY_REGISTRY_UPDATED as EVENT_ENTITY_REGISTRY_UPDATED
2
+ from .device_registry import EVENT_DEVICE_REGISTRY_UPDATED as EVENT_DEVICE_REGISTRY_UPDATED, EventDeviceRegistryUpdatedData as EventDeviceRegistryUpdatedData
3
+ from .entity_registry import EVENT_ENTITY_REGISTRY_UPDATED as EVENT_ENTITY_REGISTRY_UPDATED, EventEntityRegistryUpdatedData as EventEntityRegistryUpdatedData
4
4
  from .ratelimit import KeyedRateLimit as KeyedRateLimit
5
5
  from .sun import get_astral_event_next as get_astral_event_next
6
6
  from .template import RenderInfo as RenderInfo, Template as Template, result_as_boolean as result_as_boolean
7
- from .typing import TemplateVarsType as TemplateVarsType
7
+ from .typing import EventType as EventType, TemplateVarsType as TemplateVarsType
8
8
  from _typeshed import Incomplete
9
- from collections.abc import Callable, Coroutine, Iterable, Sequence
9
+ from collections.abc import Callable, Coroutine, Iterable, Mapping, Sequence
10
10
  from datetime import datetime, timedelta
11
- from homeassistant.const import ATTR_ENTITY_ID as ATTR_ENTITY_ID, 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
12
- from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, Event as Event, HassJob as HassJob, HomeAssistant as HomeAssistant, State as State, callback as callback, split_entity_id as split_entity_id
11
+ 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
12
+ from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, HassJob as HassJob, HomeAssistant as HomeAssistant, State as State, callback as callback, split_entity_id as split_entity_id
13
13
  from homeassistant.exceptions import TemplateError as TemplateError
14
14
  from homeassistant.loader import bind_hass as bind_hass
15
15
  from homeassistant.util.async_ import run_callback_threadsafe as run_callback_threadsafe
16
- from typing import Any, Concatenate
16
+ from typing import Any, Concatenate, TypeVar, TypedDict
17
17
 
18
18
  TRACK_STATE_CHANGE_CALLBACKS: str
19
19
  TRACK_STATE_CHANGE_LISTENER: str
@@ -31,6 +31,7 @@ _ENTITIES_LISTENER: str
31
31
  _LOGGER: Incomplete
32
32
  RANDOM_MICROSECOND_MIN: int
33
33
  RANDOM_MICROSECOND_MAX: int
34
+ _TypedDictT = TypeVar('_TypedDictT', bound=Mapping[str, Any])
34
35
  _P: Incomplete
35
36
 
36
37
  class TrackStates:
@@ -51,30 +52,35 @@ class TrackTemplateResult:
51
52
  result: Any
52
53
  def __init__(self, template, last_result, result) -> None: ...
53
54
 
55
+ class EventStateChangedData(TypedDict):
56
+ entity_id: str
57
+ old_state: State | None
58
+ new_state: State | None
59
+
54
60
  def threaded_listener_factory(async_factory: Callable[Concatenate[HomeAssistant, _P], Any]) -> Callable[Concatenate[HomeAssistant, _P], CALLBACK_TYPE]: ...
55
61
  def async_track_state_change(hass: HomeAssistant, entity_ids: str | Iterable[str], action: Callable[[str, State | None, State | None], Coroutine[Any, Any, None] | None], from_state: None | str | Iterable[str] = ..., to_state: None | str | Iterable[str] = ...) -> CALLBACK_TYPE: ...
56
62
 
57
63
  track_state_change: Incomplete
58
64
 
59
- def async_track_state_change_event(hass: HomeAssistant, entity_ids: str | Iterable[str], action: Callable[[Event], Any]) -> CALLBACK_TYPE: ...
60
- def _async_dispatch_entity_id_event(hass: HomeAssistant, callbacks: dict[str, list[HassJob[[Event], Any]]], event: Event) -> None: ...
61
- def _async_state_change_filter(hass: HomeAssistant, callbacks: dict[str, list[HassJob[[Event], Any]]], event: Event) -> bool: ...
62
- def _async_track_state_change_event(hass: HomeAssistant, entity_ids: str | Iterable[str], action: Callable[[Event], Any]) -> CALLBACK_TYPE: ...
65
+ def async_track_state_change_event(hass: HomeAssistant, entity_ids: str | Iterable[str], action: Callable[[EventType[EventStateChangedData]], Any]) -> CALLBACK_TYPE: ...
66
+ def _async_dispatch_entity_id_event(hass: HomeAssistant, callbacks: dict[str, list[HassJob[[EventType[EventStateChangedData]], Any]]], event: EventType[EventStateChangedData]) -> None: ...
67
+ def _async_state_change_filter(hass: HomeAssistant, callbacks: dict[str, list[HassJob[[EventType[EventStateChangedData]], Any]]], event: EventType[EventStateChangedData]) -> bool: ...
68
+ def _async_track_state_change_event(hass: HomeAssistant, entity_ids: str | Iterable[str], action: Callable[[EventType[EventStateChangedData]], Any]) -> CALLBACK_TYPE: ...
63
69
  def _remove_empty_listener() -> None: ...
64
- def _remove_listener(hass: HomeAssistant, listeners_key: str, keys: Iterable[str], job: HassJob[[Event], Any], callbacks: dict[str, list[HassJob[[Event], Any]]]) -> None: ...
65
- def _async_track_event(hass: HomeAssistant, keys: str | Iterable[str], callbacks_key: str, listeners_key: str, event_type: str, dispatcher_callable: Callable[[HomeAssistant, dict[str, list[HassJob[[Event], Any]]], Event], None], filter_callable: Callable[[HomeAssistant, dict[str, list[HassJob[[Event], Any]]], Event], bool], action: Callable[[Event], None]) -> CALLBACK_TYPE: ...
66
- def _async_dispatch_old_entity_id_or_entity_id_event(hass: HomeAssistant, callbacks: dict[str, list[HassJob[[Event], Any]]], event: Event) -> None: ...
67
- def _async_entity_registry_updated_filter(hass: HomeAssistant, callbacks: dict[str, list[HassJob[[Event], Any]]], event: Event) -> bool: ...
68
- def async_track_entity_registry_updated_event(hass: HomeAssistant, entity_ids: str | Iterable[str], action: Callable[[Event], Any]) -> CALLBACK_TYPE: ...
69
- def _async_device_registry_updated_filter(hass: HomeAssistant, callbacks: dict[str, list[HassJob[[Event], Any]]], event: Event) -> bool: ...
70
- def _async_dispatch_device_id_event(hass: HomeAssistant, callbacks: dict[str, list[HassJob[[Event], Any]]], event: Event) -> None: ...
71
- def async_track_device_registry_updated_event(hass: HomeAssistant, device_ids: str | Iterable[str], action: Callable[[Event], Any]) -> CALLBACK_TYPE: ...
72
- def _async_dispatch_domain_event(hass: HomeAssistant, callbacks: dict[str, list[HassJob[[Event], Any]]], event: Event) -> None: ...
73
- def _async_domain_added_filter(hass: HomeAssistant, callbacks: dict[str, list[HassJob[[Event], Any]]], event: Event) -> bool: ...
74
- def async_track_state_added_domain(hass: HomeAssistant, domains: str | Iterable[str], action: Callable[[Event], Any]) -> CALLBACK_TYPE: ...
75
- def _async_track_state_added_domain(hass: HomeAssistant, domains: str | Iterable[str], action: Callable[[Event], Any]) -> CALLBACK_TYPE: ...
76
- def _async_domain_removed_filter(hass: HomeAssistant, callbacks: dict[str, list[HassJob[[Event], Any]]], event: Event) -> bool: ...
77
- def async_track_state_removed_domain(hass: HomeAssistant, domains: str | Iterable[str], action: Callable[[Event], Any]) -> CALLBACK_TYPE: ...
70
+ def _remove_listener(hass: HomeAssistant, listeners_key: str, keys: Iterable[str], job: HassJob[[EventType[_TypedDictT]], Any], callbacks: dict[str, list[HassJob[[EventType[_TypedDictT]], Any]]]) -> None: ...
71
+ def _async_track_event(hass: HomeAssistant, keys: str | Iterable[str], callbacks_key: str, listeners_key: str, event_type: str, dispatcher_callable: Callable[[HomeAssistant, dict[str, list[HassJob[[EventType[_TypedDictT]], Any]]], EventType[_TypedDictT]], None], filter_callable: Callable[[HomeAssistant, dict[str, list[HassJob[[EventType[_TypedDictT]], Any]]], EventType[_TypedDictT]], bool], action: Callable[[EventType[_TypedDictT]], None]) -> CALLBACK_TYPE: ...
72
+ def _async_dispatch_old_entity_id_or_entity_id_event(hass: HomeAssistant, callbacks: dict[str, list[HassJob[[EventType[EventEntityRegistryUpdatedData]], Any]]], event: EventType[EventEntityRegistryUpdatedData]) -> None: ...
73
+ def _async_entity_registry_updated_filter(hass: HomeAssistant, callbacks: dict[str, list[HassJob[[EventType[EventEntityRegistryUpdatedData]], Any]]], event: EventType[EventEntityRegistryUpdatedData]) -> bool: ...
74
+ def async_track_entity_registry_updated_event(hass: HomeAssistant, entity_ids: str | Iterable[str], action: Callable[[EventType[EventEntityRegistryUpdatedData]], Any]) -> CALLBACK_TYPE: ...
75
+ def _async_device_registry_updated_filter(hass: HomeAssistant, callbacks: dict[str, list[HassJob[[EventType[EventDeviceRegistryUpdatedData]], Any]]], event: EventType[EventDeviceRegistryUpdatedData]) -> bool: ...
76
+ def _async_dispatch_device_id_event(hass: HomeAssistant, callbacks: dict[str, list[HassJob[[EventType[EventDeviceRegistryUpdatedData]], Any]]], event: EventType[EventDeviceRegistryUpdatedData]) -> None: ...
77
+ def async_track_device_registry_updated_event(hass: HomeAssistant, device_ids: str | Iterable[str], action: Callable[[EventType[EventDeviceRegistryUpdatedData]], Any]) -> CALLBACK_TYPE: ...
78
+ def _async_dispatch_domain_event(hass: HomeAssistant, callbacks: dict[str, list[HassJob[[EventType[EventStateChangedData]], Any]]], event: EventType[EventStateChangedData]) -> None: ...
79
+ def _async_domain_added_filter(hass: HomeAssistant, callbacks: dict[str, list[HassJob[[EventType[EventStateChangedData]], Any]]], event: EventType[EventStateChangedData]) -> bool: ...
80
+ def async_track_state_added_domain(hass: HomeAssistant, domains: str | Iterable[str], action: Callable[[EventType[EventStateChangedData]], Any]) -> CALLBACK_TYPE: ...
81
+ def _async_track_state_added_domain(hass: HomeAssistant, domains: str | Iterable[str], action: Callable[[EventType[EventStateChangedData]], Any]) -> CALLBACK_TYPE: ...
82
+ def _async_domain_removed_filter(hass: HomeAssistant, callbacks: dict[str, list[HassJob[[EventType[EventStateChangedData]], Any]]], event: EventType[EventStateChangedData]) -> bool: ...
83
+ def async_track_state_removed_domain(hass: HomeAssistant, domains: str | Iterable[str], action: Callable[[EventType[EventStateChangedData]], Any]) -> CALLBACK_TYPE: ...
78
84
  def _async_string_to_lower_list(instr: str | Iterable[str]) -> list[str]: ...
79
85
 
80
86
  class _TrackStateChangeFiltered:
@@ -83,7 +89,7 @@ class _TrackStateChangeFiltered:
83
89
  _action_as_hassjob: Incomplete
84
90
  _listeners: Incomplete
85
91
  _last_track_states: Incomplete
86
- def __init__(self, hass: HomeAssistant, track_states: TrackStates, action: Callable[[Event], Any]) -> None: ...
92
+ def __init__(self, hass: HomeAssistant, track_states: TrackStates, action: Callable[[EventType[EventStateChangedData]], Any]) -> None: ...
87
93
  def async_setup(self) -> None: ...
88
94
  @property
89
95
  def listeners(self) -> dict[str, bool | set[str]]: ...
@@ -91,11 +97,11 @@ class _TrackStateChangeFiltered:
91
97
  def async_remove(self) -> None: ...
92
98
  def _cancel_listener(self, listener_name: str) -> None: ...
93
99
  def _setup_entities_listener(self, domains: set[str], entities: set[str]) -> None: ...
94
- def _state_added(self, event: Event) -> None: ...
100
+ def _state_added(self, event: EventType[EventStateChangedData]) -> None: ...
95
101
  def _setup_domains_listener(self, domains: set[str]) -> None: ...
96
102
  def _setup_all_listener(self) -> None: ...
97
103
 
98
- def async_track_state_change_filtered(hass: HomeAssistant, track_states: TrackStates, action: Callable[[Event], Any]) -> _TrackStateChangeFiltered: ...
104
+ def async_track_state_change_filtered(hass: HomeAssistant, track_states: TrackStates, action: Callable[[EventType[EventStateChangedData]], Any]) -> _TrackStateChangeFiltered: ...
99
105
  def async_track_template(hass: HomeAssistant, template: Template, action: Callable[[str, State | None, State | None], Coroutine[Any, Any, None] | None], variables: TemplateVarsType | None = ...) -> CALLBACK_TYPE: ...
100
106
 
101
107
  track_template: Incomplete
@@ -110,7 +116,7 @@ class TrackTemplateResultInfo:
110
116
  _info: Incomplete
111
117
  _track_state_changes: Incomplete
112
118
  _time_listeners: Incomplete
113
- def __init__(self, hass: HomeAssistant, track_templates: Sequence[TrackTemplate], action: Callable[[Event | None, list[TrackTemplateResult]], None], has_super_template: bool = ...) -> None: ...
119
+ def __init__(self, hass: HomeAssistant, track_templates: Sequence[TrackTemplate], action: TrackTemplateResultListener, has_super_template: bool = ...) -> None: ...
114
120
  def __repr__(self) -> str: ...
115
121
  def async_setup(self, raise_on_template_error: bool, strict: bool = ...) -> None: ...
116
122
  @property
@@ -119,10 +125,10 @@ class TrackTemplateResultInfo:
119
125
  def _update_time_listeners(self) -> None: ...
120
126
  def async_remove(self) -> None: ...
121
127
  def async_refresh(self) -> None: ...
122
- def _render_template_if_ready(self, track_template_: TrackTemplate, now: datetime, event: Event | None) -> bool | TrackTemplateResult: ...
128
+ def _render_template_if_ready(self, track_template_: TrackTemplate, now: datetime, event: EventType[EventStateChangedData] | None) -> bool | TrackTemplateResult: ...
123
129
  @staticmethod
124
130
  def _super_template_as_boolean(result: bool | str | TemplateError) -> bool: ...
125
- def _refresh(self, event: Event | None, track_templates: Iterable[TrackTemplate] | None = ..., replayed: bool | None = ...) -> None: ...
131
+ def _refresh(self, event: EventType[EventStateChangedData] | None, track_templates: Iterable[TrackTemplate] | None = ..., replayed: bool | None = ...) -> None: ...
126
132
 
127
133
  TrackTemplateResultListener: Incomplete
128
134
 
@@ -187,6 +193,6 @@ def process_state_match(parameter: None | str | Iterable[str], invert: bool = ..
187
193
  def _entities_domains_from_render_infos(render_infos: Iterable[RenderInfo]) -> tuple[set[str], set[str]]: ...
188
194
  def _render_infos_needs_all_listener(render_infos: Iterable[RenderInfo]) -> bool: ...
189
195
  def _render_infos_to_track_states(render_infos: Iterable[RenderInfo]) -> TrackStates: ...
190
- def _event_triggers_rerender(event: Event, info: RenderInfo) -> bool: ...
191
- def _rate_limit_for_event(event: Event, info: RenderInfo, track_template_: TrackTemplate) -> timedelta | None: ...
196
+ def _event_triggers_rerender(event: EventType[EventStateChangedData], info: RenderInfo) -> bool: ...
197
+ def _rate_limit_for_event(event: EventType[EventStateChangedData], info: RenderInfo, track_template_: TrackTemplate) -> timedelta | None: ...
192
198
  def _suppress_domain_all_in_render_info(render_info: RenderInfo) -> RenderInfo: ...
@@ -6,11 +6,13 @@ from homeassistant.const import APPLICATION_NAME as APPLICATION_NAME, EVENT_HOME
6
6
  from homeassistant.core import Event as Event, HomeAssistant as HomeAssistant, callback as callback
7
7
  from homeassistant.loader import bind_hass as bind_hass
8
8
  from homeassistant.util.ssl import SSLCipherList as SSLCipherList, client_context as client_context, create_no_verify_ssl_context as create_no_verify_ssl_context
9
- from typing import Any
10
- from typing_extensions import Self
9
+ from typing import Any, Self
11
10
 
11
+ KEEP_ALIVE_TIMEOUT: int
12
12
  DATA_ASYNC_CLIENT: str
13
13
  DATA_ASYNC_CLIENT_NOVERIFY: str
14
+ DEFAULT_LIMITS: Incomplete
15
+ limits: Incomplete
14
16
  SERVER_SOFTWARE: Incomplete
15
17
  USER_AGENT: str
16
18
 
@@ -1,7 +1,7 @@
1
1
  from .storage import Store as Store
2
2
  from _typeshed import Incomplete
3
3
  from datetime import datetime
4
- from homeassistant.backports.enum import StrEnum as StrEnum
4
+ from enum import StrEnum
5
5
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
6
6
  from homeassistant.util.async_ import run_callback_threadsafe as run_callback_threadsafe
7
7
  from typing import Any
@@ -11,8 +11,7 @@ from datetime import datetime
11
11
  from homeassistant.const import ATTR_RESTORED as ATTR_RESTORED, EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP
12
12
  from homeassistant.core import HomeAssistant as HomeAssistant, State as State, callback as callback, valid_entity_id as valid_entity_id
13
13
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
14
- from typing import Any
15
- from typing_extensions import Self
14
+ from typing import Any, Self
16
15
 
17
16
  DATA_RESTORE_STATE: str
18
17
  _LOGGER: Incomplete