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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of homeassistant-stubs might be problematic. Click here for more details.

Files changed (347) hide show
  1. homeassistant-stubs/bootstrap.pyi +1 -1
  2. homeassistant-stubs/components/abode/__init__.pyi +3 -12
  3. homeassistant-stubs/components/abode/services.pyi +20 -0
  4. homeassistant-stubs/components/adax/sensor.pyi +29 -0
  5. homeassistant-stubs/components/airly/config_flow.pyi +1 -1
  6. homeassistant-stubs/components/airq/coordinator.pyi +1 -1
  7. homeassistant-stubs/components/airthings/__init__.pyi +3 -5
  8. homeassistant-stubs/components/airthings/coordinator.pyi +13 -0
  9. homeassistant-stubs/components/airthings/sensor.pyi +5 -4
  10. homeassistant-stubs/components/alexa_devices/binary_sensor.pyi +2 -1
  11. homeassistant-stubs/components/alexa_devices/notify.pyi +2 -0
  12. homeassistant-stubs/components/alexa_devices/sensor.pyi +29 -0
  13. homeassistant-stubs/components/alexa_devices/switch.pyi +2 -0
  14. homeassistant-stubs/components/alexa_devices/utils.pyi +7 -0
  15. homeassistant-stubs/components/altruist/__init__.pyi +9 -0
  16. homeassistant-stubs/components/altruist/config_flow.pyi +15 -0
  17. homeassistant-stubs/components/altruist/const.pyi +2 -0
  18. homeassistant-stubs/components/altruist/coordinator.pyi +19 -0
  19. homeassistant-stubs/components/altruist/sensor.pyi +34 -0
  20. homeassistant-stubs/components/amcrest/__init__.pyi +4 -7
  21. homeassistant-stubs/components/amcrest/services.pyi +13 -0
  22. homeassistant-stubs/components/analytics/analytics.pyi +3 -1
  23. homeassistant-stubs/components/android_ip_webcam/camera.pyi +4 -0
  24. homeassistant-stubs/components/apcupsd/sensor.pyi +1 -1
  25. homeassistant-stubs/components/assist_satellite/__init__.pyi +2 -2
  26. homeassistant-stubs/components/assist_satellite/entity.pyi +13 -1
  27. homeassistant-stubs/components/axis/hub/hub.pyi +1 -1
  28. homeassistant-stubs/components/camera/__init__.pyi +0 -2
  29. homeassistant-stubs/components/camera/webrtc.pyi +1 -0
  30. homeassistant-stubs/components/climate/__init__.pyi +0 -2
  31. homeassistant-stubs/components/command_line/notify.pyi +1 -2
  32. homeassistant-stubs/components/command_line/sensor.pyi +1 -2
  33. homeassistant-stubs/components/command_line/utils.pyi +5 -2
  34. homeassistant-stubs/components/deconz/logbook.pyi +1 -1
  35. homeassistant-stubs/components/derivative/config_flow.pyi +1 -1
  36. homeassistant-stubs/components/derivative/const.pyi +1 -0
  37. homeassistant-stubs/components/derivative/sensor.pyi +9 -4
  38. homeassistant-stubs/components/device_automation/condition.pyi +17 -4
  39. homeassistant-stubs/components/devolo_home_control/__init__.pyi +3 -2
  40. homeassistant-stubs/components/devolo_home_control/climate.pyi +1 -1
  41. homeassistant-stubs/components/devolo_home_control/const.pyi +0 -1
  42. homeassistant-stubs/components/devolo_home_control/cover.pyi +1 -1
  43. homeassistant-stubs/components/devolo_home_control/entity.pyi +6 -0
  44. homeassistant-stubs/components/devolo_home_control/light.pyi +1 -1
  45. homeassistant-stubs/components/devolo_home_control/siren.pyi +1 -1
  46. homeassistant-stubs/components/devolo_home_network/device_tracker.pyi +2 -0
  47. homeassistant-stubs/components/dnsip/sensor.pyi +3 -2
  48. homeassistant-stubs/components/downloader/__init__.pyi +1 -1
  49. homeassistant-stubs/components/downloader/services.pyi +3 -2
  50. homeassistant-stubs/components/ecovacs/binary_sensor.pyi +4 -4
  51. homeassistant-stubs/components/ecovacs/entity.pyi +9 -12
  52. homeassistant-stubs/components/ecovacs/number.pyi +4 -4
  53. homeassistant-stubs/components/ecovacs/select.pyi +5 -4
  54. homeassistant-stubs/components/ecovacs/sensor.pyi +3 -3
  55. homeassistant-stubs/components/eheimdigital/number.pyi +8 -9
  56. homeassistant-stubs/components/eheimdigital/select.pyi +8 -9
  57. homeassistant-stubs/components/eheimdigital/sensor.pyi +7 -8
  58. homeassistant-stubs/components/eheimdigital/time.pyi +8 -9
  59. homeassistant-stubs/components/elkm1/__init__.pyi +4 -9
  60. homeassistant-stubs/components/elkm1/services.pyi +21 -0
  61. homeassistant-stubs/components/enphase_envoy/__init__.pyi +2 -2
  62. homeassistant-stubs/components/enphase_envoy/config_flow.pyi +1 -1
  63. homeassistant-stubs/components/enphase_envoy/diagnostics.pyi +1 -0
  64. homeassistant-stubs/components/enphase_envoy/sensor.pyi +1 -1
  65. homeassistant-stubs/components/eq3btsmart/climate.pyi +6 -8
  66. homeassistant-stubs/components/eq3btsmart/const.pyi +3 -2
  67. homeassistant-stubs/components/eq3btsmart/entity.pyi +5 -1
  68. homeassistant-stubs/components/eq3btsmart/number.pyi +3 -3
  69. homeassistant-stubs/components/eq3btsmart/switch.pyi +5 -3
  70. homeassistant-stubs/components/esphome/entity.pyi +2 -1
  71. homeassistant-stubs/components/esphome/entry_data.pyi +3 -0
  72. homeassistant-stubs/components/esphome/sensor.pyi +2 -1
  73. homeassistant-stubs/components/evohome/water_heater.pyi +1 -1
  74. homeassistant-stubs/components/fritz/binary_sensor.pyi +2 -1
  75. homeassistant-stubs/components/fritz/button.pyi +3 -1
  76. homeassistant-stubs/components/fritz/coordinator.pyi +8 -82
  77. homeassistant-stubs/components/fritz/device_tracker.pyi +3 -1
  78. homeassistant-stubs/components/fritz/entity.pyi +2 -1
  79. homeassistant-stubs/components/fritz/helpers.pyi +9 -0
  80. homeassistant-stubs/components/fritz/models.pyi +78 -0
  81. homeassistant-stubs/components/fritz/sensor.pyi +2 -1
  82. homeassistant-stubs/components/fritz/services.pyi +3 -2
  83. homeassistant-stubs/components/fritz/switch.pyi +3 -1
  84. homeassistant-stubs/components/fully_kiosk/services.pyi +7 -2
  85. homeassistant-stubs/components/go2rtc/__init__.pyi +10 -4
  86. homeassistant-stubs/components/google/__init__.pyi +3 -9
  87. homeassistant-stubs/components/google_assistant_sdk/__init__.pyi +3 -7
  88. homeassistant-stubs/components/google_assistant_sdk/services.pyi +13 -0
  89. homeassistant-stubs/components/google_photos/services.pyi +4 -2
  90. homeassistant-stubs/components/google_sheets/__init__.pyi +7 -10
  91. homeassistant-stubs/components/google_sheets/services.pyi +18 -0
  92. homeassistant-stubs/components/group/sensor.pyi +1 -1
  93. homeassistant-stubs/components/habitica/services.pyi +8 -1
  94. homeassistant-stubs/components/here_travel_time/model.pyi +2 -1
  95. homeassistant-stubs/components/home_connect/diagnostics.pyi +2 -0
  96. homeassistant-stubs/components/homeassistant/__init__.pyi +2 -3
  97. homeassistant-stubs/components/homeassistant_hardware/firmware_config_flow.pyi +13 -7
  98. homeassistant-stubs/components/homeassistant_hardware/update.pyi +2 -6
  99. homeassistant-stubs/components/homeassistant_hardware/util.pyi +3 -1
  100. homeassistant-stubs/components/homeassistant_sky_connect/config_flow.pyi +9 -5
  101. homeassistant-stubs/components/homeassistant_yellow/config_flow.pyi +12 -5
  102. homeassistant-stubs/components/homee/config_flow.pyi +1 -0
  103. homeassistant-stubs/components/homee/diagnostics.pyi +12 -0
  104. homeassistant-stubs/components/homee/entity.pyi +3 -2
  105. homeassistant-stubs/components/homee/event.pyi +8 -4
  106. homeassistant-stubs/components/homee/siren.pyi +19 -0
  107. homeassistant-stubs/components/homewizard/select.pyi +35 -0
  108. homeassistant-stubs/components/husqvarna_automower/const.pyi +3 -0
  109. homeassistant-stubs/components/husqvarna_automower/lawn_mower.pyi +3 -1
  110. homeassistant-stubs/components/husqvarna_automower/sensor.pyi +1 -1
  111. homeassistant-stubs/components/image/__init__.pyi +2 -0
  112. homeassistant-stubs/components/immich/coordinator.pyi +2 -1
  113. homeassistant-stubs/components/immich/update.pyi +21 -0
  114. homeassistant-stubs/components/isy994/__init__.pyi +3 -1
  115. homeassistant-stubs/components/isy994/services.pyi +0 -2
  116. homeassistant-stubs/components/jewish_calendar/__init__.pyi +1 -1
  117. homeassistant-stubs/components/jewish_calendar/{service.pyi → services.pyi} +2 -1
  118. homeassistant-stubs/components/kaleidescape/__init__.pyi +4 -4
  119. homeassistant-stubs/components/kaleidescape/media_player.pyi +2 -3
  120. homeassistant-stubs/components/kaleidescape/remote.pyi +2 -3
  121. homeassistant-stubs/components/kaleidescape/sensor.pyi +2 -3
  122. homeassistant-stubs/components/lacrosse_view/__init__.pyi +3 -5
  123. homeassistant-stubs/components/lacrosse_view/coordinator.pyi +3 -2
  124. homeassistant-stubs/components/lacrosse_view/diagnostics.pyi +2 -4
  125. homeassistant-stubs/components/lacrosse_view/sensor.pyi +2 -2
  126. homeassistant-stubs/components/lamarzocco/entity.pyi +3 -0
  127. homeassistant-stubs/components/lamarzocco/sensor.pyi +1 -0
  128. homeassistant-stubs/components/lametric/__init__.pyi +3 -4
  129. homeassistant-stubs/components/lametric/button.pyi +2 -4
  130. homeassistant-stubs/components/lametric/coordinator.pyi +3 -2
  131. homeassistant-stubs/components/lametric/diagnostics.pyi +2 -4
  132. homeassistant-stubs/components/lametric/entity.pyi +1 -1
  133. homeassistant-stubs/components/lametric/helpers.pyi +1 -1
  134. homeassistant-stubs/components/lametric/notify.pyi +2 -2
  135. homeassistant-stubs/components/lametric/number.pyi +2 -4
  136. homeassistant-stubs/components/lametric/select.pyi +2 -4
  137. homeassistant-stubs/components/lametric/sensor.pyi +2 -4
  138. homeassistant-stubs/components/lametric/switch.pyi +2 -4
  139. homeassistant-stubs/components/lametric/update.pyi +17 -0
  140. homeassistant-stubs/components/laundrify/__init__.pyi +4 -6
  141. homeassistant-stubs/components/laundrify/binary_sensor.pyi +2 -3
  142. homeassistant-stubs/components/laundrify/coordinator.pyi +1 -0
  143. homeassistant-stubs/components/laundrify/sensor.pyi +2 -3
  144. homeassistant-stubs/components/lcn/__init__.pyi +9 -10
  145. homeassistant-stubs/components/lcn/binary_sensor.pyi +9 -8
  146. homeassistant-stubs/components/lcn/climate.pyi +5 -6
  147. homeassistant-stubs/components/lcn/const.pyi +0 -4
  148. homeassistant-stubs/components/lcn/cover.pyi +6 -7
  149. homeassistant-stubs/components/lcn/entity.pyi +2 -3
  150. homeassistant-stubs/components/lcn/helpers.pyi +15 -5
  151. homeassistant-stubs/components/lcn/light.pyi +6 -7
  152. homeassistant-stubs/components/lcn/scene.pyi +5 -5
  153. homeassistant-stubs/components/lcn/sensor.pyi +7 -7
  154. homeassistant-stubs/components/lcn/services.pyi +5 -4
  155. homeassistant-stubs/components/lcn/switch.pyi +8 -9
  156. homeassistant-stubs/components/lcn/websocket.pyi +12 -13
  157. homeassistant-stubs/components/ld2410_ble/__init__.pyi +4 -6
  158. homeassistant-stubs/components/ld2410_ble/binary_sensor.pyi +2 -4
  159. homeassistant-stubs/components/ld2410_ble/coordinator.pyi +3 -3
  160. homeassistant-stubs/components/ld2410_ble/models.pyi +2 -0
  161. homeassistant-stubs/components/ld2410_ble/sensor.pyi +4 -5
  162. homeassistant-stubs/components/led_ble/__init__.pyi +5 -6
  163. homeassistant-stubs/components/led_ble/light.pyi +3 -4
  164. homeassistant-stubs/components/led_ble/models.pyi +2 -0
  165. homeassistant-stubs/components/lifx/__init__.pyi +4 -5
  166. homeassistant-stubs/components/lifx/binary_sensor.pyi +3 -4
  167. homeassistant-stubs/components/lifx/button.pyi +3 -4
  168. homeassistant-stubs/components/lifx/const.pyi +3 -1
  169. homeassistant-stubs/components/lifx/coordinator.pyi +3 -2
  170. homeassistant-stubs/components/lifx/diagnostics.pyi +3 -4
  171. homeassistant-stubs/components/lifx/light.pyi +3 -4
  172. homeassistant-stubs/components/lifx/manager.pyi +2 -2
  173. homeassistant-stubs/components/lifx/migration.pyi +3 -3
  174. homeassistant-stubs/components/lifx/select.pyi +3 -4
  175. homeassistant-stubs/components/lifx/sensor.pyi +3 -4
  176. homeassistant-stubs/components/lifx/util.pyi +3 -3
  177. homeassistant-stubs/components/linear_garage_door/__init__.pyi +4 -5
  178. homeassistant-stubs/components/linear_garage_door/coordinator.pyi +3 -2
  179. homeassistant-stubs/components/linear_garage_door/cover.pyi +2 -4
  180. homeassistant-stubs/components/linear_garage_door/diagnostics.pyi +2 -4
  181. homeassistant-stubs/components/linear_garage_door/light.pyi +2 -4
  182. homeassistant-stubs/components/lookin/__init__.pyi +4 -5
  183. homeassistant-stubs/components/lookin/climate.pyi +3 -4
  184. homeassistant-stubs/components/lookin/coordinator.pyi +3 -3
  185. homeassistant-stubs/components/lookin/light.pyi +3 -4
  186. homeassistant-stubs/components/lookin/media_player.pyi +3 -4
  187. homeassistant-stubs/components/lookin/models.pyi +2 -0
  188. homeassistant-stubs/components/lookin/sensor.pyi +2 -4
  189. homeassistant-stubs/components/luftdaten/__init__.pyi +4 -6
  190. homeassistant-stubs/components/luftdaten/coordinator.pyi +15 -0
  191. homeassistant-stubs/components/luftdaten/diagnostics.pyi +3 -4
  192. homeassistant-stubs/components/luftdaten/sensor.pyi +4 -4
  193. homeassistant-stubs/components/matrix/__init__.pyi +2 -7
  194. homeassistant-stubs/components/matrix/const.pyi +3 -0
  195. homeassistant-stubs/components/matrix/services.pyi +12 -0
  196. homeassistant-stubs/components/matter/sensor.pyi +7 -2
  197. homeassistant-stubs/components/matter/vacuum.pyi +5 -5
  198. homeassistant-stubs/components/mealie/__init__.pyi +1 -1
  199. homeassistant-stubs/components/mealie/services.pyi +9 -3
  200. homeassistant-stubs/components/media_player/__init__.pyi +0 -2
  201. homeassistant-stubs/components/media_player/intent.pyi +1 -1
  202. homeassistant-stubs/components/media_source/local_source.pyi +2 -0
  203. homeassistant-stubs/components/metoffice/sensor.pyi +1 -1
  204. homeassistant-stubs/components/miele/const.pyi +24 -0
  205. homeassistant-stubs/components/miele/sensor.pyi +1 -2
  206. homeassistant-stubs/components/mqtt/config_flow.pyi +6 -1
  207. homeassistant-stubs/components/mqtt/sensor.pyi +1 -4
  208. homeassistant-stubs/components/music_assistant/__init__.pyi +5 -1
  209. homeassistant-stubs/components/music_assistant/button.pyi +15 -0
  210. homeassistant-stubs/components/music_assistant/helpers.pyi +5 -0
  211. homeassistant-stubs/components/music_assistant/media_player.pyi +4 -4
  212. homeassistant-stubs/components/nam/config_flow.pyi +3 -9
  213. homeassistant-stubs/components/nextdns/binary_sensor.pyi +6 -12
  214. homeassistant-stubs/components/nextdns/button.pyi +2 -9
  215. homeassistant-stubs/components/nextdns/coordinator.pyi +2 -7
  216. homeassistant-stubs/components/nextdns/entity.pyi +14 -0
  217. homeassistant-stubs/components/nextdns/sensor.pyi +8 -15
  218. homeassistant-stubs/components/nextdns/switch.pyi +3 -6
  219. homeassistant-stubs/components/nfandroidtv/__init__.pyi +0 -1
  220. homeassistant-stubs/components/nfandroidtv/notify.pyi +5 -4
  221. homeassistant-stubs/components/nordpool/services.pyi +2 -1
  222. homeassistant-stubs/components/ntfy/__init__.pyi +1 -3
  223. homeassistant-stubs/components/ntfy/config_flow.pyi +3 -0
  224. homeassistant-stubs/components/ntfy/coordinator.pyi +16 -0
  225. homeassistant-stubs/components/ntfy/notify.pyi +1 -1
  226. homeassistant-stubs/components/ntfy/sensor.pyi +56 -0
  227. homeassistant-stubs/components/ohme/services.pyi +2 -1
  228. homeassistant-stubs/components/onedrive/__init__.pyi +1 -1
  229. homeassistant-stubs/components/onedrive/services.pyi +3 -2
  230. homeassistant-stubs/components/onewire/binary_sensor.pyi +3 -2
  231. homeassistant-stubs/components/onewire/const.pyi +0 -1
  232. homeassistant-stubs/components/onewire/entity.pyi +2 -3
  233. homeassistant-stubs/components/onewire/switch.pyi +3 -2
  234. homeassistant-stubs/components/onkyo/__init__.pyi +1 -1
  235. homeassistant-stubs/components/onkyo/services.pyi +3 -2
  236. homeassistant-stubs/components/openai_conversation/__init__.pyi +4 -2
  237. homeassistant-stubs/components/openai_conversation/config_flow.pyi +19 -14
  238. homeassistant-stubs/components/openai_conversation/const.pyi +2 -0
  239. homeassistant-stubs/components/openai_conversation/conversation.pyi +4 -4
  240. homeassistant-stubs/components/overseerr/__init__.pyi +1 -1
  241. homeassistant-stubs/components/overseerr/services.pyi +6 -4
  242. homeassistant-stubs/components/paperless_ngx/__init__.pyi +1 -1
  243. homeassistant-stubs/components/paperless_ngx/config_flow.pyi +2 -2
  244. homeassistant-stubs/components/paperless_ngx/coordinator.pyi +3 -5
  245. homeassistant-stubs/components/paperless_ngx/entity.pyi +2 -5
  246. homeassistant-stubs/components/paperless_ngx/sensor.pyi +8 -8
  247. homeassistant-stubs/components/paperless_ngx/update.pyi +25 -0
  248. homeassistant-stubs/components/person/__init__.pyi +1 -1
  249. homeassistant-stubs/components/plugwise/climate.pyi +0 -1
  250. homeassistant-stubs/components/pushbullet/sensor.pyi +1 -1
  251. homeassistant-stubs/components/qbus/climate.pyi +3 -2
  252. homeassistant-stubs/components/qbus/cover.pyi +39 -0
  253. homeassistant-stubs/components/qbus/entity.pyi +7 -3
  254. homeassistant-stubs/components/qbus/light.pyi +4 -3
  255. homeassistant-stubs/components/qbus/scene.pyi +2 -2
  256. homeassistant-stubs/components/qbus/switch.pyi +3 -2
  257. homeassistant-stubs/components/recorder/__init__.pyi +1 -1
  258. homeassistant-stubs/components/recorder/services.pyi +7 -12
  259. homeassistant-stubs/components/reolink/__init__.pyi +1 -1
  260. homeassistant-stubs/components/reolink/config_flow.pyi +1 -1
  261. homeassistant-stubs/components/reolink/const.pyi +1 -0
  262. homeassistant-stubs/components/reolink/entity.pyi +1 -1
  263. homeassistant-stubs/components/reolink/host.pyi +1 -1
  264. homeassistant-stubs/components/reolink/services.pyi +2 -0
  265. homeassistant-stubs/components/rest/data.pyi +8 -6
  266. homeassistant-stubs/components/russound_rio/__init__.pyi +1 -0
  267. homeassistant-stubs/components/russound_rio/entity.pyi +6 -2
  268. homeassistant-stubs/components/russound_rio/media_player.pyi +1 -5
  269. homeassistant-stubs/components/russound_rio/number.pyi +30 -0
  270. homeassistant-stubs/components/russound_rio/switch.pyi +33 -0
  271. homeassistant-stubs/components/shelly/__init__.pyi +1 -1
  272. homeassistant-stubs/components/shelly/const.pyi +1 -0
  273. homeassistant-stubs/components/shelly/repairs.pyi +14 -3
  274. homeassistant-stubs/components/shopping_list/__init__.pyi +1 -0
  275. homeassistant-stubs/components/shopping_list/intent.pyi +9 -1
  276. homeassistant-stubs/components/squeezebox/button.pyi +0 -2
  277. homeassistant-stubs/components/squeezebox/entity.pyi +2 -0
  278. homeassistant-stubs/components/squeezebox/media_player.pyi +0 -2
  279. homeassistant-stubs/components/stream/__init__.pyi +1 -1
  280. homeassistant-stubs/components/stream/const.pyi +1 -0
  281. homeassistant-stubs/components/stream/core.pyi +2 -1
  282. homeassistant-stubs/components/sun/__init__.pyi +1 -0
  283. homeassistant-stubs/components/sun/binary_sensor.pyi +36 -0
  284. homeassistant-stubs/components/sun/condition.pyi +13 -3
  285. homeassistant-stubs/components/sun/sensor.pyi +2 -0
  286. homeassistant-stubs/components/switch/light.pyi +1 -0
  287. homeassistant-stubs/components/switch_as_x/entity.pyi +1 -0
  288. homeassistant-stubs/components/synology_dsm/__init__.pyi +4 -1
  289. homeassistant-stubs/components/synology_dsm/{service.pyi → services.pyi} +4 -2
  290. homeassistant-stubs/components/tedee/binary_sensor.pyi +4 -0
  291. homeassistant-stubs/components/telegram_bot/__init__.pyi +34 -0
  292. homeassistant-stubs/components/telegram_bot/bot.pyi +63 -0
  293. homeassistant-stubs/components/telegram_bot/broadcast.pyi +5 -0
  294. homeassistant-stubs/components/telegram_bot/config_flow.pyi +53 -0
  295. homeassistant-stubs/components/telegram_bot/const.pyi +93 -0
  296. homeassistant-stubs/components/telegram_bot/polling.pyi +19 -0
  297. homeassistant-stubs/components/telegram_bot/webhooks.pyi +47 -0
  298. homeassistant-stubs/components/tplink/climate.pyi +1 -2
  299. homeassistant-stubs/components/trend/binary_sensor.pyi +1 -1
  300. homeassistant-stubs/components/tts/__init__.pyi +1 -0
  301. homeassistant-stubs/components/tts/entity.pyi +1 -2
  302. homeassistant-stubs/components/unifi/button.pyi +5 -5
  303. homeassistant-stubs/components/unifi/device_tracker.pyi +5 -5
  304. homeassistant-stubs/components/unifi/entity.pyi +5 -8
  305. homeassistant-stubs/components/unifi/hub/hub.pyi +1 -1
  306. homeassistant-stubs/components/unifi/image.pyi +5 -5
  307. homeassistant-stubs/components/unifi/sensor.pyi +5 -5
  308. homeassistant-stubs/components/unifi/switch.pyi +7 -7
  309. homeassistant-stubs/components/unifi/update.pyi +3 -5
  310. homeassistant-stubs/components/unifiprotect/services.pyi +1 -0
  311. homeassistant-stubs/components/vacuum/__init__.pyi +0 -2
  312. homeassistant-stubs/components/wallbox/const.pyi +4 -0
  313. homeassistant-stubs/components/wallbox/coordinator.pyi +6 -6
  314. homeassistant-stubs/components/wallbox/lock.pyi +1 -2
  315. homeassistant-stubs/components/wallbox/number.pyi +1 -2
  316. homeassistant-stubs/components/websocket_api/commands.pyi +6 -3
  317. homeassistant-stubs/components/websocket_api/messages.pyi +1 -0
  318. homeassistant-stubs/components/wiz/__init__.pyi +3 -3
  319. homeassistant-stubs/components/zwave_js/__init__.pyi +1 -1
  320. homeassistant-stubs/components/zwave_js/api.pyi +2 -2
  321. homeassistant-stubs/components/zwave_js/config_flow.pyi +4 -1
  322. homeassistant-stubs/components/zwave_js/device_trigger.pyi +0 -1
  323. homeassistant-stubs/components/zwave_js/services.pyi +2 -0
  324. homeassistant-stubs/components/zwave_js/trigger.pyi +3 -7
  325. homeassistant-stubs/components/zwave_js/triggers/event.pyi +9 -1
  326. homeassistant-stubs/components/zwave_js/triggers/value_updated.pyi +9 -1
  327. homeassistant-stubs/config_entries.pyi +2 -0
  328. homeassistant-stubs/const.pyi +1 -0
  329. homeassistant-stubs/helpers/condition.pyi +11 -3
  330. homeassistant-stubs/helpers/device_registry.pyi +5 -1
  331. homeassistant-stubs/helpers/entity.pyi +1 -4
  332. homeassistant-stubs/helpers/entity_registry.pyi +11 -1
  333. homeassistant-stubs/helpers/llm.pyi +0 -1
  334. homeassistant-stubs/helpers/selector.pyi +24 -4
  335. homeassistant-stubs/helpers/system_info.pyi +2 -0
  336. homeassistant-stubs/helpers/template.pyi +2 -1
  337. homeassistant-stubs/helpers/trigger.pyi +33 -2
  338. homeassistant-stubs/loader.pyi +3 -1
  339. homeassistant-stubs/util/timeout.pyi +6 -3
  340. homeassistant-stubs/util/yaml/loader.pyi +3 -1
  341. {homeassistant_stubs-2025.6.2.dist-info → homeassistant_stubs-2025.7.0.dist-info}/METADATA +2 -2
  342. {homeassistant_stubs-2025.6.2.dist-info → homeassistant_stubs-2025.7.0.dist-info}/RECORD +344 -307
  343. homeassistant-stubs/backports/enum.pyi +0 -7
  344. homeassistant-stubs/backports/functools.pyi +0 -7
  345. homeassistant-stubs/components/devolo_home_control/devolo_multi_level_switch.pyi +0 -10
  346. {homeassistant_stubs-2025.6.2.dist-info → homeassistant_stubs-2025.7.0.dist-info}/WHEEL +0 -0
  347. {homeassistant_stubs-2025.6.2.dist-info → homeassistant_stubs-2025.7.0.dist-info}/licenses/LICENSE +0 -0
