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
@@ -1,6 +1,7 @@
1
1
  from .const import OPTION_DIAGNOSTICS_INCLUDE_FIXTURES as OPTION_DIAGNOSTICS_INCLUDE_FIXTURES
2
2
  from .coordinator import EnphaseConfigEntry as EnphaseConfigEntry
3
3
  from _typeshed import Incomplete
4
+ from aiohttp import ClientResponse as ClientResponse
4
5
  from homeassistant.components.diagnostics import async_redact_data as async_redact_data
5
6
  from homeassistant.const import CONF_NAME as CONF_NAME, CONF_PASSWORD as CONF_PASSWORD, CONF_TOKEN as CONF_TOKEN, CONF_UNIQUE_ID as CONF_UNIQUE_ID, CONF_USERNAME as CONF_USERNAME
6
7
  from homeassistant.core import HomeAssistant as HomeAssistant
@@ -6,7 +6,7 @@ from _typeshed import Incomplete
6
6
  from collections.abc import Callable as Callable
7
7
  from dataclasses import dataclass
8
8
  from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
9
- from homeassistant.const import EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE, UnitOfApparentPower as UnitOfApparentPower, UnitOfElectricCurrent as UnitOfElectricCurrent, UnitOfElectricPotential as UnitOfElectricPotential, UnitOfEnergy as UnitOfEnergy, UnitOfFrequency as UnitOfFrequency, UnitOfPower as UnitOfPower, UnitOfTemperature as UnitOfTemperature
9
+ from homeassistant.const import EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE, UnitOfApparentPower as UnitOfApparentPower, UnitOfElectricCurrent as UnitOfElectricCurrent, UnitOfElectricPotential as UnitOfElectricPotential, UnitOfEnergy as UnitOfEnergy, UnitOfFrequency as UnitOfFrequency, UnitOfPower as UnitOfPower, UnitOfTemperature as UnitOfTemperature, UnitOfTime as UnitOfTime
10
10
  from homeassistant.core import HomeAssistant as HomeAssistant
11
11
  from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
12
12
  from homeassistant.helpers.entity import Entity as Entity
@@ -1,8 +1,8 @@
1
1
  from . import Eq3ConfigEntry as Eq3ConfigEntry
2
- from .const import CurrentTemperatureSelector as CurrentTemperatureSelector, EQ_TO_HA_HVAC as EQ_TO_HA_HVAC, HA_TO_EQ_HVAC as HA_TO_EQ_HVAC, Preset as Preset, TargetTemperatureSelector as TargetTemperatureSelector
2
+ from .const import CurrentTemperatureSelector as CurrentTemperatureSelector, DEFAULT_AWAY_HOURS as DEFAULT_AWAY_HOURS, EQ_TO_HA_HVAC as EQ_TO_HA_HVAC, HA_TO_EQ_HVAC as HA_TO_EQ_HVAC, Preset as Preset, TargetTemperatureSelector as TargetTemperatureSelector
3
3
  from .entity import Eq3Entity as Eq3Entity
4
4
  from _typeshed import Incomplete
5
- from eq3btsmart.const import EQ3BT_MAX_TEMP, EQ3BT_OFF_TEMP
5
+ from eq3btsmart.const import EQ3_MAX_TEMP, EQ3_OFF_TEMP
6
6
  from homeassistant.components.climate import ATTR_HVAC_MODE as ATTR_HVAC_MODE, ClimateEntity as ClimateEntity, ClimateEntityFeature as ClimateEntityFeature, HVACAction as HVACAction, HVACMode as HVACMode, PRESET_NONE as PRESET_NONE
7
7
  from homeassistant.const import ATTR_TEMPERATURE as ATTR_TEMPERATURE, PRECISION_HALVES as PRECISION_HALVES, UnitOfTemperature as UnitOfTemperature
8
8
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
@@ -19,8 +19,8 @@ class Eq3Climate(Eq3Entity, ClimateEntity):
19
19
  _attr_name: Incomplete
20
20
  _attr_supported_features: Incomplete
21
21
  _attr_temperature_unit: Incomplete
22
- _attr_min_temp = EQ3BT_OFF_TEMP
23
- _attr_max_temp = EQ3BT_MAX_TEMP
22
+ _attr_min_temp = EQ3_OFF_TEMP
23
+ _attr_max_temp = EQ3_MAX_TEMP
24
24
  _attr_precision = PRECISION_HALVES
25
25
  _attr_hvac_modes: Incomplete
26
26
  _attr_preset_modes: Incomplete
@@ -30,14 +30,12 @@ class Eq3Climate(Eq3Entity, ClimateEntity):
30
30
  _attr_hvac_action: HVACAction | None
31
31
  _attr_preset_mode: str | None
32
32
  _target_temperature: float | None
33
- @callback
34
- def _async_on_updated(self) -> None: ...
35
33
  _attr_current_temperature: Incomplete
36
34
  _attr_target_temperature: Incomplete
37
35
  @callback
38
- def _async_on_status_updated(self) -> None: ...
36
+ def _async_on_status_updated(self, data: Any) -> None: ...
39
37
  @callback
40
- def _async_on_device_updated(self) -> None: ...
38
+ def _async_on_device_updated(self, data: Any) -> None: ...
41
39
  def _get_current_temperature(self) -> float | None: ...
42
40
  def _get_target_temperature(self) -> float | None: ...
43
41
  def _get_current_preset_mode(self) -> str: ...
@@ -1,6 +1,6 @@
1
1
  from _typeshed import Incomplete
2
2
  from enum import Enum
