homeassistant-stubs 2025.3.4__py3-none-any.whl → 2025.4.0b1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (322) hide show
  1. homeassistant-stubs/bootstrap.pyi +3 -2
  2. homeassistant-stubs/components/accuweather/const.pyi +3 -1
  3. homeassistant-stubs/components/accuweather/sensor.pyi +1 -1
  4. homeassistant-stubs/components/anova/config_flow.pyi +4 -1
  5. homeassistant-stubs/components/anthemav/media_player.pyi +2 -0
  6. homeassistant-stubs/components/arwn/sensor.pyi +3 -2
  7. homeassistant-stubs/components/assist_pipeline/pipeline.pyi +14 -5
  8. homeassistant-stubs/components/assist_satellite/entity.pyi +5 -3
  9. homeassistant-stubs/components/azure_storage/__init__.pyi +1 -1
  10. homeassistant-stubs/components/azure_storage/backup.pyi +1 -1
  11. homeassistant-stubs/components/azure_storage/config_flow.pyi +7 -0
  12. homeassistant-stubs/components/backup/__init__.pyi +2 -2
  13. homeassistant-stubs/components/backup/agent.pyi +1 -1
  14. homeassistant-stubs/components/backup/backup.pyi +1 -1
  15. homeassistant-stubs/components/backup/config_flow.pyi +7 -0
  16. homeassistant-stubs/components/backup/coordinator.pyi +28 -0
  17. homeassistant-stubs/components/backup/diagnostics.pyi +7 -0
  18. homeassistant-stubs/components/backup/entity.pyi +13 -0
  19. homeassistant-stubs/components/backup/http.pyi +1 -0
  20. homeassistant-stubs/components/backup/manager.pyi +8 -3
  21. homeassistant-stubs/components/backup/sensor.pyi +23 -0
  22. homeassistant-stubs/components/bosch_alarm/__init__.pyi +12 -0
  23. homeassistant-stubs/components/bosch_alarm/alarm_control_panel.pyi +31 -0
  24. homeassistant-stubs/components/bosch_alarm/config_flow.pyi +20 -0
  25. homeassistant-stubs/components/bosch_alarm/const.pyi +4 -0
  26. homeassistant-stubs/components/bring/diagnostics.pyi +5 -0
  27. homeassistant-stubs/components/brother/__init__.pyi +1 -0
  28. homeassistant-stubs/components/brother/coordinator.pyi +1 -0
  29. homeassistant-stubs/components/cloud/backup.pyi +3 -3
  30. homeassistant-stubs/components/cloud/http_api.pyi +6 -3
  31. homeassistant-stubs/components/cloud/tts.pyi +2 -2
  32. homeassistant-stubs/components/comelit/__init__.pyi +11 -0
  33. homeassistant-stubs/components/comelit/alarm_control_panel.pyi +44 -0
  34. homeassistant-stubs/components/comelit/binary_sensor.pyi +22 -0
  35. homeassistant-stubs/components/comelit/climate.pyi +60 -0
  36. homeassistant-stubs/components/comelit/config_flow.pyi +28 -0
  37. homeassistant-stubs/components/comelit/const.pyi +7 -0
  38. homeassistant-stubs/components/comelit/coordinator.pyi +38 -0
  39. homeassistant-stubs/components/comelit/cover.pyi +40 -0
  40. homeassistant-stubs/components/comelit/diagnostics.pyi +10 -0
  41. homeassistant-stubs/components/comelit/humidifier.pyi +61 -0
  42. homeassistant-stubs/components/comelit/light.pyi +28 -0
  43. homeassistant-stubs/components/comelit/sensor.pyi +45 -0
  44. homeassistant-stubs/components/comelit/switch.pyi +27 -0
  45. homeassistant-stubs/components/cover/reproduce_state.pyi +17 -6
  46. homeassistant-stubs/components/demo/valve.pyi +30 -0
  47. homeassistant-stubs/components/discovergy/__init__.pyi +1 -1
  48. homeassistant-stubs/components/energy/data.pyi +1 -0
  49. homeassistant-stubs/components/enigma2/config_flow.pyi +1 -0
  50. homeassistant-stubs/components/esphome/__init__.pyi +1 -1
  51. homeassistant-stubs/components/esphome/assist_satellite.pyi +2 -0
  52. homeassistant-stubs/components/esphome/const.pyi +1 -0
  53. homeassistant-stubs/components/esphome/diagnostics.pyi +0 -1
  54. homeassistant-stubs/components/esphome/manager.pyi +1 -1
  55. homeassistant-stubs/components/frontend/__init__.pyi +9 -10
  56. homeassistant-stubs/components/frontend/storage.pyi +2 -1
  57. homeassistant-stubs/components/gios/__init__.pyi +1 -0
  58. homeassistant-stubs/components/gios/config_flow.pyi +1 -0
  59. homeassistant-stubs/components/gios/coordinator.pyi +2 -2
  60. homeassistant-stubs/components/google/calendar.pyi +3 -2
  61. homeassistant-stubs/components/google_drive/backup.pyi +2 -2
  62. homeassistant-stubs/components/habitica/const.pyi +25 -0
  63. homeassistant-stubs/components/habitica/services.pyi +6 -2
  64. homeassistant-stubs/components/heos/const.pyi +1 -0
  65. homeassistant-stubs/components/heos/coordinator.pyi +5 -5
  66. homeassistant-stubs/components/heos/media_player.pyi +18 -8
  67. homeassistant-stubs/components/home_connect/__init__.pyi +6 -17
  68. homeassistant-stubs/components/home_connect/button.pyi +0 -2
  69. homeassistant-stubs/components/home_connect/const.pyi +0 -6
  70. homeassistant-stubs/components/home_connect/entity.pyi +1 -1
  71. homeassistant-stubs/components/home_connect/light.pyi +1 -1
  72. homeassistant-stubs/components/home_connect/number.pyi +1 -1
  73. homeassistant-stubs/components/home_connect/select.pyi +1 -1
  74. homeassistant-stubs/components/home_connect/services.pyi +35 -0
  75. homeassistant-stubs/components/home_connect/switch.pyi +1 -1
  76. homeassistant-stubs/components/home_connect/time.pyi +6 -1
  77. homeassistant-stubs/components/homeassistant_hardware/coordinator.pyi +15 -0
  78. homeassistant-stubs/components/homeassistant_hardware/update.pyi +69 -0
  79. homeassistant-stubs/components/homeassistant_hardware/util.pyi +6 -1
  80. homeassistant-stubs/components/homeassistant_sky_connect/__init__.pyi +1 -0
  81. homeassistant-stubs/components/homeassistant_sky_connect/config_flow.pyi +1 -1
  82. homeassistant-stubs/components/homeassistant_sky_connect/const.pyi +10 -0
  83. homeassistant-stubs/components/homeassistant_sky_connect/update.pyi +26 -0
  84. homeassistant-stubs/components/homeassistant_yellow/__init__.pyi +1 -1
  85. homeassistant-stubs/components/homeassistant_yellow/config_flow.pyi +1 -1
  86. homeassistant-stubs/components/homeassistant_yellow/const.pyi +4 -0
  87. homeassistant-stubs/components/homeassistant_yellow/update.pyi +26 -0
  88. homeassistant-stubs/components/homee/binary_sensor.pyi +21 -0
  89. homeassistant-stubs/components/homee/button.pyi +1 -0
  90. homeassistant-stubs/components/homee/cover.pyi +1 -0
  91. homeassistant-stubs/components/homee/light.pyi +1 -0
  92. homeassistant-stubs/components/homee/lock.pyi +25 -0
  93. homeassistant-stubs/components/homee/number.pyi +1 -0
  94. homeassistant-stubs/components/homee/select.pyi +23 -0
  95. homeassistant-stubs/components/homee/sensor.pyi +2 -0
  96. homeassistant-stubs/components/homee/switch.pyi +2 -0
  97. homeassistant-stubs/components/homee/valve.pyi +1 -0
  98. homeassistant-stubs/components/homekit/__init__.pyi +3 -1
  99. homeassistant-stubs/components/homekit/accessories.pyi +1 -0
  100. homeassistant-stubs/components/homekit/type_switches.pyi +6 -0
  101. homeassistant-stubs/components/husqvarna_automower/coordinator.pyi +7 -7
  102. homeassistant-stubs/components/incomfort/config_flow.pyi +1 -0
  103. homeassistant-stubs/components/iron_os/coordinator.pyi +2 -0
  104. homeassistant-stubs/components/iron_os/number.pyi +2 -0
  105. homeassistant-stubs/components/iron_os/select.pyi +3 -0
  106. homeassistant-stubs/components/jewish_calendar/__init__.pyi +9 -2
  107. homeassistant-stubs/components/jewish_calendar/binary_sensor.pyi +4 -4
  108. homeassistant-stubs/components/jewish_calendar/const.pyi +3 -0
  109. homeassistant-stubs/components/jewish_calendar/entity.pyi +2 -2
  110. homeassistant-stubs/components/jewish_calendar/sensor.pyi +5 -6
  111. homeassistant-stubs/components/jewish_calendar/service.pyi +10 -0
  112. homeassistant-stubs/components/lawn_mower/__init__.pyi +1 -0
  113. homeassistant-stubs/components/linkplay/entity.pyi +0 -1
  114. homeassistant-stubs/components/linkplay/media_player.pyi +3 -2
  115. homeassistant-stubs/components/linkplay/utils.pyi +0 -32
  116. homeassistant-stubs/components/mastodon/__init__.pyi +2 -2
  117. homeassistant-stubs/components/mastodon/config_flow.pyi +2 -1
  118. homeassistant-stubs/components/mastodon/const.pyi +0 -7
  119. homeassistant-stubs/components/mastodon/coordinator.pyi +5 -5
  120. homeassistant-stubs/components/mastodon/diagnostics.pyi +2 -1
  121. homeassistant-stubs/components/mastodon/entity.pyi +1 -1
  122. homeassistant-stubs/components/mastodon/notify.pyi +3 -2
  123. homeassistant-stubs/components/mastodon/sensor.pyi +2 -3
  124. homeassistant-stubs/components/mastodon/services.pyi +1 -0
  125. homeassistant-stubs/components/mastodon/utils.pyi +3 -2
  126. homeassistant-stubs/components/mcp/coordinator.pyi +2 -9
  127. homeassistant-stubs/components/mcp_server/config_flow.pyi +1 -1
  128. homeassistant-stubs/components/mcp_server/const.pyi +1 -2
  129. homeassistant-stubs/components/mcp_server/server.pyi +1 -0
  130. homeassistant-stubs/components/modbus/__init__.pyi +1 -1
  131. homeassistant-stubs/components/modbus/climate.pyi +6 -2
  132. homeassistant-stubs/components/modbus/const.pyi +10 -0
  133. homeassistant-stubs/components/mqtt/config_flow.pyi +95 -7
  134. homeassistant-stubs/components/mqtt/const.pyi +65 -0
  135. homeassistant-stubs/components/mqtt/cover.pyi +2 -0
  136. homeassistant-stubs/components/mqtt/entity.pyi +4 -4
  137. homeassistant-stubs/components/mqtt/lawn_mower.pyi +1 -2
  138. homeassistant-stubs/components/mqtt/light/schema_basic.pyi +2 -48
  139. homeassistant-stubs/components/mqtt/light/schema_json.pyi +1 -14
  140. homeassistant-stubs/components/mqtt/light/schema_template.pyi +1 -12
  141. homeassistant-stubs/components/mqtt/models.pyi +25 -1
  142. homeassistant-stubs/components/mqtt/sensor.pyi +6 -5
  143. homeassistant-stubs/components/mqtt/util.pyi +2 -0
  144. homeassistant-stubs/components/mysensors/__init__.pyi +1 -1
  145. homeassistant-stubs/components/mysensors/binary_sensor.pyi +0 -1
  146. homeassistant-stubs/components/mysensors/climate.pyi +0 -1
  147. homeassistant-stubs/components/mysensors/const.pyi +0 -1
  148. homeassistant-stubs/components/mysensors/cover.pyi +1 -2
  149. homeassistant-stubs/components/mysensors/device_tracker.pyi +0 -1
  150. homeassistant-stubs/components/mysensors/gateway.pyi +1 -1
  151. homeassistant-stubs/components/mysensors/helpers.pyi +1 -3
  152. homeassistant-stubs/components/mysensors/light.pyi +4 -5
  153. homeassistant-stubs/components/mysensors/remote.pyi +0 -1
  154. homeassistant-stubs/components/mysensors/sensor.pyi +0 -1
  155. homeassistant-stubs/components/mysensors/switch.pyi +1 -2
  156. homeassistant-stubs/components/mysensors/text.pyi +0 -1
  157. homeassistant-stubs/components/nam/button.pyi +2 -0
  158. homeassistant-stubs/components/nam/const.pyi +1 -0
  159. homeassistant-stubs/components/nam/sensor.pyi +2 -2
  160. homeassistant-stubs/components/nest/media_source.pyi +5 -0
  161. homeassistant-stubs/components/nextdns/__init__.pyi +1 -1
  162. homeassistant-stubs/components/nextdns/button.pyi +2 -0
  163. homeassistant-stubs/components/nextdns/config_flow.pyi +1 -0
  164. homeassistant-stubs/components/nextdns/switch.pyi +1 -0
  165. homeassistant-stubs/components/nut/__init__.pyi +1 -0
  166. homeassistant-stubs/components/nut/button.pyi +14 -0
  167. homeassistant-stubs/components/nut/entity.pyi +19 -0
  168. homeassistant-stubs/components/nut/sensor.pyi +8 -13
  169. homeassistant-stubs/components/nut/switch.pyi +18 -0
  170. homeassistant-stubs/components/onboarding/views.pyi +1 -0
  171. homeassistant-stubs/components/onedrive/__init__.pyi +4 -0
  172. homeassistant-stubs/components/onedrive/backup.pyi +1 -1
  173. homeassistant-stubs/components/onedrive/services.pyi +15 -0
  174. homeassistant-stubs/components/openai_conversation/__init__.pyi +5 -1
  175. homeassistant-stubs/components/openai_conversation/config_flow.pyi +5 -2
  176. homeassistant-stubs/components/openai_conversation/const.pyi +22 -11
  177. homeassistant-stubs/components/openai_conversation/conversation.pyi +6 -7
  178. homeassistant-stubs/components/overkiz/water_heater/__init__.pyi +1 -0
  179. homeassistant-stubs/components/overkiz/water_heater/atlantic_domestic_hot_water_production_v2_io_component.pyi +41 -0
  180. homeassistant-stubs/components/purpleair/__init__.pyi +5 -10
  181. homeassistant-stubs/components/purpleair/const.pyi +6 -4
  182. homeassistant-stubs/components/purpleair/coordinator.pyi +3 -2
  183. homeassistant-stubs/components/purpleair/diagnostics.pyi +2 -4
  184. homeassistant-stubs/components/purpleair/entity.pyi +2 -3
  185. homeassistant-stubs/components/purpleair/sensor.pyi +4 -5
  186. homeassistant-stubs/components/pyload/__init__.pyi +12 -0
  187. homeassistant-stubs/components/pyload/button.pyi +32 -0
  188. homeassistant-stubs/components/pyload/config_flow.pyi +23 -0
  189. homeassistant-stubs/components/pyload/const.pyi +6 -0
  190. homeassistant-stubs/components/pyload/coordinator.pyi +33 -0
  191. homeassistant-stubs/components/pyload/diagnostics.pyi +10 -0
  192. homeassistant-stubs/components/pyload/entity.pyi +13 -0
  193. homeassistant-stubs/components/pyload/sensor.pyi +33 -0
  194. homeassistant-stubs/components/pyload/switch.pyi +37 -0
  195. homeassistant-stubs/components/qbus/climate.pyi +41 -0
  196. homeassistant-stubs/components/qbus/light.pyi +3 -3
  197. homeassistant-stubs/components/recorder/const.pyi +1 -0
  198. homeassistant-stubs/components/recorder/core.pyi +1 -2
  199. homeassistant-stubs/components/recorder/db_schema.pyi +3 -1
  200. homeassistant-stubs/components/recorder/migration.pyi +16 -2
  201. homeassistant-stubs/components/recorder/models/__init__.pyi +2 -2
  202. homeassistant-stubs/components/recorder/models/statistics.pyi +10 -2
  203. homeassistant-stubs/components/recorder/statistics.pyi +27 -9
  204. homeassistant-stubs/components/recorder/table_managers/statistics_meta.pyi +5 -3
  205. homeassistant-stubs/components/recorder/websocket_api.pyi +1 -1
  206. homeassistant-stubs/components/remote_calendar/__init__.pyi +11 -0
  207. homeassistant-stubs/components/remote_calendar/calendar.pyi +26 -0
  208. homeassistant-stubs/components/remote_calendar/config_flow.pyi +13 -0
  209. homeassistant-stubs/components/remote_calendar/const.pyi +2 -0
  210. homeassistant-stubs/components/remote_calendar/coordinator.pyi +20 -0
  211. homeassistant-stubs/components/remote_calendar/diagnostics.pyi +5 -0
  212. homeassistant-stubs/components/renault/config_flow.pyi +1 -0
  213. homeassistant-stubs/components/reolink/__init__.pyi +1 -1
  214. homeassistant-stubs/components/reolink/binary_sensor.pyi +17 -1
  215. homeassistant-stubs/components/reolink/config_flow.pyi +1 -1
  216. homeassistant-stubs/components/reolink/const.pyi +1 -0
  217. homeassistant-stubs/components/reolink/host.pyi +4 -4
  218. homeassistant-stubs/components/reolink/number.pyi +21 -1
  219. homeassistant-stubs/components/reolink/select.pyi +17 -1
  220. homeassistant-stubs/components/reolink/update.pyi +2 -1
  221. homeassistant-stubs/components/reolink/util.pyi +7 -0
  222. homeassistant-stubs/components/roborock/__init__.pyi +5 -3
  223. homeassistant-stubs/components/roborock/binary_sensor.pyi +4 -1
  224. homeassistant-stubs/components/roborock/button.pyi +11 -1
  225. homeassistant-stubs/components/roborock/config_flow.pyi +7 -3
  226. homeassistant-stubs/components/roborock/const.pyi +7 -1
  227. homeassistant-stubs/components/roborock/coordinator.pyi +18 -3
  228. homeassistant-stubs/components/roborock/entity.pyi +3 -1
  229. homeassistant-stubs/components/roborock/image.pyi +2 -7
  230. homeassistant-stubs/components/roborock/models.pyi +7 -0
  231. homeassistant-stubs/components/roborock/number.pyi +1 -0
  232. homeassistant-stubs/components/roborock/select.pyi +7 -5
  233. homeassistant-stubs/components/roborock/sensor.pyi +14 -1
  234. homeassistant-stubs/components/roborock/switch.pyi +2 -0
  235. homeassistant-stubs/components/roborock/time.pyi +1 -0
  236. homeassistant-stubs/components/roborock/vacuum.pyi +1 -1
  237. homeassistant-stubs/components/sensor/const.pyi +2 -0
  238. homeassistant-stubs/components/sensor/recorder.pyi +15 -3
  239. homeassistant-stubs/components/shelly/__init__.pyi +2 -2
  240. homeassistant-stubs/components/shelly/bluetooth/__init__.pyi +4 -2
  241. homeassistant-stubs/components/shelly/button.pyi +22 -7
  242. homeassistant-stubs/components/shelly/climate.pyi +1 -1
  243. homeassistant-stubs/components/shelly/config_flow.pyi +5 -5
  244. homeassistant-stubs/components/shelly/const.pyi +0 -1
  245. homeassistant-stubs/components/shelly/coordinator.pyi +5 -1
  246. homeassistant-stubs/components/shelly/diagnostics.pyi +1 -2
  247. homeassistant-stubs/components/shelly/entity.pyi +1 -3
  248. homeassistant-stubs/components/shelly/event.pyi +1 -1
  249. homeassistant-stubs/components/shelly/number.pyi +1 -1
  250. homeassistant-stubs/components/shelly/sensor.pyi +2 -2
  251. homeassistant-stubs/components/shelly/switch.pyi +14 -14
  252. homeassistant-stubs/components/shelly/update.pyi +1 -1
  253. homeassistant-stubs/components/shelly/utils.pyi +6 -2
  254. homeassistant-stubs/components/skybell/config_flow.pyi +3 -0
  255. homeassistant-stubs/components/smlight/__init__.pyi +0 -2
  256. homeassistant-stubs/components/smlight/sensor.pyi +5 -2
  257. homeassistant-stubs/components/smlight/update.pyi +0 -1
  258. homeassistant-stubs/components/squeezebox/browse_media.pyi +6 -11
  259. homeassistant-stubs/components/squeezebox/button.pyi +31 -0
  260. homeassistant-stubs/components/squeezebox/entity.pyi +8 -2
  261. homeassistant-stubs/components/squeezebox/media_player.pyi +3 -5
  262. homeassistant-stubs/components/synology_dsm/__init__.pyi +5 -7
  263. homeassistant-stubs/components/synology_dsm/backup.pyi +3 -4
  264. homeassistant-stubs/components/synology_dsm/binary_sensor.pyi +2 -5
  265. homeassistant-stubs/components/synology_dsm/button.pyi +2 -3
  266. homeassistant-stubs/components/synology_dsm/camera.pyi +2 -4
  267. homeassistant-stubs/components/synology_dsm/config_flow.pyi +3 -2
  268. homeassistant-stubs/components/synology_dsm/coordinator.pyi +15 -5
  269. homeassistant-stubs/components/synology_dsm/diagnostics.pyi +3 -4
  270. homeassistant-stubs/components/synology_dsm/media_source.pyi +3 -1
  271. homeassistant-stubs/components/synology_dsm/repairs.pyi +2 -3
  272. homeassistant-stubs/components/synology_dsm/sensor.pyi +3 -5
  273. homeassistant-stubs/components/synology_dsm/service.pyi +1 -1
  274. homeassistant-stubs/components/synology_dsm/switch.pyi +2 -4
  275. homeassistant-stubs/components/synology_dsm/update.pyi +2 -5
  276. homeassistant-stubs/components/tibber/coordinator.pyi +1 -1
  277. homeassistant-stubs/components/todo/intent.pyi +8 -0
  278. homeassistant-stubs/components/trafikverket_ferry/config_flow.pyi +1 -0
  279. homeassistant-stubs/components/trafikverket_weatherstation/config_flow.pyi +3 -0
  280. homeassistant-stubs/components/tts/__init__.pyi +66 -51
  281. homeassistant-stubs/components/tts/entity.pyi +54 -0
  282. homeassistant-stubs/components/tts/media_source.pyi +1 -1
  283. homeassistant-stubs/components/update/__init__.pyi +2 -2
  284. homeassistant-stubs/components/usb/__init__.pyi +0 -3
  285. homeassistant-stubs/components/vodafone_station/__init__.pyi +11 -0
  286. homeassistant-stubs/components/vodafone_station/button.pyi +31 -0
  287. homeassistant-stubs/components/vodafone_station/config_flow.pyi +29 -0
  288. homeassistant-stubs/components/vodafone_station/const.pyi +9 -0
  289. homeassistant-stubs/components/vodafone_station/coordinator.pyi +43 -0
  290. homeassistant-stubs/components/vodafone_station/device_tracker.pyi +30 -0
  291. homeassistant-stubs/components/vodafone_station/diagnostics.pyi +10 -0
  292. homeassistant-stubs/components/vodafone_station/helpers.pyi +8 -0
  293. homeassistant-stubs/components/vodafone_station/sensor.pyi +38 -0
  294. homeassistant-stubs/components/zwave_js/__init__.pyi +5 -9
  295. homeassistant-stubs/components/zwave_js/api.pyi +15 -0
  296. homeassistant-stubs/components/zwave_js/config_flow.pyi +0 -1
  297. homeassistant-stubs/config_entries.pyi +2 -5
  298. homeassistant-stubs/helpers/backup.pyi +4 -1
  299. homeassistant-stubs/helpers/config_entry_oauth2_flow.pyi +14 -0
  300. homeassistant-stubs/helpers/config_validation.pyi +5 -2
  301. homeassistant-stubs/helpers/frame.pyi +14 -5
  302. homeassistant-stubs/helpers/intent.pyi +13 -4
  303. homeassistant-stubs/helpers/llm.pyi +7 -1
  304. homeassistant-stubs/helpers/selector.pyi +1 -0
  305. homeassistant-stubs/helpers/template.pyi +14 -1
  306. homeassistant-stubs/loader.pyi +18 -8
  307. homeassistant-stubs/scripts/check_config.pyi +0 -1
  308. homeassistant-stubs/util/logging.pyi +16 -1
  309. homeassistant-stubs/util/unit_conversion.pyi +3 -0
  310. homeassistant-stubs/util/unit_system.pyi +12 -10
  311. homeassistant-stubs/util/yaml/__init__.pyi +3 -4
  312. homeassistant-stubs/util/yaml/dumper.pyi +2 -8
  313. homeassistant-stubs/util/yaml/input.pyi +2 -9
  314. homeassistant-stubs/util/yaml/loader.pyi +4 -72
  315. homeassistant-stubs/util/yaml/objects.pyi +2 -26
  316. {homeassistant_stubs-2025.3.4.dist-info → homeassistant_stubs-2025.4.0b1.dist-info}/METADATA +2 -2
  317. {homeassistant_stubs-2025.3.4.dist-info → homeassistant_stubs-2025.4.0b1.dist-info}/RECORD +319 -258
  318. homeassistant-stubs/components/mcp_server/llm_api.pyi +0 -15
  319. homeassistant-stubs/components/synology_dsm/models.pyi +0 -10
  320. homeassistant-stubs/util/yaml/const.pyi +0 -1
  321. {homeassistant_stubs-2025.3.4.dist-info → homeassistant_stubs-2025.4.0b1.dist-info}/WHEEL +0 -0
  322. {homeassistant_stubs-2025.3.4.dist-info → homeassistant_stubs-2025.4.0b1.dist-info}/licenses/LICENSE +0 -0
