homeassistant-stubs 2025.6.3__py3-none-any.whl → 2025.7.0b1__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 (326) hide show
  1. homeassistant-stubs/bootstrap.pyi +1 -1
  2. homeassistant-stubs/components/abode/__init__.pyi +3 -12
  3. homeassistant-stubs/components/abode/services.pyi +20 -0
  4. homeassistant-stubs/components/adax/sensor.pyi +29 -0
  5. homeassistant-stubs/components/airly/config_flow.pyi +1 -1
  6. homeassistant-stubs/components/airq/coordinator.pyi +1 -1
  7. homeassistant-stubs/components/airthings/__init__.pyi +3 -5
  8. homeassistant-stubs/components/airthings/coordinator.pyi +13 -0
  9. homeassistant-stubs/components/airthings/sensor.pyi +5 -4
  10. homeassistant-stubs/components/alexa_devices/binary_sensor.pyi +2 -1
  11. homeassistant-stubs/components/alexa_devices/notify.pyi +2 -0
  12. homeassistant-stubs/components/alexa_devices/sensor.pyi +29 -0
  13. homeassistant-stubs/components/alexa_devices/switch.pyi +2 -0
  14. homeassistant-stubs/components/alexa_devices/utils.pyi +7 -0
  15. homeassistant-stubs/components/altruist/__init__.pyi +9 -0
  16. homeassistant-stubs/components/altruist/config_flow.pyi +15 -0
  17. homeassistant-stubs/components/altruist/const.pyi +2 -0
  18. homeassistant-stubs/components/altruist/coordinator.pyi +19 -0
  19. homeassistant-stubs/components/altruist/sensor.pyi +34 -0
  20. homeassistant-stubs/components/amcrest/__init__.pyi +4 -7
  21. homeassistant-stubs/components/amcrest/services.pyi +13 -0
  22. homeassistant-stubs/components/analytics/analytics.pyi +3 -1
  23. homeassistant-stubs/components/android_ip_webcam/camera.pyi +4 -0
  24. homeassistant-stubs/components/apcupsd/sensor.pyi +1 -1
  25. homeassistant-stubs/components/assist_satellite/__init__.pyi +2 -2
  26. homeassistant-stubs/components/assist_satellite/entity.pyi +13 -1
  27. homeassistant-stubs/components/axis/hub/hub.pyi +1 -1
  28. homeassistant-stubs/components/camera/__init__.pyi +0 -2
  29. homeassistant-stubs/components/camera/webrtc.pyi +1 -0
  30. homeassistant-stubs/components/climate/__init__.pyi +0 -2
  31. homeassistant-stubs/components/command_line/notify.pyi +1 -2
  32. homeassistant-stubs/components/command_line/sensor.pyi +1 -2
  33. homeassistant-stubs/components/command_line/utils.pyi +5 -2
  34. homeassistant-stubs/components/deconz/logbook.pyi +1 -1
  35. homeassistant-stubs/components/derivative/config_flow.pyi +1 -1
  36. homeassistant-stubs/components/derivative/const.pyi +1 -0
  37. homeassistant-stubs/components/derivative/sensor.pyi +9 -4
  38. homeassistant-stubs/components/device_automation/condition.pyi +17 -4
  39. homeassistant-stubs/components/devolo_home_control/__init__.pyi +3 -2
  40. homeassistant-stubs/components/devolo_home_control/climate.pyi +1 -1
  41. homeassistant-stubs/components/devolo_home_control/const.pyi +0 -1
  42. homeassistant-stubs/components/devolo_home_control/cover.pyi +1 -1
  43. homeassistant-stubs/components/devolo_home_control/entity.pyi +6 -0
  44. homeassistant-stubs/components/devolo_home_control/light.pyi +1 -1
  45. homeassistant-stubs/components/devolo_home_control/siren.pyi +1 -1
  46. homeassistant-stubs/components/devolo_home_network/device_tracker.pyi +2 -0
  47. homeassistant-stubs/components/dnsip/sensor.pyi +3 -2
  48. homeassistant-stubs/components/downloader/__init__.pyi +1 -1
  49. homeassistant-stubs/components/downloader/services.pyi +3 -2
  50. homeassistant-stubs/components/ecovacs/binary_sensor.pyi +4 -4
  51. homeassistant-stubs/components/ecovacs/entity.pyi +9 -12
  52. homeassistant-stubs/components/ecovacs/number.pyi +4 -4
  53. homeassistant-stubs/components/ecovacs/select.pyi +5 -4
  54. homeassistant-stubs/components/ecovacs/sensor.pyi +3 -3
  55. homeassistant-stubs/components/eheimdigital/number.pyi +8 -9
  56. homeassistant-stubs/components/eheimdigital/select.pyi +8 -9
  57. homeassistant-stubs/components/eheimdigital/sensor.pyi +7 -8
  58. homeassistant-stubs/components/eheimdigital/time.pyi +8 -9
  59. homeassistant-stubs/components/elkm1/__init__.pyi +4 -9
  60. homeassistant-stubs/components/elkm1/services.pyi +21 -0
  61. homeassistant-stubs/components/enphase_envoy/__init__.pyi +2 -2
  62. homeassistant-stubs/components/enphase_envoy/config_flow.pyi +1 -1
  63. homeassistant-stubs/components/enphase_envoy/diagnostics.pyi +1 -0
  64. homeassistant-stubs/components/enphase_envoy/sensor.pyi +1 -1
  65. homeassistant-stubs/components/eq3btsmart/climate.pyi +6 -8
  66. homeassistant-stubs/components/eq3btsmart/const.pyi +3 -2
  67. homeassistant-stubs/components/eq3btsmart/entity.pyi +5 -1
  68. homeassistant-stubs/components/eq3btsmart/number.pyi +3 -3
  69. homeassistant-stubs/components/eq3btsmart/switch.pyi +5 -3
  70. homeassistant-stubs/components/esphome/entity.pyi +2 -1
  71. homeassistant-stubs/components/esphome/entry_data.pyi +3 -0
  72. homeassistant-stubs/components/evohome/water_heater.pyi +1 -1
  73. homeassistant-stubs/components/fritz/binary_sensor.pyi +2 -1
  74. homeassistant-stubs/components/fritz/button.pyi +3 -1
  75. homeassistant-stubs/components/fritz/coordinator.pyi +8 -82
  76. homeassistant-stubs/components/fritz/device_tracker.pyi +3 -1
  77. homeassistant-stubs/components/fritz/entity.pyi +2 -1
  78. homeassistant-stubs/components/fritz/helpers.pyi +9 -0
  79. homeassistant-stubs/components/fritz/models.pyi +78 -0
  80. homeassistant-stubs/components/fritz/sensor.pyi +2 -1
  81. homeassistant-stubs/components/fritz/services.pyi +3 -2
  82. homeassistant-stubs/components/fritz/switch.pyi +3 -1
  83. homeassistant-stubs/components/fully_kiosk/services.pyi +7 -2
  84. homeassistant-stubs/components/go2rtc/__init__.pyi +10 -4
  85. homeassistant-stubs/components/google/__init__.pyi +3 -9
  86. homeassistant-stubs/components/google_assistant_sdk/__init__.pyi +3 -7
  87. homeassistant-stubs/components/google_assistant_sdk/services.pyi +13 -0
  88. homeassistant-stubs/components/google_photos/services.pyi +4 -2
  89. homeassistant-stubs/components/google_sheets/__init__.pyi +7 -10
  90. homeassistant-stubs/components/google_sheets/services.pyi +18 -0
  91. homeassistant-stubs/components/group/sensor.pyi +1 -1
  92. homeassistant-stubs/components/habitica/services.pyi +8 -1
  93. homeassistant-stubs/components/here_travel_time/model.pyi +2 -1
  94. homeassistant-stubs/components/home_connect/diagnostics.pyi +2 -0
  95. homeassistant-stubs/components/homeassistant/__init__.pyi +2 -3
  96. homeassistant-stubs/components/homeassistant_hardware/firmware_config_flow.pyi +7 -7
  97. homeassistant-stubs/components/homeassistant_hardware/update.pyi +2 -6
  98. homeassistant-stubs/components/homeassistant_hardware/util.pyi +3 -1
  99. homeassistant-stubs/components/homeassistant_sky_connect/config_flow.pyi +9 -5
  100. homeassistant-stubs/components/homeassistant_yellow/config_flow.pyi +12 -5
  101. homeassistant-stubs/components/homee/config_flow.pyi +1 -0
  102. homeassistant-stubs/components/homee/diagnostics.pyi +12 -0
  103. homeassistant-stubs/components/homee/entity.pyi +3 -2
  104. homeassistant-stubs/components/homee/event.pyi +8 -4
  105. homeassistant-stubs/components/homee/siren.pyi +19 -0
  106. homeassistant-stubs/components/homewizard/select.pyi +35 -0
  107. homeassistant-stubs/components/image/__init__.pyi +2 -0
  108. homeassistant-stubs/components/immich/coordinator.pyi +2 -1
  109. homeassistant-stubs/components/immich/update.pyi +21 -0
  110. homeassistant-stubs/components/isy994/__init__.pyi +3 -1
  111. homeassistant-stubs/components/isy994/services.pyi +0 -2
  112. homeassistant-stubs/components/jewish_calendar/__init__.pyi +1 -1
  113. homeassistant-stubs/components/jewish_calendar/{service.pyi → services.pyi} +2 -1
  114. homeassistant-stubs/components/kaleidescape/__init__.pyi +4 -4
  115. homeassistant-stubs/components/kaleidescape/media_player.pyi +2 -3
  116. homeassistant-stubs/components/kaleidescape/remote.pyi +2 -3
  117. homeassistant-stubs/components/kaleidescape/sensor.pyi +2 -3
  118. homeassistant-stubs/components/lacrosse_view/__init__.pyi +3 -5
  119. homeassistant-stubs/components/lacrosse_view/coordinator.pyi +3 -2
  120. homeassistant-stubs/components/lacrosse_view/diagnostics.pyi +2 -4
  121. homeassistant-stubs/components/lacrosse_view/sensor.pyi +2 -2
  122. homeassistant-stubs/components/lametric/__init__.pyi +3 -4
  123. homeassistant-stubs/components/lametric/button.pyi +2 -4
  124. homeassistant-stubs/components/lametric/coordinator.pyi +3 -2
  125. homeassistant-stubs/components/lametric/diagnostics.pyi +2 -4
  126. homeassistant-stubs/components/lametric/entity.pyi +1 -1
  127. homeassistant-stubs/components/lametric/helpers.pyi +1 -1
  128. homeassistant-stubs/components/lametric/notify.pyi +2 -2
  129. homeassistant-stubs/components/lametric/number.pyi +2 -4
  130. homeassistant-stubs/components/lametric/select.pyi +2 -4
  131. homeassistant-stubs/components/lametric/sensor.pyi +2 -4
  132. homeassistant-stubs/components/lametric/switch.pyi +2 -4
  133. homeassistant-stubs/components/lametric/update.pyi +17 -0
  134. homeassistant-stubs/components/laundrify/__init__.pyi +4 -6
  135. homeassistant-stubs/components/laundrify/binary_sensor.pyi +2 -3
  136. homeassistant-stubs/components/laundrify/coordinator.pyi +1 -0
  137. homeassistant-stubs/components/laundrify/sensor.pyi +2 -3
  138. homeassistant-stubs/components/lcn/__init__.pyi +9 -10
  139. homeassistant-stubs/components/lcn/binary_sensor.pyi +9 -8
  140. homeassistant-stubs/components/lcn/climate.pyi +5 -6
  141. homeassistant-stubs/components/lcn/const.pyi +0 -4
  142. homeassistant-stubs/components/lcn/cover.pyi +6 -7
  143. homeassistant-stubs/components/lcn/entity.pyi +2 -3
  144. homeassistant-stubs/components/lcn/helpers.pyi +15 -5
  145. homeassistant-stubs/components/lcn/light.pyi +6 -7
  146. homeassistant-stubs/components/lcn/scene.pyi +5 -5
  147. homeassistant-stubs/components/lcn/sensor.pyi +7 -7
  148. homeassistant-stubs/components/lcn/services.pyi +5 -4
  149. homeassistant-stubs/components/lcn/switch.pyi +8 -9
  150. homeassistant-stubs/components/lcn/websocket.pyi +12 -13
  151. homeassistant-stubs/components/ld2410_ble/__init__.pyi +4 -6
  152. homeassistant-stubs/components/ld2410_ble/binary_sensor.pyi +2 -4
  153. homeassistant-stubs/components/ld2410_ble/coordinator.pyi +3 -3
  154. homeassistant-stubs/components/ld2410_ble/models.pyi +2 -0
  155. homeassistant-stubs/components/ld2410_ble/sensor.pyi +4 -5
  156. homeassistant-stubs/components/led_ble/__init__.pyi +5 -6
  157. homeassistant-stubs/components/led_ble/light.pyi +3 -4
  158. homeassistant-stubs/components/led_ble/models.pyi +2 -0
  159. homeassistant-stubs/components/lifx/__init__.pyi +4 -5
  160. homeassistant-stubs/components/lifx/binary_sensor.pyi +3 -4
  161. homeassistant-stubs/components/lifx/button.pyi +3 -4
  162. homeassistant-stubs/components/lifx/const.pyi +3 -1
  163. homeassistant-stubs/components/lifx/coordinator.pyi +3 -2
  164. homeassistant-stubs/components/lifx/diagnostics.pyi +3 -4
  165. homeassistant-stubs/components/lifx/light.pyi +3 -4
  166. homeassistant-stubs/components/lifx/manager.pyi +2 -2
  167. homeassistant-stubs/components/lifx/migration.pyi +3 -3
  168. homeassistant-stubs/components/lifx/select.pyi +3 -4
  169. homeassistant-stubs/components/lifx/sensor.pyi +3 -4
  170. homeassistant-stubs/components/lifx/util.pyi +3 -3
  171. homeassistant-stubs/components/linear_garage_door/__init__.pyi +4 -5
  172. homeassistant-stubs/components/linear_garage_door/coordinator.pyi +3 -2
  173. homeassistant-stubs/components/linear_garage_door/cover.pyi +2 -4
  174. homeassistant-stubs/components/linear_garage_door/diagnostics.pyi +2 -4
  175. homeassistant-stubs/components/linear_garage_door/light.pyi +2 -4
  176. homeassistant-stubs/components/lookin/__init__.pyi +4 -5
  177. homeassistant-stubs/components/lookin/climate.pyi +3 -4
  178. homeassistant-stubs/components/lookin/coordinator.pyi +3 -3
  179. homeassistant-stubs/components/lookin/light.pyi +3 -4
  180. homeassistant-stubs/components/lookin/media_player.pyi +3 -4
  181. homeassistant-stubs/components/lookin/models.pyi +2 -0
  182. homeassistant-stubs/components/lookin/sensor.pyi +2 -4
  183. homeassistant-stubs/components/luftdaten/__init__.pyi +4 -6
  184. homeassistant-stubs/components/luftdaten/coordinator.pyi +15 -0
  185. homeassistant-stubs/components/luftdaten/diagnostics.pyi +3 -4
  186. homeassistant-stubs/components/luftdaten/sensor.pyi +4 -4
  187. homeassistant-stubs/components/matrix/__init__.pyi +2 -7
  188. homeassistant-stubs/components/matrix/const.pyi +3 -0
  189. homeassistant-stubs/components/matrix/services.pyi +12 -0
  190. homeassistant-stubs/components/matter/sensor.pyi +7 -2
  191. homeassistant-stubs/components/matter/vacuum.pyi +5 -5
  192. homeassistant-stubs/components/mealie/__init__.pyi +1 -1
  193. homeassistant-stubs/components/mealie/services.pyi +9 -3
  194. homeassistant-stubs/components/media_player/__init__.pyi +0 -2
  195. homeassistant-stubs/components/media_player/intent.pyi +1 -1
  196. homeassistant-stubs/components/media_source/local_source.pyi +2 -0
  197. homeassistant-stubs/components/miele/const.pyi +24 -0
  198. homeassistant-stubs/components/miele/sensor.pyi +1 -2
  199. homeassistant-stubs/components/mqtt/config_flow.pyi +4 -1
  200. homeassistant-stubs/components/mqtt/sensor.pyi +1 -4
  201. homeassistant-stubs/components/music_assistant/__init__.pyi +5 -1
  202. homeassistant-stubs/components/music_assistant/button.pyi +15 -0
  203. homeassistant-stubs/components/music_assistant/helpers.pyi +5 -0
  204. homeassistant-stubs/components/music_assistant/media_player.pyi +4 -4
  205. homeassistant-stubs/components/nextdns/binary_sensor.pyi +6 -12
  206. homeassistant-stubs/components/nextdns/button.pyi +2 -9
  207. homeassistant-stubs/components/nextdns/coordinator.pyi +2 -7
  208. homeassistant-stubs/components/nextdns/entity.pyi +14 -0
  209. homeassistant-stubs/components/nextdns/sensor.pyi +8 -15
  210. homeassistant-stubs/components/nextdns/switch.pyi +3 -6
  211. homeassistant-stubs/components/nfandroidtv/__init__.pyi +0 -1
  212. homeassistant-stubs/components/nfandroidtv/notify.pyi +5 -4
  213. homeassistant-stubs/components/nordpool/services.pyi +2 -1
  214. homeassistant-stubs/components/ntfy/__init__.pyi +1 -3
  215. homeassistant-stubs/components/ntfy/config_flow.pyi +3 -0
  216. homeassistant-stubs/components/ntfy/coordinator.pyi +16 -0
  217. homeassistant-stubs/components/ntfy/notify.pyi +1 -1
  218. homeassistant-stubs/components/ntfy/sensor.pyi +56 -0
  219. homeassistant-stubs/components/ohme/services.pyi +2 -1
  220. homeassistant-stubs/components/onedrive/__init__.pyi +1 -1
  221. homeassistant-stubs/components/onedrive/services.pyi +3 -2
  222. homeassistant-stubs/components/onewire/binary_sensor.pyi +3 -2
  223. homeassistant-stubs/components/onewire/const.pyi +0 -1
  224. homeassistant-stubs/components/onewire/entity.pyi +2 -3
  225. homeassistant-stubs/components/onewire/switch.pyi +3 -2
  226. homeassistant-stubs/components/onkyo/__init__.pyi +1 -1
  227. homeassistant-stubs/components/onkyo/services.pyi +3 -2
  228. homeassistant-stubs/components/openai_conversation/__init__.pyi +3 -2
  229. homeassistant-stubs/components/openai_conversation/config_flow.pyi +18 -14
  230. homeassistant-stubs/components/openai_conversation/const.pyi +2 -0
  231. homeassistant-stubs/components/openai_conversation/conversation.pyi +4 -4
  232. homeassistant-stubs/components/overseerr/__init__.pyi +1 -1
  233. homeassistant-stubs/components/overseerr/services.pyi +6 -4
  234. homeassistant-stubs/components/paperless_ngx/__init__.pyi +1 -1
  235. homeassistant-stubs/components/paperless_ngx/config_flow.pyi +2 -2
  236. homeassistant-stubs/components/paperless_ngx/coordinator.pyi +3 -5
  237. homeassistant-stubs/components/paperless_ngx/entity.pyi +2 -5
  238. homeassistant-stubs/components/paperless_ngx/sensor.pyi +8 -8
  239. homeassistant-stubs/components/paperless_ngx/update.pyi +25 -0
  240. homeassistant-stubs/components/plugwise/climate.pyi +0 -1
  241. homeassistant-stubs/components/qbus/climate.pyi +3 -2
  242. homeassistant-stubs/components/qbus/cover.pyi +39 -0
  243. homeassistant-stubs/components/qbus/entity.pyi +7 -3
  244. homeassistant-stubs/components/qbus/light.pyi +4 -3
  245. homeassistant-stubs/components/qbus/scene.pyi +2 -2
  246. homeassistant-stubs/components/qbus/switch.pyi +3 -2
  247. homeassistant-stubs/components/recorder/__init__.pyi +1 -1
  248. homeassistant-stubs/components/recorder/services.pyi +7 -12
  249. homeassistant-stubs/components/reolink/__init__.pyi +1 -1
  250. homeassistant-stubs/components/reolink/config_flow.pyi +1 -1
  251. homeassistant-stubs/components/reolink/const.pyi +1 -0
  252. homeassistant-stubs/components/reolink/entity.pyi +1 -1
  253. homeassistant-stubs/components/reolink/host.pyi +1 -1
  254. homeassistant-stubs/components/reolink/services.pyi +2 -0
  255. homeassistant-stubs/components/rest/data.pyi +7 -6
  256. homeassistant-stubs/components/russound_rio/__init__.pyi +1 -0
  257. homeassistant-stubs/components/russound_rio/entity.pyi +6 -2
  258. homeassistant-stubs/components/russound_rio/media_player.pyi +1 -5
  259. homeassistant-stubs/components/russound_rio/number.pyi +30 -0
  260. homeassistant-stubs/components/russound_rio/switch.pyi +33 -0
  261. homeassistant-stubs/components/shopping_list/__init__.pyi +1 -0
  262. homeassistant-stubs/components/shopping_list/intent.pyi +9 -1
  263. homeassistant-stubs/components/squeezebox/button.pyi +0 -2
  264. homeassistant-stubs/components/squeezebox/entity.pyi +2 -0
  265. homeassistant-stubs/components/squeezebox/media_player.pyi +0 -2
  266. homeassistant-stubs/components/sun/__init__.pyi +1 -0
  267. homeassistant-stubs/components/sun/binary_sensor.pyi +36 -0
  268. homeassistant-stubs/components/sun/condition.pyi +13 -3
  269. homeassistant-stubs/components/sun/sensor.pyi +2 -0
  270. homeassistant-stubs/components/switch/light.pyi +1 -0
  271. homeassistant-stubs/components/switch_as_x/entity.pyi +1 -0
  272. homeassistant-stubs/components/synology_dsm/__init__.pyi +4 -1
  273. homeassistant-stubs/components/synology_dsm/{service.pyi → services.pyi} +4 -2
  274. homeassistant-stubs/components/tedee/binary_sensor.pyi +4 -0
  275. homeassistant-stubs/components/telegram_bot/__init__.pyi +34 -0
  276. homeassistant-stubs/components/telegram_bot/bot.pyi +63 -0
  277. homeassistant-stubs/components/telegram_bot/broadcast.pyi +5 -0
  278. homeassistant-stubs/components/telegram_bot/config_flow.pyi +53 -0
  279. homeassistant-stubs/components/telegram_bot/const.pyi +93 -0
  280. homeassistant-stubs/components/telegram_bot/polling.pyi +19 -0
  281. homeassistant-stubs/components/telegram_bot/webhooks.pyi +47 -0
  282. homeassistant-stubs/components/tplink/climate.pyi +1 -2
  283. homeassistant-stubs/components/trend/binary_sensor.pyi +1 -1
  284. homeassistant-stubs/components/tts/__init__.pyi +1 -0
  285. homeassistant-stubs/components/tts/entity.pyi +1 -2
  286. homeassistant-stubs/components/unifi/button.pyi +5 -5
  287. homeassistant-stubs/components/unifi/device_tracker.pyi +5 -5
  288. homeassistant-stubs/components/unifi/entity.pyi +5 -8
  289. homeassistant-stubs/components/unifi/hub/hub.pyi +1 -1
  290. homeassistant-stubs/components/unifi/image.pyi +5 -5
  291. homeassistant-stubs/components/unifi/sensor.pyi +5 -5
  292. homeassistant-stubs/components/unifi/switch.pyi +7 -7
  293. homeassistant-stubs/components/unifi/update.pyi +3 -5
  294. homeassistant-stubs/components/unifiprotect/services.pyi +1 -0
  295. homeassistant-stubs/components/vacuum/__init__.pyi +0 -2
  296. homeassistant-stubs/components/websocket_api/commands.pyi +6 -3
  297. homeassistant-stubs/components/websocket_api/messages.pyi +1 -0
  298. homeassistant-stubs/components/wiz/__init__.pyi +3 -3
  299. homeassistant-stubs/components/zwave_js/__init__.pyi +1 -1
  300. homeassistant-stubs/components/zwave_js/api.pyi +2 -2
  301. homeassistant-stubs/components/zwave_js/device_trigger.pyi +0 -1
  302. homeassistant-stubs/components/zwave_js/services.pyi +2 -0
  303. homeassistant-stubs/components/zwave_js/trigger.pyi +3 -7
  304. homeassistant-stubs/components/zwave_js/triggers/event.pyi +9 -1
  305. homeassistant-stubs/components/zwave_js/triggers/value_updated.pyi +9 -1
  306. homeassistant-stubs/config_entries.pyi +2 -0
  307. homeassistant-stubs/const.pyi +1 -0
  308. homeassistant-stubs/helpers/condition.pyi +11 -3
  309. homeassistant-stubs/helpers/device_registry.pyi +5 -1
  310. homeassistant-stubs/helpers/entity.pyi +1 -4
  311. homeassistant-stubs/helpers/entity_registry.pyi +11 -1
  312. homeassistant-stubs/helpers/llm.pyi +0 -1
  313. homeassistant-stubs/helpers/selector.pyi +24 -4
  314. homeassistant-stubs/helpers/system_info.pyi +2 -0
  315. homeassistant-stubs/helpers/template.pyi +2 -1
  316. homeassistant-stubs/helpers/trigger.pyi +33 -2
  317. homeassistant-stubs/loader.pyi +3 -1
  318. homeassistant-stubs/util/timeout.pyi +6 -3
  319. homeassistant-stubs/util/yaml/loader.pyi +3 -1
  320. {homeassistant_stubs-2025.6.3.dist-info → homeassistant_stubs-2025.7.0b1.dist-info}/METADATA +2 -2
  321. {homeassistant_stubs-2025.6.3.dist-info → homeassistant_stubs-2025.7.0b1.dist-info}/RECORD +323 -286
  322. homeassistant-stubs/backports/enum.pyi +0 -7
  323. homeassistant-stubs/backports/functools.pyi +0 -7
  324. homeassistant-stubs/components/devolo_home_control/devolo_multi_level_switch.pyi +0 -10
  325. {homeassistant_stubs-2025.6.3.dist-info → homeassistant_stubs-2025.7.0b1.dist-info}/WHEEL +0 -0
  326. {homeassistant_stubs-2025.6.3.dist-info → homeassistant_stubs-2025.7.0b1.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,47 @@
1
+ from .bot import BaseTelegramBot as BaseTelegramBot, TelegramBotConfigEntry as TelegramBotConfigEntry
2
+ from .const import CONF_TRUSTED_NETWORKS as CONF_TRUSTED_NETWORKS
3
+ from _typeshed import Incomplete
4
+ from aiohttp.web_response import Response as Response
5
+ from homeassistant.components.http import HomeAssistantRequest as HomeAssistantRequest, HomeAssistantView as HomeAssistantView
6
+ from homeassistant.const import CONF_URL as CONF_URL
7
+ from homeassistant.core import HomeAssistant as HomeAssistant
8
+ from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady
9
+ from homeassistant.helpers.network import get_url as get_url
10
+ from ipaddress import IPv4Network
11
+ from telegram import Bot as Bot
12
+ from telegram.ext import Application as Application
13
+
14
+ _LOGGER: Incomplete
15
+ TELEGRAM_WEBHOOK_URL: str
16
+ REMOVE_WEBHOOK_URL: str
17
+ SECRET_TOKEN_LENGTH: int
18
+
19
+ async def async_setup_platform(hass: HomeAssistant, bot: Bot, config: TelegramBotConfigEntry) -> BaseTelegramBot | None: ...
20
+ def _get_trusted_networks(config: TelegramBotConfigEntry) -> list[IPv4Network]: ...
21
+
22
+ class PushBot(BaseTelegramBot):
23
+ bot: Incomplete
24
+ trusted_networks: Incomplete
25
+ secret_token: Incomplete
26
+ application: Incomplete
27
+ base_url: Incomplete
28
+ webhook_url: Incomplete
29
+ def __init__(self, hass: HomeAssistant, bot: Bot, config: TelegramBotConfigEntry, secret_token: str) -> None: ...
30
+ async def shutdown(self) -> None: ...
31
+ async def _try_to_set_webhook(self) -> bool: ...
32
+ async def start_application(self) -> None: ...
33
+ async def register_webhook(self) -> bool: ...
34
+ async def stop_application(self) -> None: ...
35
+ async def deregister_webhook(self) -> None: ...
36
+
37
+ class PushBotView(HomeAssistantView):
38
+ requires_auth: bool
39
+ url = TELEGRAM_WEBHOOK_URL
40
+ name: str
41
+ hass: Incomplete
42
+ bot: Incomplete
43
+ application: Incomplete
44
+ trusted_networks: Incomplete
45
+ secret_token: Incomplete
46
+ def __init__(self, hass: HomeAssistant, bot: Bot, application: Application, trusted_networks: list[IPv4Network], secret_token: str) -> None: ...
47
+ async def post(self, request: HomeAssistantRequest) -> Response | None: ...
@@ -1,5 +1,5 @@
1
1
  from . import TPLinkConfigEntry as TPLinkConfigEntry, legacy_device_id as legacy_device_id
2
- from .const import DOMAIN as DOMAIN, UNIT_MAPPING as UNIT_MAPPING
2
+ from .const import UNIT_MAPPING as UNIT_MAPPING
3
3
  from .coordinator import TPLinkDataUpdateCoordinator as TPLinkDataUpdateCoordinator
4
4
  from .entity import CoordinatedTPLinkModuleEntity as CoordinatedTPLinkModuleEntity, TPLinkModuleEntityDescription as TPLinkModuleEntityDescription, async_refresh_after as async_refresh_after
5
5
  from _typeshed import Incomplete
@@ -8,7 +8,6 @@ from dataclasses import dataclass
8
8
  from homeassistant.components.climate import ATTR_TEMPERATURE as ATTR_TEMPERATURE, ClimateEntity as ClimateEntity, ClimateEntityDescription as ClimateEntityDescription, ClimateEntityFeature as ClimateEntityFeature, HVACAction as HVACAction, HVACMode as HVACMode
9
9
  from homeassistant.const import PRECISION_TENTHS as PRECISION_TENTHS, UnitOfTemperature as UnitOfTemperature
10
10
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
11
- from homeassistant.exceptions import ServiceValidationError as ServiceValidationError
12
11
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
13
12
  from kasa import Device as Device
14
13
  from typing import Any
@@ -5,7 +5,7 @@ from collections import deque
5
5
  from collections.abc import Mapping
6
6
  from homeassistant.components.binary_sensor import BinarySensorDeviceClass as BinarySensorDeviceClass, BinarySensorEntity as BinarySensorEntity, DEVICE_CLASSES_SCHEMA as DEVICE_CLASSES_SCHEMA, ENTITY_ID_FORMAT as ENTITY_ID_FORMAT
7
7
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
- from homeassistant.const import ATTR_ENTITY_ID as ATTR_ENTITY_ID, ATTR_FRIENDLY_NAME as ATTR_FRIENDLY_NAME, CONF_ATTRIBUTE as CONF_ATTRIBUTE, CONF_DEVICE_CLASS as CONF_DEVICE_CLASS, CONF_ENTITY_ID as CONF_ENTITY_ID, CONF_FRIENDLY_NAME as CONF_FRIENDLY_NAME, CONF_SENSORS as CONF_SENSORS, STATE_ON as STATE_ON, STATE_UNAVAILABLE as STATE_UNAVAILABLE, STATE_UNKNOWN as STATE_UNKNOWN
8
+ from homeassistant.const import ATTR_ENTITY_ID as ATTR_ENTITY_ID, ATTR_FRIENDLY_NAME as ATTR_FRIENDLY_NAME, CONF_ATTRIBUTE as CONF_ATTRIBUTE, CONF_DEVICE_CLASS as CONF_DEVICE_CLASS, CONF_ENTITY_ID as CONF_ENTITY_ID, CONF_FRIENDLY_NAME as CONF_FRIENDLY_NAME, CONF_SENSORS as CONF_SENSORS, CONF_UNIQUE_ID as CONF_UNIQUE_ID, STATE_ON as STATE_ON, STATE_UNAVAILABLE as STATE_UNAVAILABLE, STATE_UNKNOWN as STATE_UNKNOWN
9
9
  from homeassistant.core import Event as Event, EventStateChangedData as EventStateChangedData, HomeAssistant as HomeAssistant, callback as callback
10
10
  from homeassistant.helpers import device_registry as dr
11
11
  from homeassistant.helpers.device import async_device_info_to_link_from_entity as async_device_info_to_link_from_entity
@@ -131,6 +131,7 @@ class TextToSpeechView(HomeAssistantView):
131
131
  name: str
132
132
  manager: Incomplete
133
133
  def __init__(self, manager: SpeechManager) -> None: ...
134
+ async def head(self, request: web.Request, token: str) -> web.StreamResponse: ...
134
135
  async def get(self, request: web.Request, token: str) -> web.StreamResponse: ...
135
136
 
136
137
  # Names in __all__ with no definition:
@@ -43,8 +43,7 @@ class TextToSpeechEntity(RestoreEntity, cached_properties=CACHED_PROPERTIES_WITH
43
43
  def supported_options(self) -> list[str] | None: ...
44
44
  @cached_property
45
45
  def default_options(self) -> Mapping[str, Any] | None: ...
46
- @classmethod
47
- def async_supports_streaming_input(cls) -> bool: ...
46
+ def async_supports_streaming_input(self) -> bool: ...
48
47
  @callback
49
48
  def async_get_supported_voices(self, language: str) -> list[Voice] | None: ...
50
49
  async def async_internal_added_to_hass(self) -> None: ...
@@ -1,9 +1,9 @@
1
1
  import aiounifi
2
2
  from . import UnifiConfigEntry as UnifiConfigEntry
3
- from .entity import HandlerT as HandlerT, UnifiEntity as UnifiEntity, UnifiEntityDescription as UnifiEntityDescription, async_device_available_fn as async_device_available_fn, async_device_device_info_fn as async_device_device_info_fn, async_wlan_available_fn as async_wlan_available_fn, async_wlan_device_info_fn as async_wlan_device_info_fn
3
+ from .entity import UnifiEntity as UnifiEntity, UnifiEntityDescription as UnifiEntityDescription, async_device_available_fn as async_device_available_fn, async_device_device_info_fn as async_device_device_info_fn, async_wlan_available_fn as async_wlan_available_fn, async_wlan_device_info_fn as async_wlan_device_info_fn
4
4
  from .hub import UnifiHub as UnifiHub
5
- from aiounifi.interfaces.api_handlers import ItemEvent as ItemEvent
6
- from aiounifi.models.api import ApiItemT
5
+ from aiounifi.interfaces.api_handlers import APIHandler as APIHandler, ItemEvent as ItemEvent
6
+ from aiounifi.models.api import ApiItem as ApiItem
7
7
  from collections.abc import Callable as Callable, Coroutine
8
8
  from dataclasses import dataclass
9
9
  from homeassistant.components.button import ButtonDeviceClass as ButtonDeviceClass, ButtonEntity as ButtonEntity, ButtonEntityDescription as ButtonEntityDescription
@@ -19,14 +19,14 @@ async def async_power_cycle_port_control_fn(api: aiounifi.Controller, obj_id: st
19
19
  async def async_regenerate_password_control_fn(api: aiounifi.Controller, obj_id: str) -> None: ...
20
20
 
21
21
  @dataclass(frozen=True, kw_only=True)
22
- class UnifiButtonEntityDescription(ButtonEntityDescription, UnifiEntityDescription[HandlerT, ApiItemT]):
22
+ class UnifiButtonEntityDescription[HandlerT: APIHandler, ApiItemT: ApiItem](ButtonEntityDescription, UnifiEntityDescription[HandlerT, ApiItemT]):
23
23
  control_fn: Callable[[aiounifi.Controller, str], Coroutine[Any, Any, None]]
24
24
 
25
25
  ENTITY_DESCRIPTIONS: tuple[UnifiButtonEntityDescription, ...]
26
26
 
27
27
  async def async_setup_entry(hass: HomeAssistant, config_entry: UnifiConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
28
28
 
29
- class UnifiButtonEntity(UnifiEntity[HandlerT, ApiItemT], ButtonEntity):
29
+ class UnifiButtonEntity[HandlerT: APIHandler, ApiItemT: ApiItem](UnifiEntity[HandlerT, ApiItemT], ButtonEntity):
30
30
  entity_description: UnifiButtonEntityDescription[HandlerT, ApiItemT]
31
31
  async def async_press(self) -> None: ...
32
32
  @callback
@@ -1,11 +1,11 @@
1
1
  import aiounifi
2
2
  from . import UnifiConfigEntry as UnifiConfigEntry
3
3
  from .const import DOMAIN as DOMAIN
4
- from .entity import HandlerT as HandlerT, UnifiEntity as UnifiEntity, UnifiEntityDescription as UnifiEntityDescription, async_device_available_fn as async_device_available_fn
4
+ from .entity import UnifiEntity as UnifiEntity, UnifiEntityDescription as UnifiEntityDescription, async_device_available_fn as async_device_available_fn
5
5
  from .hub import UnifiHub as UnifiHub
6
6
  from _typeshed import Incomplete
7
- from aiounifi.interfaces.api_handlers import ItemEvent
8
- from aiounifi.models.api import ApiItemT
7
+ from aiounifi.interfaces.api_handlers import APIHandler as APIHandler, ItemEvent
8
+ from aiounifi.models.api import ApiItem as ApiItem
9
9
  from aiounifi.models.event import Event, EventKey
10
10
  from collections.abc import Callable as Callable, Mapping
11
11
  from dataclasses import dataclass
@@ -36,7 +36,7 @@ def async_client_is_connected_fn(hub: UnifiHub, obj_id: str) -> bool: ...
36
36
  def async_device_heartbeat_timedelta_fn(hub: UnifiHub, obj_id: str) -> timedelta: ...
37
37
 
38
38
  @dataclass(frozen=True, kw_only=True)
39
- class UnifiTrackerEntityDescription(UnifiEntityDescription[HandlerT, ApiItemT], ScannerEntityDescription):
39
+ class UnifiTrackerEntityDescription[HandlerT: APIHandler, ApiItemT: ApiItem](UnifiEntityDescription[HandlerT, ApiItemT], ScannerEntityDescription):
40
40
  heartbeat_timedelta_fn: Callable[[UnifiHub, str], timedelta]
41
41
  ip_address_fn: Callable[[aiounifi.Controller, str], str | None]
42
42
  is_connected_fn: Callable[[UnifiHub, str], bool]
@@ -48,7 +48,7 @@ ENTITY_DESCRIPTIONS: tuple[UnifiTrackerEntityDescription, ...]
48
48
  def async_update_unique_id(hass: HomeAssistant, config_entry: UnifiConfigEntry) -> None: ...
49
49
  async def async_setup_entry(hass: HomeAssistant, config_entry: UnifiConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
50
50
 
51
- class UnifiScannerEntity(UnifiEntity[HandlerT, ApiItemT], ScannerEntity):
51
+ class UnifiScannerEntity[HandlerT: APIHandler, ApiItemT: ApiItem](UnifiEntity[HandlerT, ApiItemT], ScannerEntity):
52
52
  entity_description: UnifiTrackerEntityDescription
53
53
  _event_is_on: set[EventKey]
54
54
  _ignore_events: bool
@@ -4,8 +4,8 @@ from .const import ATTR_MANUFACTURER as ATTR_MANUFACTURER, DOMAIN as DOMAIN
4
4
  from .hub import UnifiHub as UnifiHub
5
5
  from _typeshed import Incomplete
6
6
  from abc import abstractmethod
7
- from aiounifi.interfaces.api_handlers import APIHandler, CallbackType, ItemEvent, UnsubscribeType
8
- from aiounifi.models.api import ApiItemT as ApiItemT
7
+ from aiounifi.interfaces.api_handlers import APIHandler as APIHandler, CallbackType, ItemEvent, UnsubscribeType
8
+ from aiounifi.models.api import ApiItem as ApiItem
9
9
  from aiounifi.models.event import Event as Event, EventKey as EventKey
10
10
  from collections.abc import Callable
11
11
  from dataclasses import dataclass
@@ -13,11 +13,8 @@ from homeassistant.core import callback as callback
13
13
  from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC as CONNECTION_NETWORK_MAC, DeviceEntryType as DeviceEntryType, DeviceInfo as DeviceInfo
14
14
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
15
15
  from homeassistant.helpers.entity import Entity as Entity, EntityDescription as EntityDescription
16
- from typing import Generic, TypeVar
17
-
18
- HandlerT = TypeVar('HandlerT', bound=APIHandler)
19
- SubscriptionT = Callable[[CallbackType, ItemEvent], UnsubscribeType]
20
16
 
17
+ type SubscriptionType = Callable[[CallbackType, ItemEvent], UnsubscribeType]
21
18
  @callback
22
19
  def async_device_available_fn(hub: UnifiHub, obj_id: str) -> bool: ...
23
20
  @callback
@@ -30,7 +27,7 @@ def async_wlan_device_info_fn(hub: UnifiHub, obj_id: str) -> DeviceInfo: ...
30
27
  def async_client_device_info_fn(hub: UnifiHub, obj_id: str) -> DeviceInfo: ...
31
28
 
32
29
  @dataclass(frozen=True, kw_only=True)
33
- class UnifiEntityDescription(EntityDescription, Generic[HandlerT, ApiItemT]):
30
+ class UnifiEntityDescription[HandlerT: APIHandler, ApiItemT: ApiItem](EntityDescription):
34
31
  api_handler_fn: Callable[[aiounifi.Controller], HandlerT]
35
32
  device_info_fn: Callable[[UnifiHub, str], DeviceInfo | None]
36
33
  object_fn: Callable[[aiounifi.Controller, str], ApiItemT]
@@ -44,7 +41,7 @@ class UnifiEntityDescription(EntityDescription, Generic[HandlerT, ApiItemT]):
44
41
  event_to_subscribe: tuple[EventKey, ...] | None = ...
45
42
  should_poll: bool = ...
46
43
 
47
- class UnifiEntity(Entity, Generic[HandlerT, ApiItemT], metaclass=abc.ABCMeta):
44
+ class UnifiEntity[HandlerT: APIHandler, ApiItemT: ApiItem](Entity, metaclass=abc.ABCMeta):
48
45
  entity_description: UnifiEntityDescription[HandlerT, ApiItemT]
49
46
  _attr_unique_id: str
50
47
  _obj_id: Incomplete
@@ -1,6 +1,6 @@
1
1
  import aiounifi
2
2
  from .. import UnifiConfigEntry as UnifiConfigEntry
3
- from ..const import ATTR_MANUFACTURER as ATTR_MANUFACTURER, CONF_SITE_ID as CONF_SITE_ID, PLATFORMS as PLATFORMS
3
+ from ..const import ATTR_MANUFACTURER as ATTR_MANUFACTURER, CONF_SITE_ID as CONF_SITE_ID, DOMAIN as DOMAIN, PLATFORMS as PLATFORMS
4
4
  from .config import UnifiConfig as UnifiConfig
5
5
  from .entity_helper import UnifiEntityHelper as UnifiEntityHelper
6
6
  from .entity_loader import UnifiEntityLoader as UnifiEntityLoader
@@ -1,9 +1,9 @@
1
1
  from . import UnifiConfigEntry as UnifiConfigEntry
2
- from .entity import HandlerT as HandlerT, UnifiEntity as UnifiEntity, UnifiEntityDescription as UnifiEntityDescription, async_wlan_available_fn as async_wlan_available_fn, async_wlan_device_info_fn as async_wlan_device_info_fn
2
+ from .entity import UnifiEntity as UnifiEntity, UnifiEntityDescription as UnifiEntityDescription, async_wlan_available_fn as async_wlan_available_fn, async_wlan_device_info_fn as async_wlan_device_info_fn
3
3
  from .hub import UnifiHub as UnifiHub
4
4
  from _typeshed import Incomplete
5
- from aiounifi.interfaces.api_handlers import ItemEvent as ItemEvent
6
- from aiounifi.models.api import ApiItemT
5
+ from aiounifi.interfaces.api_handlers import APIHandler as APIHandler, ItemEvent as ItemEvent
6
+ from aiounifi.models.api import ApiItem as ApiItem
7
7
  from aiounifi.models.wlan import Wlan
8
8
  from collections.abc import Callable as Callable
9
9
  from dataclasses import dataclass
@@ -16,7 +16,7 @@ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
16
16
  def async_wlan_qr_code_image_fn(hub: UnifiHub, wlan: Wlan) -> bytes: ...
17
17
 
18
18
  @dataclass(frozen=True, kw_only=True)
19
- class UnifiImageEntityDescription(ImageEntityDescription, UnifiEntityDescription[HandlerT, ApiItemT]):
19
+ class UnifiImageEntityDescription[HandlerT: APIHandler, ApiItemT: ApiItem](ImageEntityDescription, UnifiEntityDescription[HandlerT, ApiItemT]):
20
20
  image_fn: Callable[[UnifiHub, ApiItemT], bytes]
21
21
  value_fn: Callable[[ApiItemT], str | None]
22
22
 
@@ -24,7 +24,7 @@ ENTITY_DESCRIPTIONS: tuple[UnifiImageEntityDescription, ...]
24
24
 
25
25
  async def async_setup_entry(hass: HomeAssistant, config_entry: UnifiConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
26
26
 
27
- class UnifiImageEntity(UnifiEntity[HandlerT, ApiItemT], ImageEntity):
27
+ class UnifiImageEntity[HandlerT: APIHandler, ApiItemT: ApiItem](UnifiEntity[HandlerT, ApiItemT], ImageEntity):
28
28
  entity_description: UnifiImageEntityDescription[HandlerT, ApiItemT]
29
29
  _attr_content_type: str
30
30
  current_image: bytes | None
@@ -1,10 +1,10 @@
1
1
  from . import UnifiConfigEntry as UnifiConfigEntry
2
2
  from .const import DEVICE_STATES as DEVICE_STATES
3
- from .entity import HandlerT as HandlerT, UnifiEntity as UnifiEntity, UnifiEntityDescription as UnifiEntityDescription, async_client_device_info_fn as async_client_device_info_fn, async_device_available_fn as async_device_available_fn, async_device_device_info_fn as async_device_device_info_fn, async_wlan_available_fn as async_wlan_available_fn, async_wlan_device_info_fn as async_wlan_device_info_fn
3
+ from .entity import UnifiEntity as UnifiEntity, UnifiEntityDescription as UnifiEntityDescription, async_client_device_info_fn as async_client_device_info_fn, async_device_available_fn as async_device_available_fn, async_device_device_info_fn as async_device_device_info_fn, async_wlan_available_fn as async_wlan_available_fn, async_wlan_device_info_fn as async_wlan_device_info_fn
4
4
  from .hub import UnifiHub as UnifiHub
5
5
  from _typeshed import Incomplete
6
- from aiounifi.interfaces.api_handlers import ItemEvent as ItemEvent
7
- from aiounifi.models.api import ApiItemT
6
+ from aiounifi.interfaces.api_handlers import APIHandler as APIHandler, ItemEvent as ItemEvent
7
+ from aiounifi.models.api import ApiItem as ApiItem
8
8
  from aiounifi.models.client import Client
9
9
  from aiounifi.models.device import Device, TypedDeviceTemperature as TypedDeviceTemperature, TypedDeviceUptimeStatsWanMonitor as TypedDeviceUptimeStatsWanMonitor
10
10
  from aiounifi.models.wlan import Wlan
@@ -66,7 +66,7 @@ def _device_temperature(temperature_name: str, temperatures: list[TypedDeviceTem
66
66
  def make_device_temperatur_sensors() -> tuple[UnifiSensorEntityDescription, ...]: ...
67
67
 
68
68
  @dataclass(frozen=True, kw_only=True)
69
- class UnifiSensorEntityDescription(SensorEntityDescription, UnifiEntityDescription[HandlerT, ApiItemT]):
69
+ class UnifiSensorEntityDescription[HandlerT: APIHandler, ApiItemT: ApiItem](SensorEntityDescription, UnifiEntityDescription[HandlerT, ApiItemT]):
70
70
  value_fn: Callable[[UnifiHub, ApiItemT], datetime | float | str | None]
71
71
  is_connected_fn: Callable[[UnifiHub, str], bool] | None = ...
72
72
  value_changed_fn: Callable[[StateType | date | datetime | Decimal, datetime | float | str | None], bool] = ...
@@ -75,7 +75,7 @@ ENTITY_DESCRIPTIONS: tuple[UnifiSensorEntityDescription, ...]
75
75
 
76
76
  async def async_setup_entry(hass: HomeAssistant, config_entry: UnifiConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
77
77
 
78
- class UnifiSensorEntity(UnifiEntity[HandlerT, ApiItemT], SensorEntity):
78
+ class UnifiSensorEntity[HandlerT: APIHandler, ApiItemT: ApiItem](UnifiEntity[HandlerT, ApiItemT], SensorEntity):
79
79
  entity_description: UnifiSensorEntityDescription[HandlerT, ApiItemT]
80
80
  _attr_available: bool
81
81
  @callback
@@ -1,11 +1,11 @@
1
1
  import aiounifi
2
2
  from . import UnifiConfigEntry as UnifiConfigEntry
3
- from .const import ATTR_MANUFACTURER as ATTR_MANUFACTURER
4
- from .entity import HandlerT as HandlerT, SubscriptionT as SubscriptionT, UnifiEntity as UnifiEntity, UnifiEntityDescription as UnifiEntityDescription, async_client_device_info_fn as async_client_device_info_fn, async_device_available_fn as async_device_available_fn, async_device_device_info_fn as async_device_device_info_fn, async_wlan_device_info_fn as async_wlan_device_info_fn
3
+ from .const import ATTR_MANUFACTURER as ATTR_MANUFACTURER, DOMAIN as DOMAIN
4
+ from .entity import SubscriptionType as SubscriptionType, UnifiEntity as UnifiEntity, UnifiEntityDescription as UnifiEntityDescription, async_client_device_info_fn as async_client_device_info_fn, async_device_available_fn as async_device_available_fn, async_device_device_info_fn as async_device_device_info_fn, async_wlan_device_info_fn as async_wlan_device_info_fn
5
5
  from .hub import UnifiHub as UnifiHub
6
6
  from _typeshed import Incomplete
7
- from aiounifi.interfaces.api_handlers import ItemEvent
8
- from aiounifi.models.api import ApiItemT
7
+ from aiounifi.interfaces.api_handlers import APIHandler as APIHandler, ItemEvent
8
+ from aiounifi.models.api import ApiItem as ApiItem
9
9
  from aiounifi.models.dpi_restriction_group import DPIRestrictionGroup
10
10
  from aiounifi.models.event import Event as Event
11
11
  from collections.abc import Callable as Callable, Coroutine
@@ -43,10 +43,10 @@ async def async_traffic_route_control_fn(hub: UnifiHub, obj_id: str, target: boo
43
43
  async def async_wlan_control_fn(hub: UnifiHub, obj_id: str, target: bool) -> None: ...
44
44
 
45
45
  @dataclass(frozen=True, kw_only=True)
46
- class UnifiSwitchEntityDescription(SwitchEntityDescription, UnifiEntityDescription[HandlerT, ApiItemT]):
46
+ class UnifiSwitchEntityDescription[HandlerT: APIHandler, ApiItemT: ApiItem](SwitchEntityDescription, UnifiEntityDescription[HandlerT, ApiItemT]):
47
47
  control_fn: Callable[[UnifiHub, str, bool], Coroutine[Any, Any, None]]
48
48
  is_on_fn: Callable[[UnifiHub, ApiItemT], bool]
49
- custom_subscribe: Callable[[aiounifi.Controller], SubscriptionT] | None = ...
49
+ custom_subscribe: Callable[[aiounifi.Controller], SubscriptionType] | None = ...
50
50
  only_event_for_state_change: bool = ...
51
51
 
52
52
  ENTITY_DESCRIPTIONS: tuple[UnifiSwitchEntityDescription, ...]
@@ -55,7 +55,7 @@ ENTITY_DESCRIPTIONS: tuple[UnifiSwitchEntityDescription, ...]
55
55
  def async_update_unique_id(hass: HomeAssistant, config_entry: UnifiConfigEntry) -> None: ...
56
56
  async def async_setup_entry(hass: HomeAssistant, config_entry: UnifiConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
57
57
 
58
- class UnifiSwitchEntity(UnifiEntity[HandlerT, ApiItemT], SwitchEntity):
58
+ class UnifiSwitchEntity[HandlerT: APIHandler, ApiItemT: ApiItem](UnifiEntity[HandlerT, ApiItemT], SwitchEntity):
59
59
  entity_description: UnifiSwitchEntityDescription[HandlerT, ApiItemT]
60
60
  @callback
61
61
  def async_initiate_state(self) -> None: ...
@@ -10,16 +10,14 @@ from dataclasses import dataclass
10
10
  from homeassistant.components.update import UpdateDeviceClass as UpdateDeviceClass, UpdateEntity as UpdateEntity, UpdateEntityDescription as UpdateEntityDescription, UpdateEntityFeature as UpdateEntityFeature
11
11
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
12
12
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
13
- from typing import Any, TypeVar
13
+ from typing import Any
14
14
 
15
15
  LOGGER: Incomplete
16
- _DataT = TypeVar('_DataT', bound=Device)
17
- _HandlerT = TypeVar('_HandlerT', bound=Devices)
18
16
 
19
17
  async def async_device_control_fn(api: aiounifi.Controller, obj_id: str) -> None: ...
20
18
 
21
19
  @dataclass(frozen=True, kw_only=True)
22
- class UnifiUpdateEntityDescription(UpdateEntityDescription, UnifiEntityDescription[_HandlerT, _DataT]):
20
+ class UnifiUpdateEntityDescription[_HandlerT: Devices, _DataT: Device](UpdateEntityDescription, UnifiEntityDescription[_HandlerT, _DataT]):
23
21
  control_fn: Callable[[aiounifi.Controller, str], Coroutine[Any, Any, None]]
24
22
  state_fn: Callable[[aiounifi.Controller, _DataT], bool]
25
23
 
@@ -27,7 +25,7 @@ ENTITY_DESCRIPTIONS: tuple[UnifiUpdateEntityDescription, ...]
27
25
 
28
26
  async def async_setup_entry(hass: HomeAssistant, config_entry: UnifiConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
29
27
 
30
- class UnifiDeviceUpdateEntity(UnifiEntity[_HandlerT, _DataT], UpdateEntity):
28
+ class UnifiDeviceUpdateEntity[_HandlerT: Devices, _DataT: Device](UnifiEntity[_HandlerT, _DataT], UpdateEntity):
31
29
  entity_description: UnifiUpdateEntityDescription[_HandlerT, _DataT]
32
30
  _attr_supported_features: Incomplete
33
31
  @callback
@@ -41,4 +41,5 @@ async def get_user_keyring_info(call: ServiceCall) -> ServiceResponse: ...
41
41
 
42
42
  SERVICES: Incomplete
43
43
 
44
+ @callback
44
45
  def async_setup_services(hass: HomeAssistant) -> None: ...
@@ -118,8 +118,6 @@ class StateVacuumEntity(Entity, cached_properties=STATE_VACUUM_CACHED_PROPERTIES
118
118
  def activity(self) -> VacuumActivity | None: ...
119
119
  @cached_property
120
120
  def supported_features(self) -> VacuumEntityFeature: ...
121
- @property
122
- def supported_features_compat(self) -> VacuumEntityFeature: ...
123
121
  def stop(self, **kwargs: Any) -> None: ...
124
122
  async def async_stop(self, **kwargs: Any) -> None: ...
125
123
  def return_to_base(self, **kwargs: Any) -> None: ...
@@ -1,6 +1,6 @@
1
1
  from . import const as const, decorators as decorators, messages as messages
2
2
  from .connection import ActiveConnection as ActiveConnection
3
- from .messages import construct_result_message as construct_result_message
3
+ from .messages import construct_event_message as construct_event_message, construct_result_message as construct_result_message
4
4
  from _typeshed import Incomplete
5
5
  from collections.abc import Callable as Callable
6
6
  from functools import lru_cache
@@ -15,13 +15,13 @@ from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_d
15
15
  from homeassistant.helpers.entityfilter import INCLUDE_EXCLUDE_BASE_FILTER_SCHEMA as INCLUDE_EXCLUDE_BASE_FILTER_SCHEMA, convert_include_exclude_filter as convert_include_exclude_filter
16
16
  from homeassistant.helpers.event import TrackTemplate as TrackTemplate, TrackTemplateResult as TrackTemplateResult, async_track_template_result as async_track_template_result
17
17
  from homeassistant.helpers.json import ExtendedJSONEncoder as ExtendedJSONEncoder, JSON_DUMP as JSON_DUMP, find_paths_unserializable_data as find_paths_unserializable_data, json_bytes as json_bytes, json_fragment as json_fragment
18
- from homeassistant.helpers.service import async_get_all_descriptions as async_get_all_descriptions
19
18
  from homeassistant.loader import IntegrationNotFound as IntegrationNotFound, async_get_integration as async_get_integration, async_get_integration_descriptions as async_get_integration_descriptions, async_get_integrations as async_get_integrations
20
19
  from homeassistant.setup import async_get_loaded_integrations as async_get_loaded_integrations, async_get_setup_timings as async_get_setup_timings, async_wait_component as async_wait_component
21
20
  from homeassistant.util.json import format_unserializable_data as format_unserializable_data
22
21
  from typing import Any
23
22
 
24
23
  ALL_SERVICE_DESCRIPTIONS_JSON_CACHE: str
24
+ ALL_TRIGGER_DESCRIPTIONS_JSON_CACHE: str
25
25
  _LOGGER: Incomplete
26
26
 
27
27
  @callback
@@ -49,9 +49,12 @@ def _forward_entity_changes(send_message: Callable[[str | bytes | dict[str, Any]
49
49
  @callback
50
50
  def handle_subscribe_entities(hass: HomeAssistant, connection: ActiveConnection, msg: dict[str, Any]) -> None: ...
51
51
  def _send_handle_entities_init_response(connection: ActiveConnection, message_id_as_bytes: bytes, serialized_states: list[bytes]) -> None: ...
52
- async def _async_get_all_descriptions_json(hass: HomeAssistant) -> bytes: ...
52
+ async def _async_get_all_service_descriptions_json(hass: HomeAssistant) -> bytes: ...
53
53
  @decorators.async_response
54
54
  async def handle_get_services(hass: HomeAssistant, connection: ActiveConnection, msg: dict[str, Any]) -> None: ...
55
+ async def _async_get_all_trigger_descriptions_json(hass: HomeAssistant) -> bytes: ...
56
+ @decorators.async_response
57
+ async def handle_subscribe_trigger_platforms(hass: HomeAssistant, connection: ActiveConnection, msg: dict[str, Any]) -> None: ...
55
58
  @callback
56
59
  def handle_get_config(hass: HomeAssistant, connection: ActiveConnection, msg: dict[str, Any]) -> None: ...
57
60
  @decorators.async_response
@@ -21,6 +21,7 @@ def result_message(iden: int, result: Any = None) -> dict[str, Any]: ...
21
21
  def construct_result_message(iden: int, payload: bytes) -> bytes: ...
22
22
  def error_message(iden: int | None, code: str, message: str, translation_key: str | None = None, translation_domain: str | None = None, translation_placeholders: dict[str, Any] | None = None) -> dict[str, Any]: ...
23
23
  def event_message(iden: int, event: Any) -> dict[str, Any]: ...
24
+ def construct_event_message(iden: int, event: bytes) -> bytes: ...
24
25
  def cached_event_message(message_id_as_bytes: bytes, event: Event) -> bytes: ...
25
26
  def _partial_cached_event_message(event: Event) -> bytes: ...
26
27
  def cached_state_diff_message(message_id_as_bytes: bytes, event: Event[EventStateChangedData]) -> bytes: ...
@@ -20,6 +20,6 @@ REQUEST_REFRESH_DELAY: float
20
20
  CONFIG_SCHEMA: Incomplete
21
21
 
22
22
  async def async_setup(hass: HomeAssistant, hass_config: ConfigType) -> bool: ...
23
- async def _async_update_listener(hass: HomeAssistant, entry: ConfigEntry) -> None: ...
24
- async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
25
- async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
23
+ async def _async_update_listener(hass: HomeAssistant, entry: WizConfigEntry) -> None: ...
24
+ async def async_setup_entry(hass: HomeAssistant, entry: WizConfigEntry) -> bool: ...
25
+ async def async_unload_entry(hass: HomeAssistant, entry: WizConfigEntry) -> bool: ...
@@ -5,7 +5,7 @@ from .const import ATTR_ACKNOWLEDGED_FRAMES as ATTR_ACKNOWLEDGED_FRAMES, ATTR_CO
5
5
  from .discovery import ZwaveDiscoveryInfo as ZwaveDiscoveryInfo, async_discover_node_values as async_discover_node_values, async_discover_single_value as async_discover_single_value
6
6
  from .helpers import async_disable_server_logging_if_needed as async_disable_server_logging_if_needed, async_enable_server_logging_if_needed as async_enable_server_logging_if_needed, async_enable_statistics as async_enable_statistics, get_device_id as get_device_id, get_device_id_ext as get_device_id_ext, get_network_identifier_for_notification as get_network_identifier_for_notification, get_unique_id as get_unique_id, get_valueless_base_unique_id as get_valueless_base_unique_id
7
7
  from .migrate import async_migrate_discovered_value as async_migrate_discovered_value
8
- from .services import ZWaveServices as ZWaveServices
8
+ from .services import async_setup_services as async_setup_services
9
9
  from _typeshed import Incomplete
10
10
  from homeassistant.components.hassio import AddonError as AddonError, AddonManager as AddonManager, AddonState as AddonState
11
11
  from homeassistant.components.persistent_notification import async_create as async_create
@@ -17,8 +17,8 @@ from typing import Any, Concatenate, Literal
17
17
  from zwave_js_server.client import Client as Client
18
18
  from zwave_js_server.const import InclusionStrategy
19
19
  from zwave_js_server.model.controller import ControllerStatistics as ControllerStatistics
20
- from zwave_js_server.model.controller.firmware import ControllerFirmwareUpdateProgress as ControllerFirmwareUpdateProgress, ControllerFirmwareUpdateResult as ControllerFirmwareUpdateResult
21
20
  from zwave_js_server.model.driver import Driver as Driver
21
+ from zwave_js_server.model.driver.firmware import DriverFirmwareUpdateProgress as DriverFirmwareUpdateProgress, DriverFirmwareUpdateResult as DriverFirmwareUpdateResult
22
22
  from zwave_js_server.model.endpoint import Endpoint as Endpoint
23
23
  from zwave_js_server.model.log_message import LogMessage as LogMessage
24
24
  from zwave_js_server.model.node import Node as Node, NodeStatistics as NodeStatistics
@@ -279,7 +279,7 @@ async def websocket_abort_firmware_update(hass: HomeAssistant, connection: Activ
279
279
  @async_get_node
280
280
  async def websocket_is_node_firmware_update_in_progress(hass: HomeAssistant, connection: ActiveConnection, msg: dict[str, Any], node: Node) -> None: ...
281
281
  def _get_node_firmware_update_progress_dict(progress: NodeFirmwareUpdateProgress) -> dict[str, int | float]: ...
282
- def _get_controller_firmware_update_progress_dict(progress: ControllerFirmwareUpdateProgress) -> dict[str, int | float]: ...
282
+ def _get_driver_firmware_update_progress_dict(progress: DriverFirmwareUpdateProgress) -> dict[str, int | float]: ...
283
283
  @websocket_api.require_admin
284
284
  @websocket_api.async_response
285
285
  @async_get_node
@@ -1,5 +1,4 @@
1
1
  import voluptuous as vol
2
- from . import trigger as trigger
3
2
  from .config_validation import VALUE_SCHEMA as VALUE_SCHEMA
4
3
  from .const import ATTR_COMMAND_CLASS as ATTR_COMMAND_CLASS, ATTR_DATA_TYPE as ATTR_DATA_TYPE, ATTR_ENDPOINT as ATTR_ENDPOINT, ATTR_EVENT as ATTR_EVENT, ATTR_EVENT_LABEL as ATTR_EVENT_LABEL, ATTR_EVENT_TYPE as ATTR_EVENT_TYPE, ATTR_LABEL as ATTR_LABEL, ATTR_PROPERTY as ATTR_PROPERTY, ATTR_PROPERTY_KEY as ATTR_PROPERTY_KEY, ATTR_TYPE as ATTR_TYPE, ATTR_VALUE as ATTR_VALUE, ATTR_VALUE_RAW as ATTR_VALUE_RAW, DOMAIN as DOMAIN, ZWAVE_JS_NOTIFICATION_EVENT as ZWAVE_JS_NOTIFICATION_EVENT, ZWAVE_JS_VALUE_NOTIFICATION_EVENT as ZWAVE_JS_VALUE_NOTIFICATION_EVENT
5
4
  from .device_automation_helpers import CONF_SUBTYPE as CONF_SUBTYPE, NODE_STATUSES as NODE_STATUSES, async_bypass_dynamic_config_validation as async_bypass_dynamic_config_validation, generate_config_parameter_subtype as generate_config_parameter_subtype
@@ -18,6 +18,8 @@ _LOGGER: Incomplete
18
18
  type _NodeOrEndpointType = ZwaveNode | Endpoint
19
19
  TARGET_VALIDATORS: Incomplete
20
20
 
21
+ @callback
22
+ def async_setup_services(hass: HomeAssistant) -> None: ...
21
23
  def parameter_name_does_not_need_bitmask(val: dict[str, int | str | list[str]]) -> dict[str, int | str | list[str]]: ...
22
24
  def check_base_2(val: int) -> int: ...
23
25
  def broadcast_command(val: dict[str, Any]) -> dict[str, Any]: ...
@@ -1,12 +1,8 @@
1
1
  from .triggers import event as event, value_updated as value_updated
2
2
  from _typeshed import Incomplete
3
- from homeassistant.const import CONF_PLATFORM as CONF_PLATFORM
4
- from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, HomeAssistant as HomeAssistant
5
- from homeassistant.helpers.trigger import TriggerActionType as TriggerActionType, TriggerInfo as TriggerInfo, TriggerProtocol as TriggerProtocol
6
- from homeassistant.helpers.typing import ConfigType as ConfigType
3
+ from homeassistant.core import HomeAssistant as HomeAssistant
4
+ from homeassistant.helpers.trigger import Trigger as Trigger
7
5
 
8
6
  TRIGGERS: Incomplete
9
7
 
10
- def _get_trigger_platform(config: ConfigType) -> TriggerProtocol: ...
11
- async def async_validate_trigger_config(hass: HomeAssistant, config: ConfigType) -> ConfigType: ...
12
- async def async_attach_trigger(hass: HomeAssistant, config: ConfigType, action: TriggerActionType, trigger_info: TriggerInfo) -> CALLBACK_TYPE: ...
8
+ async def async_get_triggers(hass: HomeAssistant) -> dict[str, type[Trigger]]: ...
@@ -6,7 +6,7 @@ from collections.abc import Callable as Callable
6
6
  from homeassistant.const import ATTR_DEVICE_ID as ATTR_DEVICE_ID, ATTR_ENTITY_ID as ATTR_ENTITY_ID, CONF_PLATFORM as CONF_PLATFORM
7
7
  from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, HassJob as HassJob, HomeAssistant as HomeAssistant, callback as callback
8
8
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
9
- from homeassistant.helpers.trigger import TriggerActionType as TriggerActionType, TriggerInfo as TriggerInfo
9
+ from homeassistant.helpers.trigger import Trigger as Trigger, TriggerActionType as TriggerActionType, TriggerInfo as TriggerInfo
10
10
  from homeassistant.helpers.typing import ConfigType as ConfigType
11
11
  from zwave_js_server.client import Client as Client
12
12
  from zwave_js_server.model.driver import Driver as Driver
@@ -21,3 +21,11 @@ TRIGGER_SCHEMA: Incomplete
21
21
 
22
22
  async def async_validate_trigger_config(hass: HomeAssistant, config: ConfigType) -> ConfigType: ...
23
23
  async def async_attach_trigger(hass: HomeAssistant, config: ConfigType, action: TriggerActionType, trigger_info: TriggerInfo, *, platform_type: str = ...) -> CALLBACK_TYPE: ...
24
+
25
+ class EventTrigger(Trigger):
26
+ _config: Incomplete
27
+ _hass: Incomplete
28
+ def __init__(self, hass: HomeAssistant, config: ConfigType) -> None: ...
29
+ @classmethod
30
+ async def async_validate_trigger_config(cls, hass: HomeAssistant, config: ConfigType) -> ConfigType: ...
31
+ async def async_attach_trigger(self, action: TriggerActionType, trigger_info: TriggerInfo) -> CALLBACK_TYPE: ...
@@ -7,7 +7,7 @@ from collections.abc import Callable as Callable
7
7
  from homeassistant.const import ATTR_DEVICE_ID as ATTR_DEVICE_ID, ATTR_ENTITY_ID as ATTR_ENTITY_ID, CONF_PLATFORM as CONF_PLATFORM, MATCH_ALL as MATCH_ALL
8
8
  from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, HassJob as HassJob, HomeAssistant as HomeAssistant, callback as callback
9
9
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
10
- from homeassistant.helpers.trigger import TriggerActionType as TriggerActionType, TriggerInfo as TriggerInfo
10
+ from homeassistant.helpers.trigger import Trigger as Trigger, TriggerActionType as TriggerActionType, TriggerInfo as TriggerInfo
11
11
  from homeassistant.helpers.typing import ConfigType as ConfigType
12
12
  from zwave_js_server.model.driver import Driver as Driver
13
13
  from zwave_js_server.model.value import Value as Value
@@ -19,3 +19,11 @@ TRIGGER_SCHEMA: Incomplete
19
19
 
20
20
  async def async_validate_trigger_config(hass: HomeAssistant, config: ConfigType) -> ConfigType: ...
21
21
  async def async_attach_trigger(hass: HomeAssistant, config: ConfigType, action: TriggerActionType, trigger_info: TriggerInfo, *, platform_type: str = ...) -> CALLBACK_TYPE: ...
22
+
23
+ class ValueUpdatedTrigger(Trigger):
24
+ _config: Incomplete
25
+ _hass: Incomplete
26
+ def __init__(self, hass: HomeAssistant, config: ConfigType) -> None: ...
27
+ @classmethod
28
+ async def async_validate_trigger_config(cls, hass: HomeAssistant, config: ConfigType) -> ConfigType: ...
29
+ async def async_attach_trigger(self, action: TriggerActionType, trigger_info: TriggerInfo) -> CALLBACK_TYPE: ...
@@ -447,6 +447,8 @@ class ConfigSubentryFlow(data_entry_flow.FlowHandler[SubentryFlowContext, Subent
447
447
  def async_update_and_abort(self, entry: ConfigEntry, subentry: ConfigSubentry, *, unique_id: str | None | UndefinedType = ..., title: str | UndefinedType = ..., data: Mapping[str, Any] | UndefinedType = ..., data_updates: Mapping[str, Any] | UndefinedType = ...) -> SubentryFlowResult: ...
448
448
  @property
449
449
  def _entry_id(self) -> str: ...
450
+ @property
451
+ def _subentry_type(self) -> str: ...
450
452
  @callback
451
453
  def _get_entry(self) -> ConfigEntry: ...
452
454
  @property
@@ -20,6 +20,7 @@ REQUIRED_NEXT_PYTHON_HA_RELEASE: Final[str]
20
20
  PLATFORM_FORMAT: Final[str]
21
21
 
22
22
  class Platform(StrEnum):
23
+ AI_TASK = 'ai_task'
23
24
  AIR_QUALITY = 'air_quality'
24
25
  ALARM_CONTROL_PANEL = 'alarm_control_panel'
25
26
  ASSIST_SATELLITE = 'assist_satellite'
@@ -1,3 +1,4 @@
1
+ import abc
1
2
  import logging
2
3
  from .template import Template as Template, render_complex as render_complex
3
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
@@ -17,12 +18,19 @@ from typing import Any, Protocol
17
18
  ASYNC_FROM_CONFIG_FORMAT: str
18
19
  FROM_CONFIG_FORMAT: str
19
20
  VALIDATE_CONFIG_FORMAT: str
20
- _PLATFORM_ALIASES: Incomplete
21
+ _PLATFORM_ALIASES: dict[str | None, str | None]
21
22
  INPUT_ENTITY_ID: Incomplete
22
23
 
24
+ class Condition(abc.ABC, metaclass=abc.ABCMeta):
25
+ def __init__(self, hass: HomeAssistant, config: ConfigType) -> None: ...
26
+ @classmethod
27
+ @abc.abstractmethod
28
+ async def async_validate_condition_config(cls, hass: HomeAssistant, config: ConfigType) -> ConfigType: ...
29
+ @abc.abstractmethod
30
+ async def async_condition_from_config(self) -> ConditionCheckerType: ...
31
+
23
32
  class ConditionProtocol(Protocol):
24
- async def async_validate_condition_config(self, hass: HomeAssistant, config: ConfigType) -> ConfigType: ...
25
- def async_condition_from_config(self, hass: HomeAssistant, config: ConfigType) -> ConditionCheckerType: ...
33
+ async def async_get_conditions(self, hass: HomeAssistant) -> dict[str, type[Condition]]: ...
26
34
  type ConditionCheckerType = Callable[[HomeAssistant, TemplateVarsType], bool | None]
27
35
 
28
36
  def condition_trace_append(variables: TemplateVarsType, path: str) -> TraceElement: ...
@@ -141,19 +141,23 @@ class DeviceEntry:
141
141
  def __ge__(self, other): ...
142
142
 
143
143
  class DeletedDeviceEntry:
144
+ area_id: str | None
144
145
  config_entries: set[str]
145
146
  config_entries_subentries: dict[str, set[str | None]]
146
147
  connections: set[tuple[str, str]]
147
148
  created_at: datetime
149
+ disabled_by: DeviceEntryDisabler | None
148
150
  id: str
149
151
  identifiers: set[tuple[str, str]]
152
+ labels: set[str]
150
153
  modified_at: datetime
154
+ name_by_user: str | None
151
155
  orphaned_timestamp: float | None
152
156
  _cache: dict[str, Any]
153
157
  def to_device_entry(self, config_entry_id: str, config_subentry_id: str | None, connections: set[tuple[str, str]], identifiers: set[tuple[str, str]]) -> DeviceEntry: ...
154
158
  @under_cached_property
155
159
  def as_storage_fragment(self) -> json_fragment: ...
156
- def __init__(self, config_entries, config_entries_subentries, connections, created_at, id, identifiers, modified_at, orphaned_timestamp, cache) -> None: ...
160
+ def __init__(self, area_id, config_entries, config_entries_subentries, connections, created_at, disabled_by, id, identifiers, labels, modified_at, name_by_user, orphaned_timestamp, cache) -> None: ...
157
161
  def __lt__(self, other): ...
158
162
  def __le__(self, other): ...
159
163
  def __gt__(self, other): ...