3
- from eq3btsmart.const import OperationMode
3
+ from eq3btsmart.const import Eq3OperationMode
4
4
  from homeassistant.components.climate import HVACMode as HVACMode, PRESET_AWAY as PRESET_AWAY, PRESET_BOOST as PRESET_BOOST, PRESET_COMFORT as PRESET_COMFORT, PRESET_ECO as PRESET_ECO, PRESET_NONE as PRESET_NONE
5
5
 
6
6
  DOMAIN: str
@@ -20,7 +20,7 @@ ENTITY_KEY_WINDOW_OPEN_TIMEOUT: str
20
20
  ENTITY_KEY_VALVE: str
21
21
  ENTITY_KEY_AWAY_UNTIL: str
22
22
  GET_DEVICE_TIMEOUT: int
23
- EQ_TO_HA_HVAC: dict[OperationMode, HVACMode]
23
+ EQ_TO_HA_HVAC: dict[Eq3OperationMode, HVACMode]
24
24
  HA_TO_EQ_HVAC: Incomplete
25
25
 
26
26
  class Preset(str, Enum):
@@ -47,6 +47,7 @@ class TargetTemperatureSelector(str, Enum):
47
47
  DEFAULT_CURRENT_TEMP_SELECTOR: Incomplete
48
48
  DEFAULT_TARGET_TEMP_SELECTOR: Incomplete
49
49
  DEFAULT_SCAN_INTERVAL: int
50
+ DEFAULT_AWAY_HOURS: Incomplete
50
51
  SIGNAL_THERMOSTAT_DISCONNECTED: Incomplete
51
52
  SIGNAL_THERMOSTAT_CONNECTED: Incomplete
52
53
  EQ3BT_STEP: float
@@ -6,6 +6,7 @@ from homeassistant.helpers.device_registry import CONNECTION_BLUETOOTH as CONNEC
6
6
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
7
7
  from homeassistant.helpers.entity import Entity as Entity
8
8
  from homeassistant.util import slugify as slugify
9
+ from typing import Any
9
10
 
10
11
  class Eq3Entity(Entity):
11
12
  _attr_has_entity_name: bool
@@ -16,7 +17,10 @@ class Eq3Entity(Entity):
16
17
  def __init__(self, entry: Eq3ConfigEntry, unique_id_key: str | None = None) -> None: ...
17
18
  async def async_added_to_hass(self) -> None: ...
18
19
  async def async_will_remove_from_hass(self) -> None: ...
19
- def _async_on_updated(self) -> None: ...
20
+ @callback
21
+ def _async_on_status_updated(self, data: Any) -> None: ...
22
+ @callback
23
+ def _async_on_device_updated(self, data: Any) -> None: ...
20
24
  _attr_available: bool
21
25
  @callback
22
26
  def _async_on_disconnected(self) -> None: ...
@@ -2,10 +2,10 @@ from . import Eq3ConfigEntry as Eq3ConfigEntry
2
2
  from .const import ENTITY_KEY_COMFORT as ENTITY_KEY_COMFORT, ENTITY_KEY_ECO as ENTITY_KEY_ECO, ENTITY_KEY_OFFSET as ENTITY_KEY_OFFSET, ENTITY_KEY_WINDOW_OPEN_TEMPERATURE as ENTITY_KEY_WINDOW_OPEN_TEMPERATURE, ENTITY_KEY_WINDOW_OPEN_TIMEOUT as ENTITY_KEY_WINDOW_OPEN_TIMEOUT, EQ3BT_STEP as EQ3BT_STEP
3
3
  from .entity import Eq3Entity as Eq3Entity
4
4
  from _typeshed import Incomplete
5
- from collections.abc import Awaitable, Callable as Callable
5
+ from collections.abc import Callable as Callable, Coroutine
6
6
  from dataclasses import dataclass
7
7
  from eq3btsmart import Thermostat as Thermostat
8
- from eq3btsmart.models import Presets as Presets
8
+ from eq3btsmart.models import Presets as Presets, Status as Status
9
9
  from homeassistant.components.number import NumberDeviceClass as NumberDeviceClass, NumberEntity as NumberEntity, NumberEntityDescription as NumberEntityDescription, NumberMode as NumberMode
10
10
  from homeassistant.const import EntityCategory as EntityCategory, UnitOfTemperature as UnitOfTemperature, UnitOfTime as UnitOfTime
11
11
  from homeassistant.core import HomeAssistant as HomeAssistant
@@ -14,7 +14,7 @@ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
14
14
  @dataclass(frozen=True, kw_only=True)
15
15
  class Eq3NumberEntityDescription(NumberEntityDescription):
16
16
  value_func: Callable[[Presets], float]
17
- value_set_func: Callable[[Thermostat], Callable[[float], Awaitable[None]]]
17
+ value_set_func: Callable[[Thermostat], Callable[[float], Coroutine[None, None, Status]]]
18
18
  mode: NumberMode = ...
19
19
  entity_category: EntityCategory | None = ...
20
20
 
@@ -1,8 +1,8 @@
1
1
  from . import Eq3ConfigEntry as Eq3ConfigEntry
2
- from .const import ENTITY_KEY_AWAY as ENTITY_KEY_AWAY, ENTITY_KEY_BOOST as ENTITY_KEY_BOOST, ENTITY_KEY_LOCK as ENTITY_KEY_LOCK
2
+ from .const import DEFAULT_AWAY_HOURS as DEFAULT_AWAY_HOURS, ENTITY_KEY_AWAY as ENTITY_KEY_AWAY, ENTITY_KEY_BOOST as ENTITY_KEY_BOOST, ENTITY_KEY_LOCK as ENTITY_KEY_LOCK
3
3
  from .entity import Eq3Entity as Eq3Entity