@@ -1,4 +1,4 @@
1
- from .const import API_WS_URL as API_WS_URL, BASIC_INPUTS_EVENTS_TYPES as BASIC_INPUTS_EVENTS_TYPES, COMPONENT_ID_PATTERN as COMPONENT_ID_PATTERN, CONF_COAP_PORT as CONF_COAP_PORT, CONF_GEN as CONF_GEN, DEVICES_WITHOUT_FIRMWARE_CHANGELOG as DEVICES_WITHOUT_FIRMWARE_CHANGELOG, DOMAIN as DOMAIN, FIRMWARE_UNSUPPORTED_ISSUE_ID as FIRMWARE_UNSUPPORTED_ISSUE_ID, GEN1_RELEASE_URL as GEN1_RELEASE_URL, GEN2_BETA_RELEASE_URL as GEN2_BETA_RELEASE_URL, GEN2_RELEASE_URL as GEN2_RELEASE_URL, LOGGER as LOGGER, RPC_INPUTS_EVENTS_TYPES as RPC_INPUTS_EVENTS_TYPES, SHBTN_INPUTS_EVENTS_TYPES as SHBTN_INPUTS_EVENTS_TYPES, SHBTN_MODELS as SHBTN_MODELS, SHELLY_EMIT_EVENT_PATTERN as SHELLY_EMIT_EVENT_PATTERN, SHIX3_1_INPUTS_EVENTS_TYPES as SHIX3_1_INPUTS_EVENTS_TYPES, UPTIME_DEVIATION as UPTIME_DEVIATION, VIRTUAL_COMPONENTS_MAP as VIRTUAL_COMPONENTS_MAP
1
+ from .const import API_WS_URL as API_WS_URL, BASIC_INPUTS_EVENTS_TYPES as BASIC_INPUTS_EVENTS_TYPES, COMPONENT_ID_PATTERN as COMPONENT_ID_PATTERN, CONF_COAP_PORT as CONF_COAP_PORT, CONF_GEN as CONF_GEN, DEVICES_WITHOUT_FIRMWARE_CHANGELOG as DEVICES_WITHOUT_FIRMWARE_CHANGELOG, DOMAIN as DOMAIN, FIRMWARE_UNSUPPORTED_ISSUE_ID as FIRMWARE_UNSUPPORTED_ISSUE_ID, GEN1_RELEASE_URL as GEN1_RELEASE_URL, GEN2_BETA_RELEASE_URL as GEN2_BETA_RELEASE_URL, GEN2_RELEASE_URL as GEN2_RELEASE_URL, LOGGER as LOGGER, RPC_INPUTS_EVENTS_TYPES as RPC_INPUTS_EVENTS_TYPES, SHAIR_MAX_WORK_HOURS as SHAIR_MAX_WORK_HOURS, SHBTN_INPUTS_EVENTS_TYPES as SHBTN_INPUTS_EVENTS_TYPES, SHBTN_MODELS as SHBTN_MODELS, SHELLY_EMIT_EVENT_PATTERN as SHELLY_EMIT_EVENT_PATTERN, SHIX3_1_INPUTS_EVENTS_TYPES as SHIX3_1_INPUTS_EVENTS_TYPES, UPTIME_DEVIATION as UPTIME_DEVIATION, VIRTUAL_COMPONENTS_MAP as VIRTUAL_COMPONENTS_MAP
2
2
  from _typeshed import Incomplete
