homeassistant-stubs 2025.6.2__py3-none-any.whl → 2025.7.0b0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (318) 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/airthings/__init__.pyi +3 -5
  7. homeassistant-stubs/components/airthings/coordinator.pyi +13 -0
  8. homeassistant-stubs/components/airthings/sensor.pyi +5 -4
  9. homeassistant-stubs/components/alexa_devices/binary_sensor.pyi +2 -1
  10. homeassistant-stubs/components/alexa_devices/sensor.pyi +29 -0
  11. homeassistant-stubs/components/altruist/__init__.pyi +9 -0
  12. homeassistant-stubs/components/altruist/config_flow.pyi +15 -0
  13. homeassistant-stubs/components/altruist/const.pyi +2 -0
  14. homeassistant-stubs/components/altruist/coordinator.pyi +19 -0
  15. homeassistant-stubs/components/altruist/sensor.pyi +34 -0
  16. homeassistant-stubs/components/amcrest/__init__.pyi +4 -7
  17. homeassistant-stubs/components/amcrest/services.pyi +13 -0
  18. homeassistant-stubs/components/analytics/analytics.pyi +3 -1
  19. homeassistant-stubs/components/android_ip_webcam/camera.pyi +4 -0
  20. homeassistant-stubs/components/apcupsd/sensor.pyi +1 -1
  21. homeassistant-stubs/components/assist_satellite/__init__.pyi +2 -2
  22. homeassistant-stubs/components/assist_satellite/entity.pyi +13 -1
  23. homeassistant-stubs/components/axis/hub/hub.pyi +1 -1
  24. homeassistant-stubs/components/camera/__init__.pyi +0 -2
  25. homeassistant-stubs/components/camera/webrtc.pyi +1 -0
  26. homeassistant-stubs/components/climate/__init__.pyi +0 -2
  27. homeassistant-stubs/components/command_line/notify.pyi +1 -2
  28. homeassistant-stubs/components/command_line/sensor.pyi +1 -2
  29. homeassistant-stubs/components/command_line/utils.pyi +5 -2
  30. homeassistant-stubs/components/deconz/logbook.pyi +1 -1
  31. homeassistant-stubs/components/derivative/config_flow.pyi +1 -1
  32. homeassistant-stubs/components/derivative/const.pyi +1 -0
  33. homeassistant-stubs/components/derivative/sensor.pyi +9 -4
  34. homeassistant-stubs/components/device_automation/condition.pyi +17 -4
  35. homeassistant-stubs/components/devolo_home_control/__init__.pyi +3 -2
  36. homeassistant-stubs/components/devolo_home_control/climate.pyi +1 -1
  37. homeassistant-stubs/components/devolo_home_control/const.pyi +0 -1
  38. homeassistant-stubs/components/devolo_home_control/cover.pyi +1 -1
  39. homeassistant-stubs/components/devolo_home_control/entity.pyi +6 -0
  40. homeassistant-stubs/components/devolo_home_control/light.pyi +1 -1
  41. homeassistant-stubs/components/devolo_home_control/siren.pyi +1 -1
  42. homeassistant-stubs/components/devolo_home_network/device_tracker.pyi +2 -0
  43. homeassistant-stubs/components/dnsip/sensor.pyi +3 -2
  44. homeassistant-stubs/components/downloader/__init__.pyi +1 -1
  45. homeassistant-stubs/components/downloader/services.pyi +3 -2
  46. homeassistant-stubs/components/ecovacs/binary_sensor.pyi +4 -4
  47. homeassistant-stubs/components/ecovacs/entity.pyi +9 -12
  48. homeassistant-stubs/components/ecovacs/number.pyi +4 -4
  49. homeassistant-stubs/components/ecovacs/select.pyi +5 -4
  50. homeassistant-stubs/components/ecovacs/sensor.pyi +3 -3
  51. homeassistant-stubs/components/eheimdigital/number.pyi +8 -9
  52. homeassistant-stubs/components/eheimdigital/select.pyi +8 -9
  53. homeassistant-stubs/components/eheimdigital/sensor.pyi +7 -8
  54. homeassistant-stubs/components/eheimdigital/time.pyi +8 -9
  55. homeassistant-stubs/components/elkm1/__init__.pyi +4 -9
  56. homeassistant-stubs/components/elkm1/services.pyi +21 -0
  57. homeassistant-stubs/components/enphase_envoy/__init__.pyi +2 -2
  58. homeassistant-stubs/components/enphase_envoy/config_flow.pyi +1 -1
  59. homeassistant-stubs/components/enphase_envoy/diagnostics.pyi +1 -0
  60. homeassistant-stubs/components/enphase_envoy/sensor.pyi +1 -1
  61. homeassistant-stubs/components/eq3btsmart/climate.pyi +6 -8
  62. homeassistant-stubs/components/eq3btsmart/const.pyi +3 -2
  63. homeassistant-stubs/components/eq3btsmart/entity.pyi +5 -1
  64. homeassistant-stubs/components/eq3btsmart/number.pyi +3 -3
  65. homeassistant-stubs/components/eq3btsmart/switch.pyi +5 -3
  66. homeassistant-stubs/components/esphome/entity.pyi +2 -1
  67. homeassistant-stubs/components/esphome/entry_data.pyi +3 -0
  68. homeassistant-stubs/components/evohome/water_heater.pyi +1 -1
  69. homeassistant-stubs/components/fritz/binary_sensor.pyi +2 -1
  70. homeassistant-stubs/components/fritz/button.pyi +3 -1
  71. homeassistant-stubs/components/fritz/coordinator.pyi +8 -82
  72. homeassistant-stubs/components/fritz/device_tracker.pyi +3 -1
  73. homeassistant-stubs/components/fritz/entity.pyi +2 -1
  74. homeassistant-stubs/components/fritz/helpers.pyi +9 -0
  75. homeassistant-stubs/components/fritz/models.pyi +78 -0
  76. homeassistant-stubs/components/fritz/sensor.pyi +2 -1
  77. homeassistant-stubs/components/fritz/services.pyi +3 -2
  78. homeassistant-stubs/components/fritz/switch.pyi +3 -1
  79. homeassistant-stubs/components/fully_kiosk/services.pyi +7 -2
  80. homeassistant-stubs/components/go2rtc/__init__.pyi +10 -4
  81. homeassistant-stubs/components/google/__init__.pyi +3 -9
  82. homeassistant-stubs/components/google_assistant_sdk/__init__.pyi +3 -7
  83. homeassistant-stubs/components/google_assistant_sdk/services.pyi +13 -0
  84. homeassistant-stubs/components/google_photos/services.pyi +4 -2
  85. homeassistant-stubs/components/google_sheets/__init__.pyi +7 -10
  86. homeassistant-stubs/components/google_sheets/services.pyi +18 -0
  87. homeassistant-stubs/components/group/sensor.pyi +1 -1
  88. homeassistant-stubs/components/habitica/services.pyi +8 -1
  89. homeassistant-stubs/components/here_travel_time/model.pyi +2 -1
  90. homeassistant-stubs/components/home_connect/diagnostics.pyi +2 -0
  91. homeassistant-stubs/components/homeassistant/__init__.pyi +2 -3
  92. homeassistant-stubs/components/homeassistant_hardware/firmware_config_flow.pyi +7 -7
  93. homeassistant-stubs/components/homeassistant_hardware/update.pyi +2 -6
  94. homeassistant-stubs/components/homeassistant_hardware/util.pyi +3 -1
  95. homeassistant-stubs/components/homeassistant_sky_connect/config_flow.pyi +9 -5
  96. homeassistant-stubs/components/homeassistant_yellow/config_flow.pyi +12 -5
  97. homeassistant-stubs/components/homee/config_flow.pyi +1 -0
  98. homeassistant-stubs/components/homee/diagnostics.pyi +12 -0
  99. homeassistant-stubs/components/homee/entity.pyi +3 -2
  100. homeassistant-stubs/components/homee/event.pyi +8 -4
  101. homeassistant-stubs/components/homee/siren.pyi +19 -0
  102. homeassistant-stubs/components/homewizard/select.pyi +35 -0
  103. homeassistant-stubs/components/immich/coordinator.pyi +2 -1
  104. homeassistant-stubs/components/immich/update.pyi +21 -0
  105. homeassistant-stubs/components/isy994/__init__.pyi +3 -1
  106. homeassistant-stubs/components/isy994/services.pyi +0 -2
  107. homeassistant-stubs/components/jewish_calendar/__init__.pyi +1 -1
  108. homeassistant-stubs/components/jewish_calendar/{service.pyi → services.pyi} +2 -1
  109. homeassistant-stubs/components/kaleidescape/__init__.pyi +4 -4
  110. homeassistant-stubs/components/kaleidescape/media_player.pyi +2 -3
  111. homeassistant-stubs/components/kaleidescape/remote.pyi +2 -3
  112. homeassistant-stubs/components/kaleidescape/sensor.pyi +2 -3
  113. homeassistant-stubs/components/lacrosse_view/__init__.pyi +3 -5
  114. homeassistant-stubs/components/lacrosse_view/coordinator.pyi +3 -2
  115. homeassistant-stubs/components/lacrosse_view/diagnostics.pyi +2 -4
  116. homeassistant-stubs/components/lacrosse_view/sensor.pyi +2 -2
  117. homeassistant-stubs/components/lametric/__init__.pyi +3 -4
  118. homeassistant-stubs/components/lametric/button.pyi +2 -4
  119. homeassistant-stubs/components/lametric/coordinator.pyi +3 -2
  120. homeassistant-stubs/components/lametric/diagnostics.pyi +2 -4
  121. homeassistant-stubs/components/lametric/entity.pyi +1 -1
  122. homeassistant-stubs/components/lametric/helpers.pyi +1 -1
  123. homeassistant-stubs/components/lametric/notify.pyi +2 -2
  124. homeassistant-stubs/components/lametric/number.pyi +2 -4
  125. homeassistant-stubs/components/lametric/select.pyi +2 -4
  126. homeassistant-stubs/components/lametric/sensor.pyi +2 -4
  127. homeassistant-stubs/components/lametric/switch.pyi +2 -4
  128. homeassistant-stubs/components/lametric/update.pyi +17 -0
  129. homeassistant-stubs/components/laundrify/__init__.pyi +4 -6
  130. homeassistant-stubs/components/laundrify/binary_sensor.pyi +2 -3
  131. homeassistant-stubs/components/laundrify/coordinator.pyi +1 -0
  132. homeassistant-stubs/components/laundrify/sensor.pyi +2 -3
  133. homeassistant-stubs/components/lcn/__init__.pyi +9 -10
  134. homeassistant-stubs/components/lcn/binary_sensor.pyi +9 -8
  135. homeassistant-stubs/components/lcn/climate.pyi +5 -6
  136. homeassistant-stubs/components/lcn/const.pyi +0 -4
  137. homeassistant-stubs/components/lcn/cover.pyi +6 -7
  138. homeassistant-stubs/components/lcn/entity.pyi +2 -3
  139. homeassistant-stubs/components/lcn/helpers.pyi +15 -5
  140. homeassistant-stubs/components/lcn/light.pyi +6 -7
  141. homeassistant-stubs/components/lcn/scene.pyi +5 -5
  142. homeassistant-stubs/components/lcn/sensor.pyi +7 -7
  143. homeassistant-stubs/components/lcn/services.pyi +5 -4
  144. homeassistant-stubs/components/lcn/switch.pyi +8 -9
  145. homeassistant-stubs/components/lcn/websocket.pyi +12 -13
  146. homeassistant-stubs/components/ld2410_ble/__init__.pyi +4 -6
  147. homeassistant-stubs/components/ld2410_ble/binary_sensor.pyi +2 -4
  148. homeassistant-stubs/components/ld2410_ble/coordinator.pyi +3 -3
  149. homeassistant-stubs/components/ld2410_ble/models.pyi +2 -0
  150. homeassistant-stubs/components/ld2410_ble/sensor.pyi +4 -5
  151. homeassistant-stubs/components/led_ble/__init__.pyi +5 -6
  152. homeassistant-stubs/components/led_ble/light.pyi +3 -4
  153. homeassistant-stubs/components/led_ble/models.pyi +2 -0
  154. homeassistant-stubs/components/lifx/__init__.pyi +4 -5
  155. homeassistant-stubs/components/lifx/binary_sensor.pyi +3 -4
  156. homeassistant-stubs/components/lifx/button.pyi +3 -4
  157. homeassistant-stubs/components/lifx/const.pyi +3 -1
  158. homeassistant-stubs/components/lifx/coordinator.pyi +3 -2
  159. homeassistant-stubs/components/lifx/diagnostics.pyi +3 -4
  160. homeassistant-stubs/components/lifx/light.pyi +3 -4
  161. homeassistant-stubs/components/lifx/manager.pyi +2 -2
  162. homeassistant-stubs/components/lifx/migration.pyi +3 -3
  163. homeassistant-stubs/components/lifx/select.pyi +3 -4
  164. homeassistant-stubs/components/lifx/sensor.pyi +3 -4
  165. homeassistant-stubs/components/lifx/util.pyi +3 -3
  166. homeassistant-stubs/components/linear_garage_door/__init__.pyi +4 -5
  167. homeassistant-stubs/components/linear_garage_door/coordinator.pyi +3 -2
  168. homeassistant-stubs/components/linear_garage_door/cover.pyi +2 -4
  169. homeassistant-stubs/components/linear_garage_door/diagnostics.pyi +2 -4
  170. homeassistant-stubs/components/linear_garage_door/light.pyi +2 -4
  171. homeassistant-stubs/components/lookin/__init__.pyi +4 -5
  172. homeassistant-stubs/components/lookin/climate.pyi +3 -4
  173. homeassistant-stubs/components/lookin/coordinator.pyi +3 -3
  174. homeassistant-stubs/components/lookin/light.pyi +3 -4
  175. homeassistant-stubs/components/lookin/media_player.pyi +3 -4
  176. homeassistant-stubs/components/lookin/models.pyi +2 -0
  177. homeassistant-stubs/components/lookin/sensor.pyi +2 -4
  178. homeassistant-stubs/components/luftdaten/__init__.pyi +4 -6
  179. homeassistant-stubs/components/luftdaten/coordinator.pyi +15 -0
  180. homeassistant-stubs/components/luftdaten/diagnostics.pyi +3 -4
  181. homeassistant-stubs/components/luftdaten/sensor.pyi +4 -4
  182. homeassistant-stubs/components/matrix/__init__.pyi +2 -7
  183. homeassistant-stubs/components/matrix/const.pyi +3 -0
  184. homeassistant-stubs/components/matrix/services.pyi +12 -0
  185. homeassistant-stubs/components/matter/sensor.pyi +7 -2
  186. homeassistant-stubs/components/matter/vacuum.pyi +4 -4
  187. homeassistant-stubs/components/mealie/__init__.pyi +1 -1
  188. homeassistant-stubs/components/mealie/services.pyi +9 -3
  189. homeassistant-stubs/components/media_player/__init__.pyi +0 -2
  190. homeassistant-stubs/components/media_player/intent.pyi +1 -1
  191. homeassistant-stubs/components/miele/const.pyi +24 -0
  192. homeassistant-stubs/components/miele/sensor.pyi +1 -2
  193. homeassistant-stubs/components/mqtt/config_flow.pyi +4 -1
  194. homeassistant-stubs/components/mqtt/sensor.pyi +1 -4
  195. homeassistant-stubs/components/music_assistant/__init__.pyi +5 -1
  196. homeassistant-stubs/components/music_assistant/button.pyi +17 -0
  197. homeassistant-stubs/components/music_assistant/helpers.pyi +5 -0
  198. homeassistant-stubs/components/music_assistant/media_player.pyi +4 -4
  199. homeassistant-stubs/components/nextdns/binary_sensor.pyi +6 -12
  200. homeassistant-stubs/components/nextdns/button.pyi +2 -9
  201. homeassistant-stubs/components/nextdns/coordinator.pyi +2 -7
  202. homeassistant-stubs/components/nextdns/entity.pyi +14 -0
  203. homeassistant-stubs/components/nextdns/sensor.pyi +8 -15
  204. homeassistant-stubs/components/nextdns/switch.pyi +3 -6
  205. homeassistant-stubs/components/nfandroidtv/__init__.pyi +0 -1
  206. homeassistant-stubs/components/nfandroidtv/notify.pyi +5 -4
  207. homeassistant-stubs/components/nordpool/services.pyi +2 -1
  208. homeassistant-stubs/components/ntfy/__init__.pyi +1 -3
  209. homeassistant-stubs/components/ntfy/config_flow.pyi +3 -0
  210. homeassistant-stubs/components/ntfy/coordinator.pyi +16 -0
  211. homeassistant-stubs/components/ntfy/notify.pyi +1 -1
  212. homeassistant-stubs/components/ntfy/sensor.pyi +56 -0
  213. homeassistant-stubs/components/ohme/services.pyi +2 -1
  214. homeassistant-stubs/components/onedrive/__init__.pyi +1 -1
  215. homeassistant-stubs/components/onedrive/services.pyi +3 -2
  216. homeassistant-stubs/components/onewire/binary_sensor.pyi +3 -2
  217. homeassistant-stubs/components/onewire/const.pyi +0 -1
  218. homeassistant-stubs/components/onewire/entity.pyi +2 -3
  219. homeassistant-stubs/components/onewire/switch.pyi +3 -2
  220. homeassistant-stubs/components/onkyo/__init__.pyi +1 -1
  221. homeassistant-stubs/components/onkyo/services.pyi +3 -2
  222. homeassistant-stubs/components/openai_conversation/__init__.pyi +2 -1
  223. homeassistant-stubs/components/openai_conversation/config_flow.pyi +18 -14
  224. homeassistant-stubs/components/openai_conversation/const.pyi +1 -0
  225. homeassistant-stubs/components/openai_conversation/conversation.pyi +4 -4
  226. homeassistant-stubs/components/overseerr/__init__.pyi +1 -1
  227. homeassistant-stubs/components/overseerr/services.pyi +6 -4
  228. homeassistant-stubs/components/paperless_ngx/__init__.pyi +1 -1
  229. homeassistant-stubs/components/paperless_ngx/config_flow.pyi +2 -2
  230. homeassistant-stubs/components/paperless_ngx/coordinator.pyi +3 -5
  231. homeassistant-stubs/components/paperless_ngx/entity.pyi +2 -5
  232. homeassistant-stubs/components/paperless_ngx/sensor.pyi +8 -8
  233. homeassistant-stubs/components/paperless_ngx/update.pyi +25 -0
  234. homeassistant-stubs/components/plugwise/climate.pyi +0 -1
  235. homeassistant-stubs/components/qbus/climate.pyi +3 -2
  236. homeassistant-stubs/components/qbus/cover.pyi +39 -0
  237. homeassistant-stubs/components/qbus/entity.pyi +7 -3
  238. homeassistant-stubs/components/qbus/light.pyi +4 -3
  239. homeassistant-stubs/components/qbus/scene.pyi +2 -2
  240. homeassistant-stubs/components/qbus/switch.pyi +3 -2
  241. homeassistant-stubs/components/recorder/__init__.pyi +1 -1
  242. homeassistant-stubs/components/recorder/services.pyi +7 -12
  243. homeassistant-stubs/components/reolink/__init__.pyi +1 -1
  244. homeassistant-stubs/components/reolink/config_flow.pyi +1 -1
  245. homeassistant-stubs/components/reolink/const.pyi +1 -0
  246. homeassistant-stubs/components/reolink/entity.pyi +1 -1
  247. homeassistant-stubs/components/reolink/host.pyi +1 -1
  248. homeassistant-stubs/components/reolink/services.pyi +2 -0
  249. homeassistant-stubs/components/rest/data.pyi +7 -6
  250. homeassistant-stubs/components/russound_rio/__init__.pyi +1 -0
  251. homeassistant-stubs/components/russound_rio/entity.pyi +6 -2
  252. homeassistant-stubs/components/russound_rio/media_player.pyi +1 -5
  253. homeassistant-stubs/components/russound_rio/number.pyi +30 -0
  254. homeassistant-stubs/components/russound_rio/switch.pyi +33 -0
  255. homeassistant-stubs/components/shopping_list/__init__.pyi +1 -0
  256. homeassistant-stubs/components/shopping_list/intent.pyi +9 -1
  257. homeassistant-stubs/components/squeezebox/button.pyi +0 -2
  258. homeassistant-stubs/components/squeezebox/entity.pyi +2 -0
  259. homeassistant-stubs/components/squeezebox/media_player.pyi +0 -2
  260. homeassistant-stubs/components/sun/__init__.pyi +1 -0
  261. homeassistant-stubs/components/sun/binary_sensor.pyi +36 -0
  262. homeassistant-stubs/components/sun/condition.pyi +13 -3
  263. homeassistant-stubs/components/sun/sensor.pyi +2 -0
  264. homeassistant-stubs/components/switch/light.pyi +1 -0
  265. homeassistant-stubs/components/switch_as_x/entity.pyi +1 -0
  266. homeassistant-stubs/components/synology_dsm/__init__.pyi +4 -1
  267. homeassistant-stubs/components/synology_dsm/{service.pyi → services.pyi} +4 -2
  268. homeassistant-stubs/components/tedee/binary_sensor.pyi +4 -0
  269. homeassistant-stubs/components/telegram_bot/__init__.pyi +34 -0
  270. homeassistant-stubs/components/telegram_bot/bot.pyi +63 -0
  271. homeassistant-stubs/components/telegram_bot/broadcast.pyi +5 -0
  272. homeassistant-stubs/components/telegram_bot/config_flow.pyi +53 -0
  273. homeassistant-stubs/components/telegram_bot/const.pyi +92 -0
  274. homeassistant-stubs/components/telegram_bot/polling.pyi +19 -0
  275. homeassistant-stubs/components/telegram_bot/webhooks.pyi +47 -0
  276. homeassistant-stubs/components/tplink/climate.pyi +1 -2
  277. homeassistant-stubs/components/trend/binary_sensor.pyi +1 -1
  278. homeassistant-stubs/components/tts/entity.pyi +1 -2
  279. homeassistant-stubs/components/unifi/button.pyi +5 -5
  280. homeassistant-stubs/components/unifi/device_tracker.pyi +5 -5
  281. homeassistant-stubs/components/unifi/entity.pyi +5 -8
  282. homeassistant-stubs/components/unifi/hub/hub.pyi +1 -1
  283. homeassistant-stubs/components/unifi/image.pyi +5 -5
  284. homeassistant-stubs/components/unifi/sensor.pyi +5 -5
  285. homeassistant-stubs/components/unifi/switch.pyi +7 -7
  286. homeassistant-stubs/components/unifi/update.pyi +3 -5
  287. homeassistant-stubs/components/unifiprotect/services.pyi +1 -0
  288. homeassistant-stubs/components/vacuum/__init__.pyi +0 -2
  289. homeassistant-stubs/components/websocket_api/commands.pyi +6 -3
  290. homeassistant-stubs/components/websocket_api/messages.pyi +1 -0
  291. homeassistant-stubs/components/wiz/__init__.pyi +3 -3
  292. homeassistant-stubs/components/zwave_js/__init__.pyi +1 -1
  293. homeassistant-stubs/components/zwave_js/api.pyi +2 -2
  294. homeassistant-stubs/components/zwave_js/device_trigger.pyi +0 -1
  295. homeassistant-stubs/components/zwave_js/services.pyi +2 -0
  296. homeassistant-stubs/components/zwave_js/trigger.pyi +3 -7
  297. homeassistant-stubs/components/zwave_js/triggers/event.pyi +9 -1
  298. homeassistant-stubs/components/zwave_js/triggers/value_updated.pyi +9 -1
  299. homeassistant-stubs/const.pyi +1 -0
  300. homeassistant-stubs/helpers/condition.pyi +11 -3
  301. homeassistant-stubs/helpers/device_registry.pyi +5 -1
  302. homeassistant-stubs/helpers/entity.pyi +1 -4
  303. homeassistant-stubs/helpers/entity_registry.pyi +11 -1
  304. homeassistant-stubs/helpers/llm.pyi +0 -1
  305. homeassistant-stubs/helpers/selector.pyi +24 -4
  306. homeassistant-stubs/helpers/system_info.pyi +2 -0
  307. homeassistant-stubs/helpers/template.pyi +2 -1
  308. homeassistant-stubs/helpers/trigger.pyi +33 -2
  309. homeassistant-stubs/loader.pyi +3 -1
  310. homeassistant-stubs/util/timeout.pyi +6 -3
  311. homeassistant-stubs/util/yaml/loader.pyi +3 -1
  312. {homeassistant_stubs-2025.6.2.dist-info → homeassistant_stubs-2025.7.0b0.dist-info}/METADATA +2 -2
  313. {homeassistant_stubs-2025.6.2.dist-info → homeassistant_stubs-2025.7.0b0.dist-info}/RECORD +315 -279
  314. homeassistant-stubs/backports/enum.pyi +0 -7
  315. homeassistant-stubs/backports/functools.pyi +0 -7
  316. homeassistant-stubs/components/devolo_home_control/devolo_multi_level_switch.pyi +0 -10
  317. {homeassistant_stubs-2025.6.2.dist-info → homeassistant_stubs-2025.7.0b0.dist-info}/WHEEL +0 -0
  318. {homeassistant_stubs-2025.6.2.dist-info → homeassistant_stubs-2025.7.0b0.dist-info}/licenses/LICENSE +0 -0