@@ -3,7 +3,7 @@ from .coordinator import MealieConfigEntry as MealieConfigEntry
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 HomeAssistantError as HomeAssistantError, ServiceValidationError as ServiceValidationError
8
8
 
9
9
  SERVICE_GET_MEALPLAN: str
@@ -17,5 +17,11 @@ SERVICE_SET_RANDOM_MEALPLAN_SCHEMA: Incomplete
17
17
  SERVICE_SET_MEALPLAN: str
18
18
  SERVICE_SET_MEALPLAN_SCHEMA: Incomplete
19
19
 
20
- def async_get_entry(hass: HomeAssistant, config_entry_id: str) -> MealieConfigEntry: ...
21
- def setup_services(hass: HomeAssistant) -> None: ...
20
+ def _async_get_entry(call: ServiceCall) -> MealieConfigEntry: ...
21
+ async def _async_get_mealplan(call: ServiceCall) -> ServiceResponse: ...
22
+ async def _async_get_recipe(call: ServiceCall) -> ServiceResponse: ...
23
+ async def _async_import_recipe(call: ServiceCall) -> ServiceResponse: ...
24
+ async def _async_set_random_mealplan(call: ServiceCall) -> ServiceResponse: ...
25
+ async def _async_set_mealplan(call: ServiceCall) -> ServiceResponse: ...
26
+ @callback
27
+ def async_setup_services(hass: HomeAssistant) -> None: ...
@@ -193,8 +193,6 @@ class MediaPlayerEntity(Entity, cached_properties=CACHED_PROPERTIES_WITH_ATTR_):
193
193
  def group_members(self) -> list[str] | None: ...