3
3
  from aiohttp.web import Request as Request, WebSocketResponse as WebSocketResponse
4
4
  from aioshelly.block_device import Block as Block, BlockDevice as BlockDevice, COAP
@@ -8,7 +8,7 @@ from datetime import datetime
8
8
  from homeassistant.components import network as network
9
9
  from homeassistant.components.http import HomeAssistantView as HomeAssistantView
10
10
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
11
- from homeassistant.const import CONF_PORT as CONF_PORT, EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP
11
+ from homeassistant.const import CONF_HOST as CONF_HOST, CONF_MODEL as CONF_MODEL, CONF_PORT as CONF_PORT, EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP
12
12
  from homeassistant.core import Event as Event, HomeAssistant as HomeAssistant, callback as callback
13
13
  from homeassistant.helpers import singleton as singleton
14
14
  from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC as CONNECTION_NETWORK_MAC
@@ -23,6 +23,7 @@ def get_number_of_channels(device: BlockDevice, block: Block) -> int: ...
23
23
  def get_block_entity_name(device: BlockDevice, block: Block | None, description: str | None = None) -> str: ...
24
24
  def get_block_channel_name(device: BlockDevice, block: Block | None) -> str: ...
25
25
  def is_block_momentary_input(settings: dict[str, Any], block: Block, include_detached: bool = False) -> bool: ...