4
4
  from _typeshed import Incomplete
5
- from collections.abc import Awaitable, Callable as Callable
5
+ from collections.abc import Callable as Callable, Coroutine
6
6
  from dataclasses import dataclass
7
7
  from eq3btsmart import Thermostat as Thermostat
8
8
  from eq3btsmart.models import Status as Status
@@ -11,9 +11,11 @@ from homeassistant.core import HomeAssistant as HomeAssistant
11
11
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
12
12
  from typing import Any
13
13
 
14
+ async def async_set_away(thermostat: Thermostat, enable: bool) -> Status: ...
15
+
14
16
  @dataclass(frozen=True, kw_only=True)
15
17
  class Eq3SwitchEntityDescription(SwitchEntityDescription):
16
- toggle_func: Callable[[Thermostat], Callable[[bool], Awaitable[None]]]
18
+ toggle_func: Callable[[Thermostat], Callable[[bool], Coroutine[None, None, Status]]]
17
19
  value_func: Callable[[Status], bool]
18
20
 
19
21
  SWITCH_ENTITY_DESCRIPTIONS: Incomplete
@@ -1,5 +1,5 @@
1
1
  from .const import DOMAIN as DOMAIN
2
- from .entry_data import ESPHomeConfigEntry as ESPHomeConfigEntry, RuntimeEntryData as RuntimeEntryData
2
+ from .entry_data import ESPHomeConfigEntry as ESPHomeConfigEntry, RuntimeEntryData as RuntimeEntryData, build_device_unique_id as build_device_unique_id
3
3
  from .enum_mapper import EsphomeEnumMapper as EsphomeEnumMapper
4
4
  from _typeshed import Incomplete
5
5
  from aioesphomeapi import DeviceInfo as EsphomeDeviceInfo, EntityCategory as EsphomeEntityCategory, EntityInfo, EntityState
@@ -13,6 +13,7 @@ from homeassistant.helpers.entity import Entity as Entity
13
13
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
14
14
  from typing import Any, Concatenate, Generic, TypeVar
15
15
 
16
+ _LOGGER: Incomplete
16
17
  _InfoT = TypeVar('_InfoT', bound=EntityInfo)
17
18
  _EntityT = TypeVar('_EntityT', bound='EsphomeEntity[Any,Any]')
18
19
  _StateT = TypeVar('_StateT', bound=EntityState)
@@ -21,6 +21,8 @@ SAVE_DELAY: int
21
21
  _LOGGER: Incomplete
22
22
  INFO_TYPE_TO_PLATFORM: dict[type[EntityInfo], Platform]
23
23
 
24
+ def build_device_unique_id(mac: str, entity_info: EntityInfo) -> str: ...
25
+
24
26
  class StoreData(TypedDict, total=False):
25
27
  device_info: dict[str, Any]
26
28
  services: list[dict[str, Any]]
@@ -60,6 +62,7 @@ class RuntimeEntryData:
60
62
  media_player_formats: dict[str, list[MediaPlayerSupportedFormat]] = field(default_factory=Incomplete)
61
63
  assist_satellite_config_update_callbacks: list[Callable[[AssistSatelliteConfiguration], None]] = field(default_factory=list)
62
64
  assist_satellite_set_wake_word_callbacks: list[Callable[[str], None]] = field(default_factory=list)
65
+ device_id_to_name: dict[int, str] = field(default_factory=dict)
63
66
  @property
64
67
  def name(self) -> str: ...
65
68
  @property
@@ -21,6 +21,7 @@ class EvoDHW(EvoChild, WaterHeaterEntity):
21
21
  _attr_name: str
22
22
  _attr_icon: str
23
23
  _attr_operation_list: Incomplete
24
+ _attr_supported_features: Incomplete
24
25
  _attr_temperature_unit: Incomplete
25
26
  _evo_device: evo.HotWater
26
27
  _evo_id_attr: str
@@ -28,7 +29,6 @@ class EvoDHW(EvoChild, WaterHeaterEntity):
28
29
  _evo_id: Incomplete
29
30
  _attr_unique_id: Incomplete
30
31
  _attr_precision: Incomplete
31
- _attr_supported_features: Incomplete
32
32
  def __init__(self, coordinator: EvoDataUpdateCoordinator, evo_device: evo.HotWater) -> None: ...
33
33
  @property
34
34
  def current_operation(self) -> str | None: ...
@@ -1,5 +1,6 @@
1
- from .coordinator import ConnectionInfo as ConnectionInfo, FritzConfigEntry as FritzConfigEntry
1
+ from .coordinator import FritzConfigEntry as FritzConfigEntry
2
2
  from .entity import FritzBoxBaseCoordinatorEntity as FritzBoxBaseCoordinatorEntity, FritzEntityDescription as FritzEntityDescription
3
+ from .models import ConnectionInfo as ConnectionInfo
3
4
  from _typeshed import Incomplete
4
5
  from collections.abc import Callable as Callable
5
6
  from dataclasses import dataclass
@@ -1,6 +1,8 @@
1
1
  from .const import BUTTON_TYPE_WOL as BUTTON_TYPE_WOL, CONNECTION_TYPE_LAN as CONNECTION_TYPE_LAN, MeshRoles as MeshRoles
2
- from .coordinator import AvmWrapper as AvmWrapper, FRITZ_DATA_KEY as FRITZ_DATA_KEY, FritzConfigEntry as FritzConfigEntry, FritzData as FritzData, FritzDevice as FritzDevice, _is_tracked as _is_tracked
2
+ from .coordinator import AvmWrapper as AvmWrapper, FRITZ_DATA_KEY as FRITZ_DATA_KEY, FritzConfigEntry as FritzConfigEntry, FritzData as FritzData
3
3
  from .entity import FritzDeviceBase as FritzDeviceBase