194
194
  @cached_property
195
195
  def supported_features(self) -> MediaPlayerEntityFeature: ...
196
- @property
197
- def supported_features_compat(self) -> MediaPlayerEntityFeature: ...
198
196
  def turn_on(self) -> None: ...
199
197
  async def async_turn_on(self) -> None: ...
200
198
  def turn_off(self) -> None: ...
@@ -1,5 +1,5 @@
1
1
  from . import ATTR_MEDIA_VOLUME_LEVEL as ATTR_MEDIA_VOLUME_LEVEL, DOMAIN as DOMAIN, MediaPlayerDeviceClass as MediaPlayerDeviceClass, SERVICE_PLAY_MEDIA as SERVICE_PLAY_MEDIA, SERVICE_SEARCH_MEDIA as SERVICE_SEARCH_MEDIA, SearchMedia as SearchMedia
2
- from .const import MediaPlayerEntityFeature as MediaPlayerEntityFeature, MediaPlayerState as MediaPlayerState
2
+ from .const import ATTR_MEDIA_FILTER_CLASSES as ATTR_MEDIA_FILTER_CLASSES, MediaClass as MediaClass, MediaPlayerEntityFeature as MediaPlayerEntityFeature, MediaPlayerState as MediaPlayerState
3
3
  from _typeshed import Incomplete
