homeassistant-stubs 2025.3.4__py3-none-any.whl → 2025.4.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.
Files changed (332) 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/const.pyi +3 -0
  9. homeassistant-stubs/components/assist_satellite/entity.pyi +6 -4
  10. homeassistant-stubs/components/azure_storage/__init__.pyi +1 -1
  11. homeassistant-stubs/components/azure_storage/backup.pyi +1 -1
  12. homeassistant-stubs/components/azure_storage/config_flow.pyi +7 -0
  13. homeassistant-stubs/components/backup/__init__.pyi +2 -2
  14. homeassistant-stubs/components/backup/agent.pyi +1 -1
  15. homeassistant-stubs/components/backup/backup.pyi +1 -1
  16. homeassistant-stubs/components/backup/config_flow.pyi +7 -0
  17. homeassistant-stubs/components/backup/coordinator.pyi +28 -0
  18. homeassistant-stubs/components/backup/diagnostics.pyi +7 -0
  19. homeassistant-stubs/components/backup/entity.pyi +13 -0
  20. homeassistant-stubs/components/backup/http.pyi +1 -0
  21. homeassistant-stubs/components/backup/manager.pyi +8 -3
  22. homeassistant-stubs/components/backup/sensor.pyi +23 -0
  23. homeassistant-stubs/components/bosch_alarm/__init__.pyi +12 -0
  24. homeassistant-stubs/components/bosch_alarm/alarm_control_panel.pyi +31 -0
  25. homeassistant-stubs/components/bosch_alarm/config_flow.pyi +20 -0
  26. homeassistant-stubs/components/bosch_alarm/const.pyi +4 -0
  27. homeassistant-stubs/components/bring/diagnostics.pyi +5 -0
  28. homeassistant-stubs/components/brother/__init__.pyi +1 -0
  29. homeassistant-stubs/components/brother/coordinator.pyi +1 -0
  30. homeassistant-stubs/components/cloud/backup.pyi +3 -3
  31. homeassistant-stubs/components/cloud/http_api.pyi +6 -3
  32. homeassistant-stubs/components/cloud/tts.pyi +2 -2
  33. homeassistant-stubs/components/comelit/__init__.pyi +11 -0
  34. homeassistant-stubs/components/comelit/alarm_control_panel.pyi +44 -0
  35. homeassistant-stubs/components/comelit/binary_sensor.pyi +22 -0
  36. homeassistant-stubs/components/comelit/climate.pyi +60 -0
  37. homeassistant-stubs/components/comelit/config_flow.pyi +28 -0
  38. homeassistant-stubs/components/comelit/const.pyi +7 -0
  39. homeassistant-stubs/components/comelit/coordinator.pyi +38 -0
  40. homeassistant-stubs/components/comelit/cover.pyi +39 -0
  41. homeassistant-stubs/components/comelit/diagnostics.pyi +10 -0
  42. homeassistant-stubs/components/comelit/humidifier.pyi +61 -0
  43. homeassistant-stubs/components/comelit/light.pyi +28 -0
  44. homeassistant-stubs/components/comelit/sensor.pyi +45 -0
  45. homeassistant-stubs/components/comelit/switch.pyi +27 -0
  46. homeassistant-stubs/components/cover/reproduce_state.pyi +17 -6
  47. homeassistant-stubs/components/demo/valve.pyi +30 -0
  48. homeassistant-stubs/components/discovergy/__init__.pyi +1 -1
  49. homeassistant-stubs/components/energy/data.pyi +1 -0
  50. homeassistant-stubs/components/enigma2/config_flow.pyi +1 -0
  51. homeassistant-stubs/components/esphome/__init__.pyi +1 -1
  52. homeassistant-stubs/components/esphome/assist_satellite.pyi +2 -0
  53. homeassistant-stubs/components/esphome/config_flow.pyi +1 -0
  54. homeassistant-stubs/components/esphome/const.pyi +1 -0
  55. homeassistant-stubs/components/esphome/diagnostics.pyi +0 -1
  56. homeassistant-stubs/components/esphome/event.pyi +2 -0
  57. homeassistant-stubs/components/esphome/manager.pyi +1 -1
  58. homeassistant-stubs/components/fritzbox/climate.pyi +1 -1
  59. homeassistant-stubs/components/frontend/__init__.pyi +9 -10
  60. homeassistant-stubs/components/frontend/storage.pyi +2 -1
  61. homeassistant-stubs/components/gios/__init__.pyi +1 -0
  62. homeassistant-stubs/components/gios/config_flow.pyi +1 -0
  63. homeassistant-stubs/components/gios/coordinator.pyi +2 -2
  64. homeassistant-stubs/components/google/calendar.pyi +3 -2
  65. homeassistant-stubs/components/google_drive/backup.pyi +2 -2
  66. homeassistant-stubs/components/habitica/const.pyi +25 -0
  67. homeassistant-stubs/components/habitica/services.pyi +6 -2
  68. homeassistant-stubs/components/heos/const.pyi +1 -0
  69. homeassistant-stubs/components/heos/coordinator.pyi +5 -5
  70. homeassistant-stubs/components/heos/media_player.pyi +18 -8
  71. homeassistant-stubs/components/home_connect/__init__.pyi +6 -17
  72. homeassistant-stubs/components/home_connect/button.pyi +0 -2
  73. homeassistant-stubs/components/home_connect/const.pyi +0 -6
  74. homeassistant-stubs/components/home_connect/entity.pyi +1 -1
  75. homeassistant-stubs/components/home_connect/light.pyi +1 -1
  76. homeassistant-stubs/components/home_connect/number.pyi +1 -1
  77. homeassistant-stubs/components/home_connect/select.pyi +1 -1
  78. homeassistant-stubs/components/home_connect/services.pyi +35 -0
  79. homeassistant-stubs/components/home_connect/switch.pyi +2 -1
  80. homeassistant-stubs/components/home_connect/time.pyi +6 -1
  81. homeassistant-stubs/components/homeassistant_hardware/coordinator.pyi +15 -0
  82. homeassistant-stubs/components/homeassistant_hardware/firmware_config_flow.pyi +2 -1
  83. homeassistant-stubs/components/homeassistant_hardware/update.pyi +68 -0
  84. homeassistant-stubs/components/homeassistant_hardware/util.pyi +6 -1
  85. homeassistant-stubs/components/homeassistant_sky_connect/__init__.pyi +7 -1
  86. homeassistant-stubs/components/homeassistant_sky_connect/config_flow.pyi +1 -1
  87. homeassistant-stubs/components/homeassistant_sky_connect/const.pyi +10 -0
  88. homeassistant-stubs/components/homeassistant_sky_connect/update.pyi +29 -0
  89. homeassistant-stubs/components/homeassistant_yellow/__init__.pyi +1 -1
  90. homeassistant-stubs/components/homeassistant_yellow/config_flow.pyi +1 -1
  91. homeassistant-stubs/components/homeassistant_yellow/const.pyi +4 -0
  92. homeassistant-stubs/components/homeassistant_yellow/update.pyi +29 -0
  93. homeassistant-stubs/components/homee/binary_sensor.pyi +21 -0
  94. homeassistant-stubs/components/homee/button.pyi +1 -0
  95. homeassistant-stubs/components/homee/cover.pyi +1 -0
  96. homeassistant-stubs/components/homee/light.pyi +1 -0
  97. homeassistant-stubs/components/homee/lock.pyi +25 -0
  98. homeassistant-stubs/components/homee/number.pyi +1 -0
  99. homeassistant-stubs/components/homee/select.pyi +23 -0
  100. homeassistant-stubs/components/homee/sensor.pyi +2 -0
  101. homeassistant-stubs/components/homee/switch.pyi +2 -0
  102. homeassistant-stubs/components/homee/valve.pyi +1 -0
  103. homeassistant-stubs/components/homekit/__init__.pyi +3 -1
  104. homeassistant-stubs/components/homekit/accessories.pyi +1 -0
  105. homeassistant-stubs/components/homekit/type_switches.pyi +6 -0
  106. homeassistant-stubs/components/huawei_lte/__init__.pyi +1 -1
  107. homeassistant-stubs/components/husqvarna_automower/coordinator.pyi +7 -7
  108. homeassistant-stubs/components/incomfort/config_flow.pyi +1 -0
  109. homeassistant-stubs/components/iron_os/coordinator.pyi +2 -0
  110. homeassistant-stubs/components/iron_os/number.pyi +2 -0
  111. homeassistant-stubs/components/iron_os/select.pyi +3 -0
  112. homeassistant-stubs/components/jewish_calendar/__init__.pyi +9 -2
  113. homeassistant-stubs/components/jewish_calendar/binary_sensor.pyi +4 -4
  114. homeassistant-stubs/components/jewish_calendar/const.pyi +3 -0
  115. homeassistant-stubs/components/jewish_calendar/entity.pyi +2 -2
  116. homeassistant-stubs/components/jewish_calendar/sensor.pyi +5 -6
  117. homeassistant-stubs/components/jewish_calendar/service.pyi +10 -0
  118. homeassistant-stubs/components/lawn_mower/__init__.pyi +1 -0
  119. homeassistant-stubs/components/linkplay/entity.pyi +0 -1
  120. homeassistant-stubs/components/linkplay/media_player.pyi +3 -2
  121. homeassistant-stubs/components/linkplay/utils.pyi +0 -32
  122. homeassistant-stubs/components/lovelace/__init__.pyi +3 -1
  123. homeassistant-stubs/components/mastodon/__init__.pyi +2 -2
  124. homeassistant-stubs/components/mastodon/config_flow.pyi +2 -1
  125. homeassistant-stubs/components/mastodon/const.pyi +0 -7
  126. homeassistant-stubs/components/mastodon/coordinator.pyi +5 -5
  127. homeassistant-stubs/components/mastodon/diagnostics.pyi +2 -1
  128. homeassistant-stubs/components/mastodon/entity.pyi +1 -1
  129. homeassistant-stubs/components/mastodon/notify.pyi +3 -2
  130. homeassistant-stubs/components/mastodon/sensor.pyi +2 -3
  131. homeassistant-stubs/components/mastodon/services.pyi +1 -0
  132. homeassistant-stubs/components/mastodon/utils.pyi +3 -2
  133. homeassistant-stubs/components/mcp/coordinator.pyi +2 -9
  134. homeassistant-stubs/components/mcp_server/config_flow.pyi +1 -1
  135. homeassistant-stubs/components/mcp_server/const.pyi +1 -2
  136. homeassistant-stubs/components/mcp_server/server.pyi +1 -0
  137. homeassistant-stubs/components/modbus/__init__.pyi +1 -1
  138. homeassistant-stubs/components/modbus/climate.pyi +6 -2
  139. homeassistant-stubs/components/modbus/const.pyi +10 -0
  140. homeassistant-stubs/components/mqtt/config_flow.pyi +95 -7
  141. homeassistant-stubs/components/mqtt/const.pyi +65 -0
  142. homeassistant-stubs/components/mqtt/cover.pyi +2 -0
  143. homeassistant-stubs/components/mqtt/entity.pyi +4 -4
  144. homeassistant-stubs/components/mqtt/lawn_mower.pyi +1 -2
  145. homeassistant-stubs/components/mqtt/light/schema_basic.pyi +2 -48
  146. homeassistant-stubs/components/mqtt/light/schema_json.pyi +1 -14
  147. homeassistant-stubs/components/mqtt/light/schema_template.pyi +3 -14
  148. homeassistant-stubs/components/mqtt/models.pyi +25 -1
  149. homeassistant-stubs/components/mqtt/sensor.pyi +6 -5
  150. homeassistant-stubs/components/mqtt/update.pyi +1 -1
  151. homeassistant-stubs/components/mqtt/util.pyi +2 -0
  152. homeassistant-stubs/components/mysensors/__init__.pyi +1 -1
  153. homeassistant-stubs/components/mysensors/binary_sensor.pyi +0 -1
  154. homeassistant-stubs/components/mysensors/climate.pyi +0 -1
  155. homeassistant-stubs/components/mysensors/const.pyi +0 -1
  156. homeassistant-stubs/components/mysensors/cover.pyi +1 -2
  157. homeassistant-stubs/components/mysensors/device_tracker.pyi +0 -1
  158. homeassistant-stubs/components/mysensors/gateway.pyi +1 -1
  159. homeassistant-stubs/components/mysensors/helpers.pyi +1 -3
  160. homeassistant-stubs/components/mysensors/light.pyi +4 -5
  161. homeassistant-stubs/components/mysensors/remote.pyi +0 -1
  162. homeassistant-stubs/components/mysensors/sensor.pyi +0 -1
  163. homeassistant-stubs/components/mysensors/switch.pyi +1 -2
  164. homeassistant-stubs/components/mysensors/text.pyi +0 -1
  165. homeassistant-stubs/components/nam/button.pyi +2 -0
  166. homeassistant-stubs/components/nam/const.pyi +1 -0
  167. homeassistant-stubs/components/nam/sensor.pyi +2 -2
  168. homeassistant-stubs/components/nest/media_source.pyi +5 -0
  169. homeassistant-stubs/components/nextdns/__init__.pyi +1 -1
  170. homeassistant-stubs/components/nextdns/button.pyi +2 -0
  171. homeassistant-stubs/components/nextdns/config_flow.pyi +1 -0
  172. homeassistant-stubs/components/nextdns/switch.pyi +1 -0
  173. homeassistant-stubs/components/nut/__init__.pyi +1 -0
  174. homeassistant-stubs/components/nut/button.pyi +14 -0
  175. homeassistant-stubs/components/nut/entity.pyi +19 -0
  176. homeassistant-stubs/components/nut/sensor.pyi +8 -13
  177. homeassistant-stubs/components/nut/switch.pyi +18 -0
  178. homeassistant-stubs/components/onboarding/views.pyi +2 -1
  179. homeassistant-stubs/components/onedrive/__init__.pyi +4 -0
  180. homeassistant-stubs/components/onedrive/backup.pyi +1 -1
  181. homeassistant-stubs/components/onedrive/services.pyi +15 -0
  182. homeassistant-stubs/components/openai_conversation/__init__.pyi +5 -1
  183. homeassistant-stubs/components/openai_conversation/config_flow.pyi +5 -2
  184. homeassistant-stubs/components/openai_conversation/const.pyi +22 -11
  185. homeassistant-stubs/components/openai_conversation/conversation.pyi +6 -7
  186. homeassistant-stubs/components/overkiz/water_heater/__init__.pyi +1 -0
  187. homeassistant-stubs/components/overkiz/water_heater/atlantic_domestic_hot_water_production_v2_io_component.pyi +41 -0
  188. homeassistant-stubs/components/purpleair/__init__.pyi +5 -10
  189. homeassistant-stubs/components/purpleair/const.pyi +6 -4
  190. homeassistant-stubs/components/purpleair/coordinator.pyi +3 -2
  191. homeassistant-stubs/components/purpleair/diagnostics.pyi +2 -4
  192. homeassistant-stubs/components/purpleair/entity.pyi +2 -3
  193. homeassistant-stubs/components/purpleair/sensor.pyi +4 -5
  194. homeassistant-stubs/components/pyload/__init__.pyi +12 -0
  195. homeassistant-stubs/components/pyload/button.pyi +32 -0
  196. homeassistant-stubs/components/pyload/config_flow.pyi +23 -0
  197. homeassistant-stubs/components/pyload/const.pyi +6 -0
  198. homeassistant-stubs/components/pyload/coordinator.pyi +34 -0
  199. homeassistant-stubs/components/pyload/diagnostics.pyi +10 -0
  200. homeassistant-stubs/components/pyload/entity.pyi +13 -0
  201. homeassistant-stubs/components/pyload/sensor.pyi +33 -0
  202. homeassistant-stubs/components/pyload/switch.pyi +37 -0
  203. homeassistant-stubs/components/qbus/climate.pyi +41 -0
  204. homeassistant-stubs/components/qbus/light.pyi +3 -3
  205. homeassistant-stubs/components/recorder/const.pyi +1 -0
  206. homeassistant-stubs/components/recorder/core.pyi +1 -2
  207. homeassistant-stubs/components/recorder/db_schema.pyi +3 -1
  208. homeassistant-stubs/components/recorder/migration.pyi +16 -2
  209. homeassistant-stubs/components/recorder/models/__init__.pyi +2 -2
  210. homeassistant-stubs/components/recorder/models/statistics.pyi +10 -2
  211. homeassistant-stubs/components/recorder/statistics.pyi +27 -9
  212. homeassistant-stubs/components/recorder/table_managers/statistics_meta.pyi +5 -3
  213. homeassistant-stubs/components/recorder/websocket_api.pyi +1 -1
  214. homeassistant-stubs/components/remote_calendar/__init__.pyi +11 -0
  215. homeassistant-stubs/components/remote_calendar/calendar.pyi +26 -0
  216. homeassistant-stubs/components/remote_calendar/config_flow.pyi +13 -0
  217. homeassistant-stubs/components/remote_calendar/const.pyi +2 -0
  218. homeassistant-stubs/components/remote_calendar/coordinator.pyi +20 -0
  219. homeassistant-stubs/components/remote_calendar/diagnostics.pyi +5 -0
  220. homeassistant-stubs/components/renault/config_flow.pyi +1 -0
  221. homeassistant-stubs/components/reolink/__init__.pyi +1 -1
  222. homeassistant-stubs/components/reolink/binary_sensor.pyi +17 -1
  223. homeassistant-stubs/components/reolink/config_flow.pyi +1 -1
  224. homeassistant-stubs/components/reolink/const.pyi +1 -0
  225. homeassistant-stubs/components/reolink/host.pyi +4 -4
  226. homeassistant-stubs/components/reolink/number.pyi +21 -1
  227. homeassistant-stubs/components/reolink/select.pyi +17 -1
  228. homeassistant-stubs/components/reolink/update.pyi +2 -1
  229. homeassistant-stubs/components/reolink/util.pyi +7 -0
  230. homeassistant-stubs/components/roborock/__init__.pyi +5 -3
  231. homeassistant-stubs/components/roborock/binary_sensor.pyi +4 -1
  232. homeassistant-stubs/components/roborock/button.pyi +11 -1
  233. homeassistant-stubs/components/roborock/config_flow.pyi +7 -3
  234. homeassistant-stubs/components/roborock/const.pyi +7 -1
  235. homeassistant-stubs/components/roborock/coordinator.pyi +18 -3
  236. homeassistant-stubs/components/roborock/entity.pyi +3 -1
  237. homeassistant-stubs/components/roborock/image.pyi +2 -7
  238. homeassistant-stubs/components/roborock/models.pyi +7 -0
  239. homeassistant-stubs/components/roborock/number.pyi +1 -0
  240. homeassistant-stubs/components/roborock/select.pyi +7 -5
  241. homeassistant-stubs/components/roborock/sensor.pyi +14 -1
  242. homeassistant-stubs/components/roborock/switch.pyi +2 -0
  243. homeassistant-stubs/components/roborock/time.pyi +1 -0
  244. homeassistant-stubs/components/roborock/vacuum.pyi +1 -1
  245. homeassistant-stubs/components/sensor/const.pyi +2 -0
  246. homeassistant-stubs/components/sensor/recorder.pyi +15 -3
  247. homeassistant-stubs/components/shelly/__init__.pyi +2 -2
  248. homeassistant-stubs/components/shelly/bluetooth/__init__.pyi +4 -2
  249. homeassistant-stubs/components/shelly/button.pyi +22 -7
  250. homeassistant-stubs/components/shelly/climate.pyi +1 -1
  251. homeassistant-stubs/components/shelly/config_flow.pyi +5 -5
  252. homeassistant-stubs/components/shelly/const.pyi +0 -1
  253. homeassistant-stubs/components/shelly/coordinator.pyi +5 -1
  254. homeassistant-stubs/components/shelly/diagnostics.pyi +1 -2
  255. homeassistant-stubs/components/shelly/entity.pyi +1 -3
  256. homeassistant-stubs/components/shelly/event.pyi +1 -1
  257. homeassistant-stubs/components/shelly/number.pyi +1 -1
  258. homeassistant-stubs/components/shelly/sensor.pyi +2 -2
  259. homeassistant-stubs/components/shelly/switch.pyi +14 -14
  260. homeassistant-stubs/components/shelly/update.pyi +1 -1
  261. homeassistant-stubs/components/shelly/utils.pyi +6 -2
  262. homeassistant-stubs/components/skybell/config_flow.pyi +3 -0
  263. homeassistant-stubs/components/smlight/__init__.pyi +0 -2
  264. homeassistant-stubs/components/smlight/sensor.pyi +5 -2
  265. homeassistant-stubs/components/smlight/update.pyi +0 -1
  266. homeassistant-stubs/components/squeezebox/browse_media.pyi +6 -11
  267. homeassistant-stubs/components/squeezebox/button.pyi +31 -0
  268. homeassistant-stubs/components/squeezebox/entity.pyi +8 -2
  269. homeassistant-stubs/components/squeezebox/media_player.pyi +3 -5
  270. homeassistant-stubs/components/synology_dsm/__init__.pyi +5 -7
  271. homeassistant-stubs/components/synology_dsm/backup.pyi +3 -4
  272. homeassistant-stubs/components/synology_dsm/binary_sensor.pyi +2 -5
  273. homeassistant-stubs/components/synology_dsm/button.pyi +2 -3
  274. homeassistant-stubs/components/synology_dsm/camera.pyi +2 -4
  275. homeassistant-stubs/components/synology_dsm/config_flow.pyi +3 -2
  276. homeassistant-stubs/components/synology_dsm/coordinator.pyi +15 -5
  277. homeassistant-stubs/components/synology_dsm/diagnostics.pyi +3 -4
  278. homeassistant-stubs/components/synology_dsm/media_source.pyi +3 -1
  279. homeassistant-stubs/components/synology_dsm/repairs.pyi +2 -3
  280. homeassistant-stubs/components/synology_dsm/sensor.pyi +3 -5
  281. homeassistant-stubs/components/synology_dsm/service.pyi +1 -1
  282. homeassistant-stubs/components/synology_dsm/switch.pyi +2 -4
  283. homeassistant-stubs/components/synology_dsm/update.pyi +2 -5
  284. homeassistant-stubs/components/tibber/coordinator.pyi +1 -1
  285. homeassistant-stubs/components/todo/intent.pyi +8 -0
  286. homeassistant-stubs/components/trafikverket_ferry/config_flow.pyi +1 -0
  287. homeassistant-stubs/components/trafikverket_weatherstation/config_flow.pyi +3 -0
  288. homeassistant-stubs/components/tts/__init__.pyi +66 -51
  289. homeassistant-stubs/components/tts/entity.pyi +54 -0
  290. homeassistant-stubs/components/tts/media_source.pyi +1 -1
  291. homeassistant-stubs/components/update/__init__.pyi +2 -2
  292. homeassistant-stubs/components/usb/__init__.pyi +1 -5
  293. homeassistant-stubs/components/usb/utils.pyi +2 -0
  294. homeassistant-stubs/components/vodafone_station/__init__.pyi +11 -0
  295. homeassistant-stubs/components/vodafone_station/button.pyi +31 -0
  296. homeassistant-stubs/components/vodafone_station/config_flow.pyi +29 -0
  297. homeassistant-stubs/components/vodafone_station/const.pyi +9 -0
  298. homeassistant-stubs/components/vodafone_station/coordinator.pyi +43 -0
  299. homeassistant-stubs/components/vodafone_station/device_tracker.pyi +30 -0
  300. homeassistant-stubs/components/vodafone_station/diagnostics.pyi +10 -0
  301. homeassistant-stubs/components/vodafone_station/helpers.pyi +8 -0
  302. homeassistant-stubs/components/vodafone_station/sensor.pyi +38 -0
  303. homeassistant-stubs/components/zwave_js/__init__.pyi +5 -9
  304. homeassistant-stubs/components/zwave_js/api.pyi +15 -0
  305. homeassistant-stubs/components/zwave_js/config_flow.pyi +0 -1
  306. homeassistant-stubs/config_entries.pyi +2 -5
  307. homeassistant-stubs/helpers/backup.pyi +4 -1
  308. homeassistant-stubs/helpers/config_entry_oauth2_flow.pyi +14 -0
  309. homeassistant-stubs/helpers/config_validation.pyi +5 -2
  310. homeassistant-stubs/helpers/frame.pyi +14 -5
  311. homeassistant-stubs/helpers/intent.pyi +13 -4
  312. homeassistant-stubs/helpers/llm.pyi +7 -1
  313. homeassistant-stubs/helpers/script.pyi +1 -1
  314. homeassistant-stubs/helpers/selector.pyi +1 -0
  315. homeassistant-stubs/helpers/template.pyi +14 -1
  316. homeassistant-stubs/loader.pyi +18 -8
  317. homeassistant-stubs/scripts/check_config.pyi +0 -1
  318. homeassistant-stubs/util/logging.pyi +18 -1
  319. homeassistant-stubs/util/unit_conversion.pyi +3 -0
  320. homeassistant-stubs/util/unit_system.pyi +12 -10
  321. homeassistant-stubs/util/yaml/__init__.pyi +3 -4
  322. homeassistant-stubs/util/yaml/dumper.pyi +2 -8
  323. homeassistant-stubs/util/yaml/input.pyi +2 -9
  324. homeassistant-stubs/util/yaml/loader.pyi +4 -72
  325. homeassistant-stubs/util/yaml/objects.pyi +2 -26
  326. {homeassistant_stubs-2025.3.4.dist-info → homeassistant_stubs-2025.4.0.dist-info}/METADATA +2 -2
  327. {homeassistant_stubs-2025.3.4.dist-info → homeassistant_stubs-2025.4.0.dist-info}/RECORD +329 -268
  328. homeassistant-stubs/components/mcp_server/llm_api.pyi +0 -15
  329. homeassistant-stubs/components/synology_dsm/models.pyi +0 -10
  330. homeassistant-stubs/util/yaml/const.pyi +0 -1
  331. {homeassistant_stubs-2025.3.4.dist-info → homeassistant_stubs-2025.4.0.dist-info}/WHEEL +0 -0
  332. {homeassistant_stubs-2025.3.4.dist-info → homeassistant_stubs-2025.4.0.dist-info}/licenses/LICENSE +0 -0