4
+ from .helpers import _is_tracked as _is_tracked
5
+ from .models import FritzDevice as FritzDevice
4
6
  from _typeshed import Incomplete
5
7
  from collections.abc import Callable as Callable
6
8
  from dataclasses import dataclass
@@ -1,6 +1,8 @@
1
1
  from .const import CONF_OLD_DISCOVERY as CONF_OLD_DISCOVERY, DEFAULT_CONF_FEATURE_DEVICE_TRACKING as DEFAULT_CONF_FEATURE_DEVICE_TRACKING, DEFAULT_CONF_OLD_DISCOVERY as DEFAULT_CONF_OLD_DISCOVERY, DEFAULT_HOST as DEFAULT_HOST, DEFAULT_SSL as DEFAULT_SSL, DEFAULT_USERNAME as DEFAULT_USERNAME, DOMAIN as DOMAIN, FRITZ_EXCEPTIONS as FRITZ_EXCEPTIONS, MeshRoles as MeshRoles
2
+ from .helpers import _ha_is_stopping as _ha_is_stopping
3
+ from .models import ConnectionInfo as ConnectionInfo, Device as Device, FritzDevice as FritzDevice, HostAttributes as HostAttributes, HostInfo as HostInfo, Interface as Interface
2
4
  from _typeshed import Incomplete
3
- from collections.abc import Callable as Callable, Mapping, ValuesView
5
+ from collections.abc import Callable as Callable, Mapping
4
6
  from dataclasses import dataclass, field
5
7
  from datetime import datetime
6
8
  from fritzconnection import FritzConnection
@@ -22,38 +24,15 @@ _LOGGER: Incomplete
22
24
  FRITZ_DATA_KEY: HassKey[FritzData]
23
25
  type FritzConfigEntry = ConfigEntry[AvmWrapper]
24
26
 
25
- def _is_tracked(mac: str, current_devices: ValuesView[set[str]]) -> bool: ...
26
- def device_filter_out_from_trackers(mac: str, device: FritzDevice, current_devices: ValuesView[set[str]]) -> bool: ...
27
- def _ha_is_stopping(activity: str) -> None: ...
27
+ @dataclass
28
+ class FritzData:
29
+ tracked: dict[str, set[str]] = field(default_factory=dict)
30
+ profile_switches: dict[str, set[str]] = field(default_factory=dict)
31
+ wol_buttons: dict[str, set[str]] = field(default_factory=dict)
28
32
 
29
33
  class ClassSetupMissing(Exception):
30
34
  def __init__(self) -> None: ...
31
35
 
32
- @dataclass
33
- class Device:
34
- connected: bool
35
- connected_to: str
36
- connection_type: str
37
- ip_address: str
38
- name: str
39
- ssid: str | None
40
- wan_access: bool | None = ...
41
-
42
- class Interface(TypedDict):
43
- device: str
44
- mac: str
45
- op_mode: str
46
- ssid: str | None
47
- type: str
48
-
49
- HostAttributes = TypedDict('HostAttributes', {'Index': int, 'IPAddress': str, 'MACAddress': str, 'Active': bool, 'HostName': str, 'InterfaceType': str, 'X_AVM-DE_Port': int, 'X_AVM-DE_Speed': int, 'X_AVM-DE_UpdateAvailable': bool, 'X_AVM-DE_UpdateSuccessful': str, 'X_AVM-DE_InfoURL': str | None, 'X_AVM-DE_MACAddressList': str | None, 'X_AVM-DE_Model': str | None, 'X_AVM-DE_URL': str | None, 'X_AVM-DE_Guest': bool, 'X_AVM-DE_RequestClient': str, 'X_AVM-DE_VPN': bool, 'X_AVM-DE_WANAccess': str, 'X_AVM-DE_Disallow': bool, 'X_AVM-DE_IsMeshable': str, 'X_AVM-DE_Priority': str, 'X_AVM-DE_FriendlyName': str, 'X_AVM-DE_FriendlyNameIsWriteable': str})
50
-
51
- class HostInfo(TypedDict):
52
- mac: str
53
- name: str
54
- ip: str
55
- status: bool
56
-
57
36
  class UpdateCoordinatorDataType(TypedDict):
58
37
  call_deflections: dict[int, dict]
59
38
  entity_states: dict[str, StateType | bool]
@@ -140,56 +119,3 @@ class AvmWrapper(FritzBoxTools):
140
119
  async def async_add_port_mapping(self, con_type: str, port_mapping: Any) -> dict[str, Any]: ...
141
120
  async def async_set_allow_wan_access(self, ip_address: str, turn_on: bool) -> dict[str, Any]: ...
142
121
  async def async_wake_on_lan(self, mac_address: str) -> dict[str, Any]: ...