4
4
  from collections.abc import Iterable
5
5
  from dataclasses import dataclass, field
@@ -37,6 +37,8 @@ class LocalMediaView(http.HomeAssistantView):
37
37
  hass: Incomplete
38
38
  source: Incomplete
39
39
  def __init__(self, hass: HomeAssistant, source: LocalSource) -> None: ...
40
+ async def _validate_media_path(self, source_dir_id: str, location: str) -> Path: ...
41
+ async def head(self, request: web.Request, source_dir_id: str, location: str) -> None: ...
40
42
  async def get(self, request: web.Request, source_dir_id: str, location: str) -> web.FileResponse: ...
41
43
 
42
44
  class UploadMediaView(http.HomeAssistantView):
@@ -4,7 +4,7 @@ from .helpers import get_attribute as get_attribute
4
4
  from _typeshed import Incomplete
5
5
  from dataclasses import dataclass
6
6
  from datapoint.Forecast import Forecast
7
- from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
7
+ from homeassistant.components.sensor import EntityCategory as EntityCategory, SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
8
8
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
9
9
  from homeassistant.const import DEGREE as DEGREE, PERCENTAGE as PERCENTAGE, UV_INDEX as UV_INDEX, UnitOfLength as UnitOfLength, UnitOfSpeed as UnitOfSpeed, UnitOfTemperature as UnitOfTemperature