@@ -3,9 +3,10 @@ from homeassistant.components import websocket_api as websocket_api
3
3
  from homeassistant.components.websocket_api import ActiveConnection as ActiveConnection
4
4
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
5
5
  from homeassistant.helpers.storage import Store as Store
6
+ from homeassistant.util.hass_dict import HassKey as HassKey
6
7
  from typing import Any
7
8
 
8
- DATA_STORAGE: str
9
+ DATA_STORAGE: HassKey[tuple[dict[str, Store], dict[str, dict]]]
9
10
  STORAGE_VERSION_USER_DATA: int
10
11
 
11
12
  @callback
@@ -3,6 +3,7 @@ from .coordinator import GiosConfigEntry as GiosConfigEntry, GiosData as GiosDat
3
3
  from _typeshed import Incomplete
4
4
  from homeassistant.const import Platform as Platform
5
5
  from homeassistant.core import HomeAssistant as HomeAssistant
6
+ from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady
6
7
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
7
8
 
8
9
  _LOGGER: Incomplete
@@ -2,6 +2,7 @@ from .const import API_TIMEOUT as API_TIMEOUT, CONF_STATION_ID as CONF_STATION_I
2
2
  from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
3
3
  from homeassistant.const import CONF_NAME as CONF_NAME
4
4
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
5
+ from homeassistant.helpers.selector import SelectOptionDict as SelectOptionDict, SelectSelector as SelectSelector, SelectSelectorConfig as SelectSelectorConfig, SelectSelectorMode as SelectSelectorMode
5
6
  from typing import Any
