homeassistant-stubs 2025.3.3__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 (334) 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 +1 -6
  74. homeassistant-stubs/components/home_connect/coordinator.pyi +4 -2
  75. homeassistant-stubs/components/home_connect/entity.pyi +7 -2
  76. homeassistant-stubs/components/home_connect/light.pyi +1 -1
  77. homeassistant-stubs/components/home_connect/number.pyi +4 -3
  78. homeassistant-stubs/components/home_connect/select.pyi +7 -3
  79. homeassistant-stubs/components/home_connect/sensor.pyi +3 -1
  80. homeassistant-stubs/components/home_connect/services.pyi +35 -0
  81. homeassistant-stubs/components/home_connect/switch.pyi +2 -1
  82. homeassistant-stubs/components/home_connect/time.pyi +6 -1
  83. homeassistant-stubs/components/homeassistant_hardware/coordinator.pyi +15 -0
  84. homeassistant-stubs/components/homeassistant_hardware/firmware_config_flow.pyi +2 -1
  85. homeassistant-stubs/components/homeassistant_hardware/update.pyi +68 -0
  86. homeassistant-stubs/components/homeassistant_hardware/util.pyi +6 -1
  87. homeassistant-stubs/components/homeassistant_sky_connect/__init__.pyi +7 -1
  88. homeassistant-stubs/components/homeassistant_sky_connect/config_flow.pyi +1 -1
  89. homeassistant-stubs/components/homeassistant_sky_connect/const.pyi +10 -0
  90. homeassistant-stubs/components/homeassistant_sky_connect/update.pyi +29 -0
  91. homeassistant-stubs/components/homeassistant_yellow/__init__.pyi +1 -1
  92. homeassistant-stubs/components/homeassistant_yellow/config_flow.pyi +1 -1
  93. homeassistant-stubs/components/homeassistant_yellow/const.pyi +4 -0
  94. homeassistant-stubs/components/homeassistant_yellow/update.pyi +29 -0
  95. homeassistant-stubs/components/homee/binary_sensor.pyi +21 -0
  96. homeassistant-stubs/components/homee/button.pyi +1 -0
  97. homeassistant-stubs/components/homee/cover.pyi +1 -0
  98. homeassistant-stubs/components/homee/light.pyi +1 -0
  99. homeassistant-stubs/components/homee/lock.pyi +25 -0
  100. homeassistant-stubs/components/homee/number.pyi +1 -0
  101. homeassistant-stubs/components/homee/select.pyi +23 -0
  102. homeassistant-stubs/components/homee/sensor.pyi +2 -0
  103. homeassistant-stubs/components/homee/switch.pyi +2 -0
  104. homeassistant-stubs/components/homee/valve.pyi +1 -0
  105. homeassistant-stubs/components/homekit/__init__.pyi +3 -1
  106. homeassistant-stubs/components/homekit/accessories.pyi +1 -0
  107. homeassistant-stubs/components/homekit/type_switches.pyi +6 -0
  108. homeassistant-stubs/components/huawei_lte/__init__.pyi +1 -1
  109. homeassistant-stubs/components/husqvarna_automower/coordinator.pyi +7 -7
  110. homeassistant-stubs/components/incomfort/config_flow.pyi +1 -0
  111. homeassistant-stubs/components/iron_os/coordinator.pyi +2 -0
  112. homeassistant-stubs/components/iron_os/number.pyi +2 -0
  113. homeassistant-stubs/components/iron_os/select.pyi +3 -0
  114. homeassistant-stubs/components/jewish_calendar/__init__.pyi +9 -2
  115. homeassistant-stubs/components/jewish_calendar/binary_sensor.pyi +4 -4
  116. homeassistant-stubs/components/jewish_calendar/const.pyi +3 -0
  117. homeassistant-stubs/components/jewish_calendar/entity.pyi +2 -2
  118. homeassistant-stubs/components/jewish_calendar/sensor.pyi +5 -6
  119. homeassistant-stubs/components/jewish_calendar/service.pyi +10 -0
  120. homeassistant-stubs/components/lawn_mower/__init__.pyi +1 -0
  121. homeassistant-stubs/components/linkplay/entity.pyi +0 -1
  122. homeassistant-stubs/components/linkplay/media_player.pyi +3 -2
  123. homeassistant-stubs/components/linkplay/utils.pyi +0 -32
  124. homeassistant-stubs/components/lovelace/__init__.pyi +3 -1
  125. homeassistant-stubs/components/mastodon/__init__.pyi +2 -2
  126. homeassistant-stubs/components/mastodon/config_flow.pyi +2 -1
  127. homeassistant-stubs/components/mastodon/const.pyi +0 -7
  128. homeassistant-stubs/components/mastodon/coordinator.pyi +5 -5
  129. homeassistant-stubs/components/mastodon/diagnostics.pyi +2 -1
  130. homeassistant-stubs/components/mastodon/entity.pyi +1 -1
  131. homeassistant-stubs/components/mastodon/notify.pyi +3 -2
  132. homeassistant-stubs/components/mastodon/sensor.pyi +2 -3
  133. homeassistant-stubs/components/mastodon/services.pyi +1 -0
  134. homeassistant-stubs/components/mastodon/utils.pyi +3 -2
  135. homeassistant-stubs/components/mcp/coordinator.pyi +2 -9
  136. homeassistant-stubs/components/mcp_server/config_flow.pyi +1 -1
  137. homeassistant-stubs/components/mcp_server/const.pyi +1 -2
  138. homeassistant-stubs/components/mcp_server/server.pyi +1 -0
  139. homeassistant-stubs/components/modbus/__init__.pyi +1 -1
  140. homeassistant-stubs/components/modbus/climate.pyi +6 -2
  141. homeassistant-stubs/components/modbus/const.pyi +10 -0
  142. homeassistant-stubs/components/mqtt/config_flow.pyi +95 -7
  143. homeassistant-stubs/components/mqtt/const.pyi +65 -0
  144. homeassistant-stubs/components/mqtt/cover.pyi +2 -0
  145. homeassistant-stubs/components/mqtt/entity.pyi +4 -4
  146. homeassistant-stubs/components/mqtt/lawn_mower.pyi +1 -2
  147. homeassistant-stubs/components/mqtt/light/schema_basic.pyi +2 -48
  148. homeassistant-stubs/components/mqtt/light/schema_json.pyi +1 -14
  149. homeassistant-stubs/components/mqtt/light/schema_template.pyi +3 -14
  150. homeassistant-stubs/components/mqtt/models.pyi +25 -1
  151. homeassistant-stubs/components/mqtt/sensor.pyi +6 -5
  152. homeassistant-stubs/components/mqtt/update.pyi +1 -1
  153. homeassistant-stubs/components/mqtt/util.pyi +2 -0
  154. homeassistant-stubs/components/mysensors/__init__.pyi +1 -1
  155. homeassistant-stubs/components/mysensors/binary_sensor.pyi +0 -1
  156. homeassistant-stubs/components/mysensors/climate.pyi +0 -1
  157. homeassistant-stubs/components/mysensors/const.pyi +0 -1
  158. homeassistant-stubs/components/mysensors/cover.pyi +1 -2
  159. homeassistant-stubs/components/mysensors/device_tracker.pyi +0 -1
  160. homeassistant-stubs/components/mysensors/gateway.pyi +1 -1
  161. homeassistant-stubs/components/mysensors/helpers.pyi +1 -3
  162. homeassistant-stubs/components/mysensors/light.pyi +4 -5
  163. homeassistant-stubs/components/mysensors/remote.pyi +0 -1
  164. homeassistant-stubs/components/mysensors/sensor.pyi +0 -1
  165. homeassistant-stubs/components/mysensors/switch.pyi +1 -2
  166. homeassistant-stubs/components/mysensors/text.pyi +0 -1
  167. homeassistant-stubs/components/nam/button.pyi +2 -0
  168. homeassistant-stubs/components/nam/const.pyi +1 -0
  169. homeassistant-stubs/components/nam/sensor.pyi +2 -2
  170. homeassistant-stubs/components/nest/media_source.pyi +5 -0
  171. homeassistant-stubs/components/nextdns/__init__.pyi +1 -1
  172. homeassistant-stubs/components/nextdns/button.pyi +2 -0
  173. homeassistant-stubs/components/nextdns/config_flow.pyi +1 -0
  174. homeassistant-stubs/components/nextdns/switch.pyi +1 -0
  175. homeassistant-stubs/components/nut/__init__.pyi +1 -0
  176. homeassistant-stubs/components/nut/button.pyi +14 -0
  177. homeassistant-stubs/components/nut/entity.pyi +19 -0
  178. homeassistant-stubs/components/nut/sensor.pyi +8 -13
  179. homeassistant-stubs/components/nut/switch.pyi +18 -0
  180. homeassistant-stubs/components/onboarding/views.pyi +2 -1
  181. homeassistant-stubs/components/onedrive/__init__.pyi +4 -0
  182. homeassistant-stubs/components/onedrive/backup.pyi +1 -1
  183. homeassistant-stubs/components/onedrive/services.pyi +15 -0
  184. homeassistant-stubs/components/openai_conversation/__init__.pyi +5 -1
  185. homeassistant-stubs/components/openai_conversation/config_flow.pyi +5 -2
  186. homeassistant-stubs/components/openai_conversation/const.pyi +22 -11
  187. homeassistant-stubs/components/openai_conversation/conversation.pyi +6 -7
  188. homeassistant-stubs/components/overkiz/water_heater/__init__.pyi +1 -0
  189. homeassistant-stubs/components/overkiz/water_heater/atlantic_domestic_hot_water_production_v2_io_component.pyi +41 -0
  190. homeassistant-stubs/components/purpleair/__init__.pyi +5 -10
  191. homeassistant-stubs/components/purpleair/const.pyi +6 -4
  192. homeassistant-stubs/components/purpleair/coordinator.pyi +3 -2
  193. homeassistant-stubs/components/purpleair/diagnostics.pyi +2 -4
  194. homeassistant-stubs/components/purpleair/entity.pyi +2 -3
  195. homeassistant-stubs/components/purpleair/sensor.pyi +4 -5
  196. homeassistant-stubs/components/pyload/__init__.pyi +12 -0
  197. homeassistant-stubs/components/pyload/button.pyi +32 -0
  198. homeassistant-stubs/components/pyload/config_flow.pyi +23 -0
  199. homeassistant-stubs/components/pyload/const.pyi +6 -0
  200. homeassistant-stubs/components/pyload/coordinator.pyi +34 -0
  201. homeassistant-stubs/components/pyload/diagnostics.pyi +10 -0
  202. homeassistant-stubs/components/pyload/entity.pyi +13 -0
  203. homeassistant-stubs/components/pyload/sensor.pyi +33 -0
  204. homeassistant-stubs/components/pyload/switch.pyi +37 -0
  205. homeassistant-stubs/components/qbus/climate.pyi +41 -0
  206. homeassistant-stubs/components/qbus/light.pyi +3 -3
  207. homeassistant-stubs/components/recorder/const.pyi +1 -0
  208. homeassistant-stubs/components/recorder/core.pyi +1 -2
  209. homeassistant-stubs/components/recorder/db_schema.pyi +3 -1
  210. homeassistant-stubs/components/recorder/migration.pyi +16 -2
  211. homeassistant-stubs/components/recorder/models/__init__.pyi +2 -2
  212. homeassistant-stubs/components/recorder/models/statistics.pyi +10 -2
  213. homeassistant-stubs/components/recorder/statistics.pyi +27 -9
  214. homeassistant-stubs/components/recorder/table_managers/statistics_meta.pyi +5 -3
  215. homeassistant-stubs/components/recorder/websocket_api.pyi +1 -1
  216. homeassistant-stubs/components/remote_calendar/__init__.pyi +11 -0
  217. homeassistant-stubs/components/remote_calendar/calendar.pyi +26 -0
  218. homeassistant-stubs/components/remote_calendar/config_flow.pyi +13 -0
  219. homeassistant-stubs/components/remote_calendar/const.pyi +2 -0
  220. homeassistant-stubs/components/remote_calendar/coordinator.pyi +20 -0
  221. homeassistant-stubs/components/remote_calendar/diagnostics.pyi +5 -0
  222. homeassistant-stubs/components/renault/config_flow.pyi +1 -0
  223. homeassistant-stubs/components/reolink/__init__.pyi +1 -1
  224. homeassistant-stubs/components/reolink/binary_sensor.pyi +17 -1
  225. homeassistant-stubs/components/reolink/config_flow.pyi +1 -1
  226. homeassistant-stubs/components/reolink/const.pyi +1 -0
  227. homeassistant-stubs/components/reolink/host.pyi +4 -4
  228. homeassistant-stubs/components/reolink/number.pyi +21 -1
  229. homeassistant-stubs/components/reolink/select.pyi +17 -1
  230. homeassistant-stubs/components/reolink/update.pyi +2 -1
  231. homeassistant-stubs/components/reolink/util.pyi +7 -0
  232. homeassistant-stubs/components/roborock/__init__.pyi +5 -3
  233. homeassistant-stubs/components/roborock/binary_sensor.pyi +4 -1
  234. homeassistant-stubs/components/roborock/button.pyi +11 -1
  235. homeassistant-stubs/components/roborock/config_flow.pyi +7 -3
  236. homeassistant-stubs/components/roborock/const.pyi +7 -1
  237. homeassistant-stubs/components/roborock/coordinator.pyi +18 -3
  238. homeassistant-stubs/components/roborock/entity.pyi +3 -1
  239. homeassistant-stubs/components/roborock/image.pyi +2 -7
  240. homeassistant-stubs/components/roborock/models.pyi +7 -0
  241. homeassistant-stubs/components/roborock/number.pyi +1 -0
  242. homeassistant-stubs/components/roborock/select.pyi +7 -5
  243. homeassistant-stubs/components/roborock/sensor.pyi +14 -1
  244. homeassistant-stubs/components/roborock/switch.pyi +2 -0
  245. homeassistant-stubs/components/roborock/time.pyi +1 -0
  246. homeassistant-stubs/components/roborock/vacuum.pyi +1 -1
  247. homeassistant-stubs/components/sensor/const.pyi +2 -0
  248. homeassistant-stubs/components/sensor/recorder.pyi +15 -3
  249. homeassistant-stubs/components/shelly/__init__.pyi +2 -2
  250. homeassistant-stubs/components/shelly/bluetooth/__init__.pyi +4 -2
  251. homeassistant-stubs/components/shelly/button.pyi +22 -7
  252. homeassistant-stubs/components/shelly/climate.pyi +1 -1
  253. homeassistant-stubs/components/shelly/config_flow.pyi +5 -5
  254. homeassistant-stubs/components/shelly/const.pyi +0 -1
  255. homeassistant-stubs/components/shelly/coordinator.pyi +5 -1
  256. homeassistant-stubs/components/shelly/diagnostics.pyi +1 -2
  257. homeassistant-stubs/components/shelly/entity.pyi +1 -3
  258. homeassistant-stubs/components/shelly/event.pyi +1 -1
  259. homeassistant-stubs/components/shelly/number.pyi +1 -1
  260. homeassistant-stubs/components/shelly/sensor.pyi +2 -2
  261. homeassistant-stubs/components/shelly/switch.pyi +14 -14
  262. homeassistant-stubs/components/shelly/update.pyi +1 -1
  263. homeassistant-stubs/components/shelly/utils.pyi +6 -2
  264. homeassistant-stubs/components/skybell/config_flow.pyi +3 -0
  265. homeassistant-stubs/components/smlight/__init__.pyi +0 -2
  266. homeassistant-stubs/components/smlight/sensor.pyi +5 -2
  267. homeassistant-stubs/components/smlight/update.pyi +0 -1
  268. homeassistant-stubs/components/squeezebox/browse_media.pyi +6 -11
  269. homeassistant-stubs/components/squeezebox/button.pyi +31 -0
  270. homeassistant-stubs/components/squeezebox/entity.pyi +8 -2
  271. homeassistant-stubs/components/squeezebox/media_player.pyi +3 -5
  272. homeassistant-stubs/components/synology_dsm/__init__.pyi +5 -7
  273. homeassistant-stubs/components/synology_dsm/backup.pyi +3 -4
  274. homeassistant-stubs/components/synology_dsm/binary_sensor.pyi +2 -5
  275. homeassistant-stubs/components/synology_dsm/button.pyi +2 -3
  276. homeassistant-stubs/components/synology_dsm/camera.pyi +2 -4
  277. homeassistant-stubs/components/synology_dsm/config_flow.pyi +3 -2
  278. homeassistant-stubs/components/synology_dsm/coordinator.pyi +15 -5
  279. homeassistant-stubs/components/synology_dsm/diagnostics.pyi +3 -4
  280. homeassistant-stubs/components/synology_dsm/media_source.pyi +3 -1
  281. homeassistant-stubs/components/synology_dsm/repairs.pyi +2 -3
  282. homeassistant-stubs/components/synology_dsm/sensor.pyi +3 -5
  283. homeassistant-stubs/components/synology_dsm/service.pyi +1 -1
  284. homeassistant-stubs/components/synology_dsm/switch.pyi +2 -4
  285. homeassistant-stubs/components/synology_dsm/update.pyi +2 -5
  286. homeassistant-stubs/components/tibber/coordinator.pyi +1 -1
  287. homeassistant-stubs/components/todo/intent.pyi +8 -0
  288. homeassistant-stubs/components/trafikverket_ferry/config_flow.pyi +1 -0
  289. homeassistant-stubs/components/trafikverket_weatherstation/config_flow.pyi +3 -0
  290. homeassistant-stubs/components/tts/__init__.pyi +66 -51
  291. homeassistant-stubs/components/tts/entity.pyi +54 -0
  292. homeassistant-stubs/components/tts/media_source.pyi +1 -1
  293. homeassistant-stubs/components/update/__init__.pyi +2 -2
  294. homeassistant-stubs/components/usb/__init__.pyi +1 -5
  295. homeassistant-stubs/components/usb/utils.pyi +2 -0
  296. homeassistant-stubs/components/vodafone_station/__init__.pyi +11 -0
  297. homeassistant-stubs/components/vodafone_station/button.pyi +31 -0
  298. homeassistant-stubs/components/vodafone_station/config_flow.pyi +29 -0
  299. homeassistant-stubs/components/vodafone_station/const.pyi +9 -0
  300. homeassistant-stubs/components/vodafone_station/coordinator.pyi +43 -0
  301. homeassistant-stubs/components/vodafone_station/device_tracker.pyi +30 -0
  302. homeassistant-stubs/components/vodafone_station/diagnostics.pyi +10 -0
  303. homeassistant-stubs/components/vodafone_station/helpers.pyi +8 -0
  304. homeassistant-stubs/components/vodafone_station/sensor.pyi +38 -0
  305. homeassistant-stubs/components/zwave_js/__init__.pyi +5 -9
  306. homeassistant-stubs/components/zwave_js/api.pyi +15 -0
  307. homeassistant-stubs/components/zwave_js/config_flow.pyi +0 -1
  308. homeassistant-stubs/config_entries.pyi +2 -5
  309. homeassistant-stubs/helpers/backup.pyi +4 -1
  310. homeassistant-stubs/helpers/config_entry_oauth2_flow.pyi +14 -0
  311. homeassistant-stubs/helpers/config_validation.pyi +5 -2
  312. homeassistant-stubs/helpers/frame.pyi +14 -5
  313. homeassistant-stubs/helpers/intent.pyi +13 -4
  314. homeassistant-stubs/helpers/llm.pyi +7 -1
  315. homeassistant-stubs/helpers/script.pyi +1 -1
  316. homeassistant-stubs/helpers/selector.pyi +1 -0
  317. homeassistant-stubs/helpers/template.pyi +14 -1
  318. homeassistant-stubs/loader.pyi +18 -8
  319. homeassistant-stubs/scripts/check_config.pyi +0 -1
  320. homeassistant-stubs/util/logging.pyi +18 -1
  321. homeassistant-stubs/util/unit_conversion.pyi +3 -0
  322. homeassistant-stubs/util/unit_system.pyi +12 -10
  323. homeassistant-stubs/util/yaml/__init__.pyi +3 -4
  324. homeassistant-stubs/util/yaml/dumper.pyi +2 -8
  325. homeassistant-stubs/util/yaml/input.pyi +2 -9
  326. homeassistant-stubs/util/yaml/loader.pyi +4 -72
  327. homeassistant-stubs/util/yaml/objects.pyi +2 -26
  328. {homeassistant_stubs-2025.3.3.dist-info → homeassistant_stubs-2025.4.0.dist-info}/METADATA +2 -2
  329. {homeassistant_stubs-2025.3.3.dist-info → homeassistant_stubs-2025.4.0.dist-info}/RECORD +331 -270
  330. homeassistant-stubs/components/mcp_server/llm_api.pyi +0 -15
  331. homeassistant-stubs/components/synology_dsm/models.pyi +0 -10
  332. homeassistant-stubs/util/yaml/const.pyi +0 -1
  333. {homeassistant_stubs-2025.3.3.dist-info → homeassistant_stubs-2025.4.0.dist-info}/WHEEL +0 -0
  334. {homeassistant_stubs-2025.3.3.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
 
@@ -3,6 +3,7 @@ from _typeshed import Incomplete
3
3
  from homeassistant.const import UnitOfTemperature as UnitOfTemperature, UnitOfTime as UnitOfTime, UnitOfVolume as UnitOfVolume
4
4
 
5
5
  DOMAIN: str
6
+ API_DEFAULT_RETRY_AFTER: int
6
7
  APPLIANCES_WITH_PROGRAMS: Incomplete
7
8
  UNIT_MAP: Incomplete
8
9
  BSH_POWER_ON: str
@@ -35,12 +36,6 @@ ATTR_UNIT: str
35
36
  ATTR_VALUE: str
36
37
  AFFECTS_TO_ACTIVE_PROGRAM: str
37
38
  AFFECTS_TO_SELECTED_PROGRAM: str
38
- SVE_TRANSLATION_KEY_SET_SETTING: str
39
- SVE_TRANSLATION_PLACEHOLDER_APPLIANCE_NAME: str
40
- SVE_TRANSLATION_PLACEHOLDER_ENTITY_ID: str
41
- SVE_TRANSLATION_PLACEHOLDER_PROGRAM: str
42
- SVE_TRANSLATION_PLACEHOLDER_KEY: str
43
- SVE_TRANSLATION_PLACEHOLDER_VALUE: str
44
39
  TRANSLATION_KEYS_PROGRAMS_MAP: Incomplete
45
40
  PROGRAMS_TRANSLATION_KEYS_MAP: Incomplete
46
41
  AVAILABLE_MAPS_ENUM: Incomplete
@@ -1,4 +1,4 @@
1
- from .const import APPLIANCES_WITH_PROGRAMS as APPLIANCES_WITH_PROGRAMS, DOMAIN as DOMAIN
1
+ from .const import API_DEFAULT_RETRY_AFTER as API_DEFAULT_RETRY_AFTER, APPLIANCES_WITH_PROGRAMS as APPLIANCES_WITH_PROGRAMS, DOMAIN as DOMAIN
2
2
  from .utils import get_dict_from_home_connect_error as get_dict_from_home_connect_error
3
3
  from _typeshed import Incomplete
4
4
  from aiohomeconnect.client import Client as HomeConnectClient
@@ -8,7 +8,7 @@ from collections.abc import Callable as Callable
8
8
  from dataclasses import dataclass
9
9
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
10
10
  from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, HomeAssistant as HomeAssistant, callback as callback
11
- from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed
11
+ from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryNotReady as ConfigEntryNotReady
12
12
  from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
13
13
  from propcache.api import cached_property
14
14
  from typing import Any
@@ -48,6 +48,8 @@ class HomeConnectCoordinator(DataUpdateCoordinator[dict[str, HomeConnectApplianc
48
48
  @callback
49
49
  def _call_all_event_listeners_for_appliance(self, ha_id: str) -> None: ...
50
50
  async def _async_update_data(self) -> dict[str, HomeConnectApplianceData]: ...
51
+ async def async_setup(self) -> None: ...
52
+ async def _async_setup(self) -> None: ...
51
53
  async def _get_appliance_data(self, appliance: HomeAppliance, appliance_data_to_update: HomeConnectApplianceData | None = None) -> HomeConnectApplianceData: ...
52
54
  async def get_options_definitions(self, ha_id: str, program_key: ProgramKey) -> dict[OptionKey, ProgramDefinitionOption]: ...
53
55
  async def update_options(self, ha_id: str, event_key: EventKey, program_key: ProgramKey) -> None: ...
@@ -1,16 +1,19 @@
1
1
  import abc
2
- from .const import DOMAIN as DOMAIN
2
+ from .const import API_DEFAULT_RETRY_AFTER as API_DEFAULT_RETRY_AFTER, DOMAIN as DOMAIN
3
3
  from .coordinator import HomeConnectApplianceData as HomeConnectApplianceData, HomeConnectCoordinator as HomeConnectCoordinator
4
4
  from .utils import get_dict_from_home_connect_error as get_dict_from_home_connect_error
5
5
  from _typeshed import Incomplete
6
6
  from abc import abstractmethod
7
7
  from aiohomeconnect.model import OptionKey
8
+ from collections.abc import Callable as Callable, Coroutine
8
9
  from homeassistant.const import STATE_UNAVAILABLE as STATE_UNAVAILABLE
9
10
  from homeassistant.core import callback as callback
10
11
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
11
12
  from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
12
13
  from homeassistant.helpers.entity import EntityDescription as EntityDescription
14
+ from homeassistant.helpers.event import async_call_later as async_call_later
13
15
  from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
16
+ from typing import Any, Concatenate
14
17
 
15
18
  _LOGGER: Incomplete
16
19
 
@@ -21,7 +24,7 @@ class HomeConnectEntity(CoordinatorEntity[HomeConnectCoordinator], metaclass=abc
21
24
  entity_description: Incomplete
22
25
  _attr_unique_id: Incomplete
23
26
  _attr_device_info: Incomplete
24
- 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: ...
25
28
  @abstractmethod
26
29
  def update_native_value(self) -> None: ...
27
30
  @callback
@@ -39,3 +42,5 @@ class HomeConnectOptionEntity(HomeConnectEntity, metaclass=abc.ABCMeta):
39
42
  async def async_set_option(self, value: str | float | bool) -> None: ...
40
43
  @property
41
44
  def bsh_key(self) -> OptionKey: ...
45
+
46
+ def constraint_fetcher[_EntityT: HomeConnectEntity, **_P](func: Callable[Concatenate[_EntityT, _P], Coroutine[Any, Any, Any]]) -> Callable[Concatenate[_EntityT, _P], Coroutine[Any, Any, None]]: ...
@@ -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,7 +1,7 @@
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
- from .entity import HomeConnectEntity as HomeConnectEntity, HomeConnectOptionEntity as HomeConnectOptionEntity
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
6
6
  from _typeshed import Incomplete
7
7
  from aiohomeconnect.model import GetSetting as GetSetting
@@ -21,6 +21,8 @@ async def async_setup_entry(hass: HomeAssistant, entry: HomeConnectConfigEntry,
21
21
 
22
22
  class HomeConnectNumberEntity(HomeConnectEntity, NumberEntity):
23
23
  async def async_set_native_value(self, value: float) -> None: ...
24
+ _attr_native_unit_of_measurement: Incomplete
25
+ @constraint_fetcher
24
26
  async def async_fetch_constraints(self) -> None: ...
25
27
  _attr_native_max_value: Incomplete
26
28
  _attr_native_min_value: Incomplete
@@ -28,7 +30,6 @@ class HomeConnectNumberEntity(HomeConnectEntity, NumberEntity):
28
30
  def set_constraints(self, setting: GetSetting) -> None: ...
29
31
  _attr_native_value: Incomplete
30
32
  def update_native_value(self) -> None: ...
31
- _attr_native_unit_of_measurement: Incomplete
32
33
  async def async_added_to_hass(self) -> None: ...
33
34
 
34
35
  class HomeConnectOptionNumberEntity(HomeConnectOptionEntity, NumberEntity):
@@ -1,7 +1,7 @@
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
- from .entity import HomeConnectEntity as HomeConnectEntity, HomeConnectOptionEntity as HomeConnectOptionEntity
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
6
6
  from _typeshed import Incomplete
7
7
  from aiohomeconnect.client import Client as HomeConnectClient
@@ -15,6 +15,7 @@ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
15
15
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
16
16
  from typing import Any
17
17
 
18
+ _LOGGER: Incomplete
18
19
  PARALLEL_UPDATES: int
19
20
  FUNCTIONAL_LIGHT_COLOR_TEMPERATURE_ENUM: Incomplete
20
21
  AMBIENT_LIGHT_COLOR_TEMPERATURE_ENUM: Incomplete
@@ -48,12 +49,15 @@ class HomeConnectProgramSelectEntity(HomeConnectEntity, SelectEntity):
48
49
 
49
50
  class HomeConnectSelectEntity(HomeConnectEntity, SelectEntity):
50
51
  entity_description: HomeConnectSelectEntityDescription
52
+ _original_option_keys: set[str | None]
51
53
  def __init__(self, coordinator: HomeConnectCoordinator, appliance: HomeConnectApplianceData, desc: HomeConnectSelectEntityDescription) -> None: ...
52
54
  async def async_select_option(self, option: str) -> None: ...
53
55
  _attr_current_option: Incomplete
54
56
  def update_native_value(self) -> None: ...
55
- _attr_options: Incomplete
56
57
  async def async_added_to_hass(self) -> None: ...
58
+ _attr_options: Incomplete
59
+ @constraint_fetcher
60
+ async def async_fetch_options(self) -> None: ...
57
61
 
58
62
  class HomeConnectSelectOptionEntity(HomeConnectOptionEntity, SelectEntity):
59
63
  entity_description: HomeConnectSelectEntityDescription
@@ -1,7 +1,7 @@
1
1
  from .common import setup_home_connect_entry as setup_home_connect_entry
2
2
  from .const import APPLIANCES_WITH_PROGRAMS as APPLIANCES_WITH_PROGRAMS, BSH_OPERATION_STATE_FINISHED as BSH_OPERATION_STATE_FINISHED, BSH_OPERATION_STATE_PAUSE as BSH_OPERATION_STATE_PAUSE, BSH_OPERATION_STATE_RUN as BSH_OPERATION_STATE_RUN, UNIT_MAP as UNIT_MAP
3
3
  from .coordinator import HomeConnectApplianceData as HomeConnectApplianceData, HomeConnectConfigEntry as HomeConnectConfigEntry
4
- from .entity import HomeConnectEntity as HomeConnectEntity
4
+ from .entity import HomeConnectEntity as HomeConnectEntity, constraint_fetcher as constraint_fetcher
5
5
  from _typeshed import Incomplete
6
6
  from dataclasses import dataclass
7
7
  from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
@@ -10,6 +10,7 @@ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callb
10
10
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
11
11
  from homeassistant.util import slugify as slugify
12
12
 
13
+ _LOGGER: Incomplete
13
14
  PARALLEL_UPDATES: int
14
15
  EVENT_OPTIONS: Incomplete
15
16
 
@@ -33,6 +34,7 @@ class HomeConnectSensor(HomeConnectEntity, SensorEntity):
33
34
  def _update_native_value(self, status: str | float) -> None: ...
34
35
  _attr_native_unit_of_measurement: Incomplete
35
36
  async def async_added_to_hass(self) -> None: ...
37
+ @constraint_fetcher
36
38
  async def fetch_unit(self) -> None: ...
37
39
 
38
40
  class HomeConnectProgramSensor(HomeConnectSensor):
@@ -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: ...