10
10
  from homeassistant.core import HomeAssistant as HomeAssistant
@@ -125,3 +125,27 @@ ROBOT_VACUUM_CLEANER_PROGRAM_ID: dict[int, str]
125
125
  COFFEE_SYSTEM_PROGRAM_ID: dict[int, str]
126
126
  STEAM_OVEN_MICRO_PROGRAM_ID: dict[int, str]
127
127
  STATE_PROGRAM_ID: dict[int, dict[int, str]]
128
+
129
+ class PlatePowerStep(MieleEnum):
130
+ plate_step_0: int
131
+ plate_step_warming: Incomplete
132
+ plate_step_1: int
133
+ plate_step_2: int
134
+ plate_step_3: int
135
+ plate_step_4: int
136
+ plate_step_5: int
137
+ plate_step_6: int
138
+ plate_step_7: int
139
+ plate_step_8: int
140
+ plate_step_9: int
141
+ plate_step_10: int
142
+ plate_step_11: int
143
+ plate_step_12: int
144
+ plate_step_13: int
145
+ plate_step_14: int
146
+ plate_step_15: int
147
+ plate_step_16: int
148
+ plate_step_17: int
149
+ plate_step_18: int
150
+ plate_step_boost: Incomplete
151
+ missing2none: int
@@ -1,4 +1,4 @@
1
- from .const import MieleAppliance as MieleAppliance, STATE_PROGRAM_ID as STATE_PROGRAM_ID, STATE_PROGRAM_PHASE as STATE_PROGRAM_PHASE, STATE_STATUS_TAGS as STATE_STATUS_TAGS, StateDryingStep as StateDryingStep, StateProgramType as StateProgramType, StateStatus as StateStatus
1
+ from .const import MieleAppliance as MieleAppliance, PlatePowerStep as PlatePowerStep, STATE_PROGRAM_ID as STATE_PROGRAM_ID, STATE_PROGRAM_PHASE as STATE_PROGRAM_PHASE, STATE_STATUS_TAGS as STATE_STATUS_TAGS, StateDryingStep as StateDryingStep, StateProgramType as StateProgramType, StateStatus as StateStatus
2
2
  from .coordinator import MieleConfigEntry as MieleConfigEntry, MieleDataUpdateCoordinator as MieleDataUpdateCoordinator