6
7
 
7
8
  class GiosFlowHandler(ConfigFlow, domain=DOMAIN):
@@ -1,7 +1,7 @@
1
1
  from .const import API_TIMEOUT as API_TIMEOUT, DOMAIN as DOMAIN, SCAN_INTERVAL as SCAN_INTERVAL
2
2
  from _typeshed import Incomplete
3
- from aiohttp import ClientSession as ClientSession
4
3
  from dataclasses import dataclass
4
+ from gios import Gios as Gios
5
5
  from gios.model import GiosSensors
6
6
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
7
  from homeassistant.core import HomeAssistant as HomeAssistant
@@ -17,5 +17,5 @@ class GiosData:
17
17
  class GiosDataUpdateCoordinator(DataUpdateCoordinator[GiosSensors]):
18
18
  config_entry: GiosConfigEntry
19
19
  gios: Incomplete
20
- def __init__(self, hass: HomeAssistant, config_entry: GiosConfigEntry, session: ClientSession, station_id: int) -> None: ...
20
+ def __init__(self, hass: HomeAssistant, config_entry: GiosConfigEntry, gios: Gios) -> None: ...
21
21
  async def _async_update_data(self) -> GiosSensors: ...
@@ -6,7 +6,7 @@ from .coordinator import CalendarQueryUpdateCoordinator as CalendarQueryUpdateCo
6
6
  from _typeshed import Incomplete
7
7
  from collections.abc import Mapping
8
8
  from datetime import datetime, timedelta
9
- from gcal_sync.model import Calendar as Calendar, Event
9
+ from gcal_sync.model import Calendar as Calendar, Event, EventTypeEnum
10
10
  from homeassistant.components.calendar import CREATE_EVENT_SCHEMA as CREATE_EVENT_SCHEMA, CalendarEntity as CalendarEntity, CalendarEntityDescription as CalendarEntityDescription, CalendarEntityFeature as CalendarEntityFeature, CalendarEvent as CalendarEvent, ENTITY_ID_FORMAT as ENTITY_ID_FORMAT, EVENT_DESCRIPTION as EVENT_DESCRIPTION, EVENT_END as EVENT_END, EVENT_LOCATION as EVENT_LOCATION, EVENT_RRULE as EVENT_RRULE, EVENT_START as EVENT_START, EVENT_SUMMARY as EVENT_SUMMARY, extract_offset as extract_offset, is_offset_reached as is_offset_reached
11
11
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
12
12
  from homeassistant.const import CONF_DEVICE_ID as CONF_DEVICE_ID, CONF_ENTITIES as CONF_ENTITIES, CONF_NAME as CONF_NAME, CONF_OFFSET as CONF_OFFSET
@@ -23,6 +23,7 @@ SYNC_EVENT_MIN_TIME: Incomplete
23
23
  OPAQUE: str
24
24
  RRULE_PREFIX: str
25
25
  SERVICE_CREATE_EVENT: str
26
+ FILTERED_EVENT_TYPES: Incomplete
26
27
 
27
28
  @dataclasses.dataclass(frozen=True, kw_only=True)
28
29
  class GoogleCalendarEntityDescription(CalendarEntityDescription):
@@ -34,7 +35,7 @@ class GoogleCalendarEntityDescription(CalendarEntityDescription):
34
35
  search: str | None
35
36
  local_sync: bool
36
37
  device_id: str
37
- working_location: bool = ...
38
+ event_type: EventTypeEnum | None = ...
38
39
 
39
40
  def _get_entity_descriptions(hass: HomeAssistant, config_entry: ConfigEntry, calendar_item: Calendar, calendar_info: Mapping[str, Any]) -> list[GoogleCalendarEntityDescription]: ...
40
41
  async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
@@ -2,7 +2,7 @@ from . import DATA_BACKUP_AGENT_LISTENERS as DATA_BACKUP_AGENT_LISTENERS, Google
2
2
  from .const import DOMAIN as DOMAIN
3
3
  from _typeshed import Incomplete
4
4
  from collections.abc import AsyncIterator, Callable as Callable, Coroutine
5
- from homeassistant.components.backup import AgentBackup as AgentBackup, BackupAgent as BackupAgent, BackupAgentError as BackupAgentError
5
+ from homeassistant.components.backup import AgentBackup as AgentBackup, BackupAgent as BackupAgent, BackupAgentError as BackupAgentError, BackupNotFound as BackupNotFound
6
6
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
7
7
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
8
8
  from homeassistant.helpers.aiohttp_client import ChunkAsyncStreamIterator as ChunkAsyncStreamIterator
@@ -23,6 +23,6 @@ class GoogleDriveBackupAgent(BackupAgent):
23
23
  def __init__(self, config_entry: GoogleDriveConfigEntry) -> None: ...
