homeassistant-stubs 2025.6.3__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.3.dist-info → homeassistant_stubs-2025.7.0b0.dist-info}/METADATA +2 -2
  313. {homeassistant_stubs-2025.6.3.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.3.dist-info → homeassistant_stubs-2025.7.0b0.dist-info}/WHEEL +0 -0
  318. {homeassistant_stubs-2025.6.3.dist-info → homeassistant_stubs-2025.7.0b0.dist-info}/licenses/LICENSE +0 -0
@@ -1,6 +1,6 @@
1
1
  from . import subscription as subscription
2
2
  from .config import MQTT_RO_SCHEMA as MQTT_RO_SCHEMA
3
- from .const import CONF_EXPIRE_AFTER as CONF_EXPIRE_AFTER, CONF_LAST_RESET_VALUE_TEMPLATE as CONF_LAST_RESET_VALUE_TEMPLATE, CONF_OPTIONS as CONF_OPTIONS, CONF_STATE_TOPIC as CONF_STATE_TOPIC, CONF_SUGGESTED_DISPLAY_PRECISION as CONF_SUGGESTED_DISPLAY_PRECISION, DOMAIN as DOMAIN, PAYLOAD_NONE as PAYLOAD_NONE
3
+ from .const import CONF_EXPIRE_AFTER as CONF_EXPIRE_AFTER, CONF_LAST_RESET_VALUE_TEMPLATE as CONF_LAST_RESET_VALUE_TEMPLATE, CONF_OPTIONS as CONF_OPTIONS, CONF_STATE_TOPIC as CONF_STATE_TOPIC, CONF_SUGGESTED_DISPLAY_PRECISION as CONF_SUGGESTED_DISPLAY_PRECISION, PAYLOAD_NONE as PAYLOAD_NONE
4
4
  from .entity import MqttAvailabilityMixin as MqttAvailabilityMixin, MqttEntity as MqttEntity, async_setup_entity_entry_helper as async_setup_entity_entry_helper
5
5
  from .models import MqttValueTemplate as MqttValueTemplate, PayloadSentinel as PayloadSentinel, ReceiveMessage as ReceiveMessage
6
6
  from .schemas import MQTT_ENTITY_COMMON_SCHEMA as MQTT_ENTITY_COMMON_SCHEMA
@@ -15,7 +15,6 @@ from homeassistant.const import CONF_DEVICE_CLASS as CONF_DEVICE_CLASS, CONF_FOR
15
15
  from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, HomeAssistant as HomeAssistant, State as State, callback as callback
16
16
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
17
17
  from homeassistant.helpers.event import async_call_later as async_call_later
18
- from homeassistant.helpers.issue_registry import IssueSeverity as IssueSeverity, async_create_issue as async_create_issue
19
18
  from homeassistant.helpers.service_info.mqtt import ReceivePayloadType as ReceivePayloadType
20
19
  from homeassistant.helpers.typing import ConfigType as ConfigType, VolSchemaType as VolSchemaType
21
20
 
@@ -44,8 +43,6 @@ class MqttSensor(MqttEntity, RestoreSensor):
44
43
  _expired: bool | None
45
44
  _template: Callable[[ReceivePayloadType, PayloadSentinel], ReceivePayloadType] | None
46
45
  _last_reset_template: Callable[[ReceivePayloadType], ReceivePayloadType] | None
47
- @callback
48
- def async_check_uom(self) -> None: ...
49
46
  _attr_native_value: Incomplete
50
47
  async def mqtt_async_added_to_hass(self) -> None: ...
51
48
  async def async_will_remove_from_hass(self) -> None: ...
@@ -2,7 +2,8 @@ import asyncio
2
2
  from .actions import get_music_assistant_client as get_music_assistant_client, register_actions as register_actions
3
3
  from .const import DOMAIN as DOMAIN, LOGGER as LOGGER
4
4
  from _typeshed import Incomplete
5
- from dataclasses import dataclass
5
+ from collections.abc import Callable
6
+ from dataclasses import dataclass, field
6
7
  from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigEntryState as ConfigEntryState
7
8
  from homeassistant.const import CONF_URL as CONF_URL, EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP, Platform as Platform
8
9
  from homeassistant.core import Event as Event, HomeAssistant as HomeAssistant
@@ -19,11 +20,14 @@ CONNECT_TIMEOUT: int
19
20
  LISTEN_READY_TIMEOUT: int
20
21
  CONFIG_SCHEMA: Incomplete
21
22
  type MusicAssistantConfigEntry = ConfigEntry[MusicAssistantEntryData]
23
+ type PlayerAddCallback = Callable[[str], None]
22
24
 
23
25
  @dataclass
24
26
  class MusicAssistantEntryData:
25
27
  mass: MusicAssistantClient
26
28
  listen_task: asyncio.Task
29
+ discovered_players: set[str] = field(default_factory=set)
30
+ platform_handlers: dict[Platform, PlayerAddCallback] = field(default_factory=dict)
27
31
 
28
32
  async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
29
33
  async def async_setup_entry(hass: HomeAssistant, entry: MusicAssistantConfigEntry) -> bool: ...