3
3
  from .entity import MieleEntity as MieleEntity
4
4
  from _typeshed import Incomplete
@@ -15,7 +15,6 @@ from typing import Final
15
15
  PARALLEL_UPDATES: int
16
16
  _LOGGER: Incomplete
17
17
  DISABLED_TEMPERATURE: int
18
- PLATE_POWERS: Incomplete
19
18
  DEFAULT_PLATE_COUNT: int
20
19
  PLATE_COUNT: Incomplete
21
20
 
@@ -19,7 +19,7 @@ from homeassistant.components.light import DEFAULT_MAX_KELVIN as DEFAULT_MAX_KEL
19
19
  from homeassistant.components.sensor import CONF_STATE_CLASS as CONF_STATE_CLASS, DEVICE_CLASS_UNITS as DEVICE_CLASS_UNITS, STATE_CLASS_UNITS as STATE_CLASS_UNITS, SensorDeviceClass as SensorDeviceClass, SensorStateClass as SensorStateClass
20
20
  from homeassistant.components.switch import SwitchDeviceClass as SwitchDeviceClass
21
21
  from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, ConfigSubentryFlow as ConfigSubentryFlow, OptionsFlow as OptionsFlow, SOURCE_RECONFIGURE as SOURCE_RECONFIGURE, SubentryFlowResult as SubentryFlowResult