143
-
144
- @dataclass
145
- class FritzData:
146
- tracked: dict[str, set[str]] = field(default_factory=dict)
147
- profile_switches: dict[str, set[str]] = field(default_factory=dict)
148
- wol_buttons: dict[str, set[str]] = field(default_factory=dict)
149
-
150
- class FritzDevice:
151
- _connected: bool
152
- _connected_to: str | None
153
- _connection_type: str | None
154
- _ip_address: str | None
155
- _last_activity: datetime | None
156
- _mac: Incomplete
157
- _name: Incomplete
158
- _ssid: str | None
159
- _wan_access: bool | None
160
- def __init__(self, mac: str, name: str) -> None: ...
161
- def update(self, dev_info: Device, consider_home: float) -> None: ...
162
- @property
163
- def connected_to(self) -> str | None: ...
164
- @property
165
- def connection_type(self) -> str | None: ...
166
- @property
167
- def is_connected(self) -> bool: ...
168
- @property
169
- def mac_address(self) -> str: ...
170
- @property
171
- def hostname(self) -> str: ...
172
- @property
173
- def ip_address(self) -> str | None: ...
174
- @property
175
- def last_activity(self) -> datetime | None: ...
176
- @property
177
- def ssid(self) -> str | None: ...
178
- @property
179
- def wan_access(self) -> bool | None: ...
180
-
181
- class SwitchInfo(TypedDict):
182
- description: str
183
- friendly_name: str
184
- icon: str
185
- type: str
186
- callback_update: Callable
187
- callback_switch: Callable
188
- init_state: bool
189
-
190
- @dataclass
191
- class ConnectionInfo:
192
- connection: str
193
- mesh_role: MeshRoles
194
- wan_enabled: bool
195
- ipv6_active: bool
@@ -1,6 +1,8 @@
1
1
  import datetime
2
- from .coordinator import AvmWrapper as AvmWrapper, FRITZ_DATA_KEY as FRITZ_DATA_KEY, FritzConfigEntry as FritzConfigEntry, FritzData as FritzData, FritzDevice as FritzDevice, device_filter_out_from_trackers as device_filter_out_from_trackers
2
+ from .coordinator import AvmWrapper as AvmWrapper, FRITZ_DATA_KEY as FRITZ_DATA_KEY, FritzConfigEntry as FritzConfigEntry, FritzData as FritzData
3
3
  from .entity import FritzDeviceBase as FritzDeviceBase
4
+ from .helpers import device_filter_out_from_trackers as device_filter_out_from_trackers
5
+ from .models import FritzDevice as FritzDevice
4
6
  from _typeshed import Incomplete
5
7
  from homeassistant.components.device_tracker import ScannerEntity as ScannerEntity
6
8
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
@@ -1,5 +1,6 @@
1
1
  from .const import DEFAULT_DEVICE_NAME as DEFAULT_DEVICE_NAME, DOMAIN as DOMAIN
2
- from .coordinator import AvmWrapper as AvmWrapper, FritzDevice as FritzDevice
2
+ from .coordinator import AvmWrapper as AvmWrapper
3
+ from .models import FritzDevice as FritzDevice
3
4
  from _typeshed import Incomplete
4
5
  from collections.abc import Callable as Callable
5
6
  from dataclasses import dataclass
@@ -0,0 +1,9 @@
1
+ from .models import FritzDevice as FritzDevice
2
+ from _typeshed import Incomplete
3
+ from collections.abc import ValuesView
4
+
5
+ _LOGGER: Incomplete
6
+
7
+ def _is_tracked(mac: str, current_devices: ValuesView[set[str]]) -> bool: ...
8
+ def device_filter_out_from_trackers(mac: str, device: FritzDevice, current_devices: ValuesView[set[str]]) -> bool: ...
9
+ def _ha_is_stopping(activity: str) -> None: ...
@@ -0,0 +1,78 @@
1
+ from .const import MeshRoles as MeshRoles
2
+ from _typeshed import Incomplete
3
+ from collections.abc import Callable as Callable
4
+ from dataclasses import dataclass
5
+ from datetime import datetime
6
+ from typing import TypedDict
7
+
8
+ @dataclass
9
+ class Device:
10
+ connected: bool
11
+ connected_to: str
12
+ connection_type: str
13
+ ip_address: str
14
+ name: str
15
+ ssid: str | None
16
+ wan_access: bool | None = ...
17
+
18
+ class Interface(TypedDict):
19
+ device: str
20
+ mac: str
21
+ op_mode: str
22
+ ssid: str | None
23
+ type: str
24
+
25
+ HostAttributes = TypedDict('HostAttributes', {'Index': int, 'IPAddress': str, 'MACAddress': str, 'Active': bool, 'HostName': str, 'InterfaceType': str, 'X_AVM-DE_Port': int, 'X_AVM-DE_Speed': int, 'X_AVM-DE_UpdateAvailable': bool, 'X_AVM-DE_UpdateSuccessful': str, 'X_AVM-DE_InfoURL': str | None, 'X_AVM-DE_MACAddressList': str | None, 'X_AVM-DE_Model': str | None, 'X_AVM-DE_URL': str | None, 'X_AVM-DE_Guest': bool, 'X_AVM-DE_RequestClient': str, 'X_AVM-DE_VPN': bool, 'X_AVM-DE_WANAccess': str, 'X_AVM-DE_Disallow': bool, 'X_AVM-DE_IsMeshable': str, 'X_AVM-DE_Priority': str, 'X_AVM-DE_FriendlyName': str, 'X_AVM-DE_FriendlyNameIsWriteable': str})
26
+
27
+ class HostInfo(TypedDict):
28
+ mac: str
29
+ name: str
30
+ ip: str
31
+ status: bool
32
+
33
+ class FritzDevice:
34
+ _connected: bool
35
+ _connected_to: str | None
36
+ _connection_type: str | None
37
+ _ip_address: str | None
38
+ _last_activity: datetime | None
39
+ _mac: Incomplete
40
+ _name: Incomplete
41
+ _ssid: str | None
42
+ _wan_access: bool | None
43
+ def __init__(self, mac: str, name: str) -> None: ...
44
+ def update(self, dev_info: Device, consider_home: float) -> None: ...
45
+ @property
46
+ def connected_to(self) -> str | None: ...
47
+ @property
48
+ def connection_type(self) -> str | None: ...
49
+ @property
50
+ def is_connected(self) -> bool: ...
51
+ @property
52
+ def mac_address(self) -> str: ...
53
+ @property
54
+ def hostname(self) -> str: ...
55
+ @property
56
+ def ip_address(self) -> str | None: ...
57
+ @property
58
+ def last_activity(self) -> datetime | None: ...
59
+ @property
60
+ def ssid(self) -> str | None: ...
61
+ @property
62
+ def wan_access(self) -> bool | None: ...
63
+
64
+ class SwitchInfo(TypedDict):
65
+ description: str
66
+ friendly_name: str
67
+ icon: str
68
+ type: str
69
+ callback_update: Callable
70
+ callback_switch: Callable
71
+ init_state: bool
72
+
73
+ @dataclass
74
+ class ConnectionInfo:
75
+ connection: str
76
+ mesh_role: MeshRoles
77
+ wan_enabled: bool
78
+ ipv6_active: bool
@@ -1,6 +1,7 @@
1
1
  from .const import DSL_CONNECTION as DSL_CONNECTION, UPTIME_DEVIATION as UPTIME_DEVIATION