@@ -1,10 +1,9 @@
1
- from .const import CONF_CHAT_MODEL as CONF_CHAT_MODEL, CONF_MAX_TOKENS as CONF_MAX_TOKENS, CONF_PROMPT as CONF_PROMPT, CONF_REASONING_EFFORT as CONF_REASONING_EFFORT, CONF_RECOMMENDED as CONF_RECOMMENDED, CONF_TEMPERATURE as CONF_TEMPERATURE, CONF_TOP_P as CONF_TOP_P, CONF_WEB_SEARCH as CONF_WEB_SEARCH, CONF_WEB_SEARCH_CITY as CONF_WEB_SEARCH_CITY, CONF_WEB_SEARCH_CONTEXT_SIZE as CONF_WEB_SEARCH_CONTEXT_SIZE, CONF_WEB_SEARCH_COUNTRY as CONF_WEB_SEARCH_COUNTRY, CONF_WEB_SEARCH_REGION as CONF_WEB_SEARCH_REGION, CONF_WEB_SEARCH_TIMEZONE as CONF_WEB_SEARCH_TIMEZONE, CONF_WEB_SEARCH_USER_LOCATION as CONF_WEB_SEARCH_USER_LOCATION, DOMAIN as DOMAIN, RECOMMENDED_CHAT_MODEL as RECOMMENDED_CHAT_MODEL, RECOMMENDED_MAX_TOKENS as RECOMMENDED_MAX_TOKENS, RECOMMENDED_REASONING_EFFORT as RECOMMENDED_REASONING_EFFORT, RECOMMENDED_TEMPERATURE as RECOMMENDED_TEMPERATURE, RECOMMENDED_TOP_P as RECOMMENDED_TOP_P, RECOMMENDED_WEB_SEARCH as RECOMMENDED_WEB_SEARCH, RECOMMENDED_WEB_SEARCH_CONTEXT_SIZE as RECOMMENDED_WEB_SEARCH_CONTEXT_SIZE, RECOMMENDED_WEB_SEARCH_USER_LOCATION as RECOMMENDED_WEB_SEARCH_USER_LOCATION, UNSUPPORTED_MODELS as UNSUPPORTED_MODELS, WEB_SEARCH_MODELS as WEB_SEARCH_MODELS
1
+ from .const import CONF_CHAT_MODEL as CONF_CHAT_MODEL, CONF_MAX_TOKENS as CONF_MAX_TOKENS, CONF_PROMPT as CONF_PROMPT, CONF_REASONING_EFFORT as CONF_REASONING_EFFORT, CONF_RECOMMENDED as CONF_RECOMMENDED, CONF_TEMPERATURE as CONF_TEMPERATURE, CONF_TOP_P as CONF_TOP_P, CONF_WEB_SEARCH as CONF_WEB_SEARCH, CONF_WEB_SEARCH_CITY as CONF_WEB_SEARCH_CITY, CONF_WEB_SEARCH_CONTEXT_SIZE as CONF_WEB_SEARCH_CONTEXT_SIZE, CONF_WEB_SEARCH_COUNTRY as CONF_WEB_SEARCH_COUNTRY, CONF_WEB_SEARCH_REGION as CONF_WEB_SEARCH_REGION, CONF_WEB_SEARCH_TIMEZONE as CONF_WEB_SEARCH_TIMEZONE, CONF_WEB_SEARCH_USER_LOCATION as CONF_WEB_SEARCH_USER_LOCATION, DEFAULT_CONVERSATION_NAME as DEFAULT_CONVERSATION_NAME, DOMAIN as DOMAIN, RECOMMENDED_CHAT_MODEL as RECOMMENDED_CHAT_MODEL, RECOMMENDED_MAX_TOKENS as RECOMMENDED_MAX_TOKENS, RECOMMENDED_REASONING_EFFORT as RECOMMENDED_REASONING_EFFORT, RECOMMENDED_TEMPERATURE as RECOMMENDED_TEMPERATURE, RECOMMENDED_TOP_P as RECOMMENDED_TOP_P, RECOMMENDED_WEB_SEARCH as RECOMMENDED_WEB_SEARCH, RECOMMENDED_WEB_SEARCH_CONTEXT_SIZE as RECOMMENDED_WEB_SEARCH_CONTEXT_SIZE, RECOMMENDED_WEB_SEARCH_USER_LOCATION as RECOMMENDED_WEB_SEARCH_USER_LOCATION, UNSUPPORTED_MODELS as UNSUPPORTED_MODELS, WEB_SEARCH_MODELS as WEB_SEARCH_MODELS
2
2
  from _typeshed import Incomplete