26
+ def is_block_exclude_from_relay(settings: dict[str, Any], block: Block) -> bool: ...
26
27
  def get_device_uptime(uptime: float, last_uptime: datetime | None) -> datetime: ...
27
28
  def get_block_input_triggers(device: BlockDevice, block: Block) -> list[tuple[str, str]]: ...
28
29
  def get_shbtn_input_triggers() -> list[tuple[str, str]]: ...
@@ -72,3 +73,6 @@ def get_virtual_component_ids(config: dict[str, Any], platform: str) -> list[str
72
73
  def async_remove_orphaned_entities(hass: HomeAssistant, config_entry_id: str, mac: str, platform: str, keys: Iterable[str], key_suffix: str | None = None) -> None: ...
73
74
  def get_rpc_ws_url(hass: HomeAssistant) -> str | None: ...
74
75
  async def get_rpc_script_event_types(device: RpcDevice, id: int) -> list[str]: ...
76
+ def is_rpc_exclude_from_relay(settings: dict[str, Any], status: dict[str, Any], channel: str) -> bool: ...
77
+ def get_shelly_air_lamp_life(lamp_seconds: int) -> float: ...
78
+ async def get_rpc_scripts_event_types(device: RpcDevice, ignore_scripts: list[str]) -> dict[int, list[str]]: ...
@@ -1,10 +1,13 @@
1
1
  from .const import DOMAIN as DOMAIN
2
+ from _typeshed import Incomplete
2
3
  from collections.abc import Mapping
3
4
  from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
4
5
  from homeassistant.const import CONF_EMAIL as CONF_EMAIL, CONF_PASSWORD as CONF_PASSWORD
5
6
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
6
7
  from typing import Any
7
8
 
9
+ _LOGGER: Incomplete
10
+
8
11
  class SkybellFlowHandler(ConfigFlow, domain=DOMAIN):
9
12
  reauth_email: str
10
13
  async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> ConfigFlowResult: ...
@@ -2,10 +2,8 @@ from .coordinator import SmConfigEntry as SmConfigEntry, SmDataUpdateCoordinator
2
2
  from homeassistant.const import CONF_HOST as CONF_HOST, Platform as Platform
3
3
  from homeassistant.core import HomeAssistant as HomeAssistant
4
4
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
5
- from pysmlight import Info as Info, Radio as Radio
6
5
 
7
6
  PLATFORMS: list[Platform]
8
7
 
9
8
  async def async_setup_entry(hass: HomeAssistant, entry: SmConfigEntry) -> bool: ...
10
9
  async def async_unload_entry(hass: HomeAssistant, entry: SmConfigEntry) -> bool: ...
11
- def get_radio(info: Info, idx: int) -> Radio: ...
@@ -19,10 +19,12 @@ class SmSensorEntityDescription(SensorEntityDescription):
19
19
 
20
20
  @dataclass(frozen=True, kw_only=True)
21
21
  class SmInfoEntityDescription(SensorEntityDescription):
22
- value_fn: Callable[[Info], StateType]
22
+ value_fn: Callable[[Info, int], StateType]
23
23
 
24
24
  INFO: list[SmInfoEntityDescription]
25
+ RADIO_INFO: Incomplete
25
26
  SENSORS: list[SmSensorEntityDescription]
27
+ EXTRA_SENSOR: Incomplete
26
28
  UPTIME: list[SmSensorEntityDescription]
27
29
 
28
30
  async def async_setup_entry(hass: HomeAssistant, entry: SmConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
@@ -40,8 +42,9 @@ class SmInfoSensorEntity(SmEntity, SensorEntity):
40
42
  coordinator: SmDataUpdateCoordinator
41
43
  entity_description: SmInfoEntityDescription
42
44
  _attr_entity_category: Incomplete
45
+ idx: Incomplete
43
46
  _attr_unique_id: Incomplete
44
- def __init__(self, coordinator: SmDataUpdateCoordinator, description: SmInfoEntityDescription) -> None: ...
47
+ def __init__(self, coordinator: SmDataUpdateCoordinator, description: SmInfoEntityDescription, idx: int = 0) -> None: ...
45
48
  @property
46
49
  def native_value(self) -> StateType: ...
47
50
 
@@ -1,4 +1,3 @@
1
- from . import get_radio as get_radio
2
1
  from .const import LOGGER as LOGGER
3
2
  from .coordinator import SmConfigEntry as SmConfigEntry, SmFirmwareUpdateCoordinator as SmFirmwareUpdateCoordinator, SmFwData as SmFwData
4
3
  from .entity import SmEntity as SmEntity
@@ -11,28 +11,23 @@ from typing import Any
11
11
  LIBRARY: Incomplete
12
12
  MEDIA_TYPE_TO_SQUEEZEBOX: dict[str | MediaType, str]
13
13
  SQUEEZEBOX_ID_BY_TYPE: dict[str | MediaType, str]
14
- CONTENT_TYPE_MEDIA_CLASS: dict[str | MediaType, dict[str, MediaClass | None]]
14
+ CONTENT_TYPE_MEDIA_CLASS: dict[str | MediaType, dict[str, MediaClass | str]]
15
15
  CONTENT_TYPE_TO_CHILD_TYPE: dict[str | MediaType, str | MediaType | None]
16
16
 
17
17
  @dataclass
18
18
  class BrowseData:
19
19
  content_type_to_child_type: dict[str | MediaType, str | MediaType | None] = field(default_factory=dict)
20
- content_type_media_class: dict[str | MediaType, dict[str, MediaClass | None]] = field(default_factory=dict)
20
+ content_type_media_class: dict[str | MediaType, dict[str, MediaClass | str]] = field(default_factory=dict)
21
21
  squeezebox_id_by_type: dict[str | MediaType, str] = field(default_factory=dict)
22
22
  media_type_to_squeezebox: dict[str | MediaType, str] = field(default_factory=dict)
23
23
  known_apps_radios: set[str] = field(default_factory=set)
24
24
  def __post_init__(self) -> None: ...
25
25
 
26
- @dataclass
27
- class BrowseItemResponse:
28
- child_item_type: str | MediaType
29
- child_media_class: dict[str, MediaClass | None]
30
- can_expand: bool
31
- can_play: bool
32
-
33
26
  def _add_new_command_to_browse_data(browse_data: BrowseData, cmd: str | MediaType, type: str) -> None: ...
34
- def _build_response_apps_radios_category(browse_data: BrowseData, cmd: str | MediaType) -> BrowseItemResponse: ...
35
- def _build_response_known_app(browse_data: BrowseData, search_type: str, item: dict[str, Any]) -> BrowseItemResponse: ...
27
+ def _build_response_apps_radios_category(browse_data: BrowseData, cmd: str | MediaType, item: dict[str, Any]) -> BrowseMedia: ...
28
+ def _build_response_known_app(browse_data: BrowseData, search_type: str, item: dict[str, Any]) -> BrowseMedia: ...
29
+ def _build_response_favorites(item: dict[str, Any]) -> BrowseMedia: ...
30
+ def _get_item_thumbnail(item: dict[str, Any], player: Player, entity: MediaPlayerEntity, item_type: str | MediaType | None, search_type: str, internal_request: bool) -> str | None: ...
36
31
  async def build_item_response(entity: MediaPlayerEntity, player: Player, payload: dict[str, str | None], browse_limit: int, browse_data: BrowseData) -> BrowseMedia: ...
37
32
  async def library_payload(hass: HomeAssistant, player: Player, browse_media: BrowseData) -> BrowseMedia: ...
38
33
  def media_source_content_filter(item: BrowseMedia) -> bool: ...
@@ -0,0 +1,31 @@
1
+ from . import SqueezeboxConfigEntry as SqueezeboxConfigEntry
2
+ from .const import SIGNAL_PLAYER_DISCOVERED as SIGNAL_PLAYER_DISCOVERED
3
+ from .coordinator import SqueezeBoxPlayerUpdateCoordinator as SqueezeBoxPlayerUpdateCoordinator
4
+ from .entity import SqueezeboxEntity as SqueezeboxEntity
5
+ from _typeshed import Incomplete
6
+ from dataclasses import dataclass
7
+ from homeassistant.components.button import ButtonEntity as ButtonEntity, ButtonEntityDescription as ButtonEntityDescription
8
+ from homeassistant.core import HomeAssistant as HomeAssistant
9
+ from homeassistant.helpers.device_registry import format_mac as format_mac
10
+ from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
11
+ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
12
+
13
+ _LOGGER: Incomplete
14
+ HARDWARE_MODELS_WITH_SCREEN: Incomplete
15
+ HARDWARE_MODELS_WITH_TONE: Incomplete
16
+
17
+ @dataclass(frozen=True, kw_only=True)
18
+ class SqueezeboxButtonEntityDescription(ButtonEntityDescription):
19
+ press_action: str
20
+
21
+ BUTTON_ENTITIES: tuple[SqueezeboxButtonEntityDescription, ...]
22
+ SCREEN_BUTTON_ENTITIES: tuple[SqueezeboxButtonEntityDescription, ...]
23
+ TONE_BUTTON_ENTITIES: tuple[SqueezeboxButtonEntityDescription, ...]
24
+
25
+ async def async_setup_entry(hass: HomeAssistant, entry: SqueezeboxConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
26
+
27
+ class SqueezeboxButtonEntity(SqueezeboxEntity, ButtonEntity):
28
+ entity_description: SqueezeboxButtonEntityDescription
29
+ _attr_unique_id: Incomplete
30
+ def __init__(self, coordinator: SqueezeBoxPlayerUpdateCoordinator, entity_description: SqueezeboxButtonEntityDescription) -> None: ...
31
+ async def async_press(self) -> None: ...
@@ -1,10 +1,16 @@
1
1
  from .const import DOMAIN as DOMAIN, STATUS_QUERY_UUID as STATUS_QUERY_UUID
2
- from .coordinator import LMSStatusDataUpdateCoordinator as LMSStatusDataUpdateCoordinator
2
+ from .coordinator import LMSStatusDataUpdateCoordinator as LMSStatusDataUpdateCoordinator, SqueezeBoxPlayerUpdateCoordinator as SqueezeBoxPlayerUpdateCoordinator
3
3
  from _typeshed import Incomplete
4
- from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
4
+ from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC as CONNECTION_NETWORK_MAC, DeviceInfo as DeviceInfo, format_mac as format_mac
5
5
  from homeassistant.helpers.entity import EntityDescription as EntityDescription
6
6
  from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
7
7
 
8
+ class SqueezeboxEntity(CoordinatorEntity[SqueezeBoxPlayerUpdateCoordinator]):
9
+ _attr_has_entity_name: bool
10
+ _player: Incomplete
11
+ _attr_device_info: Incomplete
12
+ def __init__(self, coordinator: SqueezeBoxPlayerUpdateCoordinator) -> None: ...
13
+
8
14
  class LMSStatusEntity(CoordinatorEntity[LMSStatusDataUpdateCoordinator]):
9
15
  _attr_has_entity_name: bool
10
16
  entity_description: Incomplete
@@ -2,6 +2,7 @@ from . import SqueezeboxConfigEntry as SqueezeboxConfigEntry
2
2
  from .browse_media import BrowseData as BrowseData, build_item_response as build_item_response, generate_playlist as generate_playlist, library_payload as library_payload, media_source_content_filter as media_source_content_filter
3
3
  from .const import ATTR_ANNOUNCE_TIMEOUT as ATTR_ANNOUNCE_TIMEOUT, ATTR_ANNOUNCE_VOLUME as ATTR_ANNOUNCE_VOLUME, CONF_BROWSE_LIMIT as CONF_BROWSE_LIMIT, CONF_VOLUME_STEP as CONF_VOLUME_STEP, DEFAULT_BROWSE_LIMIT as DEFAULT_BROWSE_LIMIT, DEFAULT_VOLUME_STEP as DEFAULT_VOLUME_STEP, DISCOVERY_TASK as DISCOVERY_TASK, DOMAIN as DOMAIN, KNOWN_PLAYERS as KNOWN_PLAYERS, KNOWN_SERVERS as KNOWN_SERVERS, SIGNAL_PLAYER_DISCOVERED as SIGNAL_PLAYER_DISCOVERED, SQUEEZEBOX_SOURCE_STRINGS as SQUEEZEBOX_SOURCE_STRINGS
4
4
  from .coordinator import SqueezeBoxPlayerUpdateCoordinator as SqueezeBoxPlayerUpdateCoordinator
5
+ from .entity import SqueezeboxEntity as SqueezeboxEntity
5
6
  from _typeshed import Incomplete
6
7
  from collections.abc import Callable as Callable
7
8
  from datetime import datetime
@@ -12,11 +13,10 @@ from homeassistant.const import ATTR_COMMAND as ATTR_COMMAND, CONF_HOST as CONF_
12
13
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
13
14
  from homeassistant.exceptions import ServiceValidationError as ServiceValidationError
14
15
  from homeassistant.helpers import discovery_flow as discovery_flow, entity_platform as entity_platform
15
- from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC as CONNECTION_NETWORK_MAC, DeviceInfo as DeviceInfo, format_mac as format_mac
16
+ from homeassistant.helpers.device_registry import format_mac as format_mac
16
17
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
17
18
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
18
19
  from homeassistant.helpers.start import async_at_start as async_at_start
19
- from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
20
20
  from homeassistant.util.dt import utcnow as utcnow
21
21
  from pysqueezebox import Server as Server
22
22
  from typing import Any
@@ -35,17 +35,15 @@ async def async_setup_entry(hass: HomeAssistant, entry: SqueezeboxConfigEntry, a
35
35
  def get_announce_volume(extra: dict) -> float | None: ...
36
36
  def get_announce_timeout(extra: dict) -> int | None: ...
37
37
 
38
- class SqueezeBoxMediaPlayerEntity(CoordinatorEntity[SqueezeBoxPlayerUpdateCoordinator], MediaPlayerEntity):
38
+ class SqueezeBoxMediaPlayerEntity(SqueezeboxEntity, MediaPlayerEntity):
39
39
  _attr_supported_features: Incomplete
40
40
  _attr_has_entity_name: bool
41
41
  _attr_name: Incomplete
42
42
  _last_update: datetime | None
43
- _player: Incomplete
44
43
  _query_result: bool | dict
45
44
  _remove_dispatcher: Callable | None
46
45
  _previous_media_position: int
47
46
  _attr_unique_id: Incomplete
48
- _attr_device_info: Incomplete
49
47
  _browse_data: Incomplete
50
48
  def __init__(self, coordinator: SqueezeBoxPlayerUpdateCoordinator) -> None: ...
51
49
  @callback
@@ -1,10 +1,8 @@
1
1
  from .common import SynoApi as SynoApi, raise_config_entry_auth_error as raise_config_entry_auth_error
2
2
  from .const import CONF_BACKUP_PATH as CONF_BACKUP_PATH, CONF_BACKUP_SHARE as CONF_BACKUP_SHARE, DATA_BACKUP_AGENT_LISTENERS as DATA_BACKUP_AGENT_LISTENERS, DEFAULT_VERIFY_SSL as DEFAULT_VERIFY_SSL, DOMAIN as DOMAIN, EXCEPTION_DETAILS as EXCEPTION_DETAILS, EXCEPTION_UNKNOWN as EXCEPTION_UNKNOWN, PLATFORMS as PLATFORMS, SYNOLOGY_AUTH_FAILED_EXCEPTIONS as SYNOLOGY_AUTH_FAILED_EXCEPTIONS, SYNOLOGY_CONNECTION_EXCEPTIONS as SYNOLOGY_CONNECTION_EXCEPTIONS
3
- from .coordinator import SynologyDSMCameraUpdateCoordinator as SynologyDSMCameraUpdateCoordinator, SynologyDSMCentralUpdateCoordinator as SynologyDSMCentralUpdateCoordinator, SynologyDSMSwitchUpdateCoordinator as SynologyDSMSwitchUpdateCoordinator
4
- from .models import SynologyDSMData as SynologyDSMData
3
+ from .coordinator import SynologyDSMCameraUpdateCoordinator as SynologyDSMCameraUpdateCoordinator, SynologyDSMCentralUpdateCoordinator as SynologyDSMCentralUpdateCoordinator, SynologyDSMConfigEntry as SynologyDSMConfigEntry, SynologyDSMData as SynologyDSMData, SynologyDSMSwitchUpdateCoordinator as SynologyDSMSwitchUpdateCoordinator
5
4
  from .service import async_setup_services as async_setup_services
6
5
  from _typeshed import Incomplete
7
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
6
  from homeassistant.const import CONF_MAC as CONF_MAC, CONF_SCAN_INTERVAL as CONF_SCAN_INTERVAL, CONF_VERIFY_SSL as CONF_VERIFY_SSL
9
7
  from homeassistant.core import HomeAssistant as HomeAssistant
10
8
  from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady
@@ -13,7 +11,7 @@ from synology_dsm.api.surveillance_station.camera import SynoCamera as SynoCamer
13
11
 
14
12
  _LOGGER: Incomplete
15
13
 
16
- async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
17
- async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
18
- async def _async_update_listener(hass: HomeAssistant, entry: ConfigEntry) -> None: ...
19
- async def async_remove_config_entry_device(hass: HomeAssistant, entry: ConfigEntry, device_entry: dr.DeviceEntry) -> bool: ...
14
+ async def async_setup_entry(hass: HomeAssistant, entry: SynologyDSMConfigEntry) -> bool: ...
15
+ async def async_unload_entry(hass: HomeAssistant, entry: SynologyDSMConfigEntry) -> bool: ...
16
+ async def _async_update_listener(hass: HomeAssistant, entry: SynologyDSMConfigEntry) -> None: ...
17
+ async def async_remove_config_entry_device(hass: HomeAssistant, entry: SynologyDSMConfigEntry, device_entry: dr.DeviceEntry) -> bool: ...
@@ -1,9 +1,8 @@
1
1
  from .const import CONF_BACKUP_PATH as CONF_BACKUP_PATH, CONF_BACKUP_SHARE as CONF_BACKUP_SHARE, DATA_BACKUP_AGENT_LISTENERS as DATA_BACKUP_AGENT_LISTENERS, DOMAIN as DOMAIN
2
- from .models import SynologyDSMData as SynologyDSMData
2
+ from .coordinator import SynologyDSMConfigEntry as SynologyDSMConfigEntry
3
3
  from _typeshed import Incomplete
4
4
  from collections.abc import AsyncIterator, Callable as Callable, Coroutine
5
5
  from homeassistant.components.backup import AgentBackup as AgentBackup, BackupAgent as BackupAgent, BackupAgentError as BackupAgentError, BackupNotFound as BackupNotFound, suggested_filename as suggested_filename
6
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
6
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
8
7
  from homeassistant.helpers.aiohttp_client import ChunkAsyncStreamIterator as ChunkAsyncStreamIterator
9
8
  from homeassistant.helpers.json import json_dumps as json_dumps
@@ -25,7 +24,7 @@ class SynologyDSMBackupAgent(BackupAgent):
25
24
  path: Incomplete
26
25
  api: Incomplete
27
26
  backup_base_names: dict[str, str]
28
- def __init__(self, hass: HomeAssistant, entry: ConfigEntry, unique_id: str) -> None: ...
27
+ def __init__(self, hass: HomeAssistant, entry: SynologyDSMConfigEntry, unique_id: str) -> None: ...
29
28
  @property
30
29
  def _file_station(self) -> SynoFileStation: ...
31
30
  async def _async_backup_filenames(self, backup_id: str) -> tuple[str, str]: ...
@@ -34,4 +33,4 @@ class SynologyDSMBackupAgent(BackupAgent):
34
33
  async def async_delete_backup(self, backup_id: str, **kwargs: Any) -> None: ...
35
34
  async def async_list_backups(self, **kwargs: Any) -> list[AgentBackup]: ...
36
35
  async def _async_list_backups(self, **kwargs: Any) -> dict[str, AgentBackup]: ...
37
- async def async_get_backup(self, backup_id: str, **kwargs: Any) -> AgentBackup | None: ...
36
+ async def async_get_backup(self, backup_id: str, **kwargs: Any) -> AgentBackup: ...
@@ -1,11 +1,8 @@
1
1
  from . import SynoApi as SynoApi
2
- from .const import DOMAIN as DOMAIN
3
- from .coordinator import SynologyDSMCentralUpdateCoordinator as SynologyDSMCentralUpdateCoordinator
2
+ from .coordinator import SynologyDSMCentralUpdateCoordinator as SynologyDSMCentralUpdateCoordinator, SynologyDSMConfigEntry as SynologyDSMConfigEntry
4
3
  from .entity import SynologyDSMBaseEntity as SynologyDSMBaseEntity, SynologyDSMDeviceEntity as SynologyDSMDeviceEntity, SynologyDSMEntityDescription as SynologyDSMEntityDescription
5
- from .models import SynologyDSMData as SynologyDSMData
6
4
  from dataclasses import dataclass
7
5
  from homeassistant.components.binary_sensor import BinarySensorDeviceClass as BinarySensorDeviceClass, BinarySensorEntity as BinarySensorEntity, BinarySensorEntityDescription as BinarySensorEntityDescription
8
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
9
6
  from homeassistant.const import CONF_DISKS as CONF_DISKS, EntityCategory as EntityCategory
10
7
  from homeassistant.core import HomeAssistant as HomeAssistant
11
8
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
@@ -16,7 +13,7 @@ class SynologyDSMBinarySensorEntityDescription(BinarySensorEntityDescription, Sy
16
13
  SECURITY_BINARY_SENSORS: tuple[SynologyDSMBinarySensorEntityDescription, ...]
17
14
  STORAGE_DISK_BINARY_SENSORS: tuple[SynologyDSMBinarySensorEntityDescription, ...]
18
15
 
19
- async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
16
+ async def async_setup_entry(hass: HomeAssistant, entry: SynologyDSMConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
20
17
 
21
18
  class SynoDSMBinarySensor(SynologyDSMBaseEntity[SynologyDSMCentralUpdateCoordinator], BinarySensorEntity):
22
19
  entity_description: SynologyDSMBinarySensorEntityDescription
@@ -1,11 +1,10 @@
1
1
  from . import SynoApi as SynoApi
2
2
  from .const import DOMAIN as DOMAIN
3
- from .models import SynologyDSMData as SynologyDSMData
3
+ from .coordinator import SynologyDSMConfigEntry as SynologyDSMConfigEntry
4
4
  from _typeshed import Incomplete
5
5
  from collections.abc import Callable as Callable, Coroutine
6
6
  from dataclasses import dataclass
7
7
  from homeassistant.components.button import ButtonDeviceClass as ButtonDeviceClass, ButtonEntity as ButtonEntity, ButtonEntityDescription as ButtonEntityDescription
8
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
9
8
  from homeassistant.const import EntityCategory as EntityCategory
10
9
  from homeassistant.core import HomeAssistant as HomeAssistant
11
10
  from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
@@ -20,7 +19,7 @@ class SynologyDSMbuttonDescription(ButtonEntityDescription):
20
19
 
21
20
  BUTTONS: Final[Incomplete]
22
21
 
23
- async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
22
+ async def async_setup_entry(hass: HomeAssistant, entry: SynologyDSMConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
24
23
 
25
24
  class SynologyDSMButton(ButtonEntity):
26
25
  entity_description: SynologyDSMbuttonDescription
@@ -1,12 +1,10 @@
1
1
  from . import SynoApi as SynoApi
2
2
  from .const import CONF_SNAPSHOT_QUALITY as CONF_SNAPSHOT_QUALITY, DEFAULT_SNAPSHOT_QUALITY as DEFAULT_SNAPSHOT_QUALITY, DOMAIN as DOMAIN, SIGNAL_CAMERA_SOURCE_CHANGED as SIGNAL_CAMERA_SOURCE_CHANGED
3
- from .coordinator import SynologyDSMCameraUpdateCoordinator as SynologyDSMCameraUpdateCoordinator
3
+ from .coordinator import SynologyDSMCameraUpdateCoordinator as SynologyDSMCameraUpdateCoordinator, SynologyDSMConfigEntry as SynologyDSMConfigEntry
4
4
  from .entity import SynologyDSMBaseEntity as SynologyDSMBaseEntity, SynologyDSMEntityDescription as SynologyDSMEntityDescription
5
- from .models import SynologyDSMData as SynologyDSMData
6
5
  from _typeshed import Incomplete
7
6
  from dataclasses import dataclass
8
7
  from homeassistant.components.camera import Camera as Camera, CameraEntityDescription as CameraEntityDescription, CameraEntityFeature as CameraEntityFeature
9
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
10
8
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
11
9
  from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
12
10
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
@@ -19,7 +17,7 @@ _LOGGER: Incomplete
19
17
  class SynologyDSMCameraEntityDescription(CameraEntityDescription, SynologyDSMEntityDescription):
20
18
  camera_id: int
21
19
 
22
- async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
20
+ async def async_setup_entry(hass: HomeAssistant, entry: SynologyDSMConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
23
21
 
24
22
  class SynoDSMCamera(SynologyDSMBaseEntity[SynologyDSMCameraUpdateCoordinator], Camera):
25
23
  _attr_supported_features: Incomplete
@@ -1,6 +1,6 @@
1
1
  import voluptuous as vol
2
2
  from .const import CONF_BACKUP_PATH as CONF_BACKUP_PATH, CONF_BACKUP_SHARE as CONF_BACKUP_SHARE, CONF_DEVICE_TOKEN as CONF_DEVICE_TOKEN, CONF_SNAPSHOT_QUALITY as CONF_SNAPSHOT_QUALITY, CONF_VOLUMES as CONF_VOLUMES, DEFAULT_BACKUP_PATH as DEFAULT_BACKUP_PATH, DEFAULT_PORT as DEFAULT_PORT, DEFAULT_PORT_SSL as DEFAULT_PORT_SSL, DEFAULT_SNAPSHOT_QUALITY as DEFAULT_SNAPSHOT_QUALITY, DEFAULT_TIMEOUT as DEFAULT_TIMEOUT, DEFAULT_USE_SSL as DEFAULT_USE_SSL, DEFAULT_VERIFY_SSL as DEFAULT_VERIFY_SSL, DOMAIN as DOMAIN, SYNOLOGY_CONNECTION_EXCEPTIONS as SYNOLOGY_CONNECTION_EXCEPTIONS
3
- from .models import SynologyDSMData as SynologyDSMData
3
+ from .coordinator import SynologyDSMConfigEntry as SynologyDSMConfigEntry
4
4
  from _typeshed import Incomplete
5
5
  from collections.abc import Mapping
6
6
  from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow
@@ -31,7 +31,7 @@ class SynologyDSMFlowHandler(ConfigFlow, domain=DOMAIN):
31
31
  VERSION: int
32
32
  @staticmethod
33
33
  @callback
34
- def async_get_options_flow(config_entry: ConfigEntry) -> SynologyDSMOptionsFlowHandler: ...
34
+ def async_get_options_flow(config_entry: SynologyDSMConfigEntry) -> SynologyDSMOptionsFlowHandler: ...
35
35
  saved_user_input: dict[str, Any]
36
36
  discovered_conf: dict[str, Any]
37
37
  reauth_conf: Mapping[str, Any]
@@ -52,6 +52,7 @@ class SynologyDSMFlowHandler(ConfigFlow, domain=DOMAIN):
52
52
  def _async_get_existing_entry(self, discovered_mac: str) -> ConfigEntry | None: ...
53
53
 
54
54
  class SynologyDSMOptionsFlowHandler(OptionsFlow):
55
+ config_entry: SynologyDSMConfigEntry
55
56
  async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
56
57
 
57
58
  async def _login_and_fetch_syno_info(api: SynologyDSM, otp_code: str | None) -> str: ...
@@ -2,6 +2,7 @@ from .common import SynoApi as SynoApi, raise_config_entry_auth_error as raise_c
2
2
  from .const import SIGNAL_CAMERA_SOURCE_CHANGED as SIGNAL_CAMERA_SOURCE_CHANGED, SYNOLOGY_AUTH_FAILED_EXCEPTIONS as SYNOLOGY_AUTH_FAILED_EXCEPTIONS, SYNOLOGY_CONNECTION_EXCEPTIONS as SYNOLOGY_CONNECTION_EXCEPTIONS
3
3
  from _typeshed import Incomplete
4
4
  from collections.abc import Awaitable, Callable as Callable, Coroutine
5
+ from dataclasses import dataclass
5
6
  from datetime import timedelta
6
7
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
8
  from homeassistant.core import HomeAssistant as HomeAssistant
@@ -12,26 +13,35 @@ from typing import Any, Concatenate
12
13
 
13
14
  _LOGGER: Incomplete
14
15
 
16
+ @dataclass
17
+ class SynologyDSMData:
18
+ api: SynoApi
19
+ coordinator_central: SynologyDSMCentralUpdateCoordinator
20
+ coordinator_central_old_update_success: bool
21
+ coordinator_cameras: SynologyDSMCameraUpdateCoordinator | None
22
+ coordinator_switches: SynologyDSMSwitchUpdateCoordinator | None
23
+ type SynologyDSMConfigEntry = ConfigEntry[SynologyDSMData]
24
+
15
25
  def async_re_login_on_expired[_T: SynologyDSMUpdateCoordinator[Any], **_P, _R](func: Callable[Concatenate[_T, _P], Awaitable[_R]]) -> Callable[Concatenate[_T, _P], Coroutine[Any, Any, _R]]: ...
16
26
 
17
27
  class SynologyDSMUpdateCoordinator[_DataT](DataUpdateCoordinator[_DataT]):
18
- config_entry: ConfigEntry
28
+ config_entry: SynologyDSMConfigEntry
19
29
  api: Incomplete
20
- def __init__(self, hass: HomeAssistant, entry: ConfigEntry, api: SynoApi, update_interval: timedelta) -> None: ...
30
+ def __init__(self, hass: HomeAssistant, entry: SynologyDSMConfigEntry, api: SynoApi, update_interval: timedelta) -> None: ...
21
31
 
22
32
  class SynologyDSMSwitchUpdateCoordinator(SynologyDSMUpdateCoordinator[dict[str, dict[str, Any]]]):
23
33
  version: str | None
24
- def __init__(self, hass: HomeAssistant, entry: ConfigEntry, api: SynoApi) -> None: ...
34
+ def __init__(self, hass: HomeAssistant, entry: SynologyDSMConfigEntry, api: SynoApi) -> None: ...
25
35
  async def async_setup(self) -> None: ...
26
36
  @async_re_login_on_expired
27
37
  async def _async_update_data(self) -> dict[str, dict[str, Any]]: ...
28
38
 
29
39
  class SynologyDSMCentralUpdateCoordinator(SynologyDSMUpdateCoordinator[None]):
30
- def __init__(self, hass: HomeAssistant, entry: ConfigEntry, api: SynoApi) -> None: ...
40
+ def __init__(self, hass: HomeAssistant, entry: SynologyDSMConfigEntry, api: SynoApi) -> None: ...
31
41
  @async_re_login_on_expired
32
42
  async def _async_update_data(self) -> None: ...
33
43
 
34
44
  class SynologyDSMCameraUpdateCoordinator(SynologyDSMUpdateCoordinator[dict[str, dict[int, SynoCamera]]]):
35
- def __init__(self, hass: HomeAssistant, entry: ConfigEntry, api: SynoApi) -> None: ...
45
+ def __init__(self, hass: HomeAssistant, entry: SynologyDSMConfigEntry, api: SynoApi) -> None: ...
36
46
  @async_re_login_on_expired
37
47
  async def _async_update_data(self) -> dict[str, dict[int, SynoCamera]]: ...
@@ -1,12 +1,11 @@
1
- from .const import CONF_DEVICE_TOKEN as CONF_DEVICE_TOKEN, DOMAIN as DOMAIN
2
- from .models import SynologyDSMData as SynologyDSMData
1
+ from .const import CONF_DEVICE_TOKEN as CONF_DEVICE_TOKEN
2
+ from .coordinator import SynologyDSMConfigEntry as SynologyDSMConfigEntry
3
3
  from _typeshed import Incomplete
4
4
  from homeassistant.components.diagnostics import async_redact_data as async_redact_data
5
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
6
5
  from homeassistant.const import CONF_PASSWORD as CONF_PASSWORD, CONF_USERNAME as CONF_USERNAME
7
6
  from homeassistant.core import HomeAssistant as HomeAssistant
8
7
  from typing import Any
9
8
 
10
9
  TO_REDACT: Incomplete
11
10
 
12
- async def async_get_config_entry_diagnostics(hass: HomeAssistant, entry: ConfigEntry) -> dict[str, Any]: ...
11
+ async def async_get_config_entry_diagnostics(hass: HomeAssistant, entry: SynologyDSMConfigEntry) -> dict[str, Any]: ...
@@ -1,5 +1,5 @@
1
1
  from .const import DOMAIN as DOMAIN, SHARED_SUFFIX as SHARED_SUFFIX
2
- from .models import SynologyDSMData as SynologyDSMData
2
+ from .coordinator import SynologyDSMConfigEntry as SynologyDSMConfigEntry, SynologyDSMData as SynologyDSMData
3
3
  from _typeshed import Incomplete
4
4
  from aiohttp import web
5
5
  from homeassistant.components import http as http
@@ -9,6 +9,8 @@ from homeassistant.config_entries import ConfigEntry as ConfigEntry
9
9
  from homeassistant.core import HomeAssistant as HomeAssistant
10
10
  from synology_dsm.api.photos import SynoPhotosItem
11
11
 
12
+ LOGGER: Incomplete
13
+
12
14
  async def async_get_media_source(hass: HomeAssistant) -> MediaSource: ...
13
15
 
14
16
  class SynologyPhotosMediaSourceIdentifier:
@@ -1,9 +1,8 @@
1
1
  from .const import CONF_BACKUP_PATH as CONF_BACKUP_PATH, CONF_BACKUP_SHARE as CONF_BACKUP_SHARE, DOMAIN as DOMAIN, ISSUE_MISSING_BACKUP_SETUP as ISSUE_MISSING_BACKUP_SETUP, SYNOLOGY_CONNECTION_EXCEPTIONS as SYNOLOGY_CONNECTION_EXCEPTIONS
2
- from .models import SynologyDSMData as SynologyDSMData
2
+ from .coordinator import SynologyDSMConfigEntry as SynologyDSMConfigEntry
3
3
  from _typeshed import Incomplete
4
4
  from homeassistant import data_entry_flow as data_entry_flow
5
5
  from homeassistant.components.repairs import ConfirmRepairFlow as ConfirmRepairFlow, RepairsFlow as RepairsFlow
6
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
6
  from homeassistant.core import HomeAssistant as HomeAssistant
8
7
  from homeassistant.helpers.selector import SelectOptionDict as SelectOptionDict, SelectSelector as SelectSelector, SelectSelectorConfig as SelectSelectorConfig, SelectSelectorMode as SelectSelectorMode
9
8
  from synology_dsm.api.file_station.models import SynoFileSharedFolder as SynoFileSharedFolder
@@ -13,7 +12,7 @@ LOGGER: Incomplete
13
12
  class MissingBackupSetupRepairFlow(RepairsFlow):
14
13
  entry: Incomplete
15
14
  issue_id: Incomplete
16
- def __init__(self, entry: ConfigEntry, issue_id: str) -> None: ...
15
+ def __init__(self, entry: SynologyDSMConfigEntry, issue_id: str) -> None: ...
17
16
  async def async_step_init(self, user_input: dict[str, str] | None = None) -> data_entry_flow.FlowResult: ...
18
17
  async def async_step_confirm(self, user_input: dict[str, str] | None = None) -> data_entry_flow.FlowResult: ...
19
18
  async def async_step_ignore(self, _: dict[str, str] | None = None) -> data_entry_flow.FlowResult: ...
@@ -1,12 +1,10 @@
1
1
  from . import SynoApi as SynoApi
2
- from .const import CONF_VOLUMES as CONF_VOLUMES, DOMAIN as DOMAIN, ENTITY_UNIT_LOAD as ENTITY_UNIT_LOAD
3
- from .coordinator import SynologyDSMCentralUpdateCoordinator as SynologyDSMCentralUpdateCoordinator
2
+ from .const import CONF_VOLUMES as CONF_VOLUMES, ENTITY_UNIT_LOAD as ENTITY_UNIT_LOAD
3
+ from .coordinator import SynologyDSMCentralUpdateCoordinator as SynologyDSMCentralUpdateCoordinator, SynologyDSMConfigEntry as SynologyDSMConfigEntry
4
4
  from .entity import SynologyDSMBaseEntity as SynologyDSMBaseEntity, SynologyDSMDeviceEntity as SynologyDSMDeviceEntity, SynologyDSMEntityDescription as SynologyDSMEntityDescription
5
- from .models import SynologyDSMData as SynologyDSMData
6
5
  from dataclasses import dataclass
7
6
  from datetime import datetime
8
7
  from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
9
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
10
8
  from homeassistant.const import CONF_DISKS as CONF_DISKS, EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE, UnitOfDataRate as UnitOfDataRate, UnitOfInformation as UnitOfInformation, UnitOfTemperature as UnitOfTemperature
11
9
  from homeassistant.core import HomeAssistant as HomeAssistant
12
10
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
@@ -21,7 +19,7 @@ STORAGE_VOL_SENSORS: tuple[SynologyDSMSensorEntityDescription, ...]
21
19
  STORAGE_DISK_SENSORS: tuple[SynologyDSMSensorEntityDescription, ...]
22
20
  INFORMATION_SENSORS: tuple[SynologyDSMSensorEntityDescription, ...]
23
21
 
24
- async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
22
+ async def async_setup_entry(hass: HomeAssistant, entry: SynologyDSMConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
25
23
 
26
24
  class SynoDSMSensor(SynologyDSMBaseEntity[SynologyDSMCentralUpdateCoordinator], SensorEntity):
27
25
  entity_description: SynologyDSMSensorEntityDescription
@@ -1,5 +1,5 @@
1
1
  from .const import CONF_SERIAL as CONF_SERIAL, DOMAIN as DOMAIN, SERVICES as SERVICES, SERVICE_REBOOT as SERVICE_REBOOT, SERVICE_SHUTDOWN as SERVICE_SHUTDOWN
2
- from .models import SynologyDSMData as SynologyDSMData
2
+ from .coordinator import SynologyDSMConfigEntry as SynologyDSMConfigEntry
3
3
  from _typeshed import Incomplete
4
4
  from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall
5
5
 
@@ -1,12 +1,10 @@
1
1
  from . import SynoApi as SynoApi
2
2
  from .const import DOMAIN as DOMAIN
3
- from .coordinator import SynologyDSMSwitchUpdateCoordinator as SynologyDSMSwitchUpdateCoordinator
3
+ from .coordinator import SynologyDSMConfigEntry as SynologyDSMConfigEntry, SynologyDSMSwitchUpdateCoordinator as SynologyDSMSwitchUpdateCoordinator
4
4
  from .entity import SynologyDSMBaseEntity as SynologyDSMBaseEntity, SynologyDSMEntityDescription as SynologyDSMEntityDescription
5
- from .models import SynologyDSMData as SynologyDSMData
6
5
  from _typeshed import Incomplete
7
6
  from dataclasses import dataclass
8
7
  from homeassistant.components.switch import SwitchEntity as SwitchEntity, SwitchEntityDescription as SwitchEntityDescription
9
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
10
8
  from homeassistant.core import HomeAssistant as HomeAssistant
11
9
  from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
12
10
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
@@ -19,7 +17,7 @@ class SynologyDSMSwitchEntityDescription(SwitchEntityDescription, SynologyDSMEnt
19
17
 
20
18
  SURVEILLANCE_SWITCH: tuple[SynologyDSMSwitchEntityDescription, ...]
21
19
 
22
- async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
20
+ async def async_setup_entry(hass: HomeAssistant, entry: SynologyDSMConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
23
21
 
24
22
  class SynoDSMSurveillanceHomeModeToggle(SynologyDSMBaseEntity[SynologyDSMSwitchUpdateCoordinator], SwitchEntity):
25
23
  entity_description: SynologyDSMSwitchEntityDescription
@@ -1,11 +1,8 @@
1
- from .const import DOMAIN as DOMAIN
2
- from .coordinator import SynologyDSMCentralUpdateCoordinator as SynologyDSMCentralUpdateCoordinator
1
+ from .coordinator import SynologyDSMCentralUpdateCoordinator as SynologyDSMCentralUpdateCoordinator, SynologyDSMConfigEntry as SynologyDSMConfigEntry
3
2
  from .entity import SynologyDSMBaseEntity as SynologyDSMBaseEntity, SynologyDSMEntityDescription as SynologyDSMEntityDescription
4
- from .models import SynologyDSMData as SynologyDSMData
5
3
  from _typeshed import Incomplete
6
4
  from dataclasses import dataclass
7
5
  from homeassistant.components.update import UpdateEntity as UpdateEntity, UpdateEntityDescription as UpdateEntityDescription
8
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
9
6
  from homeassistant.const import EntityCategory as EntityCategory
10
7
  from homeassistant.core import HomeAssistant as HomeAssistant
11
8
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
@@ -16,7 +13,7 @@ class SynologyDSMUpdateEntityEntityDescription(UpdateEntityDescription, Synology
16
13
 
17
14
  UPDATE_ENTITIES: Final[Incomplete]
18
15
 
19
- async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
16
+ async def async_setup_entry(hass: HomeAssistant, entry: SynologyDSMConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
20
17
 
21
18
  class SynoDSMUpdateEntity(SynologyDSMBaseEntity[SynologyDSMCentralUpdateCoordinator], UpdateEntity):
22
19
  entity_description: SynologyDSMUpdateEntityEntityDescription
@@ -1,7 +1,7 @@
1
1
  import tibber
2
2
  from _typeshed import Incomplete
3
3
  from homeassistant.components.recorder import get_instance as get_instance
4
- from homeassistant.components.recorder.models import StatisticData as StatisticData, StatisticMetaData as StatisticMetaData
4
+ from homeassistant.components.recorder.models import StatisticData as StatisticData, StatisticMeanType as StatisticMeanType, StatisticMetaData as StatisticMetaData
5
5
  from homeassistant.components.recorder.statistics import async_add_external_statistics as async_add_external_statistics, get_last_statistics as get_last_statistics, statistics_during_period as statistics_during_period
6
6
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
7
  from homeassistant.const import UnitOfEnergy as UnitOfEnergy
@@ -5,6 +5,7 @@ from homeassistant.core import HomeAssistant as HomeAssistant
5
5
  from homeassistant.helpers import intent as intent
6
6
 
7
7
  INTENT_LIST_ADD_ITEM: str
8
+ INTENT_LIST_COMPLETE_ITEM: str
8
9
 
9
10
  async def async_setup_intents(hass: HomeAssistant) -> None: ...
10
11
 
@@ -14,3 +15,10 @@ class ListAddItemIntent(intent.IntentHandler):
14
15
  slot_schema: Incomplete
15
16
  platforms: Incomplete
16
17
  async def async_handle(self, intent_obj: intent.Intent) -> intent.IntentResponse: ...
18
+
19
+ class ListCompleteItemIntent(intent.IntentHandler):
20
+ intent_type = INTENT_LIST_COMPLETE_ITEM
21
+ description: str
22
+ slot_schema: Incomplete
23
+ platforms: Incomplete
24
+ async def async_handle(self, intent_obj: intent.Intent) -> intent.IntentResponse: ...
@@ -8,6 +8,7 @@ from homeassistant.helpers import selector as selector
8
8
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
9
9
  from typing import Any
10
10
 
11
+ _LOGGER: Incomplete
11
12
  DATA_SCHEMA: Incomplete
12
13
  DATA_SCHEMA_REAUTH: Incomplete
13
14
 
@@ -1,4 +1,5 @@
1
1
  from .const import CONF_STATION as CONF_STATION, DOMAIN as DOMAIN
2
+ from _typeshed import Incomplete
2
3
  from collections.abc import Mapping
3
4
  from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
4
5
  from homeassistant.const import CONF_API_KEY as CONF_API_KEY
@@ -6,6 +7,8 @@ from homeassistant.helpers.aiohttp_client import async_get_clientsession as asyn
6
7
  from homeassistant.helpers.selector import TextSelector as TextSelector, TextSelectorConfig as TextSelectorConfig, TextSelectorType as TextSelectorType
7
8
  from typing import Any
8
9
 
10
+ _LOGGER: Incomplete
11
+
9
12
  class TVWeatherConfigFlow(ConfigFlow, domain=DOMAIN):
10
13
  VERSION: int
11
14
  async def validate_input(self, sensor_api: str, station: str) -> None: ...