2
- from .coordinator import ConnectionInfo as ConnectionInfo, FritzConfigEntry as FritzConfigEntry
2
+ from .coordinator import FritzConfigEntry as FritzConfigEntry
3
3
  from .entity import FritzBoxBaseCoordinatorEntity as FritzBoxBaseCoordinatorEntity, FritzEntityDescription as FritzEntityDescription
4
+ from .models import ConnectionInfo as ConnectionInfo
4
5
  from _typeshed import Incomplete
5
6
  from collections.abc import Callable as Callable
6
7
  from dataclasses import dataclass
@@ -1,7 +1,7 @@
1
1
  from .const import DOMAIN as DOMAIN
2
2
  from .coordinator import FritzConfigEntry as FritzConfigEntry
3
3
  from _typeshed import Incomplete
4
- from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall
4
+ from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, callback as callback
5
5
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, ServiceValidationError as ServiceValidationError
6
6
  from homeassistant.helpers.service import async_extract_config_entry_ids as async_extract_config_entry_ids
7
7
 
@@ -10,4 +10,5 @@ SERVICE_SET_GUEST_WIFI_PW: str
10
10
  SERVICE_SCHEMA_SET_GUEST_WIFI_PW: Incomplete
11
11
 
12
12
  async def _async_set_guest_wifi_password(service_call: ServiceCall) -> None: ...
13
- async def async_setup_services(hass: HomeAssistant) -> None: ...
13
+ @callback
14
+ def async_setup_services(hass: HomeAssistant) -> None: ...
@@ -1,6 +1,8 @@
1
1
  from .const import DOMAIN as DOMAIN, MeshRoles as MeshRoles, SWITCH_TYPE_DEFLECTION as SWITCH_TYPE_DEFLECTION, SWITCH_TYPE_PORTFORWARD as SWITCH_TYPE_PORTFORWARD, SWITCH_TYPE_PROFILE as SWITCH_TYPE_PROFILE, SWITCH_TYPE_WIFINETWORK as SWITCH_TYPE_WIFINETWORK, WIFI_STANDARD as WIFI_STANDARD
2
- from .coordinator import AvmWrapper as AvmWrapper, FRITZ_DATA_KEY as FRITZ_DATA_KEY, FritzConfigEntry as FritzConfigEntry, FritzData as FritzData, FritzDevice as FritzDevice, SwitchInfo as SwitchInfo, device_filter_out_from_trackers as device_filter_out_from_trackers
2
+ from .coordinator import AvmWrapper as AvmWrapper, FRITZ_DATA_KEY as FRITZ_DATA_KEY, FritzConfigEntry as FritzConfigEntry, FritzData as FritzData
3
3
  from .entity import FritzBoxBaseEntity as FritzBoxBaseEntity, FritzDeviceBase as FritzDeviceBase
4
+ from .helpers import device_filter_out_from_trackers as device_filter_out_from_trackers
5
+ from .models import FritzDevice as FritzDevice, SwitchInfo as SwitchInfo
4
6
  from _typeshed import Incomplete
5
7
  from homeassistant.components.network import async_get_source_ip as async_get_source_ip
6
8
  from homeassistant.components.switch import SwitchEntity as SwitchEntity, SwitchEntityDescription as SwitchEntityDescription
@@ -2,7 +2,12 @@ from .const import ATTR_APPLICATION as ATTR_APPLICATION, ATTR_KEY as ATTR_KEY, A
2
2
  from .coordinator import FullyKioskDataUpdateCoordinator as FullyKioskDataUpdateCoordinator
3
3
  from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigEntryState as ConfigEntryState
4
4
  from homeassistant.const import ATTR_DEVICE_ID as ATTR_DEVICE_ID
5
- from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall
5
+ from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, callback as callback
6
6
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
7
7
 
8
- async def async_setup_services(hass: HomeAssistant) -> None: ...
8
+ async def _collect_coordinators(call: ServiceCall) -> list[FullyKioskDataUpdateCoordinator]: ...
9
+ async def _async_load_url(call: ServiceCall) -> None: ...
10
+ async def _async_start_app(call: ServiceCall) -> None: ...
11
+ async def _async_set_config(call: ServiceCall) -> None: ...
12
+ @callback
13
+ def async_setup_services(hass: HomeAssistant) -> None: ...
@@ -1,12 +1,14 @@
1
1
  from .const import CONF_DEBUG_UI as CONF_DEBUG_UI, DEBUG_UI_URL_MESSAGE as DEBUG_UI_URL_MESSAGE, DOMAIN as DOMAIN, HA_MANAGED_URL as HA_MANAGED_URL, RECOMMENDED_VERSION as RECOMMENDED_VERSION