3
- from collections.abc import Mapping
4
3
  from homeassistant.components.zone import ENTITY_ID_HOME as ENTITY_ID_HOME
5
- from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow
6
- from homeassistant.const import ATTR_LATITUDE as ATTR_LATITUDE, ATTR_LONGITUDE as ATTR_LONGITUDE, CONF_API_KEY as CONF_API_KEY, CONF_LLM_HASS_API as CONF_LLM_HASS_API
7
- from homeassistant.core import HomeAssistant as HomeAssistant
4
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigEntryState as ConfigEntryState, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, ConfigSubentryFlow as ConfigSubentryFlow, SubentryFlowResult as SubentryFlowResult
5
+ from homeassistant.const import ATTR_LATITUDE as ATTR_LATITUDE, ATTR_LONGITUDE as ATTR_LONGITUDE, CONF_API_KEY as CONF_API_KEY, CONF_LLM_HASS_API as CONF_LLM_HASS_API, CONF_NAME as CONF_NAME
6
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
8
7
  from homeassistant.helpers import llm as llm
9
8
  from homeassistant.helpers.httpx_client import get_async_client as get_async_client
10
9
  from homeassistant.helpers.selector import NumberSelector as NumberSelector, NumberSelectorConfig as NumberSelectorConfig, SelectOptionDict as SelectOptionDict, SelectSelector as SelectSelector, SelectSelectorConfig as SelectSelectorConfig, SelectSelectorMode as SelectSelectorMode, TemplateSelector as TemplateSelector