24
24
  async def async_upload_backup(self, *, open_stream: Callable[[], Coroutine[Any, Any, AsyncIterator[bytes]]], backup: AgentBackup, **kwargs: Any) -> None: ...
25
25
  async def async_list_backups(self, **kwargs: Any) -> list[AgentBackup]: ...
26
- async def async_get_backup(self, backup_id: str, **kwargs: Any) -> AgentBackup | None: ...
26
+ async def async_get_backup(self, backup_id: str, **kwargs: Any) -> AgentBackup: ...
27
27
  async def async_download_backup(self, backup_id: str, **kwargs: Any) -> AsyncIterator[bytes]: ...
28
28
  async def async_delete_backup(self, backup_id: str, **kwargs: Any) -> None: ...
@@ -30,6 +30,23 @@ ATTR_REMOVE_TAG: str
30
30
  ATTR_ALIAS: str
31
31
  ATTR_COST: str
32
32
  ATTR_NOTES: str
33
+ ATTR_UP_DOWN: str
34
+ ATTR_FREQUENCY: str
35
+ ATTR_COUNTER_UP: str
36
+ ATTR_COUNTER_DOWN: str
37
+ ATTR_ADD_CHECKLIST_ITEM: str
38
+ ATTR_REMOVE_CHECKLIST_ITEM: str
39
+ ATTR_SCORE_CHECKLIST_ITEM: str
40
+ ATTR_UNSCORE_CHECKLIST_ITEM: str
41
+ ATTR_REMINDER: str
42
+ ATTR_REMOVE_REMINDER: str
43
+ ATTR_CLEAR_REMINDER: str
44
+ ATTR_CLEAR_DATE: str
45
+ ATTR_REPEAT: str
46
+ ATTR_INTERVAL: str
47
+ ATTR_START_DATE: str
48
+ ATTR_REPEAT_MONTHLY: str
49
+ ATTR_STREAK: str
33
50
  SERVICE_CAST_SKILL: str
34
51
  SERVICE_START_QUEST: str
35
52
  SERVICE_ACCEPT_QUEST: str
@@ -42,8 +59,16 @@ SERVICE_SCORE_HABIT: str
42
59
  SERVICE_SCORE_REWARD: str
43
60
  SERVICE_TRANSFORMATION: str
44
61
  SERVICE_UPDATE_REWARD: str
62
+ SERVICE_CREATE_REWARD: str
63
+ SERVICE_UPDATE_HABIT: str
64
+ SERVICE_CREATE_HABIT: str
65
+ SERVICE_UPDATE_TODO: str
66
+ SERVICE_CREATE_TODO: str
67
+ SERVICE_UPDATE_DAILY: str
68
+ SERVICE_CREATE_DAILY: str
45
69
  DEVELOPER_ID: str
46
70
  X_CLIENT: Incomplete
47
71
  SECTION_REAUTH_LOGIN: str
48
72
  SECTION_REAUTH_API_KEY: str
49
73
  SECTION_DANGER_ZONE: str
74
+ WEEK_DAYS: Incomplete
@@ -1,10 +1,10 @@
1
- from .const import ATTR_ALIAS as ATTR_ALIAS, ATTR_ARGS as ATTR_ARGS, ATTR_CONFIG_ENTRY as ATTR_CONFIG_ENTRY, ATTR_COST as ATTR_COST, ATTR_DATA as ATTR_DATA, ATTR_DIRECTION as ATTR_DIRECTION, ATTR_ITEM as ATTR_ITEM, ATTR_KEYWORD as ATTR_KEYWORD, ATTR_NOTES as ATTR_NOTES, ATTR_PATH as ATTR_PATH, ATTR_PRIORITY as ATTR_PRIORITY, ATTR_REMOVE_TAG as ATTR_REMOVE_TAG, ATTR_SKILL as ATTR_SKILL, ATTR_TAG as ATTR_TAG, ATTR_TARGET as ATTR_TARGET, ATTR_TASK as ATTR_TASK, ATTR_TYPE as ATTR_TYPE, DOMAIN as DOMAIN, EVENT_API_CALL_SUCCESS as EVENT_API_CALL_SUCCESS, SERVICE_ABORT_QUEST as SERVICE_ABORT_QUEST, SERVICE_ACCEPT_QUEST as SERVICE_ACCEPT_QUEST, SERVICE_API_CALL as SERVICE_API_CALL, SERVICE_CANCEL_QUEST as SERVICE_CANCEL_QUEST, SERVICE_CAST_SKILL as SERVICE_CAST_SKILL, SERVICE_GET_TASKS as SERVICE_GET_TASKS, SERVICE_LEAVE_QUEST as SERVICE_LEAVE_QUEST, SERVICE_REJECT_QUEST as SERVICE_REJECT_QUEST, SERVICE_SCORE_HABIT as SERVICE_SCORE_HABIT, SERVICE_SCORE_REWARD as SERVICE_SCORE_REWARD, SERVICE_START_QUEST as SERVICE_START_QUEST, SERVICE_TRANSFORMATION as SERVICE_TRANSFORMATION, SERVICE_UPDATE_REWARD as SERVICE_UPDATE_REWARD
1
+ from .const import ATTR_ADD_CHECKLIST_ITEM as ATTR_ADD_CHECKLIST_ITEM, ATTR_ALIAS as ATTR_ALIAS, ATTR_ARGS as ATTR_ARGS, ATTR_CLEAR_DATE as ATTR_CLEAR_DATE, ATTR_CLEAR_REMINDER as ATTR_CLEAR_REMINDER, ATTR_CONFIG_ENTRY as ATTR_CONFIG_ENTRY, ATTR_COST as ATTR_COST, ATTR_COUNTER_DOWN as ATTR_COUNTER_DOWN, ATTR_COUNTER_UP as ATTR_COUNTER_UP, ATTR_DATA as ATTR_DATA, ATTR_DIRECTION as ATTR_DIRECTION, ATTR_FREQUENCY as ATTR_FREQUENCY, ATTR_INTERVAL as ATTR_INTERVAL, ATTR_ITEM as ATTR_ITEM, ATTR_KEYWORD as ATTR_KEYWORD, ATTR_NOTES as ATTR_NOTES, ATTR_PATH as ATTR_PATH, ATTR_PRIORITY as ATTR_PRIORITY, ATTR_REMINDER as ATTR_REMINDER, ATTR_REMOVE_CHECKLIST_ITEM as ATTR_REMOVE_CHECKLIST_ITEM, ATTR_REMOVE_REMINDER as ATTR_REMOVE_REMINDER, ATTR_REMOVE_TAG as ATTR_REMOVE_TAG, ATTR_REPEAT as ATTR_REPEAT, ATTR_REPEAT_MONTHLY as ATTR_REPEAT_MONTHLY, ATTR_SCORE_CHECKLIST_ITEM as ATTR_SCORE_CHECKLIST_ITEM, ATTR_SKILL as ATTR_SKILL, ATTR_START_DATE as ATTR_START_DATE, ATTR_STREAK as ATTR_STREAK, ATTR_TAG as ATTR_TAG, ATTR_TARGET as ATTR_TARGET, ATTR_TASK as ATTR_TASK, ATTR_TYPE as ATTR_TYPE, ATTR_UNSCORE_CHECKLIST_ITEM as ATTR_UNSCORE_CHECKLIST_ITEM, ATTR_UP_DOWN as ATTR_UP_DOWN, DOMAIN as DOMAIN, EVENT_API_CALL_SUCCESS as EVENT_API_CALL_SUCCESS, SERVICE_ABORT_QUEST as SERVICE_ABORT_QUEST, SERVICE_ACCEPT_QUEST as SERVICE_ACCEPT_QUEST, SERVICE_API_CALL as SERVICE_API_CALL, SERVICE_CANCEL_QUEST as SERVICE_CANCEL_QUEST, SERVICE_CAST_SKILL as SERVICE_CAST_SKILL, SERVICE_CREATE_DAILY as SERVICE_CREATE_DAILY, SERVICE_CREATE_HABIT as SERVICE_CREATE_HABIT, SERVICE_CREATE_REWARD as SERVICE_CREATE_REWARD, SERVICE_CREATE_TODO as SERVICE_CREATE_TODO, SERVICE_GET_TASKS as SERVICE_GET_TASKS, SERVICE_LEAVE_QUEST as SERVICE_LEAVE_QUEST, SERVICE_REJECT_QUEST as SERVICE_REJECT_QUEST, SERVICE_SCORE_HABIT as SERVICE_SCORE_HABIT, SERVICE_SCORE_REWARD as SERVICE_SCORE_REWARD, SERVICE_START_QUEST as SERVICE_START_QUEST, SERVICE_TRANSFORMATION as SERVICE_TRANSFORMATION, SERVICE_UPDATE_DAILY as SERVICE_UPDATE_DAILY, SERVICE_UPDATE_HABIT as SERVICE_UPDATE_HABIT, SERVICE_UPDATE_REWARD as SERVICE_UPDATE_REWARD, SERVICE_UPDATE_TODO as SERVICE_UPDATE_TODO, WEEK_DAYS as WEEK_DAYS
2
2
  from .coordinator import HabiticaConfigEntry as HabiticaConfigEntry
3
3
  from _typeshed import Incomplete
4
4
  from habiticalib import TaskData as TaskData
5
5
  from homeassistant.components.todo import ATTR_RENAME as ATTR_RENAME
6
6
  from homeassistant.config_entries import ConfigEntryState as ConfigEntryState
7
- from homeassistant.const import ATTR_NAME as ATTR_NAME, CONF_NAME as CONF_NAME
7
+ from homeassistant.const import ATTR_DATE as ATTR_DATE, ATTR_NAME as ATTR_NAME, CONF_NAME as CONF_NAME
8
8
  from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, ServiceResponse as ServiceResponse, SupportsResponse as SupportsResponse
9
9
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, ServiceValidationError as ServiceValidationError
10
10
  from homeassistant.helpers.issue_registry import IssueSeverity as IssueSeverity, async_create_issue as async_create_issue
@@ -16,11 +16,15 @@ SERVICE_CAST_SKILL_SCHEMA: Incomplete
16
16
  SERVICE_MANAGE_QUEST_SCHEMA: Incomplete
17
17
  SERVICE_SCORE_TASK_SCHEMA: Incomplete
18
18
  SERVICE_TRANSFORMATION_SCHEMA: Incomplete
19
+ BASE_TASK_SCHEMA: Incomplete
19
20
  SERVICE_UPDATE_TASK_SCHEMA: Incomplete
21
+ SERVICE_CREATE_TASK_SCHEMA: Incomplete
22
+ SERVICE_DAILY_SCHEMA: Incomplete
20
23
  SERVICE_GET_TASKS_SCHEMA: Incomplete
21
24
  SKILL_MAP: Incomplete
22
25
  COST_MAP: Incomplete
23
26
  ITEMID_MAP: Incomplete
27
+ SERVICE_TASK_TYPE_MAP: Incomplete
24
28
 