@@ -0,0 +1,17 @@
1
+ from . import MusicAssistantConfigEntry as MusicAssistantConfigEntry
2
+ from .entity import MusicAssistantEntity as MusicAssistantEntity
3
+ from .helpers import catch_musicassistant_error as catch_musicassistant_error
4
+ from _typeshed import Incomplete
5
+ from homeassistant.components.button import ButtonEntity as ButtonEntity, ButtonEntityDescription as ButtonEntityDescription
6
+ from homeassistant.const import Platform as Platform
7
+ from homeassistant.core import HomeAssistant as HomeAssistant
8
+ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
9
+
10
+ async def async_setup_entry(hass: HomeAssistant, entry: MusicAssistantConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
11
+
12
+ class MusicAssistantFavoriteButton(MusicAssistantEntity, ButtonEntity):
13
+ entity_description: Incomplete
14
+ @property
15
+ def available(self) -> bool: ...
16
+ @catch_musicassistant_error
17
+ async def async_press(self) -> None: ...
@@ -0,0 +1,5 @@
1
+ from collections.abc import Callable as Callable, Coroutine
2
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
3
+ from typing import Any
4
+
5
+ def catch_musicassistant_error[**_P, _R](func: Callable[_P, Coroutine[Any, Any, _R]]) -> Callable[_P, Coroutine[Any, Any, _R]]: ...
@@ -1,13 +1,14 @@
1
1
  from . import MusicAssistantConfigEntry as MusicAssistantConfigEntry
2
2
  from .const import ATTR_ACTIVE as ATTR_ACTIVE, ATTR_ACTIVE_QUEUE as ATTR_ACTIVE_QUEUE, ATTR_ALBUM as ATTR_ALBUM, ATTR_ANNOUNCE_VOLUME as ATTR_ANNOUNCE_VOLUME, ATTR_ARTIST as ATTR_ARTIST, ATTR_AUTO_PLAY as ATTR_AUTO_PLAY, ATTR_CURRENT_INDEX as ATTR_CURRENT_INDEX, ATTR_CURRENT_ITEM as ATTR_CURRENT_ITEM, ATTR_ELAPSED_TIME as ATTR_ELAPSED_TIME, ATTR_ITEMS as ATTR_ITEMS, ATTR_MASS_PLAYER_TYPE as ATTR_MASS_PLAYER_TYPE, ATTR_MEDIA_ID as ATTR_MEDIA_ID, ATTR_MEDIA_TYPE as ATTR_MEDIA_TYPE, ATTR_NEXT_ITEM as ATTR_NEXT_ITEM, ATTR_QUEUE_ID as ATTR_QUEUE_ID, ATTR_RADIO_MODE as ATTR_RADIO_MODE, ATTR_REPEAT_MODE as ATTR_REPEAT_MODE, ATTR_SHUFFLE_ENABLED as ATTR_SHUFFLE_ENABLED, ATTR_SOURCE_PLAYER as ATTR_SOURCE_PLAYER, ATTR_URL as ATTR_URL, ATTR_USE_PRE_ANNOUNCE as ATTR_USE_PRE_ANNOUNCE, DOMAIN as DOMAIN
3
3
  from .entity import MusicAssistantEntity as MusicAssistantEntity
4
+ from .helpers import catch_musicassistant_error as catch_musicassistant_error
4
5
  from .media_browser import async_browse_media as async_browse_media, async_search_media as async_search_media
5
6
  from .schemas import QUEUE_DETAILS_SCHEMA as QUEUE_DETAILS_SCHEMA, queue_item_dict_from_mass_item as queue_item_dict_from_mass_item
6
7
  from _typeshed import Incomplete
7
- from collections.abc import Callable as Callable, Coroutine, Mapping
8
+ from collections.abc import Mapping
8
9
  from homeassistant.components import media_source as media_source
9
10
  from homeassistant.components.media_player import ATTR_MEDIA_ENQUEUE as ATTR_MEDIA_ENQUEUE, ATTR_MEDIA_EXTRA as ATTR_MEDIA_EXTRA, BrowseMedia as BrowseMedia, MediaPlayerDeviceClass as MediaPlayerDeviceClass, MediaPlayerEnqueue as MediaPlayerEnqueue, MediaPlayerEntity as MediaPlayerEntity, MediaPlayerEntityFeature as MediaPlayerEntityFeature, MediaPlayerState as MediaPlayerState, RepeatMode as RepeatMode, SearchMedia as SearchMedia, SearchMediaQuery as SearchMediaQuery, async_process_play_media_url as async_process_play_media_url
10
- from homeassistant.const import ATTR_NAME as ATTR_NAME, STATE_OFF as STATE_OFF
11
+ from homeassistant.const import ATTR_NAME as ATTR_NAME, Platform as Platform, STATE_OFF as STATE_OFF
11
12
  from homeassistant.core import HomeAssistant as HomeAssistant, ServiceResponse as ServiceResponse, SupportsResponse as SupportsResponse
12
13
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, ServiceValidationError as ServiceValidationError
13
14
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback, async_get_current_platform as async_get_current_platform
@@ -17,7 +18,7 @@ from music_assistant_models.enums import MediaType, QueueOption
17
18
  from music_assistant_models.event import MassEvent as MassEvent
18
19
  from music_assistant_models.player import Player as Player
19
20
  from music_assistant_models.player_queue import PlayerQueue as PlayerQueue
20
- from typing import Any, Concatenate
21
+ from typing import Any
21
22
 
22
23
  SUPPORTED_FEATURES_BASE: Incomplete
23
24
  QUEUE_OPTION_MAP: Incomplete
@@ -26,7 +27,6 @@ SERVICE_PLAY_ANNOUNCEMENT: str
26
27
  SERVICE_TRANSFER_QUEUE: str
27
28
  SERVICE_GET_QUEUE: str
28
29
 
29
- def catch_musicassistant_error[_R, **P](func: Callable[Concatenate[MusicAssistantPlayer, P], Coroutine[Any, Any, _R]]) -> Callable[Concatenate[MusicAssistantPlayer, P], Coroutine[Any, Any, _R]]: ...
30
30
  async def async_setup_entry(hass: HomeAssistant, entry: MusicAssistantConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
31
31
 
32
32
  class MusicAssistantPlayer(MusicAssistantEntity, MediaPlayerEntity):
@@ -1,14 +1,13 @@
1
1
  from . import NextDnsConfigEntry as NextDnsConfigEntry
2
- from .coordinator import NextDnsUpdateCoordinator as NextDnsUpdateCoordinator
2
+ from .entity import NextDnsEntity as NextDnsEntity
3
3
  from _typeshed import Incomplete
4
4
  from collections.abc import Callable as Callable
5
5
  from dataclasses import dataclass
6
6
  from homeassistant.components.binary_sensor import BinarySensorDeviceClass as BinarySensorDeviceClass, BinarySensorEntity as BinarySensorEntity, BinarySensorEntityDescription as BinarySensorEntityDescription
7
7
  from homeassistant.const import EntityCategory as EntityCategory
8
- from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
8
+ from homeassistant.core import HomeAssistant as HomeAssistant
9
9
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
10
- from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
11
- from nextdns import ConnectionStatus
10
+ from nextdns import ConnectionStatus as ConnectionStatus
12
11
 
13
12
  PARALLEL_UPDATES: int
14
13
 
@@ -20,12 +19,7 @@ SENSORS: Incomplete
20
19
 
21
20
  async def async_setup_entry(hass: HomeAssistant, entry: NextDnsConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
22
21
 
23
- class NextDnsBinarySensor(CoordinatorEntity[NextDnsUpdateCoordinator[ConnectionStatus]], BinarySensorEntity):
24
- _attr_has_entity_name: bool
22
+ class NextDnsBinarySensor(NextDnsEntity, BinarySensorEntity):
25
23
  entity_description: NextDnsBinarySensorEntityDescription
26
- _attr_device_info: Incomplete
27
- _attr_unique_id: Incomplete
28
- _attr_is_on: Incomplete
29
- def __init__(self, coordinator: NextDnsUpdateCoordinator[ConnectionStatus], description: NextDnsBinarySensorEntityDescription) -> None: ...
30
- @callback
31
- def _handle_coordinator_update(self) -> None: ...
24
+ @property
25
+ def is_on(self) -> bool: ...
@@ -1,24 +1,17 @@
1
1
  from . import NextDnsConfigEntry as NextDnsConfigEntry
2
2
  from .const import DOMAIN as DOMAIN
3
- from .coordinator import NextDnsUpdateCoordinator as NextDnsUpdateCoordinator
3
+ from .entity import NextDnsEntity as NextDnsEntity
4
4
  from _typeshed import Incomplete
5
5
  from homeassistant.components.button import ButtonEntity as ButtonEntity, ButtonEntityDescription as ButtonEntityDescription
6
6
  from homeassistant.const import EntityCategory as EntityCategory
7
7
  from homeassistant.core import HomeAssistant as HomeAssistant
8
8
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
9
9
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
10
- from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
11
- from nextdns import AnalyticsStatus
12
10
 
13
11
  PARALLEL_UPDATES: int
14
12
  CLEAR_LOGS_BUTTON: Incomplete
15
13
 
16
14
  async def async_setup_entry(hass: HomeAssistant, entry: NextDnsConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
17
15
 
18
- class NextDnsButton(CoordinatorEntity[NextDnsUpdateCoordinator[AnalyticsStatus]], ButtonEntity):
19
- _attr_has_entity_name: bool
20
- _attr_device_info: Incomplete
21
- _attr_unique_id: Incomplete
22
- entity_description: Incomplete
23
- def __init__(self, coordinator: NextDnsUpdateCoordinator[AnalyticsStatus], description: ButtonEntityDescription) -> None: ...
16
+ class NextDnsButton(NextDnsEntity, ButtonEntity):
24
17
  async def async_press(self) -> None: ...
@@ -4,21 +4,16 @@ from _typeshed import Incomplete
4
4
  from datetime import timedelta
5
5
  from homeassistant.core import HomeAssistant as HomeAssistant
6
6
  from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed
7
- from homeassistant.helpers.device_registry import DeviceEntryType as DeviceEntryType, DeviceInfo as DeviceInfo
8
7
  from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
9
8
  from nextdns import AnalyticsDnssec, AnalyticsEncryption, AnalyticsIpVersions, AnalyticsProtocols, AnalyticsStatus, ConnectionStatus, NextDns as NextDns, Settings
10
- from nextdns.model import NextDnsData
11
- from typing import TypeVar
9
+ from nextdns.model import NextDnsData as NextDnsData
12
10
 
13
11
  _LOGGER: Incomplete
14
- CoordinatorDataT = TypeVar('CoordinatorDataT', bound=NextDnsData)
15
12
 
16
- class NextDnsUpdateCoordinator(DataUpdateCoordinator[CoordinatorDataT]):
13
+ class NextDnsUpdateCoordinator[CoordinatorDataT: NextDnsData](DataUpdateCoordinator[CoordinatorDataT]):
17
14
  config_entry: NextDnsConfigEntry
18
15
  nextdns: Incomplete
19
16
  profile_id: Incomplete
20
- profile_name: Incomplete
21
- device_info: Incomplete
22
17
  def __init__(self, hass: HomeAssistant, config_entry: NextDnsConfigEntry, nextdns: NextDns, profile_id: str, update_interval: timedelta) -> None: ...
23
18
  async def _async_update_data(self) -> CoordinatorDataT: ...
24
19
  async def _async_update_data_internal(self) -> CoordinatorDataT: ...
@@ -0,0 +1,14 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from .coordinator import NextDnsUpdateCoordinator as NextDnsUpdateCoordinator
3
+ from _typeshed import Incomplete
4
+ from homeassistant.helpers.device_registry import DeviceEntryType as DeviceEntryType, DeviceInfo as DeviceInfo
5
+ from homeassistant.helpers.entity import EntityDescription as EntityDescription
6
+ from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
7
+ from nextdns.model import NextDnsData as NextDnsData
8
+
9
+ class NextDnsEntity[CoordinatorDataT: NextDnsData](CoordinatorEntity[NextDnsUpdateCoordinator[CoordinatorDataT]]):
10
+ _attr_has_entity_name: bool
11
+ _attr_device_info: Incomplete
12
+ _attr_unique_id: Incomplete
13
+ entity_description: Incomplete
14
+ def __init__(self, coordinator: NextDnsUpdateCoordinator[CoordinatorDataT], description: EntityDescription) -> None: ...
@@ -1,21 +1,19 @@
1
1
  from . import NextDnsConfigEntry as NextDnsConfigEntry
2
2
  from .const import ATTR_DNSSEC as ATTR_DNSSEC, ATTR_ENCRYPTION as ATTR_ENCRYPTION, ATTR_IP_VERSIONS as ATTR_IP_VERSIONS, ATTR_PROTOCOLS as ATTR_PROTOCOLS, ATTR_STATUS as ATTR_STATUS
3
- from .coordinator import CoordinatorDataT as CoordinatorDataT, NextDnsUpdateCoordinator as NextDnsUpdateCoordinator
4
- from _typeshed import Incomplete
3
+ from .entity import NextDnsEntity as NextDnsEntity
5
4
  from collections.abc import Callable as Callable
6
5
  from dataclasses import dataclass
7
6
  from homeassistant.components.sensor import SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
8
7
  from homeassistant.const import EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE
9
- from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
8
+ from homeassistant.core import HomeAssistant as HomeAssistant
10
9
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
11
10
  from homeassistant.helpers.typing import StateType as StateType
12
- from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
13
- from typing import Generic
11
+ from nextdns.model import NextDnsData as NextDnsData
14
12
 
15
13
  PARALLEL_UPDATES: int
16
14
 
17
15
  @dataclass(frozen=True, kw_only=True)
18
- class NextDnsSensorEntityDescription(SensorEntityDescription, Generic[CoordinatorDataT]):
16
+ class NextDnsSensorEntityDescription[CoordinatorDataT: NextDnsData](SensorEntityDescription):
19
17
  coordinator_type: str
20
18
  value: Callable[[CoordinatorDataT], StateType]
21
19
 
@@ -23,12 +21,7 @@ SENSORS: tuple[NextDnsSensorEntityDescription, ...]
23
21
 
24
22
  async def async_setup_entry(hass: HomeAssistant, entry: NextDnsConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
25
23
 
26
- class NextDnsSensor(CoordinatorEntity[NextDnsUpdateCoordinator[CoordinatorDataT]], SensorEntity):
27
- _attr_has_entity_name: bool
28
- _attr_device_info: Incomplete
29
- _attr_unique_id: Incomplete
30
- _attr_native_value: Incomplete
31
- entity_description: NextDnsSensorEntityDescription
32
- def __init__(self, coordinator: NextDnsUpdateCoordinator[CoordinatorDataT], description: NextDnsSensorEntityDescription) -> None: ...
33
- @callback
34
- def _handle_coordinator_update(self) -> None: ...
24
+ class NextDnsSensor[CoordinatorDataT: NextDnsData](NextDnsEntity[CoordinatorDataT], SensorEntity):
25
+ entity_description: NextDnsSensorEntityDescription[CoordinatorDataT]
26
+ @property
27
+ def native_value(self) -> StateType: ...
@@ -1,6 +1,7 @@
1
1
  from . import NextDnsConfigEntry as NextDnsConfigEntry
2
2
  from .const import DOMAIN as DOMAIN
3
3
  from .coordinator import NextDnsUpdateCoordinator as NextDnsUpdateCoordinator
4
+ from .entity import NextDnsEntity as NextDnsEntity
4
5
  from _typeshed import Incomplete
5
6
  from collections.abc import Callable as Callable
6
7
  from dataclasses import dataclass
@@ -9,8 +10,7 @@ from homeassistant.const import EntityCategory as EntityCategory
9
10
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
10
11
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
11
12
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
12
- from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
13
- from nextdns import Settings
13
+ from nextdns import Settings as Settings
14
14
  from typing import Any
15
15
 
16
16
  PARALLEL_UPDATES: int
@@ -23,11 +23,8 @@ SWITCHES: Incomplete
23
23
 
24
24
  async def async_setup_entry(hass: HomeAssistant, entry: NextDnsConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
25
25
 
26
- class NextDnsSwitch(CoordinatorEntity[NextDnsUpdateCoordinator[Settings]], SwitchEntity):
27
- _attr_has_entity_name: bool
26
+ class NextDnsSwitch(NextDnsEntity, SwitchEntity):
28
27
  entity_description: NextDnsSwitchEntityDescription
29
- _attr_device_info: Incomplete
30
- _attr_unique_id: Incomplete
31
28
  _attr_is_on: Incomplete
32
29
  def __init__(self, coordinator: NextDnsUpdateCoordinator[Settings], description: NextDnsSwitchEntityDescription) -> None: ...
33
30
  @callback
@@ -3,7 +3,6 @@ from _typeshed import Incomplete
3
3
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
4
4
  from homeassistant.const import CONF_HOST as CONF_HOST, Platform as Platform
5
5
  from homeassistant.core import HomeAssistant as HomeAssistant
6
- from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady
7
6
  from homeassistant.helpers import discovery as discovery
8
7
  from homeassistant.helpers.typing import ConfigType as ConfigType
9
8
 
@@ -3,10 +3,10 @@ from _typeshed import Incomplete
3
3
  from homeassistant.components.notify import ATTR_DATA as ATTR_DATA, ATTR_TITLE as ATTR_TITLE, ATTR_TITLE_DEFAULT as ATTR_TITLE_DEFAULT, BaseNotificationService as BaseNotificationService
4
4
  from homeassistant.const import CONF_HOST as CONF_HOST
5
5
  from homeassistant.core import HomeAssistant as HomeAssistant
6
- from homeassistant.exceptions import ServiceValidationError as ServiceValidationError
6
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, ServiceValidationError as ServiceValidationError
7
7
  from homeassistant.helpers.typing import ConfigType as ConfigType, DiscoveryInfoType as DiscoveryInfoType
8
8
  from io import BufferedReader
9
- from notifications_android_tv import Notifications
9
+ from notifications_android_tv.notifications import Notifications
10
10
  from typing import Any
11
11
 
12
12
  _LOGGER: Incomplete
@@ -14,8 +14,9 @@ _LOGGER: Incomplete
14
14
  async def async_get_service(hass: HomeAssistant, config: ConfigType, discovery_info: DiscoveryInfoType | None = None) -> NFAndroidTVNotificationService | None: ...
15
15
 
16
16
  class NFAndroidTVNotificationService(BaseNotificationService):
17
- notify: Incomplete
17
+ host: Incomplete
18
18
  is_allowed_path: Incomplete
19
- def __init__(self, notify: Notifications, is_allowed_path: Any) -> None: ...
19
+ notify: Notifications | None
20
+ def __init__(self, host: str, is_allowed_path: Any) -> None: ...
20
21
  def send_message(self, message: str, **kwargs: Any) -> None: ...
21
22
  def load_file(self, url: str | None = None, local_path: str | None = None, username: str | None = None, password: str | None = None, auth: str | None = None) -> BufferedReader | bytes | None: ...
@@ -3,7 +3,7 @@ from .const import DOMAIN as DOMAIN
3
3
  from _typeshed import Incomplete
4
4
  from homeassistant.config_entries import ConfigEntryState as ConfigEntryState
5
5
  from homeassistant.const import ATTR_DATE as ATTR_DATE
6
- from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, ServiceResponse as ServiceResponse, SupportsResponse as SupportsResponse
6
+ from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, ServiceResponse as ServiceResponse, SupportsResponse as SupportsResponse, callback as callback
7
7
  from homeassistant.exceptions import ServiceValidationError as ServiceValidationError
8
8
  from homeassistant.helpers.selector import ConfigEntrySelector as ConfigEntrySelector
9
9
  from homeassistant.util.json import JsonValueType as JsonValueType
@@ -16,4 +16,5 @@ SERVICE_GET_PRICES_FOR_DATE: str
16
16
  SERVICE_GET_PRICES_SCHEMA: Incomplete
17
17
 
18
18
  def get_config_entry(hass: HomeAssistant, entry_id: str) -> NordPoolConfigEntry: ...
19
+ @callback
19
20
  def async_setup_services(hass: HomeAssistant) -> None: ...
@@ -1,7 +1,6 @@
1
1
  from .const import DOMAIN as DOMAIN
2
+ from .coordinator import NtfyConfigEntry as NtfyConfigEntry, NtfyDataUpdateCoordinator as NtfyDataUpdateCoordinator
2
3
  from _typeshed import Incomplete
3
- from aiontfy import Ntfy
4
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
5
4
  from homeassistant.const import CONF_TOKEN as CONF_TOKEN, CONF_URL as CONF_URL, CONF_VERIFY_SSL as CONF_VERIFY_SSL, Platform as Platform
6
5
  from homeassistant.core import HomeAssistant as HomeAssistant
7
6
  from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryNotReady as ConfigEntryNotReady
@@ -9,7 +8,6 @@ from homeassistant.helpers.aiohttp_client import async_get_clientsession as asyn
9
8
 
10
9
  _LOGGER: Incomplete
11
10
  PLATFORMS: list[Platform]
12
- type NtfyConfigEntry = ConfigEntry[Ntfy]
13
11
 
14
12
  async def async_setup_entry(hass: HomeAssistant, entry: NtfyConfigEntry) -> bool: ...
15
13
  async def _async_update_listener(hass: HomeAssistant, entry: NtfyConfigEntry) -> None: ...
@@ -12,6 +12,7 @@ from typing import Any
12
12
  _LOGGER: Incomplete
13
13
  STEP_USER_DATA_SCHEMA: Incomplete
14
14
  STEP_REAUTH_DATA_SCHEMA: Incomplete
15
+ STEP_RECONFIGURE_DATA_SCHEMA: Incomplete
15
16
  STEP_USER_TOPIC_SCHEMA: Incomplete
16
17
  RE_TOPIC: Incomplete
17
18
 
@@ -22,6 +23,8 @@ class NtfyConfigFlow(ConfigFlow, domain=DOMAIN):
22
23
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
23
24
  async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> ConfigFlowResult: ...
24
25
  async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
26
+ async def async_step_reconfigure(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
27
+ async def async_step_reconfigure_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
25
28
 
26
29
  class TopicSubentryFlowHandler(ConfigSubentryFlow):
27
30
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> SubentryFlowResult: ...
@@ -0,0 +1,16 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from _typeshed import Incomplete
3
+ from aiontfy import Account as NtfyAccount, Ntfy as Ntfy
4
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
5
+ from homeassistant.core import HomeAssistant as HomeAssistant
6
+ from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed
7
+ from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
8
+
9
+ _LOGGER: Incomplete
10
+ type NtfyConfigEntry = ConfigEntry[NtfyDataUpdateCoordinator]
11
+
12
+ class NtfyDataUpdateCoordinator(DataUpdateCoordinator[NtfyAccount]):
13
+ config_entry: NtfyConfigEntry
14
+ ntfy: Incomplete
15
+ def __init__(self, hass: HomeAssistant, config_entry: NtfyConfigEntry, ntfy: Ntfy) -> None: ...
16
+ async def _async_update_data(self) -> NtfyAccount: ...
@@ -1,5 +1,5 @@
1
- from . import NtfyConfigEntry as NtfyConfigEntry
2
1
  from .const import CONF_TOPIC as CONF_TOPIC, DOMAIN as DOMAIN
2
+ from .coordinator import NtfyConfigEntry as NtfyConfigEntry
3
3
  from _typeshed import Incomplete
4
4
  from homeassistant.components.notify import NotifyEntity as NotifyEntity, NotifyEntityDescription as NotifyEntityDescription, NotifyEntityFeature as NotifyEntityFeature
5
5
  from homeassistant.config_entries import ConfigSubentry as ConfigSubentry
@@ -0,0 +1,56 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from .coordinator import NtfyConfigEntry as NtfyConfigEntry, NtfyDataUpdateCoordinator as NtfyDataUpdateCoordinator
3
+ from _typeshed import Incomplete
4
+ from aiontfy import Account as NtfyAccount
5
+ from collections.abc import Callable as Callable
6
+ from dataclasses import dataclass
7
+ from enum import StrEnum
8
+ from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription
9
+ from homeassistant.const import CONF_URL as CONF_URL, EntityCategory as EntityCategory, UnitOfInformation as UnitOfInformation, UnitOfTime as UnitOfTime
10
+ from homeassistant.core import HomeAssistant as HomeAssistant
11
+ from homeassistant.helpers.device_registry import DeviceEntryType as DeviceEntryType, DeviceInfo as DeviceInfo
12
+ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
13
+ from homeassistant.helpers.typing import StateType as StateType
14
+ from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
15
+
16
+ PARALLEL_UPDATES: int
17
+
18
+ @dataclass(kw_only=True, frozen=True)
19
+ class NtfySensorEntityDescription(SensorEntityDescription):
20
+ value_fn: Callable[[NtfyAccount], StateType]
21
+
22
+ class NtfySensor(StrEnum):
23
+ MESSAGES = 'messages'
24
+ MESSAGES_REMAINING = 'messages_remaining'
25
+ MESSAGES_LIMIT = 'messages_limit'
26
+ MESSAGES_EXPIRY_DURATION = 'messages_expiry_duration'
27
+ EMAILS = 'emails'
28
+ EMAILS_REMAINING = 'emails_remaining'
29
+ EMAILS_LIMIT = 'emails_limit'
30
+ CALLS = 'calls'
31
+ CALLS_REMAINING = 'calls_remaining'
32
+ CALLS_LIMIT = 'calls_limit'
33
+ RESERVATIONS = 'reservations'
34
+ RESERVATIONS_REMAINING = 'reservations_remaining'
35
+ RESERVATIONS_LIMIT = 'reservations_limit'
36
+ ATTACHMENT_TOTAL_SIZE = 'attachment_total_size'
37
+ ATTACHMENT_TOTAL_SIZE_REMAINING = 'attachment_total_size_remaining'
38
+ ATTACHMENT_TOTAL_SIZE_LIMIT = 'attachment_total_size_limit'
39
+ ATTACHMENT_EXPIRY_DURATION = 'attachment_expiry_duration'
40
+ ATTACHMENT_BANDWIDTH = 'attachment_bandwidth'
41
+ ATTACHMENT_FILE_SIZE = 'attachment_file_size'
42
+ TIER = 'tier'
43
+
44
+ SENSOR_DESCRIPTIONS: tuple[NtfySensorEntityDescription, ...]
45
+
46
+ async def async_setup_entry(hass: HomeAssistant, config_entry: NtfyConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
47
+
48
+ class NtfySensorEntity(CoordinatorEntity[NtfyDataUpdateCoordinator], SensorEntity):
49
+ entity_description: NtfySensorEntityDescription
50
+ coordinator: NtfyDataUpdateCoordinator
51
+ _attr_has_entity_name: bool
52
+ _attr_unique_id: Incomplete
53
+ _attr_device_info: Incomplete
54
+ def __init__(self, coordinator: NtfyDataUpdateCoordinator, description: NtfySensorEntityDescription) -> None: ...
55
+ @property
56
+ def native_value(self) -> StateType: ...
@@ -2,7 +2,7 @@ from .const import DOMAIN as DOMAIN
2
2
  from .coordinator import OhmeConfigEntry as OhmeConfigEntry
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 ServiceValidationError as ServiceValidationError
7
7
  from homeassistant.helpers import selector as selector
8
8
  from ohme import OhmeApiClient as OhmeApiClient
@@ -16,4 +16,5 @@ SERVICE_SET_PRICE_CAP: str
16
16
  SERVICE_SET_PRICE_CAP_SCHEMA: Final[Incomplete]
17
17
 
18
18
  def __get_client(call: ServiceCall) -> OhmeApiClient: ...
19
+ @callback
19
20
  def async_setup_services(hass: HomeAssistant) -> None: ...
@@ -1,6 +1,6 @@
1
1
  from .const import CONF_FOLDER_ID as CONF_FOLDER_ID, CONF_FOLDER_NAME as CONF_FOLDER_NAME, DATA_BACKUP_AGENT_LISTENERS as DATA_BACKUP_AGENT_LISTENERS, DOMAIN as DOMAIN
2
2
  from .coordinator import OneDriveConfigEntry as OneDriveConfigEntry, OneDriveRuntimeData as OneDriveRuntimeData, OneDriveUpdateCoordinator as OneDriveUpdateCoordinator
3
- from .services import async_register_services as async_register_services
3
+ from .services import async_setup_services as async_setup_services
4
4
  from _typeshed import Incomplete
5
5
  from collections.abc import Awaitable, Callable as Callable
6
6
  from homeassistant.const import CONF_ACCESS_TOKEN as CONF_ACCESS_TOKEN, Platform as Platform
@@ -2,7 +2,7 @@ from .const import DOMAIN as DOMAIN
2
2
  from .coordinator import OneDriveConfigEntry as OneDriveConfigEntry
3
3
  from _typeshed import Incomplete
4
4
  from homeassistant.const import CONF_FILENAME as CONF_FILENAME
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
 
8
8
  CONF_CONFIG_ENTRY_ID: str
@@ -12,4 +12,5 @@ UPLOAD_SERVICE_SCHEMA: Incomplete
12
12
  CONTENT_SIZE_LIMIT: Incomplete
13
13
 
14
14
  def _read_file_contents(hass: HomeAssistant, filenames: list[str]) -> list[tuple[str, bytes]]: ...
15
- def async_register_services(hass: HomeAssistant) -> None: ...
15
+ @callback
16
+ def async_setup_services(hass: HomeAssistant) -> None: ...
@@ -1,4 +1,4 @@
1
- from .const import DEVICE_KEYS_0_3 as DEVICE_KEYS_0_3, DEVICE_KEYS_0_7 as DEVICE_KEYS_0_7, DEVICE_KEYS_A_B as DEVICE_KEYS_A_B, READ_MODE_BOOL as READ_MODE_BOOL
1
+ from .const import DEVICE_KEYS_0_3 as DEVICE_KEYS_0_3, DEVICE_KEYS_0_7 as DEVICE_KEYS_0_7, DEVICE_KEYS_A_B as DEVICE_KEYS_A_B, READ_MODE_INT as READ_MODE_INT
2
2
  from .entity import OneWireEntity as OneWireEntity, OneWireEntityDescription as OneWireEntityDescription
3
3
  from .onewirehub import OWDeviceDescription as OWDeviceDescription, OneWireConfigEntry as OneWireConfigEntry, OneWireHub as OneWireHub, SIGNAL_NEW_DEVICE_CONNECTED as SIGNAL_NEW_DEVICE_CONNECTED
4
4
  from _typeshed import Incomplete
@@ -13,7 +13,8 @@ PARALLEL_UPDATES: int
13
13
  SCAN_INTERVAL: Incomplete
14
14
 
15
15
  @dataclass(frozen=True)
16
- class OneWireBinarySensorEntityDescription(OneWireEntityDescription, BinarySensorEntityDescription): ...
16
+ class OneWireBinarySensorEntityDescription(OneWireEntityDescription, BinarySensorEntityDescription):
17
+ read_mode = READ_MODE_INT
17
18
 
18
19
  DEVICE_BINARY_SENSORS: dict[str, tuple[OneWireBinarySensorEntityDescription, ...]]
19
20
  HOBBYBOARD_EF: dict[str, tuple[OneWireBinarySensorEntityDescription, ...]]
@@ -17,6 +17,5 @@ INPUT_ENTRY_DEVICE_SELECTION: str
17
17
  MANUFACTURER_MAXIM: str
18
18
  MANUFACTURER_HOBBYBOARDS: str
19
19
  MANUFACTURER_EDS: str
20
- READ_MODE_BOOL: str
21
20
  READ_MODE_FLOAT: str
22
21
  READ_MODE_INT: str
@@ -1,9 +1,8 @@
1
- from .const import READ_MODE_BOOL as READ_MODE_BOOL, READ_MODE_INT as READ_MODE_INT
1
+ from .const import READ_MODE_INT as READ_MODE_INT
2
2
  from _typeshed import Incomplete
3
3
  from dataclasses import dataclass
4
4
  from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
5
5
  from homeassistant.helpers.entity import Entity as Entity, EntityDescription as EntityDescription
6
- from homeassistant.helpers.typing import StateType as StateType
7
6
  from pyownet import protocol
8
7
  from typing import Any
9
8
 
@@ -20,7 +19,7 @@ class OneWireEntity(Entity):
20
19
  _attr_unique_id: Incomplete
21
20
  _attr_device_info: Incomplete
22
21
  _device_file: Incomplete
23
- _state: StateType
22
+ _state: int | float | None
24
23
  _value_raw: float | None
25
24
  _owproxy: Incomplete
26
25
  def __init__(self, description: OneWireEntityDescription, device_id: str, device_info: DeviceInfo, device_file: str, owproxy: protocol._Proxy) -> None: ...
@@ -1,4 +1,4 @@
1
- from .const import DEVICE_KEYS_0_3 as DEVICE_KEYS_0_3, DEVICE_KEYS_0_7 as DEVICE_KEYS_0_7, DEVICE_KEYS_A_B as DEVICE_KEYS_A_B, READ_MODE_BOOL as READ_MODE_BOOL
1
+ from .const import DEVICE_KEYS_0_3 as DEVICE_KEYS_0_3, DEVICE_KEYS_0_7 as DEVICE_KEYS_0_7, DEVICE_KEYS_A_B as DEVICE_KEYS_A_B, READ_MODE_INT as READ_MODE_INT
2
2
  from .entity import OneWireEntity as OneWireEntity, OneWireEntityDescription as OneWireEntityDescription
3
3
  from .onewirehub import OWDeviceDescription as OWDeviceDescription, OneWireConfigEntry as OneWireConfigEntry, OneWireHub as OneWireHub, SIGNAL_NEW_DEVICE_CONNECTED as SIGNAL_NEW_DEVICE_CONNECTED
4
4
  from _typeshed import Incomplete
@@ -14,7 +14,8 @@ PARALLEL_UPDATES: int
14
14
  SCAN_INTERVAL: Incomplete
15
15
 
16
16
  @dataclass(frozen=True)
17
- class OneWireSwitchEntityDescription(OneWireEntityDescription, SwitchEntityDescription): ...
17
+ class OneWireSwitchEntityDescription(OneWireEntityDescription, SwitchEntityDescription):
18
+ read_mode = READ_MODE_INT
18
19
 
19
20
  DEVICE_SWITCHES: dict[str, tuple[OneWireEntityDescription, ...]]
20
21
  HOBBYBOARD_EF: dict[str, tuple[OneWireEntityDescription, ...]]
@@ -1,6 +1,6 @@
1
1
  from .const import DOMAIN as DOMAIN, InputSource as InputSource, ListeningMode as ListeningMode, OPTION_INPUT_SOURCES as OPTION_INPUT_SOURCES, OPTION_LISTENING_MODES as OPTION_LISTENING_MODES
2
2
  from .receiver import Receiver as Receiver, async_interview as async_interview
3
- from .services import DATA_MP_ENTITIES as DATA_MP_ENTITIES, async_register_services as async_register_services
3
+ from .services import DATA_MP_ENTITIES as DATA_MP_ENTITIES, async_setup_services as async_setup_services
4
4
  from _typeshed import Incomplete
5
5
  from dataclasses import dataclass
6
6
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
@@ -2,7 +2,7 @@ from .const import DOMAIN as DOMAIN
2
2
  from .media_player import OnkyoMediaPlayer as OnkyoMediaPlayer
3
3
  from _typeshed import Incomplete
4
4
  from homeassistant.const import ATTR_ENTITY_ID as ATTR_ENTITY_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.util.hass_dict import HassKey as HassKey
7
7
 
8
8
  DATA_MP_ENTITIES: HassKey[dict[str, dict[str, OnkyoMediaPlayer]]]
@@ -11,4 +11,5 @@ ACCEPTED_VALUES: Incomplete
11
11
  ONKYO_SELECT_OUTPUT_SCHEMA: Incomplete
12
12
  SERVICE_SELECT_HDMI_OUTPUT: str
13
13
 
14
- async def async_register_services(hass: HomeAssistant) -> None: ...
14
+ @callback
15
+ def async_setup_services(hass: HomeAssistant) -> None: ...
@@ -1,7 +1,7 @@
1
1
  import openai
2
2
  from .const import CONF_CHAT_MODEL as CONF_CHAT_MODEL, CONF_FILENAMES as CONF_FILENAMES, CONF_MAX_TOKENS as CONF_MAX_TOKENS, CONF_PROMPT as CONF_PROMPT, CONF_REASONING_EFFORT as CONF_REASONING_EFFORT, CONF_TEMPERATURE as CONF_TEMPERATURE, CONF_TOP_P as CONF_TOP_P, DOMAIN as DOMAIN, LOGGER as LOGGER, 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
3
3
  from _typeshed import Incomplete
4
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
4
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigSubentry as ConfigSubentry
5
5
  from homeassistant.const import CONF_API_KEY as CONF_API_KEY, Platform as Platform
6
6
  from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, ServiceResponse as ServiceResponse, SupportsResponse as SupportsResponse
7
7
  from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady, HomeAssistantError as HomeAssistantError, ServiceValidationError as ServiceValidationError
@@ -21,3 +21,4 @@ def encode_file(file_path: str) -> tuple[str, str]: ...
21
21
  async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
22
22
  async def async_setup_entry(hass: HomeAssistant, entry: OpenAIConfigEntry) -> bool: ...
23
23
  async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
24
+ async def async_migrate_integration(hass: HomeAssistant) -> None: ...