@@ -20,13 +19,18 @@ async def validate_input(hass: HomeAssistant, data: dict[str, Any]) -> None: ...
20
19
  class OpenAIConfigFlow(ConfigFlow, domain=DOMAIN):
21
20
  VERSION: int
22
21
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
23
- @staticmethod
24
- def async_get_options_flow(config_entry: ConfigEntry) -> OptionsFlow: ...
22
+ @classmethod
23
+ @callback
24
+ def async_get_supported_subentry_types(cls, config_entry: ConfigEntry) -> dict[str, type[ConfigSubentryFlow]]: ...
25
25
 
26
- class OpenAIOptionsFlow(OptionsFlow):
27
- last_rendered_recommended: Incomplete
28
- def __init__(self, config_entry: ConfigEntry) -> None: ...
29
- async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
30
- async def get_location_data(self) -> dict[str, str]: ...
31
-
32
- def openai_config_option_schema(hass: HomeAssistant, options: Mapping[str, Any]) -> VolDictType: ...
26
+ class ConversationSubentryFlowHandler(ConfigSubentryFlow):
27
+ last_rendered_recommended: bool
28
+ options: dict[str, Any]
29
+ @property
30
+ def _is_new(self) -> bool: ...
31
+ async def async_step_user(self, user_input: dict[str, Any] | None = None) -> SubentryFlowResult: ...
32
+ async def async_step_reconfigure(self, user_input: dict[str, Any] | None = None) -> SubentryFlowResult: ...
33
+ async def async_step_init(self, user_input: dict[str, Any] | None = None) -> SubentryFlowResult: ...
34
+ async def async_step_advanced(self, user_input: dict[str, Any] | None = None) -> SubentryFlowResult: ...
35
+ async def async_step_model(self, user_input: dict[str, Any] | None = None) -> SubentryFlowResult: ...
36
+ async def _get_location_data(self) -> dict[str, str]: ...
@@ -2,6 +2,7 @@ import logging
2
2
 
3
3
  DOMAIN: str
4
4
  LOGGER: logging.Logger
5
+ DEFAULT_CONVERSATION_NAME: str
5
6
  CONF_CHAT_MODEL: str
6
7
  CONF_FILENAMES: str
7
8
  CONF_MAX_TOKENS: str
@@ -3,7 +3,7 @@ from .const import CONF_CHAT_MODEL as CONF_CHAT_MODEL, CONF_MAX_TOKENS as CONF_M
3
3
  from _typeshed import Incomplete
4
4
  from collections.abc import AsyncGenerator, Callable as Callable
5
5
  from homeassistant.components import assist_pipeline as assist_pipeline, conversation as conversation
6
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
6
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigSubentry as ConfigSubentry
7
7
  from homeassistant.const import CONF_LLM_HASS_API as CONF_LLM_HASS_API, MATCH_ALL as MATCH_ALL
8
8
  from homeassistant.core import HomeAssistant as HomeAssistant
9
9
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
@@ -21,14 +21,14 @@ def _convert_content_to_param(content: conversation.Content) -> ResponseInputPar
21
21
  async def _transform_stream(chat_log: conversation.ChatLog, result: AsyncStream[ResponseStreamEvent], messages: ResponseInputParam) -> AsyncGenerator[conversation.AssistantContentDeltaDict]: ...
22
22
 
23
23
  class OpenAIConversationEntity(conversation.ConversationEntity, conversation.AbstractConversationAgent):
24
- _attr_has_entity_name: bool
25
- _attr_name: Incomplete
26
24
  _attr_supports_streaming: bool
27
25
  entry: Incomplete
26
+ subentry: Incomplete
27
+ _attr_name: Incomplete
28
28
  _attr_unique_id: Incomplete
29
29
  _attr_device_info: Incomplete
30
30
  _attr_supported_features: Incomplete
31
- def __init__(self, entry: OpenAIConfigEntry) -> None: ...
31
+ def __init__(self, entry: OpenAIConfigEntry, subentry: ConfigSubentry) -> None: ...
32
32
  @property
33
33
  def supported_languages(self) -> list[str] | Literal['*']: ...
34
34
  async def async_added_to_hass(self) -> None: ...
@@ -1,6 +1,6 @@
1
1
  from .const import DOMAIN as DOMAIN, EVENT_KEY as EVENT_KEY, JSON_PAYLOAD as JSON_PAYLOAD, LOGGER as LOGGER, REGISTERED_NOTIFICATIONS as REGISTERED_NOTIFICATIONS
2
2
  from .coordinator import OverseerrConfigEntry as OverseerrConfigEntry, OverseerrCoordinator as OverseerrCoordinator
3
- from .services import setup_services as setup_services
3
+ from .services import async_setup_services as async_setup_services
4
4
  from _typeshed import Incomplete
5
5
  from aiohttp.web_request import Request as Request
6
6
  from aiohttp.web_response import Response as Response