25
29
  def get_config_entry(hass: HomeAssistant, entry_id: str) -> HabiticaConfigEntry: ...
26
30
  def async_setup_services(hass: HomeAssistant) -> None: ...
@@ -2,6 +2,7 @@ ATTR_PASSWORD: str
2
2
  ATTR_USERNAME: str
3
3
  DOMAIN: str
4
4
  ENTRY_TITLE: str
5
+ SERVICE_GET_QUEUE: str
5
6
  SERVICE_GROUP_VOLUME_SET: str
6
7
  SERVICE_GROUP_VOLUME_DOWN: str
7
8
  SERVICE_GROUP_VOLUME_UP: str
@@ -3,9 +3,9 @@ from _typeshed import Incomplete
3
3
  from collections.abc import Callable as Callable, Sequence
4
4
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
5
5
  from homeassistant.const import CONF_HOST as CONF_HOST, CONF_PASSWORD as CONF_PASSWORD, CONF_USERNAME as CONF_USERNAME, Platform as Platform
6
- from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, HassJob as HassJob, HomeAssistant as HomeAssistant, callback as callback
6
+ from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, HomeAssistant as HomeAssistant, callback as callback
7
7
  from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady
8
- from homeassistant.helpers.event import async_call_later as async_call_later
8
+ from homeassistant.helpers.debounce import Debouncer as Debouncer
9
9
  from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator
10
10
  from pyheos import HeosNowPlayingMedia as HeosNowPlayingMedia, HeosPlayer as HeosPlayer, MediaItem as MediaItem, PlayerUpdateResult as PlayerUpdateResult
11
11
  from typing import Any
@@ -14,15 +14,16 @@ _LOGGER: Incomplete
14
14
  type HeosConfigEntry = ConfigEntry[HeosCoordinator]
15
15
 
16
16
  class HeosCoordinator(DataUpdateCoordinator[None]):
17
- host: str
18
17
  heos: Incomplete
19
18
  _platform_callbacks: list[Callable[[Sequence[HeosPlayer]], None]]
20
- _update_sources_pending: bool
19
+ _update_sources_debouncer: Incomplete
21
20
  _source_list: list[str]
22
21
  _favorites: dict[int, MediaItem]
23
22
  _inputs: Sequence[MediaItem]
24
23
  def __init__(self, hass: HomeAssistant, config_entry: HeosConfigEntry) -> None: ...
25
24
  @property
25
+ def host(self) -> str: ...
26
+ @property
26
27
  def inputs(self) -> Sequence[MediaItem]: ...
27
28
  @property
28
29
  def favorites(self) -> dict[int, MediaItem]: ...
@@ -38,7 +39,6 @@ class HeosCoordinator(DataUpdateCoordinator[None]):
38
39
  def _async_update_player_ids(self, updated_player_ids: dict[int, int]) -> None: ...
39
40
  async def _async_update_groups(self) -> None: ...
40
41
  async def _async_update_sources(self) -> None: ...
41
- async def _async_update_players(self) -> None: ...
42
42
  @callback
43
43
  def async_get_source_list(self) -> list[str]: ...
44
44
  @callback
@@ -1,33 +1,37 @@
1
- from .const import SERVICE_GROUP_VOLUME_DOWN as SERVICE_GROUP_VOLUME_DOWN, SERVICE_GROUP_VOLUME_SET as SERVICE_GROUP_VOLUME_SET, SERVICE_GROUP_VOLUME_UP as SERVICE_GROUP_VOLUME_UP
1
+ from .const import SERVICE_GET_QUEUE as SERVICE_GET_QUEUE, SERVICE_GROUP_VOLUME_DOWN as SERVICE_GROUP_VOLUME_DOWN, SERVICE_GROUP_VOLUME_SET as SERVICE_GROUP_VOLUME_SET, SERVICE_GROUP_VOLUME_UP as SERVICE_GROUP_VOLUME_UP
2
2
  from .coordinator import HeosConfigEntry as HeosConfigEntry, HeosCoordinator as HeosCoordinator
3
3
  from _typeshed import Incomplete
4
4
  from collections.abc import Awaitable, Callable, Coroutine
5
5
  from datetime import datetime
6
6
  from homeassistant.components import media_source as media_source
7
- from homeassistant.components.media_player import ATTR_MEDIA_ENQUEUE as ATTR_MEDIA_ENQUEUE, ATTR_MEDIA_VOLUME_LEVEL as ATTR_MEDIA_VOLUME_LEVEL, BrowseMedia as BrowseMedia, MediaPlayerEnqueue as MediaPlayerEnqueue, MediaPlayerEntity as MediaPlayerEntity, MediaPlayerEntityFeature as MediaPlayerEntityFeature, MediaPlayerState as MediaPlayerState, MediaType as MediaType, RepeatMode as RepeatMode, async_process_play_media_url as async_process_play_media_url
7
+ from homeassistant.components.media_player import ATTR_MEDIA_ENQUEUE as ATTR_MEDIA_ENQUEUE, ATTR_MEDIA_VOLUME_LEVEL as ATTR_MEDIA_VOLUME_LEVEL, BrowseError as BrowseError, BrowseMedia as BrowseMedia, MediaClass as MediaClass, MediaPlayerEnqueue as MediaPlayerEnqueue, MediaPlayerEntity as MediaPlayerEntity, MediaPlayerEntityFeature as MediaPlayerEntityFeature, MediaPlayerState as MediaPlayerState, MediaType as MediaType, RepeatMode as RepeatMode, async_process_play_media_url as async_process_play_media_url
8
+ from homeassistant.components.media_source import BrowseMediaSource as BrowseMediaSource
8
9
  from homeassistant.const import Platform as Platform
9
- from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
10
+ from homeassistant.core import HomeAssistant as HomeAssistant, ServiceResponse as ServiceResponse, SupportsResponse as SupportsResponse, callback as callback
10
11
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, ServiceValidationError as ServiceValidationError
11
12
  from homeassistant.helpers import entity_platform as entity_platform
12
13
  from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
13
14
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
14
15
  from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
15
16
  from homeassistant.util.dt import utcnow as utcnow
16
- from pyheos import HeosPlayer as HeosPlayer
17
- from typing import Any
17
+ from pyheos import HeosPlayer as HeosPlayer, MediaItem, MediaMusicSource
18
+ from typing import Any, Final
18
19
 
19
20
  PARALLEL_UPDATES: int
21
+ BROWSE_ROOT: Final[str]
20
22
  BASE_SUPPORTED_FEATURES: Incomplete
21
23
  PLAY_STATE_TO_STATE: Incomplete
22
24
  CONTROL_TO_SUPPORT: Incomplete
23
25
  HA_HEOS_ENQUEUE_MAP: Incomplete
24
26
  HEOS_HA_REPEAT_TYPE_MAP: Incomplete
25
27
  HA_HEOS_REPEAT_TYPE_MAP: Incomplete
28
+ HEOS_MEDIA_TYPE_TO_MEDIA_CLASS: Incomplete
29
+ _LOGGER: Incomplete
26
30
 