2
2
  from .server import Server as Server
3
3
  from _typeshed import Incomplete
4
+ from aiohttp import ClientSession as ClientSession
5
+ from go2rtc_client import Go2RtcRestClient
4
6
  from go2rtc_client.ws import Go2RtcWsClient, ReceiveMessages as ReceiveMessages
5
7
  from homeassistant.components.camera import Camera as Camera, CameraWebRTCProvider as CameraWebRTCProvider, WebRTCError as WebRTCError, WebRTCMessage as WebRTCMessage, WebRTCSendMessage as WebRTCSendMessage, async_register_webrtc_provider as async_register_webrtc_provider
6
8
  from homeassistant.config_entries import ConfigEntry as ConfigEntry, SOURCE_SYSTEM as SOURCE_SYSTEM
7
9
  from homeassistant.const import CONF_URL as CONF_URL, EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP
8
10
  from homeassistant.core import Event as Event, HomeAssistant as HomeAssistant, callback as callback
9
- from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady
11
+ from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady, HomeAssistantError as HomeAssistantError
10
12
  from homeassistant.helpers import discovery_flow as discovery_flow
11
13
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
12
14
  from homeassistant.helpers.typing import ConfigType as ConfigType
@@ -19,11 +21,12 @@ _SUPPORTED_STREAMS: Incomplete
19
21
  CONFIG_SCHEMA: Incomplete
20
22
  _DATA_GO2RTC: HassKey[str]
21
23
  _RETRYABLE_ERRORS: Incomplete
24
+ type Go2RtcConfigEntry = ConfigEntry[WebRTCProvider]
22
25
 
23
26
  async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
24
27
  async def _remove_go2rtc_entries(hass: HomeAssistant) -> None: ...
25
- async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
26
- async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
28
+ async def async_setup_entry(hass: HomeAssistant, entry: Go2RtcConfigEntry) -> bool: ...
29
+ async def async_unload_entry(hass: HomeAssistant, entry: Go2RtcConfigEntry) -> bool: ...
27
30
  async def _get_binary(hass: HomeAssistant) -> str | None: ...
28
31
 
29
32
  class WebRTCProvider(CameraWebRTCProvider):
@@ -32,7 +35,7 @@ class WebRTCProvider(CameraWebRTCProvider):
32
35
  _session: Incomplete
33
36
  _rest_client: Incomplete
34
37
  _sessions: dict[str, Go2RtcWsClient]
35
- def __init__(self, hass: HomeAssistant, url: str) -> None: ...
38
+ def __init__(self, hass: HomeAssistant, url: str, session: ClientSession, rest_client: Go2RtcRestClient) -> None: ...
36
39
  @property
37
40
  def domain(self) -> str: ...
38
41
  @callback
@@ -41,3 +44,6 @@ class WebRTCProvider(CameraWebRTCProvider):
41
44
  async def async_on_webrtc_candidate(self, session_id: str, candidate: RTCIceCandidateInit) -> None: ...
42
45
  @callback
43
46
  def async_close_session(self, session_id: str) -> None: ...
47
+ async def async_get_image(self, camera: Camera, width: int | None = None, height: int | None = None) -> bytes | None: ...
48
+ async def _update_stream_source(self, camera: Camera) -> None: ...
49
+ async def teardown(self) -> None: ...
@@ -1,12 +1,11 @@
1
1
  from .api import ApiAuthImpl as ApiAuthImpl, get_feature_access as get_feature_access
2
- from .const import DOMAIN as DOMAIN, EVENT_DESCRIPTION as EVENT_DESCRIPTION, EVENT_END_DATE as EVENT_END_DATE, EVENT_END_DATETIME as EVENT_END_DATETIME, EVENT_IN as EVENT_IN, EVENT_IN_DAYS as EVENT_IN_DAYS, EVENT_IN_WEEKS as EVENT_IN_WEEKS, EVENT_LOCATION as EVENT_LOCATION, EVENT_START_DATE as EVENT_START_DATE, EVENT_START_DATETIME as EVENT_START_DATETIME, EVENT_SUMMARY as EVENT_SUMMARY, EVENT_TYPES_CONF as EVENT_TYPES_CONF, FeatureAccess as FeatureAccess
2
+ from .const import DOMAIN as DOMAIN
3
3
  from .store import GoogleConfigEntry as GoogleConfigEntry, GoogleRuntimeData as GoogleRuntimeData, LocalCalendarStore as LocalCalendarStore
4
4
  from _typeshed import Incomplete
5
5
  from collections.abc import Mapping
6
- from gcal_sync.api import GoogleCalendarService
7
6
  from homeassistant.const import CONF_DEVICE_ID as CONF_DEVICE_ID, CONF_ENTITIES as CONF_ENTITIES, CONF_NAME as CONF_NAME, CONF_OFFSET as CONF_OFFSET, Platform as Platform
8
- from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall
9
- from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryNotReady as ConfigEntryNotReady, HomeAssistantError as HomeAssistantError
7
+ from homeassistant.core import HomeAssistant as HomeAssistant
8
+ from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryNotReady as ConfigEntryNotReady
10
9
  from homeassistant.helpers import config_entry_oauth2_flow as config_entry_oauth2_flow
11
10
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
12
11
  from homeassistant.helpers.entity import generate_entity_id as generate_entity_id