22
- from homeassistant.const import ATTR_CONFIGURATION_URL as ATTR_CONFIGURATION_URL, ATTR_HW_VERSION as ATTR_HW_VERSION, ATTR_MODEL as ATTR_MODEL, ATTR_MODEL_ID as ATTR_MODEL_ID, ATTR_NAME as ATTR_NAME, ATTR_SW_VERSION as ATTR_SW_VERSION, CONF_BRIGHTNESS as CONF_BRIGHTNESS, CONF_CLIENT_ID as CONF_CLIENT_ID, CONF_DEVICE as CONF_DEVICE, CONF_DEVICE_CLASS as CONF_DEVICE_CLASS, CONF_DISCOVERY as CONF_DISCOVERY, CONF_EFFECT as CONF_EFFECT, CONF_HOST as CONF_HOST, CONF_NAME as CONF_NAME, CONF_OPTIMISTIC as CONF_OPTIMISTIC, CONF_PASSWORD as CONF_PASSWORD, CONF_PAYLOAD as CONF_PAYLOAD, CONF_PAYLOAD_OFF as CONF_PAYLOAD_OFF, CONF_PAYLOAD_ON as CONF_PAYLOAD_ON, CONF_PLATFORM as CONF_PLATFORM, CONF_PORT as CONF_PORT, CONF_PROTOCOL as CONF_PROTOCOL, CONF_STATE_TEMPLATE as CONF_STATE_TEMPLATE, CONF_UNIT_OF_MEASUREMENT as CONF_UNIT_OF_MEASUREMENT, CONF_USERNAME as CONF_USERNAME, CONF_VALUE_TEMPLATE as CONF_VALUE_TEMPLATE, STATE_CLOSED as STATE_CLOSED, STATE_CLOSING as STATE_CLOSING, STATE_OPEN as STATE_OPEN, STATE_OPENING as STATE_OPENING
22
+ from homeassistant.const import ATTR_CONFIGURATION_URL as ATTR_CONFIGURATION_URL, ATTR_HW_VERSION as ATTR_HW_VERSION, ATTR_MODEL as ATTR_MODEL, ATTR_MODEL_ID as ATTR_MODEL_ID, ATTR_NAME as ATTR_NAME, ATTR_SW_VERSION as ATTR_SW_VERSION, CONF_BRIGHTNESS as CONF_BRIGHTNESS, CONF_CLIENT_ID as CONF_CLIENT_ID, CONF_DEVICE as CONF_DEVICE, CONF_DEVICE_CLASS as CONF_DEVICE_CLASS, CONF_DISCOVERY as CONF_DISCOVERY, CONF_EFFECT as CONF_EFFECT, CONF_ENTITY_CATEGORY as CONF_ENTITY_CATEGORY, CONF_HOST as CONF_HOST, CONF_NAME as CONF_NAME, CONF_OPTIMISTIC as CONF_OPTIMISTIC, CONF_PASSWORD as CONF_PASSWORD, CONF_PAYLOAD as CONF_PAYLOAD, CONF_PAYLOAD_OFF as CONF_PAYLOAD_OFF, CONF_PAYLOAD_ON as CONF_PAYLOAD_ON, CONF_PLATFORM as CONF_PLATFORM, CONF_PORT as CONF_PORT, CONF_PROTOCOL as CONF_PROTOCOL, CONF_STATE_TEMPLATE as CONF_STATE_TEMPLATE, CONF_UNIT_OF_MEASUREMENT as CONF_UNIT_OF_MEASUREMENT, CONF_USERNAME as CONF_USERNAME, CONF_VALUE_TEMPLATE as CONF_VALUE_TEMPLATE, EntityCategory as EntityCategory, STATE_CLOSED as STATE_CLOSED, STATE_CLOSING as STATE_CLOSING, STATE_OPEN as STATE_OPEN, STATE_OPENING as STATE_OPENING
23
23
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
24
24
  from homeassistant.data_entry_flow import AbortFlow as AbortFlow, SectionConfig as SectionConfig, section as section