@@ -2,7 +2,7 @@ from .const import ATTR_CONFIG_ENTRY_ID as ATTR_CONFIG_ENTRY_ID, ATTR_REQUESTED_
2
2
  from .coordinator import OverseerrConfigEntry as OverseerrConfigEntry
3
3
  from _typeshed import Incomplete
4
4
  from homeassistant.config_entries import ConfigEntryState as ConfigEntryState
5
- from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, ServiceResponse as ServiceResponse, SupportsResponse as SupportsResponse
5
+ from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, ServiceResponse as ServiceResponse, SupportsResponse as SupportsResponse, callback as callback
6
6
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, ServiceValidationError as ServiceValidationError
7
7
  from homeassistant.util.json import JsonValueType as JsonValueType
8
8
  from python_overseerr import OverseerrClient as OverseerrClient
@@ -11,6 +11,8 @@ from typing import Any
11
11
  SERVICE_GET_REQUESTS: str
12
12
  SERVICE_GET_REQUESTS_SCHEMA: Incomplete
13
13
 
14
- def async_get_entry(hass: HomeAssistant, config_entry_id: str) -> OverseerrConfigEntry: ...
15
- async def get_media(client: OverseerrClient, media_type: str, identifier: int) -> dict[str, Any]: ...
16
- def setup_services(hass: HomeAssistant) -> None: ...
14
+ def _async_get_entry(hass: HomeAssistant, config_entry_id: str) -> OverseerrConfigEntry: ...
15
+ async def _get_media(client: OverseerrClient, media_type: str, identifier: int) -> dict[str, Any]: ...
16
+ async def _async_get_requests(call: ServiceCall) -> ServiceResponse: ...
17
+ @callback
18
+ def async_setup_services(hass: HomeAssistant) -> None: ...
@@ -1,6 +1,6 @@
1
1
  from .const import DOMAIN as DOMAIN, LOGGER as LOGGER
2
2
  from .coordinator import PaperlessConfigEntry as PaperlessConfigEntry, PaperlessData as PaperlessData, PaperlessStatisticCoordinator as PaperlessStatisticCoordinator, PaperlessStatusCoordinator as PaperlessStatusCoordinator
3
- from homeassistant.const import CONF_API_KEY as CONF_API_KEY, CONF_URL as CONF_URL, Platform as Platform
3
+ from homeassistant.const import CONF_API_KEY as CONF_API_KEY, CONF_URL as CONF_URL, CONF_VERIFY_SSL as CONF_VERIFY_SSL, Platform as Platform
4
4
  from homeassistant.core import HomeAssistant as HomeAssistant
5
5
  from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryError as ConfigEntryError, ConfigEntryNotReady as ConfigEntryNotReady
6
6
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
@@ -2,7 +2,7 @@ from .const import DOMAIN as DOMAIN, LOGGER as LOGGER
2
2
  from _typeshed import Incomplete
3
3
  from collections.abc import Mapping
4
4
  from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
5
- from homeassistant.const import CONF_API_KEY as CONF_API_KEY, CONF_URL as CONF_URL
5
+ from homeassistant.const import CONF_API_KEY as CONF_API_KEY, CONF_URL as CONF_URL, CONF_VERIFY_SSL as CONF_VERIFY_SSL
6
6
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
7
7
  from typing import Any
8
8
 