@@ -21,22 +20,17 @@ CONF_SEARCH: str
21
20
  CONF_IGNORE_AVAILABILITY: str
22
21
  CONF_MAX_RESULTS: str
23
22
  DEFAULT_CONF_OFFSET: str
24
- EVENT_CALENDAR_ID: str
25
- SERVICE_ADD_EVENT: str
26
23
  YAML_DEVICES: Incomplete
27
24
  PLATFORMS: Incomplete
28
25
  CONFIG_SCHEMA: Incomplete
29
26
  _SINGLE_CALSEARCH_CONFIG: Incomplete
30
27
  DEVICE_SCHEMA: Incomplete
31
- _EVENT_IN_TYPES: Incomplete
32
- ADD_EVENT_SERVICE_SCHEMA: Incomplete
33
28
 
34
29
  async def async_setup_entry(hass: HomeAssistant, entry: GoogleConfigEntry) -> bool: ...
35
30
  def async_entry_has_scopes(entry: GoogleConfigEntry) -> bool: ...
36
31
  async def async_unload_entry(hass: HomeAssistant, entry: GoogleConfigEntry) -> bool: ...
37
32
  async def async_reload_entry(hass: HomeAssistant, entry: GoogleConfigEntry) -> None: ...
38
33
  async def async_remove_entry(hass: HomeAssistant, entry: GoogleConfigEntry) -> None: ...
39
- async def async_setup_add_event_service(hass: HomeAssistant, calendar_service: GoogleCalendarService) -> None: ...
40
34
  def get_calendar_info(hass: HomeAssistant, calendar: Mapping[str, Any]) -> dict[str, Any]: ...
41
35
  def load_config(path: str) -> dict[str, Any]: ...
42
36
  def update_config(path: str, calendar: dict[str, Any]) -> None: ...
@@ -1,25 +1,21 @@
1
1
  from .const import CONF_LANGUAGE_CODE as CONF_LANGUAGE_CODE, DOMAIN as DOMAIN, SUPPORTED_LANGUAGE_CODES as SUPPORTED_LANGUAGE_CODES
2
- from .helpers import GoogleAssistantSDKAudioView as GoogleAssistantSDKAudioView, GoogleAssistantSDKConfigEntry as GoogleAssistantSDKConfigEntry, GoogleAssistantSDKRuntimeData as GoogleAssistantSDKRuntimeData, InMemoryStorage as InMemoryStorage, async_send_text_commands as async_send_text_commands, best_matching_language_code as best_matching_language_code
2
+ from .helpers import GoogleAssistantSDKAudioView as GoogleAssistantSDKAudioView, GoogleAssistantSDKConfigEntry as GoogleAssistantSDKConfigEntry, GoogleAssistantSDKRuntimeData as GoogleAssistantSDKRuntimeData, InMemoryStorage as InMemoryStorage, best_matching_language_code as best_matching_language_code
3
+ from .services import async_setup_services as async_setup_services
3
4
  from _typeshed import Incomplete
4
5
  from gassist_text import TextAssistant
5
6
  from homeassistant.components import conversation as conversation
6
7
  from homeassistant.const import CONF_ACCESS_TOKEN as CONF_ACCESS_TOKEN, CONF_NAME as CONF_NAME, Platform as Platform
7
- from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, ServiceResponse as ServiceResponse, SupportsResponse as SupportsResponse
8
+ from homeassistant.core import HomeAssistant as HomeAssistant
8
9
  from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryNotReady as ConfigEntryNotReady
9
10
  from homeassistant.helpers import discovery as discovery, intent as intent
10
11
  from homeassistant.helpers.config_entry_oauth2_flow import OAuth2Session as OAuth2Session, async_get_config_entry_implementation as async_get_config_entry_implementation
11
12
  from homeassistant.helpers.typing import ConfigType as ConfigType
12
13
 
13
- SERVICE_SEND_TEXT_COMMAND: str
14
- SERVICE_SEND_TEXT_COMMAND_FIELD_COMMAND: str
15
- SERVICE_SEND_TEXT_COMMAND_FIELD_MEDIA_PLAYER: str
16
- SERVICE_SEND_TEXT_COMMAND_SCHEMA: Incomplete
17
14
  CONFIG_SCHEMA: Incomplete
18
15
 
19
16
  async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
20
17
  async def async_setup_entry(hass: HomeAssistant, entry: GoogleAssistantSDKConfigEntry) -> bool: ...
21
18
  async def async_unload_entry(hass: HomeAssistant, entry: GoogleAssistantSDKConfigEntry) -> bool: ...
22
- async def async_setup_service(hass: HomeAssistant) -> None: ...
23
19
 
24
20
  class GoogleAssistantConversationAgent(conversation.AbstractConversationAgent):
25
21
  hass: Incomplete
@@ -0,0 +1,13 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from .helpers import async_send_text_commands as async_send_text_commands
3
+ from _typeshed import Incomplete
4
+ from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, ServiceResponse as ServiceResponse, SupportsResponse as SupportsResponse, callback as callback
5
+
6
+ SERVICE_SEND_TEXT_COMMAND: str
7
+ SERVICE_SEND_TEXT_COMMAND_FIELD_COMMAND: str
8
+ SERVICE_SEND_TEXT_COMMAND_FIELD_MEDIA_PLAYER: str
9
+ SERVICE_SEND_TEXT_COMMAND_SCHEMA: Incomplete
10
+
11
+ async def _send_text_command(call: ServiceCall) -> ServiceResponse: ...
12
+ @callback
13
+ def async_setup_services(hass: HomeAssistant) -> None: ...