27
31
  async def async_setup_entry(hass: HomeAssistant, entry: HeosConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
28
- type _FuncType[**_P] = Callable[_P, Awaitable[Any]]
29
- type _ReturnFuncType[**_P] = Callable[_P, Coroutine[Any, Any, None]]
30
- def catch_action_error[**_P](action: str) -> Callable[[_FuncType[_P]], _ReturnFuncType[_P]]: ...
32
+ type _FuncType[**_P, _R] = Callable[_P, Awaitable[_R]]
33
+ type _ReturnFuncType[**_P, _R] = Callable[_P, Coroutine[Any, Any, _R]]
34
+ def catch_action_error[**_P, _R](action: str) -> Callable[[_FuncType[_P, _R]], _ReturnFuncType[_P, _R]]: ...
31
35
 
32
36
  class HeosMediaPlayer(CoordinatorEntity[HeosCoordinator], MediaPlayerEntity):
33
37
  _attr_media_content_type: Incomplete
@@ -52,6 +56,7 @@ class HeosMediaPlayer(CoordinatorEntity[HeosCoordinator], MediaPlayerEntity):
52
56
  @callback
53
57
  def _update_attributes(self) -> None: ...
54
58
  async def async_added_to_hass(self) -> None: ...
59
+ async def async_get_queue(self) -> ServiceResponse: ...
55
60
  async def async_clear_playlist(self) -> None: ...
56
61
  async def async_media_pause(self) -> None: ...
57
62
  async def async_media_play(self) -> None: ...
@@ -97,4 +102,9 @@ class HeosMediaPlayer(CoordinatorEntity[HeosCoordinator], MediaPlayerEntity):
97
102
  def state(self) -> MediaPlayerState: ...
98
103
  @property
99
104
  def volume_level(self) -> float: ...
105
+ async def _async_browse_media_root(self) -> BrowseMedia: ...
106
+ async def _async_browse_heos_media(self, media_content_id: str) -> BrowseMedia: ...
107
+ async def _async_browse_media_source(self, media_content_id: str | None = None) -> BrowseMediaSource: ...
100
108
  async def async_browse_media(self, media_content_type: MediaType | str | None = None, media_content_id: str | None = None) -> BrowseMedia: ...
109
+
110
+ def _media_to_browse_media(media: MediaItem | MediaMusicSource) -> BrowseMedia: ...
@@ -1,31 +1,20 @@
1
1
  from .api import AsyncConfigEntryAuth as AsyncConfigEntryAuth
2
- from .const import AFFECTS_TO_ACTIVE_PROGRAM as AFFECTS_TO_ACTIVE_PROGRAM, AFFECTS_TO_SELECTED_PROGRAM as AFFECTS_TO_SELECTED_PROGRAM, ATTR_AFFECTS_TO as ATTR_AFFECTS_TO, ATTR_KEY as ATTR_KEY, ATTR_PROGRAM as ATTR_PROGRAM, ATTR_UNIT as ATTR_UNIT, ATTR_VALUE as ATTR_VALUE, DOMAIN as DOMAIN, OLD_NEW_UNIQUE_ID_SUFFIX_MAP as OLD_NEW_UNIQUE_ID_SUFFIX_MAP, PROGRAM_ENUM_OPTIONS as PROGRAM_ENUM_OPTIONS, SERVICE_OPTION_ACTIVE as SERVICE_OPTION_ACTIVE, SERVICE_OPTION_SELECTED as SERVICE_OPTION_SELECTED, SERVICE_PAUSE_PROGRAM as SERVICE_PAUSE_PROGRAM, SERVICE_RESUME_PROGRAM as SERVICE_RESUME_PROGRAM, SERVICE_SELECT_PROGRAM as SERVICE_SELECT_PROGRAM, SERVICE_SETTING as SERVICE_SETTING, SERVICE_SET_PROGRAM_AND_OPTIONS as SERVICE_SET_PROGRAM_AND_OPTIONS, SERVICE_START_PROGRAM as SERVICE_START_PROGRAM, SVE_TRANSLATION_PLACEHOLDER_KEY as SVE_TRANSLATION_PLACEHOLDER_KEY, SVE_TRANSLATION_PLACEHOLDER_PROGRAM as SVE_TRANSLATION_PLACEHOLDER_PROGRAM, SVE_TRANSLATION_PLACEHOLDER_VALUE as SVE_TRANSLATION_PLACEHOLDER_VALUE, TRANSLATION_KEYS_PROGRAMS_MAP as TRANSLATION_KEYS_PROGRAMS_MAP
2
+ from .const import DOMAIN as DOMAIN, OLD_NEW_UNIQUE_ID_SUFFIX_MAP as OLD_NEW_UNIQUE_ID_SUFFIX_MAP
3
3
  from .coordinator import HomeConnectConfigEntry as HomeConnectConfigEntry, HomeConnectCoordinator as HomeConnectCoordinator
4
- from .utils import bsh_key_to_translation_key as bsh_key_to_translation_key, get_dict_from_home_connect_error as get_dict_from_home_connect_error
4
+ from .services import register_actions as register_actions
5
5
  from _typeshed import Incomplete
6
- from aiohomeconnect.client import Client as HomeConnectClient
7
- from homeassistant.const import ATTR_DEVICE_ID as ATTR_DEVICE_ID, Platform as Platform
8
- from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, callback as callback
9
- from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryNotReady as ConfigEntryNotReady, HomeAssistantError as HomeAssistantError, ServiceValidationError as ServiceValidationError
6
+ from homeassistant.const import Platform as Platform
7
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
8
+ from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryNotReady as ConfigEntryNotReady
10
9
  from homeassistant.helpers import config_entry_oauth2_flow as config_entry_oauth2_flow
11
10
  from homeassistant.helpers.entity_registry import RegistryEntry as RegistryEntry, async_migrate_entries as async_migrate_entries
12
- from homeassistant.helpers.issue_registry import IssueSeverity as IssueSeverity, async_create_issue as async_create_issue, async_delete_issue as async_delete_issue
11
+ from homeassistant.helpers.issue_registry import async_delete_issue as async_delete_issue
13
12
  from homeassistant.helpers.typing import ConfigType as ConfigType
14
13
 
15
14
  _LOGGER: Incomplete
16
15
  CONFIG_SCHEMA: Incomplete
17
- PROGRAM_OPTIONS: Incomplete
18
- SERVICE_SETTING_SCHEMA: Incomplete
19
- SERVICE_OPTION_SCHEMA: Incomplete
20
- SERVICE_PROGRAM_SCHEMA: Incomplete
21
-
22
- def _require_program_or_at_least_one_option(data: dict) -> dict: ...
23
-
24
- SERVICE_PROGRAM_AND_OPTIONS_SCHEMA: Incomplete
25
- SERVICE_COMMAND_SCHEMA: Incomplete
26
16
  PLATFORMS: Incomplete
27
17
 
28
- async def _get_client_and_ha_id(hass: HomeAssistant, device_id: str) -> tuple[HomeConnectClient, str]: ...
29
18
  async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
30
19
  async def async_setup_entry(hass: HomeAssistant, entry: HomeConnectConfigEntry) -> bool: ...
31
20
  async def async_unload_entry(hass: HomeAssistant, entry: HomeConnectConfigEntry) -> bool: ...
@@ -22,8 +22,6 @@ async def async_setup_entry(hass: HomeAssistant, entry: HomeConnectConfigEntry,
22
22
 
23
23
  class HomeConnectButtonEntity(HomeConnectEntity, ButtonEntity):
24
24
  entity_description: ButtonEntityDescription
25
- appliance: Incomplete
26
- unique_id: Incomplete
27
25
  def __init__(self, coordinator: HomeConnectCoordinator, appliance: HomeConnectApplianceData, desc: ButtonEntityDescription) -> None: ...
28
26
  def update_native_value(self) -> None: ...
29
27
 
@@ -36,12 +36,6 @@ ATTR_UNIT: str
36
36
  ATTR_VALUE: str
37
37
  AFFECTS_TO_ACTIVE_PROGRAM: str
38
38
  AFFECTS_TO_SELECTED_PROGRAM: str
39
- SVE_TRANSLATION_KEY_SET_SETTING: str
40
- SVE_TRANSLATION_PLACEHOLDER_APPLIANCE_NAME: str
41
- SVE_TRANSLATION_PLACEHOLDER_ENTITY_ID: str
42
- SVE_TRANSLATION_PLACEHOLDER_PROGRAM: str
43
- SVE_TRANSLATION_PLACEHOLDER_KEY: str
44
- SVE_TRANSLATION_PLACEHOLDER_VALUE: str
45
39
  TRANSLATION_KEYS_PROGRAMS_MAP: Incomplete
46
40
  PROGRAMS_TRANSLATION_KEYS_MAP: Incomplete
47
41
  AVAILABLE_MAPS_ENUM: Incomplete
@@ -24,7 +24,7 @@ class HomeConnectEntity(CoordinatorEntity[HomeConnectCoordinator], metaclass=abc
24
24
  entity_description: Incomplete
25
25
  _attr_unique_id: Incomplete
26
26
  _attr_device_info: Incomplete
27
- def __init__(self, coordinator: HomeConnectCoordinator, appliance: HomeConnectApplianceData, desc: EntityDescription) -> None: ...
27
+ def __init__(self, coordinator: HomeConnectCoordinator, appliance: HomeConnectApplianceData, desc: EntityDescription, context_override: Any | None = None) -> None: ...
28
28
  @abstractmethod
29
29
  def update_native_value(self) -> None: ...
30
30
  @callback
@@ -1,5 +1,5 @@
1
1
  from .common import setup_home_connect_entry as setup_home_connect_entry
2
- from .const import BSH_AMBIENT_LIGHT_COLOR_CUSTOM_COLOR as BSH_AMBIENT_LIGHT_COLOR_CUSTOM_COLOR, DOMAIN as DOMAIN, SVE_TRANSLATION_PLACEHOLDER_ENTITY_ID as SVE_TRANSLATION_PLACEHOLDER_ENTITY_ID
2
+ from .const import BSH_AMBIENT_LIGHT_COLOR_CUSTOM_COLOR as BSH_AMBIENT_LIGHT_COLOR_CUSTOM_COLOR, DOMAIN as DOMAIN
3
3
  from .coordinator import HomeConnectApplianceData as HomeConnectApplianceData, HomeConnectConfigEntry as HomeConnectConfigEntry, HomeConnectCoordinator as HomeConnectCoordinator
4
4
  from .entity import HomeConnectEntity as HomeConnectEntity
5
5
  from .utils import get_dict_from_home_connect_error as get_dict_from_home_connect_error
@@ -1,5 +1,5 @@
1
1
  from .common import setup_home_connect_entry as setup_home_connect_entry
2
- from .const import DOMAIN as DOMAIN, SVE_TRANSLATION_KEY_SET_SETTING as SVE_TRANSLATION_KEY_SET_SETTING, SVE_TRANSLATION_PLACEHOLDER_ENTITY_ID as SVE_TRANSLATION_PLACEHOLDER_ENTITY_ID, SVE_TRANSLATION_PLACEHOLDER_KEY as SVE_TRANSLATION_PLACEHOLDER_KEY, SVE_TRANSLATION_PLACEHOLDER_VALUE as SVE_TRANSLATION_PLACEHOLDER_VALUE, UNIT_MAP as UNIT_MAP
2
+ from .const import DOMAIN as DOMAIN, UNIT_MAP as UNIT_MAP
3
3
  from .coordinator import HomeConnectApplianceData as HomeConnectApplianceData, HomeConnectConfigEntry as HomeConnectConfigEntry
4
4
  from .entity import HomeConnectEntity as HomeConnectEntity, HomeConnectOptionEntity as HomeConnectOptionEntity, constraint_fetcher as constraint_fetcher
5
5
  from .utils import get_dict_from_home_connect_error as get_dict_from_home_connect_error
@@ -1,5 +1,5 @@
1
1
  from .common import setup_home_connect_entry as setup_home_connect_entry
2
- from .const import APPLIANCES_WITH_PROGRAMS as APPLIANCES_WITH_PROGRAMS, AVAILABLE_MAPS_ENUM as AVAILABLE_MAPS_ENUM, BEAN_AMOUNT_OPTIONS as BEAN_AMOUNT_OPTIONS, BEAN_CONTAINER_OPTIONS as BEAN_CONTAINER_OPTIONS, CLEANING_MODE_OPTIONS as CLEANING_MODE_OPTIONS, COFFEE_MILK_RATIO_OPTIONS as COFFEE_MILK_RATIO_OPTIONS, COFFEE_TEMPERATURE_OPTIONS as COFFEE_TEMPERATURE_OPTIONS, DOMAIN as DOMAIN, DRYING_TARGET_OPTIONS as DRYING_TARGET_OPTIONS, FLOW_RATE_OPTIONS as FLOW_RATE_OPTIONS, HOT_WATER_TEMPERATURE_OPTIONS as HOT_WATER_TEMPERATURE_OPTIONS, INTENSIVE_LEVEL_OPTIONS as INTENSIVE_LEVEL_OPTIONS, PROGRAMS_TRANSLATION_KEYS_MAP as PROGRAMS_TRANSLATION_KEYS_MAP, SPIN_SPEED_OPTIONS as SPIN_SPEED_OPTIONS, SVE_TRANSLATION_KEY_SET_SETTING as SVE_TRANSLATION_KEY_SET_SETTING, SVE_TRANSLATION_PLACEHOLDER_ENTITY_ID as SVE_TRANSLATION_PLACEHOLDER_ENTITY_ID, SVE_TRANSLATION_PLACEHOLDER_KEY as SVE_TRANSLATION_PLACEHOLDER_KEY, SVE_TRANSLATION_PLACEHOLDER_PROGRAM as SVE_TRANSLATION_PLACEHOLDER_PROGRAM, SVE_TRANSLATION_PLACEHOLDER_VALUE as SVE_TRANSLATION_PLACEHOLDER_VALUE, TEMPERATURE_OPTIONS as TEMPERATURE_OPTIONS, TRANSLATION_KEYS_PROGRAMS_MAP as TRANSLATION_KEYS_PROGRAMS_MAP, VARIO_PERFECT_OPTIONS as VARIO_PERFECT_OPTIONS, VENTING_LEVEL_OPTIONS as VENTING_LEVEL_OPTIONS, WARMING_LEVEL_OPTIONS as WARMING_LEVEL_OPTIONS
2
+ from .const import APPLIANCES_WITH_PROGRAMS as APPLIANCES_WITH_PROGRAMS, AVAILABLE_MAPS_ENUM as AVAILABLE_MAPS_ENUM, BEAN_AMOUNT_OPTIONS as BEAN_AMOUNT_OPTIONS, BEAN_CONTAINER_OPTIONS as BEAN_CONTAINER_OPTIONS, CLEANING_MODE_OPTIONS as CLEANING_MODE_OPTIONS, COFFEE_MILK_RATIO_OPTIONS as COFFEE_MILK_RATIO_OPTIONS, COFFEE_TEMPERATURE_OPTIONS as COFFEE_TEMPERATURE_OPTIONS, DOMAIN as DOMAIN, DRYING_TARGET_OPTIONS as DRYING_TARGET_OPTIONS, FLOW_RATE_OPTIONS as FLOW_RATE_OPTIONS, HOT_WATER_TEMPERATURE_OPTIONS as HOT_WATER_TEMPERATURE_OPTIONS, INTENSIVE_LEVEL_OPTIONS as INTENSIVE_LEVEL_OPTIONS, PROGRAMS_TRANSLATION_KEYS_MAP as PROGRAMS_TRANSLATION_KEYS_MAP, SPIN_SPEED_OPTIONS as SPIN_SPEED_OPTIONS, TEMPERATURE_OPTIONS as TEMPERATURE_OPTIONS, TRANSLATION_KEYS_PROGRAMS_MAP as TRANSLATION_KEYS_PROGRAMS_MAP, VARIO_PERFECT_OPTIONS as VARIO_PERFECT_OPTIONS, VENTING_LEVEL_OPTIONS as VENTING_LEVEL_OPTIONS, WARMING_LEVEL_OPTIONS as WARMING_LEVEL_OPTIONS
3
3
  from .coordinator import HomeConnectApplianceData as HomeConnectApplianceData, HomeConnectConfigEntry as HomeConnectConfigEntry, HomeConnectCoordinator as HomeConnectCoordinator
4
4
  from .entity import HomeConnectEntity as HomeConnectEntity, HomeConnectOptionEntity as HomeConnectOptionEntity, constraint_fetcher as constraint_fetcher
5
5
  from .utils import bsh_key_to_translation_key as bsh_key_to_translation_key, get_dict_from_home_connect_error as get_dict_from_home_connect_error
@@ -0,0 +1,35 @@
1
+ from .const import AFFECTS_TO_ACTIVE_PROGRAM as AFFECTS_TO_ACTIVE_PROGRAM, AFFECTS_TO_SELECTED_PROGRAM as AFFECTS_TO_SELECTED_PROGRAM, ATTR_AFFECTS_TO as ATTR_AFFECTS_TO, ATTR_KEY as ATTR_KEY, ATTR_PROGRAM as ATTR_PROGRAM, ATTR_UNIT as ATTR_UNIT, ATTR_VALUE as ATTR_VALUE, DOMAIN as DOMAIN, PROGRAM_ENUM_OPTIONS as PROGRAM_ENUM_OPTIONS, SERVICE_OPTION_ACTIVE as SERVICE_OPTION_ACTIVE, SERVICE_OPTION_SELECTED as SERVICE_OPTION_SELECTED, SERVICE_PAUSE_PROGRAM as SERVICE_PAUSE_PROGRAM, SERVICE_RESUME_PROGRAM as SERVICE_RESUME_PROGRAM, SERVICE_SELECT_PROGRAM as SERVICE_SELECT_PROGRAM, SERVICE_SETTING as SERVICE_SETTING, SERVICE_SET_PROGRAM_AND_OPTIONS as SERVICE_SET_PROGRAM_AND_OPTIONS, SERVICE_START_PROGRAM as SERVICE_START_PROGRAM, TRANSLATION_KEYS_PROGRAMS_MAP as TRANSLATION_KEYS_PROGRAMS_MAP
2
+ from .coordinator import HomeConnectConfigEntry as HomeConnectConfigEntry
3
+ from .utils import bsh_key_to_translation_key as bsh_key_to_translation_key, get_dict_from_home_connect_error as get_dict_from_home_connect_error
4
+ from _typeshed import Incomplete
5
+ from aiohomeconnect.client import Client as HomeConnectClient
6
+ from aiohomeconnect.model import CommandKey
7
+ from homeassistant.const import ATTR_DEVICE_ID as ATTR_DEVICE_ID
8
+ from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall
9
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, ServiceValidationError as ServiceValidationError
10
+ from homeassistant.helpers.issue_registry import IssueSeverity as IssueSeverity, async_create_issue as async_create_issue
11
+
12
+ CONFIG_SCHEMA: Incomplete
13
+ PROGRAM_OPTIONS: Incomplete
14
+ SERVICE_SETTING_SCHEMA: Incomplete
15
+ SERVICE_OPTION_SCHEMA: Incomplete
16
+ SERVICE_PROGRAM_SCHEMA: Incomplete
17
+
18
+ def _require_program_or_at_least_one_option(data: dict) -> dict: ...
19
+
20
+ SERVICE_PROGRAM_AND_OPTIONS_SCHEMA: Incomplete
21
+ SERVICE_COMMAND_SCHEMA: Incomplete
22
+
23
+ async def _get_client_and_ha_id(hass: HomeAssistant, device_id: str) -> tuple[HomeConnectClient, str]: ...
24
+ async def _async_service_program(call: ServiceCall, start: bool) -> None: ...
25
+ async def _async_service_set_program_options(call: ServiceCall, active: bool) -> None: ...
26
+ async def _async_service_command(call: ServiceCall, command_key: CommandKey) -> None: ...
27
+ async def async_service_option_active(call: ServiceCall) -> None: ...
28
+ async def async_service_option_selected(call: ServiceCall) -> None: ...
29
+ async def async_service_setting(call: ServiceCall) -> None: ...
30
+ async def async_service_pause_program(call: ServiceCall) -> None: ...
31
+ async def async_service_resume_program(call: ServiceCall) -> None: ...
32
+ async def async_service_select_program(call: ServiceCall) -> None: ...
33
+ async def async_service_set_program_and_options(call: ServiceCall) -> None: ...
34
+ async def async_service_start_program(call: ServiceCall) -> None: ...
35
+ def register_actions(hass: HomeAssistant) -> None: ...
@@ -1,5 +1,5 @@
1
1
  from .common import setup_home_connect_entry as setup_home_connect_entry
2
- from .const import BSH_POWER_OFF as BSH_POWER_OFF, BSH_POWER_ON as BSH_POWER_ON, BSH_POWER_STANDBY as BSH_POWER_STANDBY, DOMAIN as DOMAIN, SVE_TRANSLATION_PLACEHOLDER_APPLIANCE_NAME as SVE_TRANSLATION_PLACEHOLDER_APPLIANCE_NAME, SVE_TRANSLATION_PLACEHOLDER_ENTITY_ID as SVE_TRANSLATION_PLACEHOLDER_ENTITY_ID, SVE_TRANSLATION_PLACEHOLDER_KEY as SVE_TRANSLATION_PLACEHOLDER_KEY, SVE_TRANSLATION_PLACEHOLDER_VALUE as SVE_TRANSLATION_PLACEHOLDER_VALUE
2
+ from .const import BSH_POWER_OFF as BSH_POWER_OFF, BSH_POWER_ON as BSH_POWER_ON, BSH_POWER_STANDBY as BSH_POWER_STANDBY, DOMAIN as DOMAIN
3
3
  from .coordinator import HomeConnectApplianceData as HomeConnectApplianceData, HomeConnectConfigEntry as HomeConnectConfigEntry, HomeConnectCoordinator as HomeConnectCoordinator
4
4
  from .entity import HomeConnectEntity as HomeConnectEntity, HomeConnectOptionEntity as HomeConnectOptionEntity
5
5
  from .utils import get_dict_from_home_connect_error as get_dict_from_home_connect_error
@@ -40,6 +40,7 @@ class HomeConnectProgramSwitch(HomeConnectEntity, SwitchEntity):
40
40
  def __init__(self, coordinator: HomeConnectCoordinator, appliance: HomeConnectApplianceData, program: EnumerateProgram) -> None: ...
41
41
  async def async_added_to_hass(self) -> None: ...
42
42
  async def async_will_remove_from_hass(self) -> None: ...
43
+ def create_action_handler_issue(self) -> None: ...
43
44
  async def async_turn_on(self, **kwargs: Any) -> None: ...
44
45
  async def async_turn_off(self, **kwargs: Any) -> None: ...
45
46
  _attr_is_on: Incomplete
@@ -1,14 +1,17 @@
1
1
  from .common import setup_home_connect_entry as setup_home_connect_entry
2
- from .const import DOMAIN as DOMAIN, SVE_TRANSLATION_KEY_SET_SETTING as SVE_TRANSLATION_KEY_SET_SETTING, SVE_TRANSLATION_PLACEHOLDER_ENTITY_ID as SVE_TRANSLATION_PLACEHOLDER_ENTITY_ID, SVE_TRANSLATION_PLACEHOLDER_KEY as SVE_TRANSLATION_PLACEHOLDER_KEY, SVE_TRANSLATION_PLACEHOLDER_VALUE as SVE_TRANSLATION_PLACEHOLDER_VALUE
2
+ from .const import DOMAIN as DOMAIN
3
3
  from .coordinator import HomeConnectApplianceData as HomeConnectApplianceData, HomeConnectConfigEntry as HomeConnectConfigEntry
4
4
  from .entity import HomeConnectEntity as HomeConnectEntity
5
5
  from .utils import get_dict_from_home_connect_error as get_dict_from_home_connect_error
6
6
  from _typeshed import Incomplete
7
7
  from datetime import time
8
+ from homeassistant.components.automation import automations_with_entity as automations_with_entity
9
+ from homeassistant.components.script import scripts_with_entity as scripts_with_entity
8
10
  from homeassistant.components.time import TimeEntity as TimeEntity, TimeEntityDescription as TimeEntityDescription
9
11
  from homeassistant.core import HomeAssistant as HomeAssistant
10
12
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
11
13
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
14
+ from homeassistant.helpers.issue_registry import IssueSeverity as IssueSeverity, async_create_issue as async_create_issue, async_delete_issue as async_delete_issue
12
15
 
13
16
  PARALLEL_UPDATES: int
14
17
  TIME_ENTITIES: Incomplete
@@ -19,6 +22,8 @@ def seconds_to_time(seconds: int) -> time: ...
19
22
  def time_to_seconds(t: time) -> int: ...
20
23
 
21
24
  class HomeConnectTimeEntity(HomeConnectEntity, TimeEntity):
25
+ async def async_added_to_hass(self) -> None: ...
26
+ async def async_will_remove_from_hass(self) -> None: ...
22
27
  async def async_set_value(self, value: time) -> None: ...
23
28
  _attr_native_value: Incomplete
24
29
  def update_native_value(self) -> None: ...
@@ -0,0 +1,15 @@
1
+ from _typeshed import Incomplete
2
+ from aiohttp import ClientSession as ClientSession
3
+ from ha_silabs_firmware_client import FirmwareManifest
4
+ from homeassistant.core import HomeAssistant as HomeAssistant
5
+ from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
6
+
7
+ _LOGGER: Incomplete
8
+ FIRMWARE_REFRESH_INTERVAL: Incomplete
9
+
10
+ class FirmwareUpdateCoordinator(DataUpdateCoordinator[FirmwareManifest]):
11
+ hass: Incomplete
12
+ session: Incomplete
13
+ client: Incomplete
14
+ def __init__(self, hass: HomeAssistant, session: ClientSession, url: str) -> None: ...
15
+ async def _async_update_data(self) -> FirmwareManifest: ...
@@ -2,7 +2,7 @@ import abc
2
2
  import asyncio
3
3
  from . import silabs_multiprotocol_addon as silabs_multiprotocol_addon
4
4
  from .const import OTBR_DOMAIN as OTBR_DOMAIN, ZHA_DOMAIN as ZHA_DOMAIN
5
- from .util import ApplicationType as ApplicationType, FirmwareInfo as FirmwareInfo, OwningAddon as OwningAddon, OwningIntegration as OwningIntegration, get_otbr_addon_manager as get_otbr_addon_manager, get_zigbee_flasher_addon_manager as get_zigbee_flasher_addon_manager, guess_hardware_owners as guess_hardware_owners, probe_silabs_firmware_info as probe_silabs_firmware_info
5
+ from .util import ApplicationType as ApplicationType, FirmwareInfo as FirmwareInfo, OwningAddon as OwningAddon, OwningIntegration as OwningIntegration, get_otbr_addon_manager as get_otbr_addon_manager, get_zigbee_flasher_addon_manager as get_zigbee_flasher_addon_manager, guess_firmware_info as guess_firmware_info, guess_hardware_owners as guess_hardware_owners, probe_silabs_firmware_info as probe_silabs_firmware_info
6
6
  from _typeshed import Incomplete
7
7
  from abc import ABC, abstractmethod
8
8
  from homeassistant.components.hassio import AddonError as AddonError, AddonInfo as AddonInfo, AddonManager as AddonManager, AddonState as AddonState
@@ -50,6 +50,7 @@ class BaseFirmwareConfigFlow(BaseFirmwareInstallFlow, ConfigFlow, metaclass=abc.
50
50
  @callback
51
51
  @abstractmethod
52
52
  def async_get_options_flow(config_entry: ConfigEntry) -> OptionsFlow: ...
53
+ _probed_firmware_info: Incomplete
53
54
  async def async_step_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
54
55
 
55
56
  class BaseFirmwareOptionsFlow(BaseFirmwareInstallFlow, OptionsFlow, metaclass=abc.ABCMeta):
@@ -0,0 +1,68 @@
1
+ from .coordinator import FirmwareUpdateCoordinator as FirmwareUpdateCoordinator
2
+ from .helpers import async_register_firmware_info_callback as async_register_firmware_info_callback
3
+ from .util import ApplicationType as ApplicationType, FirmwareInfo as FirmwareInfo, guess_firmware_info as guess_firmware_info, probe_silabs_firmware_info as probe_silabs_firmware_info
4
+ from _typeshed import Incomplete
5
+ from collections.abc import AsyncIterator, Callable
6
+ from contextlib import asynccontextmanager
7
+ from dataclasses import dataclass
8
+ from ha_silabs_firmware_client import FirmwareManifest, FirmwareMetadata as FirmwareMetadata
9
+ from homeassistant.components.update import UpdateEntity as UpdateEntity, UpdateEntityDescription as UpdateEntityDescription, UpdateEntityFeature as UpdateEntityFeature
10
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
11
+ from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, callback as callback
12
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
13
+ from homeassistant.helpers.restore_state import ExtraStoredData as ExtraStoredData
14
+ from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
15
+ from typing import Any
16
+
17
+ _LOGGER: Incomplete
18
+ type FirmwareChangeCallbackType = Callable[[ApplicationType | None, ApplicationType | None], None]
19
+
20
+ @dataclass(kw_only=True, frozen=True)
21
+ class FirmwareUpdateEntityDescription(UpdateEntityDescription):
22
+ version_parser: Callable[[str], str]
23
+ fw_type: str | None
24
+ version_key: str | None
25
+ expected_firmware_type: ApplicationType | None
26
+ firmware_name: str | None
27
+
28
+ @dataclass
29
+ class FirmwareUpdateExtraStoredData(ExtraStoredData):
30
+ firmware_manifest: FirmwareManifest | None = ...
31
+ def as_dict(self) -> dict[str, Any]: ...
32
+ @classmethod
33
+ def from_dict(cls, data: dict[str, Any]) -> FirmwareUpdateExtraStoredData: ...
34
+
35
+ class BaseFirmwareUpdateEntity(CoordinatorEntity[FirmwareUpdateCoordinator], UpdateEntity):
36
+ entity_description: FirmwareUpdateEntityDescription
37
+ bootloader_reset_type: str | None
38
+ _attr_supported_features: Incomplete
39
+ _attr_has_entity_name: bool
40
+ _current_device: Incomplete
41
+ _config_entry: Incomplete
42
+ _current_firmware_info: FirmwareInfo | None
43
+ _firmware_type_change_callbacks: set[FirmwareChangeCallbackType]
44
+ _latest_manifest: FirmwareManifest | None
45
+ _latest_firmware: FirmwareMetadata | None
46
+ def __init__(self, device: str, config_entry: ConfigEntry, update_coordinator: FirmwareUpdateCoordinator, entity_description: FirmwareUpdateEntityDescription) -> None: ...
47
+ def add_firmware_type_changed_callback(self, change_callback: FirmwareChangeCallbackType) -> CALLBACK_TYPE: ...
48
+ async def async_added_to_hass(self) -> None: ...
49
+ @property
50
+ def extra_restore_state_data(self) -> FirmwareUpdateExtraStoredData: ...
51
+ @callback
52
+ def _on_config_entry_change(self) -> None: ...
53
+ @callback
54
+ def _firmware_info_callback(self, firmware_info: FirmwareInfo) -> None: ...
55
+ _attr_title: Incomplete
56
+ _attr_installed_version: Incomplete
57
+ _attr_latest_version: Incomplete
58
+ _attr_release_summary: Incomplete
59
+ _attr_release_url: Incomplete
60
+ def _update_attributes(self) -> None: ...
61
+ @callback
62
+ def _handle_coordinator_update(self) -> None: ...
63
+ _attr_update_percentage: Incomplete
64
+ def _update_progress(self, offset: int, total_size: int) -> None: ...
65
+ @asynccontextmanager
66
+ async def _temporarily_stop_hardware_owners(self, device: str) -> AsyncIterator[None]: ...
67
+ _attr_in_progress: bool
68
+ async def async_install(self, version: str | None, backup: bool, **kwargs: Any) -> None: ...
@@ -2,7 +2,8 @@ from . import DATA_COMPONENT as DATA_COMPONENT
2
2
  from .const import OTBR_ADDON_MANAGER_DATA as OTBR_ADDON_MANAGER_DATA, OTBR_ADDON_NAME as OTBR_ADDON_NAME, OTBR_ADDON_SLUG as OTBR_ADDON_SLUG, ZIGBEE_FLASHER_ADDON_MANAGER_DATA as ZIGBEE_FLASHER_ADDON_MANAGER_DATA, ZIGBEE_FLASHER_ADDON_NAME as ZIGBEE_FLASHER_ADDON_NAME, ZIGBEE_FLASHER_ADDON_SLUG as ZIGBEE_FLASHER_ADDON_SLUG
3
3
  from .silabs_multiprotocol_addon import WaitingAddonManager as WaitingAddonManager, get_multiprotocol_addon_manager as get_multiprotocol_addon_manager
4
4
  from _typeshed import Incomplete
5
- from collections.abc import Iterable
5
+ from collections.abc import AsyncIterator, Iterable
6
+ from contextlib import asynccontextmanager
6
7
  from dataclasses import dataclass
7
8
  from enum import StrEnum
8
9
  from homeassistant.components.hassio import AddonError as AddonError, AddonManager as AddonManager, AddonState as AddonState
@@ -34,11 +35,15 @@ class OwningAddon:
34
35
  slug: str
35
36
  def _get_addon_manager(self, hass: HomeAssistant) -> WaitingAddonManager: ...
36
37
  async def is_running(self, hass: HomeAssistant) -> bool: ...
38
+ @asynccontextmanager
39
+ async def temporarily_stop(self, hass: HomeAssistant) -> AsyncIterator[None]: ...
37
40
 
38
41
  @dataclass(kw_only=True)
39
42
  class OwningIntegration:
40
43
  config_entry_id: str
41
44
  async def is_running(self, hass: HomeAssistant) -> bool: ...
45
+ @asynccontextmanager
46
+ async def temporarily_stop(self, hass: HomeAssistant) -> AsyncIterator[None]: ...
42
47
 
43
48
  @dataclass(kw_only=True)
44
49
  class FirmwareInfo:
@@ -1,10 +1,16 @@
1
+ from .const import DESCRIPTION as DESCRIPTION, DEVICE as DEVICE, DOMAIN as DOMAIN, FIRMWARE as FIRMWARE, FIRMWARE_VERSION as FIRMWARE_VERSION, MANUFACTURER as MANUFACTURER, PID as PID, PRODUCT as PRODUCT, SERIAL_NUMBER as SERIAL_NUMBER, VID as VID
1
2
  from _typeshed import Incomplete
2
3
  from homeassistant.components.homeassistant_hardware.util import guess_firmware_info as guess_firmware_info
4
+ from homeassistant.components.usb import USBDevice as USBDevice, async_register_port_event_callback as async_register_port_event_callback, scan_serial_ports as scan_serial_ports
3
5
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
4
- from homeassistant.core import HomeAssistant as HomeAssistant
6
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
7
+ from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady, HomeAssistantError as HomeAssistantError
8
+ from homeassistant.helpers.typing import ConfigType as ConfigType
5
9
 
6
10
  _LOGGER: Incomplete
11
+ CONFIG_SCHEMA: Incomplete
7
12
 
13
+ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
8
14
  async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
9
15
  async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
10
16
  async def async_migrate_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> bool: ...
@@ -1,4 +1,4 @@
1
- from .const import DOCS_WEB_FLASHER_URL as DOCS_WEB_FLASHER_URL, DOMAIN as DOMAIN, HardwareVariant as HardwareVariant
1
+ from .const import DESCRIPTION as DESCRIPTION, DEVICE as DEVICE, DOCS_WEB_FLASHER_URL as DOCS_WEB_FLASHER_URL, DOMAIN as DOMAIN, FIRMWARE as FIRMWARE, FIRMWARE_VERSION as FIRMWARE_VERSION, HardwareVariant as HardwareVariant, MANUFACTURER as MANUFACTURER, PID as PID, PRODUCT as PRODUCT, SERIAL_NUMBER as SERIAL_NUMBER, VID as VID
2
2
  from .util import get_hardware_variant as get_hardware_variant, get_usb_service_info as get_usb_service_info
3
3
  from _typeshed import Incomplete
4
4
  from homeassistant.components import usb as usb