25
25
  from homeassistant.helpers.hassio import is_hassio as is_hassio
@@ -58,8 +58,10 @@ SUBENTRY_PLATFORMS: Incomplete
58
58
  SUBENTRY_PLATFORM_SELECTOR: Incomplete
59
59
  TEMPLATE_SELECTOR: Incomplete
60
60
  SUBENTRY_AVAILABILITY_SCHEMA: Incomplete
61
+ ENTITY_CATEGORY_SELECTOR: Incomplete
61
62
  SENSOR_DEVICE_CLASS_SELECTOR: Incomplete
62
63
  BINARY_SENSOR_DEVICE_CLASS_SELECTOR: Incomplete
64
+ SENSOR_ENTITY_CATEGORY_SELECTOR: Incomplete
63
65
  BUTTON_DEVICE_CLASS_SELECTOR: Incomplete
64
66
  COVER_DEVICE_CLASS_SELECTOR: Incomplete
65
67
  SENSOR_STATE_CLASS_SELECTOR: Incomplete
@@ -107,6 +109,7 @@ def unit_of_measurement_selector(user_data: dict[str, Any | None]) -> Selector:
107
109
  def validate_light_platform_config(user_data: dict[str, Any]) -> dict[str, str]: ...
108
110
 
109
111
  COMMON_ENTITY_FIELDS: dict[str, PlatformField]
112
+ SHARED_PLATFORM_ENTITY_FIELDS: dict[str, PlatformField]
110
113
  PLATFORM_ENTITY_FIELDS: dict[str, dict[str, PlatformField]]
111
114
  PLATFORM_MQTT_FIELDS: dict[str, dict[str, PlatformField]]
112
115
  ENTITY_CONFIG_VALIDATOR: dict[str, Callable[[dict[str, Any]], dict[str, str]] | None]
@@ -173,6 +176,8 @@ class MQTTSubentryFlowHandler(ConfigSubentryFlow):
173
176
  def generate_names(self) -> tuple[str, str]: ...
174
177
  @callback
175
178
  def get_suggested_values_from_component(self, data_schema: vol.Schema) -> dict[str, Any]: ...
179
+ @callback
180
+ def get_suggested_values_from_device_data(self, data_schema: vol.Schema) -> dict[str, Any]: ...
176
181
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> SubentryFlowResult: ...
177
182
  async def async_step_reconfigure(self, user_input: dict[str, Any] | None = None) -> SubentryFlowResult: ...
178
183
  async def async_step_device(self, user_input: dict[str, Any] | None = None) -> SubentryFlowResult: ...
@@ -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,15 @@
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
+ @catch_musicassistant_error
15
+ 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,30 +1,24 @@
1
1
  from .const import DOMAIN as DOMAIN
2
2
  from _typeshed import Incomplete
3
3
  from collections.abc import Mapping
4
- from dataclasses import dataclass
5
4
  from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
6
5
  from homeassistant.const import CONF_HOST as CONF_HOST, CONF_PASSWORD as CONF_PASSWORD, CONF_USERNAME as CONF_USERNAME
7
6
  from homeassistant.core import HomeAssistant as HomeAssistant
8
7
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
9
8
  from homeassistant.helpers.device_registry import format_mac as format_mac
10
9
  from homeassistant.helpers.service_info.zeroconf import ZeroconfServiceInfo as ZeroconfServiceInfo
10
+ from nettigo_air_monitor import NettigoAirMonitor
11
11
  from typing import Any
12
12
 
13
- @dataclass
14
- class NamConfig:
15
- mac_address: str
16
- auth_enabled: bool
17
-
18
13
  _LOGGER: Incomplete
19
14
  AUTH_SCHEMA: Incomplete
20
15
 
21
- async def async_get_config(hass: HomeAssistant, host: str) -> NamConfig: ...
22
- async def async_check_credentials(hass: HomeAssistant, host: str, data: dict[str, Any]) -> None: ...
16
+ async def async_get_nam(hass: HomeAssistant, host: str, data: dict[str, Any]) -> NettigoAirMonitor: ...
23
17
 
24
18
  class NAMFlowHandler(ConfigFlow, domain=DOMAIN):
25
19
  VERSION: int
26
- _config: NamConfig
27
20
  host: str
21
+ auth_enabled: bool
28
22
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
29
23
  async def async_step_credentials(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
30
24
  async def async_step_zeroconf(self, discovery_info: ZeroconfServiceInfo) -> ConfigFlowResult: ...
@@ -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