@@ -13,4 +13,4 @@ class PaperlessConfigFlow(ConfigFlow, domain=DOMAIN):
13
13
  async def async_step_reconfigure(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
14
14
  async def async_step_reauth(self, user_input: Mapping[str, Any]) -> ConfigFlowResult: ...
15
15
  async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
16
- async def _validate_input(self, user_input: dict[str, str]) -> dict[str, str]: ...
16
+ async def _validate_input(self, user_input: dict[str, Any]) -> dict[str, str]: ...
@@ -10,10 +10,8 @@ from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFai
10
10
  from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
11
11
  from pypaperless import Paperless as Paperless
12
12
  from pypaperless.models import Statistic, Status
13
- from typing import TypeVar
14
13
 
15
14
  type PaperlessConfigEntry = ConfigEntry[PaperlessData]
16
- TData = TypeVar('TData')
17
15
  UPDATE_INTERVAL_STATISTICS: Incomplete
18
16
  UPDATE_INTERVAL_STATUS: Incomplete
19
17
 
@@ -22,13 +20,13 @@ class PaperlessData:
22
20
  statistics: PaperlessStatisticCoordinator
23
21
  status: PaperlessStatusCoordinator
24
22
 
25
- class PaperlessCoordinator(DataUpdateCoordinator[TData], metaclass=abc.ABCMeta):
23
+ class PaperlessCoordinator[DataT](DataUpdateCoordinator[DataT], metaclass=abc.ABCMeta):
26
24
  config_entry: PaperlessConfigEntry
27
25
  api: Incomplete
28
26
  def __init__(self, hass: HomeAssistant, entry: PaperlessConfigEntry, api: Paperless, name: str, update_interval: timedelta) -> None: ...
29
- async def _async_update_data(self) -> TData: ...
27
+ async def _async_update_data(self) -> DataT: ...
30
28
  @abstractmethod
31
- async def _async_update_data_internal(self) -> TData: ...
29
+ async def _async_update_data_internal(self) -> DataT: ...
32
30
 
33
31
  class PaperlessStatisticCoordinator(PaperlessCoordinator[Statistic]):
34
32
  def __init__(self, hass: HomeAssistant, entry: PaperlessConfigEntry, api: Paperless) -> None: ...
@@ -4,13 +4,10 @@ from _typeshed import Incomplete
4
4
  from homeassistant.components.sensor import EntityDescription as EntityDescription
5
5
  from homeassistant.helpers.device_registry import DeviceEntryType as DeviceEntryType, DeviceInfo as DeviceInfo
6
6
  from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
7
- from typing import Generic, TypeVar
8
7
 
9
- TCoordinator = TypeVar('TCoordinator', bound=PaperlessCoordinator)
10
-
11
- class PaperlessEntity(CoordinatorEntity[TCoordinator], Generic[TCoordinator]):
8
+ class PaperlessEntity[CoordinatorT: PaperlessCoordinator](CoordinatorEntity[CoordinatorT]):
12
9
  _attr_has_entity_name: bool
13
10
  entity_description: Incomplete
14
11
  _attr_unique_id: Incomplete
15
12
  _attr_device_info: Incomplete
16
- def __init__(self, coordinator: TCoordinator, description: EntityDescription) -> None: ...
13
+ def __init__(self, coordinator: CoordinatorT, description: EntityDescription) -> None: ...
@@ -1,5 +1,5 @@
1
- from .coordinator import PaperlessConfigEntry as PaperlessConfigEntry, PaperlessStatisticCoordinator as PaperlessStatisticCoordinator, PaperlessStatusCoordinator as PaperlessStatusCoordinator, TData as TData
2
- from .entity import PaperlessEntity as PaperlessEntity, TCoordinator as TCoordinator
1
+ from .coordinator import PaperlessConfigEntry as PaperlessConfigEntry, PaperlessCoordinator as PaperlessCoordinator, PaperlessStatisticCoordinator as PaperlessStatisticCoordinator, PaperlessStatusCoordinator as PaperlessStatusCoordinator
2
+ from .entity import PaperlessEntity as PaperlessEntity
3
3
  from collections.abc import Callable as Callable
4
4
  from dataclasses import dataclass
5
5
  from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
@@ -8,20 +8,20 @@ from homeassistant.core import HomeAssistant as HomeAssistant
8
8
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
9
9
  from homeassistant.helpers.typing import StateType as StateType
10
10
  from homeassistant.util.unit_conversion import InformationConverter as InformationConverter
11
- from typing import Generic
11
+ from pypaperless.models import Statistic, Status
12
12
 
13
13
  PARALLEL_UPDATES: int
14
14
 
15
15
  @dataclass(frozen=True, kw_only=True)
16
- class PaperlessEntityDescription(SensorEntityDescription, Generic[TData]):
17
- value_fn: Callable[[TData], StateType]
16
+ class PaperlessEntityDescription[DataT](SensorEntityDescription):
17
+ value_fn: Callable[[DataT], StateType]
18
18
 
19
- SENSOR_STATISTICS: tuple[PaperlessEntityDescription, ...]
20
- SENSOR_STATUS: tuple[PaperlessEntityDescription, ...]
19
+ SENSOR_STATISTICS: tuple[PaperlessEntityDescription[Statistic], ...]
20
+ SENSOR_STATUS: tuple[PaperlessEntityDescription[Status], ...]
21
21
 
22
22
  async def async_setup_entry(hass: HomeAssistant, entry: PaperlessConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
23
23
 
24
- class PaperlessSensor(PaperlessEntity[TCoordinator], SensorEntity):
24
+ class PaperlessSensor[CoordinatorT: PaperlessCoordinator](PaperlessEntity[CoordinatorT], SensorEntity):
25
25
  entity_description: PaperlessEntityDescription
26
26
  @property
27
27
  def native_value(self) -> StateType: ...
@@ -0,0 +1,25 @@
1
+ from .const import LOGGER as LOGGER
2
+ from .coordinator import PaperlessConfigEntry as PaperlessConfigEntry, PaperlessStatusCoordinator as PaperlessStatusCoordinator
3
+ from .entity import PaperlessEntity as PaperlessEntity
4
+ from _typeshed import Incomplete
5
+ from homeassistant.components.update import UpdateDeviceClass as UpdateDeviceClass, UpdateEntity as UpdateEntity, UpdateEntityDescription as UpdateEntityDescription
6
+ from homeassistant.core import HomeAssistant as HomeAssistant
7
+ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
8
+
9
+ PAPERLESS_CHANGELOGS: str
10
+ PARALLEL_UPDATES: int
11
+ SCAN_INTERVAL: Incomplete
12
+
13
+ async def async_setup_entry(hass: HomeAssistant, entry: PaperlessConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
14
+
15
+ class PaperlessUpdate(PaperlessEntity[PaperlessStatusCoordinator], UpdateEntity):
16
+ release_url = PAPERLESS_CHANGELOGS
17
+ @property
18
+ def should_poll(self) -> bool: ...
19
+ @property
20
+ def available(self) -> bool: ...
21
+ @property
22
+ def installed_version(self) -> str | None: ...
23
+ _attr_available: bool
24
+ _attr_latest_version: Incomplete
25
+ async def async_update(self) -> None: ...
@@ -6,7 +6,6 @@ from _typeshed import Incomplete
6
6
  from homeassistant.components.climate import ATTR_HVAC_MODE as ATTR_HVAC_MODE, ATTR_TARGET_TEMP_HIGH as ATTR_TARGET_TEMP_HIGH, ATTR_TARGET_TEMP_LOW as ATTR_TARGET_TEMP_LOW, ClimateEntity as ClimateEntity, ClimateEntityFeature as ClimateEntityFeature, HVACAction as HVACAction, HVACMode as HVACMode
7
7
  from homeassistant.const import ATTR_TEMPERATURE as ATTR_TEMPERATURE, UnitOfTemperature as UnitOfTemperature
8
8
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
9
- from homeassistant.exceptions import ServiceValidationError as ServiceValidationError
10
9
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
11
10
  from typing import Any
12
11
 
@@ -3,13 +3,13 @@ from .coordinator import QbusConfigEntry as QbusConfigEntry
3
3
  from .entity import QbusEntity as QbusEntity, add_new_outputs as add_new_outputs
4
4
  from _typeshed import Incomplete
5
5
  from homeassistant.components.climate import ClimateEntity as ClimateEntity, ClimateEntityFeature as ClimateEntityFeature, HVACAction as HVACAction, HVACMode as HVACMode
6
- from homeassistant.components.mqtt import ReceiveMessage as ReceiveMessage
7
6
  from homeassistant.const import ATTR_TEMPERATURE as ATTR_TEMPERATURE, UnitOfTemperature as UnitOfTemperature
8
7
  from homeassistant.core import HomeAssistant as HomeAssistant
9
8
  from homeassistant.exceptions import ServiceValidationError as ServiceValidationError
10
9
  from homeassistant.helpers.debounce import Debouncer as Debouncer
11
10
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
12
11
  from qbusmqttapi.discovery import QbusMqttOutput as QbusMqttOutput
12
+ from qbusmqttapi.state import QbusMqttThermoState
13
13
  from typing import Any
14
14
 
15
15
  PARALLEL_UPDATES: int
@@ -19,6 +19,7 @@ _LOGGER: Incomplete
19
19
  async def async_setup_entry(hass: HomeAssistant, entry: QbusConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
20
20
 
21
21
  class QbusClimate(QbusEntity, ClimateEntity):
22
+ _state_cls = QbusMqttThermoState
22
23
  _attr_name: Incomplete
23
24
  _attr_hvac_modes: Incomplete
24
25
  _attr_supported_features: Incomplete
@@ -37,6 +38,6 @@ class QbusClimate(QbusEntity, ClimateEntity):
37
38
  async def async_set_temperature(self, **kwargs: Any) -> None: ...
38
39
  _attr_current_temperature: Incomplete
39
40
  _attr_target_temperature: Incomplete
40
- async def _state_received(self, msg: ReceiveMessage) -> None: ...
41
+ async def _handle_state_received(self, state: QbusMqttThermoState) -> None: ...
41
42
  def _set_hvac_action(self) -> None: ...
42
43
  async def _async_request_state(self) -> None: ...
@@ -0,0 +1,39 @@
1
+ from .coordinator import QbusConfigEntry as QbusConfigEntry
2
+ from .entity import QbusEntity as QbusEntity, add_new_outputs as add_new_outputs
3
+ from _typeshed import Incomplete
4
+ from homeassistant.components.cover import ATTR_POSITION as ATTR_POSITION, ATTR_TILT_POSITION as ATTR_TILT_POSITION, CoverDeviceClass as CoverDeviceClass, CoverEntity as CoverEntity, CoverEntityFeature as CoverEntityFeature
5
+ from homeassistant.core import HomeAssistant as HomeAssistant
6
+ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
7
+ from qbusmqttapi.discovery import QbusMqttOutput as QbusMqttOutput
8
+ from qbusmqttapi.state import QbusMqttShutterState
9
+ from typing import Any
10
+
11
+ PARALLEL_UPDATES: int
12
+
13
+ async def async_setup_entry(hass: HomeAssistant, entry: QbusConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
14
+
15
+ class QbusCover(QbusEntity, CoverEntity):
16
+ _state_cls = QbusMqttShutterState
17
+ _attr_name: Incomplete
18
+ _attr_supported_features: CoverEntityFeature
19
+ _attr_device_class: Incomplete
20
+ _attr_assumed_state: bool
21
+ _attr_current_cover_position: int
22
+ _attr_current_cover_tilt_position: int
23
+ _attr_is_closed: bool
24
+ _target_shutter_position: int | None
25
+ _target_slat_position: int | None
26
+ _target_state: str | None
27
+ _previous_state: str | None
28
+ def __init__(self, mqtt_output: QbusMqttOutput) -> None: ...
29
+ async def async_open_cover(self, **kwargs: Any) -> None: ...
30
+ async def async_close_cover(self, **kwargs: Any) -> None: ...
31
+ async def async_stop_cover(self, **kwargs: Any) -> None: ...
32
+ async def async_set_cover_position(self, **kwargs: Any) -> None: ...
33
+ async def async_open_cover_tilt(self, **kwargs: Any) -> None: ...
34
+ async def async_close_cover_tilt(self, **kwargs: Any) -> None: ...
35
+ async def async_set_cover_tilt_position(self, **kwargs: Any) -> None: ...
36
+ async def _handle_state_received(self, state: QbusMqttShutterState) -> None: ...
37
+ def _update_is_closed(self) -> None: ...
38
+ def _update_cover_position(self) -> None: ...
39
+ def _update_tilt_position(self) -> None: ...
@@ -9,15 +9,18 @@ from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo, form
9
9
  from homeassistant.helpers.entity import Entity as Entity
10
10
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
11
11
  from qbusmqttapi.discovery import QbusMqttOutput as QbusMqttOutput
12
- from qbusmqttapi.state import QbusMqttState as QbusMqttState
12
+ from qbusmqttapi.state import QbusMqttState
13
+ from typing import Generic, TypeVar
13
14
 
14
15
  _REFID_REGEX: Incomplete
16
+ StateT = TypeVar('StateT', bound=QbusMqttState)
15
17
 
16
18
  def add_new_outputs(coordinator: QbusControllerCoordinator, added_outputs: list[QbusMqttOutput], filter_fn: Callable[[QbusMqttOutput], bool], entity_type: type[QbusEntity], async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
17
19
  def format_ref_id(ref_id: str) -> str | None: ...
18
20
  def create_main_device_identifier(mqtt_output: QbusMqttOutput) -> tuple[str, str]: ...
19
21
 
20
- class QbusEntity(Entity, ABC, metaclass=abc.ABCMeta):
22
+ class QbusEntity(Entity, ABC, Generic[StateT], metaclass=abc.ABCMeta):
23
+ _state_cls: type[StateT]
21
24
  _attr_has_entity_name: bool
22
25
  _attr_should_poll: bool
23
26
  _mqtt_output: Incomplete
@@ -28,6 +31,7 @@ class QbusEntity(Entity, ABC, metaclass=abc.ABCMeta):
28
31
  _attr_device_info: Incomplete
29
32
  def __init__(self, mqtt_output: QbusMqttOutput) -> None: ...
30
33
  async def async_added_to_hass(self) -> None: ...
31
- @abstractmethod
32
34
  async def _state_received(self, msg: ReceiveMessage) -> None: ...
35
+ @abstractmethod
36
+ async def _handle_state_received(self, state: StateT) -> None: ...
33
37
  async def _async_publish_output_state(self, state: QbusMqttState) -> None: ...
@@ -2,11 +2,11 @@ from .coordinator import QbusConfigEntry as QbusConfigEntry
2
2
  from .entity import QbusEntity as QbusEntity, add_new_outputs as add_new_outputs
3
3
  from _typeshed import Incomplete
4
4
  from homeassistant.components.light import ATTR_BRIGHTNESS as ATTR_BRIGHTNESS, ColorMode as ColorMode, LightEntity as LightEntity
5
- from homeassistant.components.mqtt import ReceiveMessage as ReceiveMessage
6
5
  from homeassistant.core import HomeAssistant as HomeAssistant
7
6
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
8
7
  from homeassistant.util.color import brightness_to_value as brightness_to_value, value_to_brightness as value_to_brightness
9
8
  from qbusmqttapi.discovery import QbusMqttOutput as QbusMqttOutput
9
+ from qbusmqttapi.state import QbusMqttAnalogState
10
10
  from typing import Any
11
11
 
12
12
  PARALLEL_UPDATES: int
@@ -14,13 +14,14 @@ PARALLEL_UPDATES: int
14
14
  async def async_setup_entry(hass: HomeAssistant, entry: QbusConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
15
15
 
16
16
  class QbusLight(QbusEntity, LightEntity):
17
+ _state_cls = QbusMqttAnalogState
17
18
  _attr_name: Incomplete
18
19
  _attr_supported_color_modes: Incomplete
19
20
  _attr_color_mode: Incomplete
20
21
  def __init__(self, mqtt_output: QbusMqttOutput) -> None: ...
21
22
  async def async_turn_on(self, **kwargs: Any) -> None: ...
22
23
  async def async_turn_off(self, **kwargs: Any) -> None: ...
23
- async def _state_received(self, msg: ReceiveMessage) -> None: ...
24
+ async def _handle_state_received(self, state: QbusMqttAnalogState) -> None: ...
24
25
  _attr_is_on: Incomplete
25
26
  _attr_brightness: Incomplete
26
- def _set_state(self, percentage: int = 0) -> None: ...
27
+ def _set_state(self, percentage: int) -> None: ...
@@ -1,12 +1,12 @@
1
1
  from .coordinator import QbusConfigEntry as QbusConfigEntry
2
2
  from .entity import QbusEntity as QbusEntity, add_new_outputs as add_new_outputs, create_main_device_identifier as create_main_device_identifier
3
3
  from _typeshed import Incomplete
4
- from homeassistant.components.mqtt import ReceiveMessage as ReceiveMessage
5
4
  from homeassistant.components.scene import Scene as Scene
6
5
  from homeassistant.core import HomeAssistant as HomeAssistant
7
6
  from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
8
7
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
9
8
  from qbusmqttapi.discovery import QbusMqttOutput as QbusMqttOutput
9
+ from qbusmqttapi.state import QbusMqttState
10
10
  from typing import Any
11
11
 
12
12
  PARALLEL_UPDATES: int
@@ -18,4 +18,4 @@ class QbusScene(QbusEntity, Scene):
18
18
  _attr_name: Incomplete
19
19
  def __init__(self, mqtt_output: QbusMqttOutput) -> None: ...
20
20
  async def async_activate(self, **kwargs: Any) -> None: ...
21
- async def _state_received(self, msg: ReceiveMessage) -> None: ...
21
+ async def _handle_state_received(self, state: QbusMqttState) -> None: ...
@@ -1,11 +1,11 @@
1
1
  from .coordinator import QbusConfigEntry as QbusConfigEntry
2
2
  from .entity import QbusEntity as QbusEntity, add_new_outputs as add_new_outputs
3
3
  from _typeshed import Incomplete
4
- from homeassistant.components.mqtt import ReceiveMessage as ReceiveMessage
5
4
  from homeassistant.components.switch import SwitchDeviceClass as SwitchDeviceClass, SwitchEntity as SwitchEntity
6
5
  from homeassistant.core import HomeAssistant as HomeAssistant
7
6
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
8
7
  from qbusmqttapi.discovery import QbusMqttOutput as QbusMqttOutput
8
+ from qbusmqttapi.state import QbusMqttOnOffState
9
9
  from typing import Any
10
10
 
11
11
  PARALLEL_UPDATES: int
@@ -13,10 +13,11 @@ PARALLEL_UPDATES: int
13
13
  async def async_setup_entry(hass: HomeAssistant, entry: QbusConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
14
14
 
15
15
  class QbusSwitch(QbusEntity, SwitchEntity):
16
+ _state_cls = QbusMqttOnOffState
16
17
  _attr_name: Incomplete
17
18
  _attr_device_class: Incomplete
18
19
  _attr_is_on: bool
19
20
  def __init__(self, mqtt_output: QbusMqttOutput) -> None: ...
20
21
  async def async_turn_on(self, **kwargs: Any) -> None: ...
21
22
  async def async_turn_off(self, **kwargs: Any) -> None: ...
22
- async def _state_received(self, msg: ReceiveMessage) -> None: ...
23
+ async def _handle_state_received(self, state: QbusMqttOnOffState) -> None: ...
@@ -1,7 +1,7 @@
1
1
  from . import backup as backup, entity_registry as entity_registry, websocket_api as websocket_api
2
2
  from .const import CONF_DB_INTEGRITY_CHECK as CONF_DB_INTEGRITY_CHECK, DOMAIN as DOMAIN, INTEGRATION_PLATFORM_COMPILE_STATISTICS as INTEGRATION_PLATFORM_COMPILE_STATISTICS, INTEGRATION_PLATFORM_METHODS as INTEGRATION_PLATFORM_METHODS, SQLITE_URL_PREFIX as SQLITE_URL_PREFIX, SupportedDialect as SupportedDialect
3
3
  from .core import Recorder as Recorder
4
- from .services import async_register_services as async_register_services
4
+ from .services import async_setup_services as async_setup_services
5
5
  from .tasks import AddRecorderPlatformTask as AddRecorderPlatformTask
6
6
  from .util import get_instance as get_instance
7
7
  from _typeshed import Incomplete
@@ -1,11 +1,11 @@
1
1
  from .const import ATTR_APPLY_FILTER as ATTR_APPLY_FILTER, ATTR_KEEP_DAYS as ATTR_KEEP_DAYS, ATTR_REPACK as ATTR_REPACK, DOMAIN as DOMAIN
2
- from .core import Recorder as Recorder
3
2
  from .statistics import statistics_during_period as statistics_during_period
4
3
  from .tasks import PurgeEntitiesTask as PurgeEntitiesTask, PurgeTask as PurgeTask
5
4
  from _typeshed import Incomplete
6
5
  from homeassistant.const import ATTR_ENTITY_ID as ATTR_ENTITY_ID
7
6
  from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, ServiceResponse as ServiceResponse, SupportsResponse as SupportsResponse, callback as callback
8
7
  from homeassistant.helpers.entityfilter import generate_filter as generate_filter
8
+ from homeassistant.helpers.recorder import DATA_INSTANCE as DATA_INSTANCE
9
9
  from homeassistant.helpers.service import async_extract_entity_ids as async_extract_entity_ids, async_register_admin_service as async_register_admin_service
10
10
  from homeassistant.util.json import JsonArrayType as JsonArrayType, JsonObjectType as JsonObjectType
11
11
 
@@ -22,15 +22,10 @@ SERVICE_ENABLE_SCHEMA: Incomplete
22
22
  SERVICE_DISABLE_SCHEMA: Incomplete
23
23
  SERVICE_GET_STATISTICS_SCHEMA: Incomplete
24
24
 
25
+ async def _async_handle_purge_service(service: ServiceCall) -> None: ...
26
+ async def _async_handle_purge_entities_service(service: ServiceCall) -> None: ...
27
+ async def _async_handle_enable_service(service: ServiceCall) -> None: ...
28
+ async def _async_handle_disable_service(service: ServiceCall) -> None: ...
29
+ async def _async_handle_get_statistics_service(service: ServiceCall) -> ServiceResponse: ...
25
30
  @callback
26
- def _async_register_purge_service(hass: HomeAssistant, instance: Recorder) -> None: ...
27
- @callback
28
- def _async_register_purge_entities_service(hass: HomeAssistant, instance: Recorder) -> None: ...
29
- @callback
30
- def _async_register_enable_service(hass: HomeAssistant, instance: Recorder) -> None: ...
31
- @callback
32
- def _async_register_disable_service(hass: HomeAssistant, instance: Recorder) -> None: ...
33
- @callback
34
- def _async_register_get_statistics_service(hass: HomeAssistant, instance: Recorder) -> None: ...
35
- @callback
36
- def async_register_services(hass: HomeAssistant, instance: Recorder) -> None: ...
31
+ def async_setup_services(hass: HomeAssistant) -> None: ...
@@ -1,4 +1,4 @@
1
- from .const import BATTERY_PASSIVE_WAKE_UPDATE_INTERVAL as BATTERY_PASSIVE_WAKE_UPDATE_INTERVAL, CONF_BC_PORT as CONF_BC_PORT, CONF_SUPPORTS_PRIVACY_MODE as CONF_SUPPORTS_PRIVACY_MODE, CONF_USE_HTTPS as CONF_USE_HTTPS, DOMAIN as DOMAIN
1
+ from .const import BATTERY_PASSIVE_WAKE_UPDATE_INTERVAL as BATTERY_PASSIVE_WAKE_UPDATE_INTERVAL, CONF_BC_ONLY as CONF_BC_ONLY, CONF_BC_PORT as CONF_BC_PORT, CONF_SUPPORTS_PRIVACY_MODE as CONF_SUPPORTS_PRIVACY_MODE, CONF_USE_HTTPS as CONF_USE_HTTPS, DOMAIN as DOMAIN
2
2
  from .exceptions import PasswordIncompatible as PasswordIncompatible, ReolinkException as ReolinkException, UserNotAdmin as UserNotAdmin
3
3
  from .host import ReolinkHost as ReolinkHost
4
4
  from .services import async_setup_services as async_setup_services
@@ -1,4 +1,4 @@
1
- from .const import CONF_BC_PORT as CONF_BC_PORT, CONF_SUPPORTS_PRIVACY_MODE as CONF_SUPPORTS_PRIVACY_MODE, CONF_USE_HTTPS as CONF_USE_HTTPS, DOMAIN as DOMAIN
1
+ from .const import CONF_BC_ONLY as CONF_BC_ONLY, CONF_BC_PORT as CONF_BC_PORT, CONF_SUPPORTS_PRIVACY_MODE as CONF_SUPPORTS_PRIVACY_MODE, CONF_USE_HTTPS as CONF_USE_HTTPS, DOMAIN as DOMAIN
2
2
  from .exceptions import PasswordIncompatible as PasswordIncompatible, ReolinkException as ReolinkException, ReolinkWebhookException as ReolinkWebhookException, UserNotAdmin as UserNotAdmin
3
3
  from .host import ReolinkHost as ReolinkHost
4
4
  from .util import ReolinkConfigEntry as ReolinkConfigEntry, is_connected as is_connected
@@ -3,6 +3,7 @@ from _typeshed import Incomplete
3
3
  DOMAIN: str
4
4
  CONF_USE_HTTPS: str
5
5
  CONF_BC_PORT: str
6
+ CONF_BC_ONLY: str
6
7
  CONF_SUPPORTS_PRIVACY_MODE: str
7
8
  BATTERY_PASSIVE_WAKE_UPDATE_INTERVAL: int
8
9
  BATTERY_WAKE_UPDATE_INTERVAL: Incomplete
@@ -12,7 +12,7 @@ from reolink_aio.api import Chime as Chime, Host as Host
12
12
  @dataclass(frozen=True, kw_only=True)
13
13
  class ReolinkEntityDescription(EntityDescription):
14
14
  cmd_key: str | None = ...
15
- cmd_id: int | None = ...
15
+ cmd_id: int | list[int] | None = ...
16
16
  always_available: bool = ...
17
17
 
18
18
  @dataclass(frozen=True, kw_only=True)
@@ -1,5 +1,5 @@
1
1
  import asyncio
2
- from .const import BATTERY_ALL_WAKE_UPDATE_INTERVAL as BATTERY_ALL_WAKE_UPDATE_INTERVAL, BATTERY_PASSIVE_WAKE_UPDATE_INTERVAL as BATTERY_PASSIVE_WAKE_UPDATE_INTERVAL, BATTERY_WAKE_UPDATE_INTERVAL as BATTERY_WAKE_UPDATE_INTERVAL, CONF_BC_PORT as CONF_BC_PORT, CONF_SUPPORTS_PRIVACY_MODE as CONF_SUPPORTS_PRIVACY_MODE, CONF_USE_HTTPS as CONF_USE_HTTPS, DOMAIN as DOMAIN
2
+ from .const import BATTERY_ALL_WAKE_UPDATE_INTERVAL as BATTERY_ALL_WAKE_UPDATE_INTERVAL, BATTERY_PASSIVE_WAKE_UPDATE_INTERVAL as BATTERY_PASSIVE_WAKE_UPDATE_INTERVAL, BATTERY_WAKE_UPDATE_INTERVAL as BATTERY_WAKE_UPDATE_INTERVAL, CONF_BC_ONLY as CONF_BC_ONLY, CONF_BC_PORT as CONF_BC_PORT, CONF_SUPPORTS_PRIVACY_MODE as CONF_SUPPORTS_PRIVACY_MODE, CONF_USE_HTTPS as CONF_USE_HTTPS, DOMAIN as DOMAIN
3
3
  from .exceptions import PasswordIncompatible as PasswordIncompatible, ReolinkSetupException as ReolinkSetupException, ReolinkWebhookException as ReolinkWebhookException, UserNotAdmin as UserNotAdmin
4
4
  from .util import ReolinkConfigEntry as ReolinkConfigEntry, get_store as get_store
5
5
  from _typeshed import Incomplete
@@ -9,5 +9,7 @@ from reolink_aio.api import Chime as Chime
9
9
 
10
10
  ATTR_RINGTONE: str
11
11
 
12
+ @raise_translated_error
13
+ async def _async_play_chime(service_call: ServiceCall) -> None: ...
12
14
  @callback
13
15
  def async_setup_services(hass: HomeAssistant) -> None: ...
@@ -1,11 +1,12 @@
1
- import httpx
1
+ import aiohttp
2
2
  from .const import XML_MIME_TYPES as XML_MIME_TYPES
3
3
  from _typeshed import Incomplete
4
4
  from homeassistant.core import HomeAssistant as HomeAssistant
5
5
  from homeassistant.helpers import template as template
6
- from homeassistant.helpers.httpx_client import create_async_httpx_client as create_async_httpx_client
6
+ from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
7
7
  from homeassistant.helpers.json import json_dumps as json_dumps
8
8
  from homeassistant.util.ssl import SSLCipherList as SSLCipherList
9
+ from multidict import CIMultiDictProxy
9
10
 
10
11
  DEFAULT_TIMEOUT: int
11
12
  _LOGGER: Incomplete
@@ -15,18 +16,18 @@ class RestData:
15
16
  _method: Incomplete
16
17
  _resource: Incomplete
17
18
  _encoding: Incomplete
18
- _auth: Incomplete
19
+ _auth: aiohttp.BasicAuth | aiohttp.DigestAuthMiddleware | None
19
20
  _headers: Incomplete
20
21
  _params: Incomplete
21
22
  _request_data: Incomplete
22
23
  _timeout: Incomplete
23
24
  _verify_ssl: Incomplete
24
25
  _ssl_cipher_list: Incomplete
25
- _async_client: httpx.AsyncClient | None
26
+ _session: aiohttp.ClientSession | None
26
27
  data: str | None
27
28
  last_exception: Exception | None
28
- headers: httpx.Headers | None
29
- def __init__(self, hass: HomeAssistant, method: str, resource: str, encoding: str, auth: httpx.DigestAuth | tuple[str, str] | None, headers: dict[str, str] | None, params: dict[str, str] | None, data: str | None, verify_ssl: bool, ssl_cipher_list: str, timeout: int = ...) -> None: ...
29
+ headers: CIMultiDictProxy[str] | None
30
+ def __init__(self, hass: HomeAssistant, method: str, resource: str, encoding: str, auth: aiohttp.DigestAuthMiddleware | aiohttp.BasicAuth | tuple[str, str] | None, headers: dict[str, str] | None, params: dict[str, str] | None, data: str | None, verify_ssl: bool, ssl_cipher_list: str, timeout: int = ...) -> None: ...
30
31
  def set_payload(self, payload: str) -> None: ...
31
32
  @property
32
33
  def url(self) -> str: ...
@@ -5,6 +5,7 @@ from homeassistant.config_entries import ConfigEntry as ConfigEntry
5
5
  from homeassistant.const import CONF_HOST as CONF_HOST, CONF_PORT as CONF_PORT, Platform as Platform
6
6
  from homeassistant.core import HomeAssistant as HomeAssistant
7
7
  from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady
8
+ from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC as CONNECTION_NETWORK_MAC
8
9
 
9
10
  PLATFORMS: Incomplete
10
11
  _LOGGER: Incomplete
@@ -2,9 +2,10 @@ from .const import DOMAIN as DOMAIN, RUSSOUND_RIO_EXCEPTIONS as RUSSOUND_RIO_EXC
2
2
  from _typeshed import Incomplete
3
3
  from aiorussound import Controller as Controller, RussoundClient as RussoundClient
4
4
  from aiorussound.models import CallbackType
5
+ from aiorussound.rio import ZoneControlSurface as ZoneControlSurface
5
6
  from collections.abc import Awaitable, Callable as Callable, Coroutine
6
7
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
7
- from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC as CONNECTION_NETWORK_MAC, DeviceInfo as DeviceInfo
8
+ from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
8
9
  from homeassistant.helpers.entity import Entity as Entity
9
10
  from typing import Any, Concatenate
10
11
 
@@ -17,8 +18,11 @@ class RussoundBaseEntity(Entity):
17
18
  _controller: Incomplete
18
19
  _primary_mac_address: Incomplete
19
20
  _device_identifier: Incomplete
21
+ _zone_id: Incomplete
20
22
  _attr_device_info: Incomplete
21
- def __init__(self, controller: Controller) -> None: ...
23
+ def __init__(self, controller: Controller, zone_id: int | None = None) -> None: ...
24
+ @property
25
+ def _zone(self) -> ZoneControlSurface: ...
22
26
  _attr_available: Incomplete
23
27
  async def _state_update_callback(self, _client: RussoundClient, _callback_type: CallbackType) -> None: ...
24
28
  async def async_added_to_hass(self) -> None: ...