homeassistant-stubs 2024.11.3__py3-none-any.whl → 2024.12.0b0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (371) hide show
  1. homeassistant-stubs/__main__.pyi +1 -0
  2. homeassistant-stubs/auth/mfa_modules/totp.pyi +4 -4
  3. homeassistant-stubs/backup_restore.pyi +17 -0
  4. homeassistant-stubs/components/airnow/config_flow.pyi +3 -3
  5. homeassistant-stubs/components/alarm_control_panel/__init__.pyi +2 -2
  6. homeassistant-stubs/components/amberelectric/config_flow.pyi +1 -1
  7. homeassistant-stubs/components/amberelectric/coordinator.pyi +7 -7
  8. homeassistant-stubs/components/amberelectric/sensor.pyi +3 -4
  9. homeassistant-stubs/components/analytics_insights/config_flow.pyi +3 -3
  10. homeassistant-stubs/components/androidtv/config_flow.pyi +2 -2
  11. homeassistant-stubs/components/androidtv_remote/config_flow.pyi +2 -2
  12. homeassistant-stubs/components/assist_pipeline/audio_enhancer.pyi +2 -3
  13. homeassistant-stubs/components/assist_pipeline/pipeline.pyi +4 -2
  14. homeassistant-stubs/components/assist_pipeline/vad.pyi +7 -4
  15. homeassistant-stubs/components/axis/config_flow.pyi +2 -2
  16. homeassistant-stubs/components/backup/http.pyi +7 -3
  17. homeassistant-stubs/components/backup/manager.pyi +8 -0
  18. homeassistant-stubs/components/backup/websocket.pyi +1 -0
  19. homeassistant-stubs/components/bang_olufsen/const.pyi +1 -6
  20. homeassistant-stubs/components/bang_olufsen/diagnostics.pyi +6 -0
  21. homeassistant-stubs/components/bang_olufsen/media_player.pyi +11 -5
  22. homeassistant-stubs/components/bang_olufsen/websocket.pyi +2 -2
  23. homeassistant-stubs/components/bmw_connected_drive/config_flow.pyi +2 -2
  24. homeassistant-stubs/components/brother/sensor.pyi +0 -1
  25. homeassistant-stubs/components/cambridge_audio/__init__.pyi +1 -0
  26. homeassistant-stubs/components/cambridge_audio/config_flow.pyi +1 -0
  27. homeassistant-stubs/components/cambridge_audio/media_player.pyi +1 -0
  28. homeassistant-stubs/components/cambridge_audio/select.pyi +3 -1
  29. homeassistant-stubs/components/cambridge_audio/switch.pyi +3 -1
  30. homeassistant-stubs/components/camera/__init__.pyi +5 -3
  31. homeassistant-stubs/components/camera/webrtc.pyi +10 -6
  32. homeassistant-stubs/components/canary/config_flow.pyi +0 -2
  33. homeassistant-stubs/components/climate/__init__.pyi +10 -3
  34. homeassistant-stubs/components/climate/const.pyi +6 -0
  35. homeassistant-stubs/components/climate/reproduce_state.pyi +1 -1
  36. homeassistant-stubs/components/climate/significant_change.pyi +1 -1
  37. homeassistant-stubs/components/cloud/prefs.pyi +1 -1
  38. homeassistant-stubs/components/crownstone/config_flow.pyi +1 -2
  39. homeassistant-stubs/components/deconz/config_flow.pyi +1 -5
  40. homeassistant-stubs/components/demo/climate.pyi +8 -1
  41. homeassistant-stubs/components/demo/config_flow.pyi +0 -1
  42. homeassistant-stubs/components/discovergy/config_flow.pyi +2 -5
  43. homeassistant-stubs/components/dlna_dmr/config_flow.pyi +0 -2
  44. homeassistant-stubs/components/dnsip/config_flow.pyi +2 -2
  45. homeassistant-stubs/components/doorbird/config_flow.pyi +0 -2
  46. homeassistant-stubs/components/dsmr/config_flow.pyi +0 -2
  47. homeassistant-stubs/components/ecovacs/sensor.pyi +1 -1
  48. homeassistant-stubs/components/elevenlabs/config_flow.pyi +2 -2
  49. homeassistant-stubs/components/enphase_envoy/config_flow.pyi +2 -2
  50. homeassistant-stubs/components/eq3btsmart/__init__.pyi +7 -6
  51. homeassistant-stubs/components/eq3btsmart/binary_sensor.pyi +26 -0
  52. homeassistant-stubs/components/eq3btsmart/climate.pyi +4 -15
  53. homeassistant-stubs/components/eq3btsmart/const.pyi +14 -0
  54. homeassistant-stubs/components/eq3btsmart/entity.pyi +17 -3
  55. homeassistant-stubs/components/eq3btsmart/models.pyi +1 -3
  56. homeassistant-stubs/components/eq3btsmart/number.pyi +33 -0
  57. homeassistant-stubs/components/eq3btsmart/sensor.pyi +28 -0
  58. homeassistant-stubs/components/eq3btsmart/switch.pyi +30 -0
  59. homeassistant-stubs/components/esphome/assist_satellite.pyi +1 -0
  60. homeassistant-stubs/components/esphome/config_flow.pyi +0 -2
  61. homeassistant-stubs/components/esphome/entry_data.pyi +8 -1
  62. homeassistant-stubs/components/esphome/ffmpeg_proxy.pyi +1 -0
  63. homeassistant-stubs/components/esphome/media_player.pyi +2 -1
  64. homeassistant-stubs/components/esphome/select.pyi +17 -1
  65. homeassistant-stubs/components/fan/__init__.pyi +1 -1
  66. homeassistant-stubs/components/feedreader/config_flow.pyi +2 -2
  67. homeassistant-stubs/components/filesize/config_flow.pyi +2 -5
  68. homeassistant-stubs/components/fitbit/config_flow.pyi +0 -1
  69. homeassistant-stubs/components/fitbit/sensor.pyi +12 -15
  70. homeassistant-stubs/components/flux_led/config_flow.pyi +1 -3
  71. homeassistant-stubs/components/forecast_solar/config_flow.pyi +0 -2
  72. homeassistant-stubs/components/fritz/config_flow.pyi +4 -4
  73. homeassistant-stubs/components/fritzbox/config_flow.pyi +1 -1
  74. homeassistant-stubs/components/fritzbox_callmonitor/config_flow.pyi +0 -2
  75. homeassistant-stubs/components/fully_kiosk/__init__.pyi +3 -2
  76. homeassistant-stubs/components/fully_kiosk/binary_sensor.pyi +2 -3
  77. homeassistant-stubs/components/fully_kiosk/button.pyi +2 -3
  78. homeassistant-stubs/components/fully_kiosk/camera.pyi +2 -3
  79. homeassistant-stubs/components/fully_kiosk/diagnostics.pyi +2 -3
  80. homeassistant-stubs/components/fully_kiosk/image.pyi +2 -3
  81. homeassistant-stubs/components/fully_kiosk/media_player.pyi +3 -3
  82. homeassistant-stubs/components/fully_kiosk/notify.pyi +2 -3
  83. homeassistant-stubs/components/fully_kiosk/number.pyi +2 -3
  84. homeassistant-stubs/components/fully_kiosk/sensor.pyi +2 -3
  85. homeassistant-stubs/components/fully_kiosk/switch.pyi +2 -3
  86. homeassistant-stubs/components/fyta/__init__.pyi +1 -0
  87. homeassistant-stubs/components/glances/__init__.pyi +0 -2
  88. homeassistant-stubs/components/go2rtc/__init__.pyi +2 -2
  89. homeassistant-stubs/components/google/config_flow.pyi +0 -2
  90. homeassistant-stubs/components/google_assistant_sdk/config_flow.pyi +0 -2
  91. homeassistant-stubs/components/google_cloud/config_flow.pyi +2 -2
  92. homeassistant-stubs/components/google_cloud/helpers.pyi +1 -1
  93. homeassistant-stubs/components/here_travel_time/config_flow.pyi +1 -2
  94. homeassistant-stubs/components/homeassistant_hardware/firmware_config_flow.pyi +4 -3
  95. homeassistant-stubs/components/homeassistant_hardware/silabs_multiprotocol_addon.pyi +0 -1
  96. homeassistant-stubs/components/homekit/config_flow.pyi +1 -2
  97. homeassistant-stubs/components/homewizard/button.pyi +2 -0
  98. homeassistant-stubs/components/homewizard/config_flow.pyi +5 -1
  99. homeassistant-stubs/components/homewizard/const.pyi +1 -1
  100. homeassistant-stubs/components/homewizard/coordinator.pyi +3 -3
  101. homeassistant-stubs/components/homewizard/number.pyi +2 -0
  102. homeassistant-stubs/components/homewizard/sensor.pyi +1 -1
  103. homeassistant-stubs/components/homewizard/switch.pyi +4 -2
  104. homeassistant-stubs/components/huawei_lte/config_flow.pyi +0 -2
  105. homeassistant-stubs/components/husqvarna_automower/api.pyi +6 -0
  106. homeassistant-stubs/components/husqvarna_automower/binary_sensor.pyi +7 -0
  107. homeassistant-stubs/components/husqvarna_automower/button.pyi +1 -0
  108. homeassistant-stubs/components/husqvarna_automower/config_flow.pyi +2 -1
  109. homeassistant-stubs/components/husqvarna_automower/lawn_mower.pyi +2 -1
  110. homeassistant-stubs/components/husqvarna_automower/number.pyi +1 -0
  111. homeassistant-stubs/components/husqvarna_automower/select.pyi +1 -0
  112. homeassistant-stubs/components/husqvarna_automower/switch.pyi +1 -0
  113. homeassistant-stubs/components/hydrawise/sensor.pyi +2 -9
  114. homeassistant-stubs/components/hyperion/config_flow.pyi +0 -2
  115. homeassistant-stubs/components/ibeacon/config_flow.pyi +0 -3
  116. homeassistant-stubs/components/imap/config_flow.pyi +3 -3
  117. homeassistant-stubs/components/imap/sensor.pyi +1 -1
  118. homeassistant-stubs/components/intent/timers.pyi +6 -0
  119. homeassistant-stubs/components/islamic_prayer_times/config_flow.pyi +0 -3
  120. homeassistant-stubs/components/isy994/config_flow.pyi +0 -2
  121. homeassistant-stubs/components/jellyfin/config_flow.pyi +3 -3
  122. homeassistant-stubs/components/jewish_calendar/__init__.pyi +6 -17
  123. homeassistant-stubs/components/jewish_calendar/binary_sensor.pyi +2 -4
  124. homeassistant-stubs/components/jewish_calendar/config_flow.pyi +3 -4
  125. homeassistant-stubs/components/jewish_calendar/entity.pyi +15 -4
  126. homeassistant-stubs/components/jewish_calendar/sensor.pyi +3 -5
  127. homeassistant-stubs/components/knx/config_flow.pyi +0 -1
  128. homeassistant-stubs/components/knx/light.pyi +3 -3
  129. homeassistant-stubs/components/knx/telegrams.pyi +1 -0
  130. homeassistant-stubs/components/knx/websocket.pyi +1 -0
  131. homeassistant-stubs/components/kraken/config_flow.pyi +0 -3
  132. homeassistant-stubs/components/lamarzocco/binary_sensor.pyi +1 -1
  133. homeassistant-stubs/components/lamarzocco/button.pyi +7 -3
  134. homeassistant-stubs/components/lamarzocco/calendar.pyi +1 -1
  135. homeassistant-stubs/components/lamarzocco/config_flow.pyi +7 -5
  136. homeassistant-stubs/components/lamarzocco/coordinator.pyi +3 -3
  137. homeassistant-stubs/components/lamarzocco/diagnostics.pyi +1 -1
  138. homeassistant-stubs/components/lamarzocco/entity.pyi +3 -2
  139. homeassistant-stubs/components/lamarzocco/number.pyi +5 -3
  140. homeassistant-stubs/components/lamarzocco/select.pyi +3 -2
  141. homeassistant-stubs/components/lamarzocco/sensor.pyi +1 -1
  142. homeassistant-stubs/components/lamarzocco/switch.pyi +4 -2
  143. homeassistant-stubs/components/lamarzocco/update.pyi +3 -1
  144. homeassistant-stubs/components/lcn/__init__.pyi +4 -4
  145. homeassistant-stubs/components/lcn/config_flow.pyi +0 -4
  146. homeassistant-stubs/components/lcn/helpers.pyi +2 -4
  147. homeassistant-stubs/components/lcn/schemas.pyi +2 -13
  148. homeassistant-stubs/components/lcn/services.pyi +2 -0
  149. homeassistant-stubs/components/lektrico/binary_sensor.pyi +27 -0
  150. homeassistant-stubs/components/linkplay/button.pyi +28 -0
  151. homeassistant-stubs/components/linkplay/diagnostics.pyi +5 -0
  152. homeassistant-stubs/components/linkplay/entity.pyi +16 -0
  153. homeassistant-stubs/components/linkplay/media_player.pyi +3 -8
  154. homeassistant-stubs/components/linkplay/utils.pyi +12 -0
  155. homeassistant-stubs/components/litejet/config_flow.pyi +0 -3
  156. homeassistant-stubs/components/media_extractor/__init__.pyi +1 -2
  157. homeassistant-stubs/components/media_extractor/config_flow.pyi +0 -1
  158. homeassistant-stubs/components/mikrotik/config_flow.pyi +0 -3
  159. homeassistant-stubs/components/mjpeg/config_flow.pyi +0 -3
  160. homeassistant-stubs/components/mold_indicator/sensor.pyi +3 -5
  161. homeassistant-stubs/components/monzo/coordinator.pyi +1 -1
  162. homeassistant-stubs/components/mopeka/config_flow.pyi +0 -2
  163. homeassistant-stubs/components/mqtt/__init__.pyi +1 -0
  164. homeassistant-stubs/components/mqtt/alarm_control_panel.pyi +1 -0
  165. homeassistant-stubs/components/mqtt/binary_sensor.pyi +1 -0
  166. homeassistant-stubs/components/mqtt/button.pyi +1 -0
  167. homeassistant-stubs/components/mqtt/camera.pyi +1 -0
  168. homeassistant-stubs/components/mqtt/climate.pyi +1 -0
  169. homeassistant-stubs/components/mqtt/config_flow.pyi +1 -3
  170. homeassistant-stubs/components/mqtt/cover.pyi +1 -0
  171. homeassistant-stubs/components/mqtt/device_tracker.pyi +1 -0
  172. homeassistant-stubs/components/mqtt/entity.pyi +1 -0
  173. homeassistant-stubs/components/mqtt/event.pyi +1 -0
  174. homeassistant-stubs/components/mqtt/fan.pyi +1 -0
  175. homeassistant-stubs/components/mqtt/humidifier.pyi +1 -0
  176. homeassistant-stubs/components/mqtt/image.pyi +1 -0
  177. homeassistant-stubs/components/mqtt/lawn_mower.pyi +1 -0
  178. homeassistant-stubs/components/mqtt/light/__init__.pyi +2 -0
  179. homeassistant-stubs/components/mqtt/lock.pyi +1 -0
  180. homeassistant-stubs/components/mqtt/notify.pyi +1 -0
  181. homeassistant-stubs/components/mqtt/number.pyi +1 -0
  182. homeassistant-stubs/components/mqtt/scene.pyi +1 -0
  183. homeassistant-stubs/components/mqtt/select.pyi +1 -0
  184. homeassistant-stubs/components/mqtt/sensor.pyi +1 -0
  185. homeassistant-stubs/components/mqtt/siren.pyi +1 -0
  186. homeassistant-stubs/components/mqtt/subscription.pyi +1 -1
  187. homeassistant-stubs/components/mqtt/switch.pyi +1 -0
  188. homeassistant-stubs/components/mqtt/text.pyi +1 -0
  189. homeassistant-stubs/components/mqtt/update.pyi +1 -0
  190. homeassistant-stubs/components/mqtt/vacuum.pyi +1 -0
  191. homeassistant-stubs/components/mqtt/valve.pyi +1 -0
  192. homeassistant-stubs/components/mqtt/water_heater.pyi +1 -0
  193. homeassistant-stubs/components/music_assistant/__init__.pyi +27 -0
  194. homeassistant-stubs/components/music_assistant/config_flow.pyi +24 -0
  195. homeassistant-stubs/components/music_assistant/const.pyi +12 -0
  196. homeassistant-stubs/components/music_assistant/entity.pyi +24 -0
  197. homeassistant-stubs/components/music_assistant/media_browser.pyi +33 -0
  198. homeassistant-stubs/components/music_assistant/media_player.pyi +96 -0
  199. homeassistant-stubs/components/nasweb/__init__.pyi +19 -0
  200. homeassistant-stubs/components/nasweb/config_flow.pyi +27 -0
  201. homeassistant-stubs/components/nasweb/const.pyi +5 -0
  202. homeassistant-stubs/components/nasweb/coordinator.pyi +42 -0
  203. homeassistant-stubs/components/nasweb/nasweb_data.pyi +20 -0
  204. homeassistant-stubs/components/nasweb/switch.pyi +35 -0
  205. homeassistant-stubs/components/nest/camera.pyi +3 -5
  206. homeassistant-stubs/components/netatmo/config_flow.pyi +0 -1
  207. homeassistant-stubs/components/nightscout/sensor.pyi +4 -3
  208. homeassistant-stubs/components/nordpool/__init__.pyi +9 -0
  209. homeassistant-stubs/components/nordpool/config_flow.pyi +19 -0
  210. homeassistant-stubs/components/nordpool/const.pyi +9 -0
  211. homeassistant-stubs/components/nordpool/coordinator.pyi +20 -0
  212. homeassistant-stubs/components/nordpool/diagnostics.pyi +5 -0
  213. homeassistant-stubs/components/nordpool/entity.pyi +14 -0
  214. homeassistant-stubs/components/nordpool/sensor.pyi +69 -0
  215. homeassistant-stubs/components/number/const.pyi +3 -1
  216. homeassistant-stubs/components/nut/__init__.pyi +4 -1
  217. homeassistant-stubs/components/nut/config_flow.pyi +0 -2
  218. homeassistant-stubs/components/nut/sensor.pyi +1 -1
  219. homeassistant-stubs/components/onewire/config_flow.pyi +4 -2
  220. homeassistant-stubs/components/onkyo/config_flow.pyi +3 -2
  221. homeassistant-stubs/components/openai_conversation/config_flow.pyi +0 -1
  222. homeassistant-stubs/components/opensky/config_flow.pyi +3 -3
  223. homeassistant-stubs/components/p1_monitor/__init__.pyi +3 -3
  224. homeassistant-stubs/components/p1_monitor/diagnostics.pyi +1 -2
  225. homeassistant-stubs/components/p1_monitor/sensor.pyi +1 -1
  226. homeassistant-stubs/components/ping/__init__.pyi +2 -6
  227. homeassistant-stubs/components/ping/config_flow.pyi +0 -2
  228. homeassistant-stubs/components/plugwise/climate.pyi +1 -0
  229. homeassistant-stubs/components/plugwise/entity.pyi +2 -2
  230. homeassistant-stubs/components/plugwise/number.pyi +2 -2
  231. homeassistant-stubs/components/plugwise/select.pyi +2 -1
  232. homeassistant-stubs/components/proximity/config_flow.pyi +0 -3
  233. homeassistant-stubs/components/pure_energie/__init__.pyi +4 -5
  234. homeassistant-stubs/components/pure_energie/diagnostics.pyi +2 -4
  235. homeassistant-stubs/components/pure_energie/sensor.pyi +3 -3
  236. homeassistant-stubs/components/purpleair/config_flow.pyi +1 -2
  237. homeassistant-stubs/components/rainmachine/config_flow.pyi +0 -3
  238. homeassistant-stubs/components/recollect_waste/config_flow.pyi +1 -3
  239. homeassistant-stubs/components/recorder/pool.pyi +1 -1
  240. homeassistant-stubs/components/recorder/statistics.pyi +1 -1
  241. homeassistant-stubs/components/recorder/websocket_api.pyi +1 -1
  242. homeassistant-stubs/components/renault/config_flow.pyi +4 -5
  243. homeassistant-stubs/components/renault/services.pyi +1 -0
  244. homeassistant-stubs/components/reolink/__init__.pyi +28 -0
  245. homeassistant-stubs/components/reolink/binary_sensor.pyi +34 -0
  246. homeassistant-stubs/components/reolink/button.pyi +48 -0
  247. homeassistant-stubs/components/reolink/camera.pyi +28 -0
  248. homeassistant-stubs/components/reolink/config_flow.pyi +35 -0
  249. homeassistant-stubs/components/reolink/const.pyi +2 -0
  250. homeassistant-stubs/components/reolink/diagnostics.pyi +5 -0
  251. homeassistant-stubs/components/reolink/entity.pyi +69 -0
  252. homeassistant-stubs/components/reolink/exceptions.pyi +7 -0
  253. homeassistant-stubs/components/reolink/host.pyi +82 -0
  254. homeassistant-stubs/components/reolink/light.pyi +55 -0
  255. homeassistant-stubs/components/reolink/media_source.pyi +27 -0
  256. homeassistant-stubs/components/reolink/number.pyi +69 -0
  257. homeassistant-stubs/components/reolink/select.pyi +54 -0
  258. homeassistant-stubs/components/reolink/sensor.pyi +55 -0
  259. homeassistant-stubs/components/reolink/services.pyi +12 -0
  260. homeassistant-stubs/components/reolink/siren.pyi +26 -0
  261. homeassistant-stubs/components/reolink/switch.pyi +65 -0
  262. homeassistant-stubs/components/reolink/update.pyi +71 -0
  263. homeassistant-stubs/components/reolink/util.pyi +18 -0
  264. homeassistant-stubs/components/rfxtrx/config_flow.pyi +2 -3
  265. homeassistant-stubs/components/ring/__init__.pyi +0 -1
  266. homeassistant-stubs/components/ring/camera.pyi +22 -6
  267. homeassistant-stubs/components/rituals_perfume_genie/select.pyi +1 -1
  268. homeassistant-stubs/components/roborock/config_flow.pyi +5 -3
  269. homeassistant-stubs/components/roborock/sensor.pyi +1 -1
  270. homeassistant-stubs/components/roku/config_flow.pyi +3 -3
  271. homeassistant-stubs/components/romy/sensor.pyi +1 -1
  272. homeassistant-stubs/components/rtsp_to_webrtc/__init__.pyi +1 -0
  273. homeassistant-stubs/components/rtsp_to_webrtc/config_flow.pyi +0 -2
  274. homeassistant-stubs/components/sensor/__init__.pyi +1 -0
  275. homeassistant-stubs/components/sensor/const.pyi +4 -2
  276. homeassistant-stubs/components/sensor/device_condition.pyi +2 -0
  277. homeassistant-stubs/components/sensor/device_trigger.pyi +2 -0
  278. homeassistant-stubs/components/shelly/config_flow.pyi +0 -2
  279. homeassistant-stubs/components/shelly/update.pyi +4 -1
  280. homeassistant-stubs/components/simplisafe/config_flow.pyi +0 -2
  281. homeassistant-stubs/components/smlight/config_flow.pyi +1 -1
  282. homeassistant-stubs/components/solarlog/coordinator.pyi +1 -0
  283. homeassistant-stubs/components/sonarr/config_flow.pyi +0 -2
  284. homeassistant-stubs/components/speedtestdotnet/config_flow.pyi +1 -2
  285. homeassistant-stubs/components/sql/config_flow.pyi +2 -2
  286. homeassistant-stubs/components/statistics/sensor.pyi +2 -4
  287. homeassistant-stubs/components/stookwijzer/__init__.pyi +15 -0
  288. homeassistant-stubs/components/stookwijzer/config_flow.pyi +10 -0
  289. homeassistant-stubs/components/stookwijzer/const.pyi +5 -0
  290. homeassistant-stubs/components/stookwijzer/coordinator.pyi +15 -0
  291. homeassistant-stubs/components/stookwijzer/diagnostics.pyi +5 -0
  292. homeassistant-stubs/components/stookwijzer/sensor.pyi +31 -0
  293. homeassistant-stubs/components/stream/const.pyi +3 -2
  294. homeassistant-stubs/components/stream/core.pyi +2 -2
  295. homeassistant-stubs/components/stream/worker.pyi +15 -13
  296. homeassistant-stubs/components/suez_water/__init__.pyi +3 -3
  297. homeassistant-stubs/components/suez_water/config_flow.pyi +2 -1
  298. homeassistant-stubs/components/suez_water/const.pyi +3 -0
  299. homeassistant-stubs/components/suez_water/coordinator.pyi +35 -0
  300. homeassistant-stubs/components/suez_water/sensor.pyi +23 -17
  301. homeassistant-stubs/components/switchbot_cloud/sensor.pyi +3 -1
  302. homeassistant-stubs/components/switcher_kis/button.pyi +1 -1
  303. homeassistant-stubs/components/switcher_kis/cover.pyi +1 -1
  304. homeassistant-stubs/components/switcher_kis/light.pyi +1 -1
  305. homeassistant-stubs/components/switcher_kis/sensor.pyi +2 -0
  306. homeassistant-stubs/components/synology_dsm/config_flow.pyi +0 -2
  307. homeassistant-stubs/components/tedee/binary_sensor.pyi +1 -1
  308. homeassistant-stubs/components/tedee/coordinator.pyi +2 -2
  309. homeassistant-stubs/components/tedee/entity.pyi +1 -1
  310. homeassistant-stubs/components/tedee/lock.pyi +3 -1
  311. homeassistant-stubs/components/tedee/sensor.pyi +1 -1
  312. homeassistant-stubs/components/thethingsnetwork/__init__.pyi +1 -4
  313. homeassistant-stubs/components/threshold/binary_sensor.pyi +4 -0
  314. homeassistant-stubs/components/tibber/__init__.pyi +1 -2
  315. homeassistant-stubs/components/tibber/notify.pyi +1 -10
  316. homeassistant-stubs/components/tod/binary_sensor.pyi +3 -3
  317. homeassistant-stubs/components/tolo/config_flow.pyi +1 -1
  318. homeassistant-stubs/components/tplink/__init__.pyi +1 -1
  319. homeassistant-stubs/components/tplink/config_flow.pyi +6 -3
  320. homeassistant-stubs/components/tplink_omada/__init__.pyi +2 -2
  321. homeassistant-stubs/components/trafikverket_camera/config_flow.pyi +1 -1
  322. homeassistant-stubs/components/trafikverket_camera/coordinator.pyi +2 -3
  323. homeassistant-stubs/components/trafikverket_train/__init__.pyi +3 -0
  324. homeassistant-stubs/components/trafikverket_train/config_flow.pyi +4 -3
  325. homeassistant-stubs/components/trafikverket_train/util.pyi +1 -2
  326. homeassistant-stubs/components/transmission/config_flow.pyi +0 -2
  327. homeassistant-stubs/components/tts/__init__.pyi +3 -1
  328. homeassistant-stubs/components/unifi/config_flow.pyi +2 -3
  329. homeassistant-stubs/components/unifiprotect/__init__.pyi +1 -1
  330. homeassistant-stubs/components/unifiprotect/config_flow.pyi +0 -2
  331. homeassistant-stubs/components/unifiprotect/const.pyi +5 -0
  332. homeassistant-stubs/components/unifiprotect/event.pyi +17 -4
  333. homeassistant-stubs/components/unifiprotect/views.pyi +7 -1
  334. homeassistant-stubs/components/upcloud/config_flow.pyi +0 -2
  335. homeassistant-stubs/components/watttime/config_flow.pyi +1 -3
  336. homeassistant-stubs/components/webostv/config_flow.pyi +0 -2
  337. homeassistant-stubs/components/websocket_api/http.pyi +2 -1
  338. homeassistant-stubs/components/wemo/config_flow.pyi +0 -3
  339. homeassistant-stubs/components/wled/config_flow.pyi +2 -2
  340. homeassistant-stubs/components/workday/config_flow.pyi +2 -2
  341. homeassistant-stubs/components/yale_smart_alarm/config_flow.pyi +5 -3
  342. homeassistant-stubs/components/yalexs_ble/config_flow.pyi +0 -2
  343. homeassistant-stubs/components/youtube/config_flow.pyi +2 -2
  344. homeassistant-stubs/components/zeroconf/usage.pyi +1 -1
  345. homeassistant-stubs/components/zwave_js/__init__.pyi +1 -1
  346. homeassistant-stubs/components/zwave_js/api.pyi +9 -1
  347. homeassistant-stubs/components/zwave_js/config_flow.pyi +1 -2
  348. homeassistant-stubs/components/zwave_js/const.pyi +1 -0
  349. homeassistant-stubs/config_entries.pyi +15 -7
  350. homeassistant-stubs/const.pyi +26 -1
  351. homeassistant-stubs/core_config.pyi +1 -1
  352. homeassistant-stubs/data_entry_flow.pyi +3 -3
  353. homeassistant-stubs/helpers/device_registry.pyi +0 -1
  354. homeassistant-stubs/helpers/entity_platform.pyi +1 -0
  355. homeassistant-stubs/helpers/frame.pyi +12 -3
  356. homeassistant-stubs/helpers/intent.pyi +1 -0
  357. homeassistant-stubs/helpers/llm.pyi +2 -3
  358. homeassistant-stubs/helpers/restore_state.pyi +0 -3
  359. homeassistant-stubs/helpers/schema_config_entry_flow.pyi +5 -2
  360. homeassistant-stubs/helpers/trigger_template_entity.pyi +1 -1
  361. homeassistant-stubs/helpers/update_coordinator.pyi +3 -3
  362. homeassistant-stubs/loader.pyi +1 -0
  363. homeassistant-stubs/runner.pyi +0 -4
  364. homeassistant-stubs/util/json.pyi +3 -3
  365. homeassistant-stubs/util/unit_conversion.pyi +20 -1
  366. homeassistant-stubs/util/unit_system.pyi +7 -4
  367. homeassistant-stubs/util/yaml/loader.pyi +0 -19
  368. {homeassistant_stubs-2024.11.3.dist-info → homeassistant_stubs-2024.12.0b0.dist-info}/METADATA +2 -2
  369. {homeassistant_stubs-2024.11.3.dist-info → homeassistant_stubs-2024.12.0b0.dist-info}/RECORD +371 -315
  370. {homeassistant_stubs-2024.11.3.dist-info → homeassistant_stubs-2024.12.0b0.dist-info}/WHEEL +0 -0
  371. {homeassistant_stubs-2024.11.3.dist-info → homeassistant_stubs-2024.12.0b0.dist-info}/licenses/LICENSE +0 -0
@@ -4,12 +4,12 @@ from collections.abc import Callable as Callable, Mapping
4
4
  from homeassistant import util as util
5
5
  from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorStateClass as SensorStateClass
6
6
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
- from homeassistant.const import ATTR_UNIT_OF_MEASUREMENT as ATTR_UNIT_OF_MEASUREMENT, CONF_NAME as CONF_NAME, CONF_UNIQUE_ID as CONF_UNIQUE_ID, PERCENTAGE as PERCENTAGE, STATE_UNKNOWN as STATE_UNKNOWN, UnitOfTemperature as UnitOfTemperature
7
+ from homeassistant.const import ATTR_UNIT_OF_MEASUREMENT as ATTR_UNIT_OF_MEASUREMENT, CONF_NAME as CONF_NAME, CONF_UNIQUE_ID as CONF_UNIQUE_ID, PERCENTAGE as PERCENTAGE, STATE_UNAVAILABLE as STATE_UNAVAILABLE, STATE_UNKNOWN as STATE_UNKNOWN, UnitOfTemperature as UnitOfTemperature
8
8
  from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, Event as Event, EventStateChangedData as EventStateChangedData, HomeAssistant as HomeAssistant, State as State, callback as callback
9
9
  from homeassistant.helpers.device import async_device_info_to_link_from_entity as async_device_info_to_link_from_entity
10
10
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
11
11
  from homeassistant.helpers.event import async_track_state_change_event as async_track_state_change_event
12
- from homeassistant.helpers.typing import ConfigType as ConfigType, DiscoveryInfoType as DiscoveryInfoType, StateType as StateType
12
+ from homeassistant.helpers.typing import ConfigType as ConfigType, DiscoveryInfoType as DiscoveryInfoType
13
13
  from homeassistant.util.unit_conversion import TemperatureConverter as TemperatureConverter
14
14
  from homeassistant.util.unit_system import METRIC_SYSTEM as METRIC_SYSTEM
15
15
  from typing import Any
@@ -29,7 +29,6 @@ class MoldIndicator(SensorEntity):
29
29
  _attr_native_unit_of_measurement = PERCENTAGE
30
30
  _attr_device_class: Incomplete
31
31
  _attr_state_class: Incomplete
32
- _state: Incomplete
33
32
  _attr_name: Incomplete
34
33
  _attr_unique_id: Incomplete
35
34
  _indoor_temp_sensor: Incomplete
@@ -57,8 +56,7 @@ class MoldIndicator(SensorEntity):
57
56
  def _update_hum_sensor(state: State) -> float | None: ...
58
57
  async def async_update(self) -> None: ...
59
58
  def _calc_dewpoint(self) -> None: ...
59
+ _attr_native_value: Incomplete
60
60
  def _calc_moldindicator(self) -> None: ...
61
61
  @property
62
- def native_value(self) -> StateType: ...
63
- @property
64
62
  def extra_state_attributes(self) -> dict[str, Any]: ...
@@ -4,7 +4,7 @@ from _typeshed import Incomplete
4
4
  from dataclasses import dataclass
5
5
  from homeassistant.core import HomeAssistant as HomeAssistant
6
6
  from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed
7
- from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator
7
+ from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
8
8
  from typing import Any
9
9
 
10
10
  _LOGGER: Incomplete
@@ -28,6 +28,4 @@ class MopekaConfigFlow(ConfigFlow, domain=DOMAIN):
28
28
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
29
29
 
30
30
  class MopekaOptionsFlow(config_entries.OptionsFlow):
31
- config_entry: Incomplete
32
- def __init__(self, config_entry: config_entries.ConfigEntry) -> None: ...
33
31
  async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -41,6 +41,7 @@ MQTT_PUBLISH_SCHEMA: Incomplete
41
41
  async def _async_config_entry_updated(hass: HomeAssistant, entry: ConfigEntry) -> None: ...
42
42
  def _async_remove_mqtt_issues(hass: HomeAssistant, mqtt_data: MqttData) -> None: ...
43
43
  async def async_check_config_schema(hass: HomeAssistant, config_yaml: ConfigType) -> None: ...
44
+ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
44
45
  async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
45
46
  def websocket_mqtt_info(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
46
47
  async def websocket_subscribe(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
@@ -16,6 +16,7 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEnti
16
16
  from homeassistant.helpers.typing import ConfigType as ConfigType
17
17
 
18
18
  _LOGGER: Incomplete
19
+ PARALLEL_UPDATES: int
19
20
  _SUPPORTED_FEATURES: Incomplete
20
21
  CONF_CODE_ARM_REQUIRED: str
21
22
  CONF_CODE_DISARM_REQUIRED: str
@@ -19,6 +19,7 @@ from homeassistant.helpers.typing import ConfigType as ConfigType
19
19
  from typing import Any
20
20
 
21
21
  _LOGGER: Incomplete
22
+ PARALLEL_UPDATES: int
22
23
  DEFAULT_NAME: str
23
24
  CONF_OFF_DELAY: str
24
25
  DEFAULT_PAYLOAD_OFF: str
@@ -14,6 +14,7 @@ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callb
14
14
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
15
15
  from homeassistant.helpers.typing import ConfigType as ConfigType
16
16
 
17
+ PARALLEL_UPDATES: int
17
18
  CONF_PAYLOAD_PRESS: str
18
19
  DEFAULT_NAME: str
19
20
  DEFAULT_PAYLOAD_PRESS: str
@@ -16,6 +16,7 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEnti
16
16
  from homeassistant.helpers.typing import ConfigType as ConfigType, DiscoveryInfoType as DiscoveryInfoType
17
17
 
18
18
  _LOGGER: Incomplete
19
+ PARALLEL_UPDATES: int
19
20
  CONF_IMAGE_ENCODING: str
20
21
  DEFAULT_NAME: str
21
22
  MQTT_CAMERA_ATTRIBUTES_BLOCKED: Incomplete
@@ -22,6 +22,7 @@ from homeassistant.util.unit_conversion import TemperatureConverter as Temperatu
22
22
  from typing import Any
23
23
 
24
24
  _LOGGER: Incomplete
25
+ PARALLEL_UPDATES: int
25
26
  DEFAULT_NAME: str
26
27
  CONF_FAN_MODE_COMMAND_TEMPLATE: str
27
28
  CONF_FAN_MODE_COMMAND_TOPIC: str
@@ -73,10 +73,8 @@ class FlowHandler(ConfigFlow, domain=DOMAIN):
73
73
  async def async_step_hassio_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
74
74
 
75
75
  class MQTTOptionsFlowHandler(OptionsFlow):
76
- config_entry: Incomplete
77
76
  broker_config: Incomplete
78
- options: Incomplete
79
- def __init__(self, config_entry: ConfigEntry) -> None: ...
77
+ def __init__(self) -> None: ...
80
78
  async def async_step_init(self, user_input: None = None) -> ConfigFlowResult: ...
81
79
  async def async_step_broker(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
82
80
  async def async_step_options(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -19,6 +19,7 @@ from homeassistant.util.percentage import percentage_to_ranged_value as percenta
19
19
  from typing import Any
20
20
 
21
21
  _LOGGER: Incomplete
22
+ PARALLEL_UPDATES: int
22
23
  CONF_GET_POSITION_TOPIC: str
23
24
  CONF_GET_POSITION_TEMPLATE: str
24
25
  CONF_SET_POSITION_TOPIC: str
@@ -17,6 +17,7 @@ from homeassistant.helpers.service_info.mqtt import ReceivePayloadType as Receiv
17
17
  from homeassistant.helpers.typing import ConfigType as ConfigType, VolSchemaType as VolSchemaType
18
18
 
19
19
  _LOGGER: Incomplete
20
+ PARALLEL_UPDATES: int
20
21
  CONF_PAYLOAD_HOME: str
21
22
  CONF_PAYLOAD_NOT_HOME: str
22
23
  CONF_SOURCE_TYPE: str
@@ -122,6 +122,7 @@ class MqttDiscoveryUpdateMixin(Entity):
122
122
  def _cleanup_discovery_on_remove(self) -> None: ...
123
123
 
124
124
  def device_info_from_specifications(specifications: dict[str, Any] | None) -> DeviceInfo | None: ...
125
+ def ensure_via_device_exists(hass: HomeAssistant, device_info: DeviceInfo | None, config_entry: ConfigEntry) -> None: ...
125
126
 
126
127
  class MqttEntityDeviceInfo(Entity):
127
128
  _device_specifications: Incomplete
@@ -17,6 +17,7 @@ from homeassistant.helpers.typing import ConfigType as ConfigType, VolSchemaType
17
17
  from homeassistant.util.json import JSON_DECODE_EXCEPTIONS as JSON_DECODE_EXCEPTIONS, json_loads_object as json_loads_object
18
18
 
19
19
  _LOGGER: Incomplete
20
+ PARALLEL_UPDATES: int
20
21
  CONF_EVENT_TYPES: str
21
22
  MQTT_EVENT_ATTRIBUTES_BLOCKED: Incomplete
22
23
  DEFAULT_NAME: str
@@ -20,6 +20,7 @@ from homeassistant.util.percentage import percentage_to_ranged_value as percenta
20
20
  from homeassistant.util.scaling import int_states_in_range as int_states_in_range
21
21
  from typing import Any
22
22
 
23
+ PARALLEL_UPDATES: int
23
24
  CONF_DIRECTION_STATE_TOPIC: str
24
25
  CONF_DIRECTION_COMMAND_TOPIC: str
25
26
  CONF_DIRECTION_VALUE_TEMPLATE: str
@@ -18,6 +18,7 @@ from homeassistant.helpers.template import Template as Template
18
18
  from homeassistant.helpers.typing import ConfigType as ConfigType, VolSchemaType as VolSchemaType
19
19
  from typing import Any
20
20
 
21
+ PARALLEL_UPDATES: int
21
22
  CONF_AVAILABLE_MODES_LIST: str
22
23
  CONF_DEVICE_CLASS: str
23
24
  CONF_MODE_COMMAND_TEMPLATE: str
@@ -19,6 +19,7 @@ from homeassistant.helpers.typing import ConfigType as ConfigType, DiscoveryInfo
19
19
  from typing import Any
20
20
 
21
21
  _LOGGER: Incomplete
22
+ PARALLEL_UPDATES: int
22
23
  CONF_CONTENT_TYPE: str
23
24
  CONF_IMAGE_ENCODING: str
24
25
  CONF_IMAGE_TOPIC: str
@@ -18,6 +18,7 @@ from homeassistant.helpers.service_info.mqtt import ReceivePayloadType as Receiv
18
18
  from homeassistant.helpers.typing import ConfigType as ConfigType, VolSchemaType as VolSchemaType
19
19
 
20
20
  _LOGGER: Incomplete
21
+ PARALLEL_UPDATES: int
21
22
  CONF_ACTIVITY_STATE_TOPIC: str
22
23
  CONF_ACTIVITY_VALUE_TEMPLATE: str
23
24
  CONF_DOCK_COMMAND_TOPIC: str
@@ -11,6 +11,8 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEnti
11
11
  from homeassistant.helpers.typing import ConfigType as ConfigType, VolSchemaType as VolSchemaType
12
12
  from typing import Any
13
13
 
14
+ PARALLEL_UPDATES: int
15
+
14
16
  def validate_mqtt_light_discovery(config_value: dict[str, Any]) -> ConfigType: ...
15
17
  def validate_mqtt_light_modern(config_value: dict[str, Any]) -> ConfigType: ...
16
18
 
@@ -19,6 +19,7 @@ from homeassistant.helpers.typing import ConfigType as ConfigType, TemplateVarsT
19
19
  from typing import Any
20
20
 
21
21
  _LOGGER: Incomplete
22
+ PARALLEL_UPDATES: int
22
23
  CONF_CODE_FORMAT: str
23
24
  CONF_PAYLOAD_LOCK: str
24
25
  CONF_PAYLOAD_UNLOCK: str
@@ -14,6 +14,7 @@ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callb
14
14
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
15
15
  from homeassistant.helpers.typing import ConfigType as ConfigType
16
16
 
17
+ PARALLEL_UPDATES: int
17
18
  DEFAULT_NAME: str
18
19
  PLATFORM_SCHEMA_MODERN: Incomplete
19
20
  DISCOVERY_SCHEMA: Incomplete
@@ -16,6 +16,7 @@ from homeassistant.helpers.service_info.mqtt import ReceivePayloadType as Receiv
16
16
  from homeassistant.helpers.typing import ConfigType as ConfigType, VolSchemaType as VolSchemaType
17
17
 
18
18
  _LOGGER: Incomplete
19
+ PARALLEL_UPDATES: int
19
20
  CONF_MIN: str
20
21
  CONF_MAX: str
21
22
  CONF_STEP: str
@@ -14,6 +14,7 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEnti
14
14
  from homeassistant.helpers.typing import ConfigType as ConfigType
15
15
  from typing import Any
16
16
 
17
+ PARALLEL_UPDATES: int
17
18
  DEFAULT_NAME: str
18
19
  DEFAULT_RETAIN: bool
19
20
  ENTITY_ID_FORMAT: Incomplete
@@ -17,6 +17,7 @@ from homeassistant.helpers.service_info.mqtt import ReceivePayloadType as Receiv
17
17
  from homeassistant.helpers.typing import ConfigType as ConfigType, VolSchemaType as VolSchemaType
18
18
 
19
19
  _LOGGER: Incomplete
20
+ PARALLEL_UPDATES: int
20
21
  DEFAULT_NAME: str
21
22
  MQTT_SELECT_ATTRIBUTES_BLOCKED: Incomplete
22
23
  PLATFORM_SCHEMA_MODERN: Incomplete
@@ -19,6 +19,7 @@ from homeassistant.helpers.service_info.mqtt import ReceivePayloadType as Receiv
19
19
  from homeassistant.helpers.typing import ConfigType as ConfigType, VolSchemaType as VolSchemaType
20
20
 
21
21
  _LOGGER: Incomplete
22
+ PARALLEL_UPDATES: int
22
23
  CONF_EXPIRE_AFTER: str
23
24
  CONF_LAST_RESET_VALUE_TEMPLATE: str
24
25
  CONF_SUGGESTED_DISPLAY_PRECISION: str
@@ -19,6 +19,7 @@ from homeassistant.helpers.typing import ConfigType as ConfigType, TemplateVarsT
19
19
  from homeassistant.util.json import JSON_DECODE_EXCEPTIONS as JSON_DECODE_EXCEPTIONS, json_loads_object as json_loads_object
20
20
  from typing import Any
21
21
 
22
+ PARALLEL_UPDATES: int
22
23
  DEFAULT_NAME: str
23
24
  DEFAULT_PAYLOAD_ON: str
24
25
  DEFAULT_PAYLOAD_OFF: str
@@ -24,7 +24,7 @@ class EntitySubscription:
24
24
  def _should_resubscribe(self, other: EntitySubscription | None) -> bool: ...
25
25
  def __init__(self, *, hass, topic, message_callback, should_subscribe, unsubscribe_callback, qos=..., encoding=..., entity_id, job_type) -> None: ...
26
26
 
27
- def async_prepare_subscribe_topics(hass: HomeAssistant, new_state: dict[str, EntitySubscription] | None, topics: dict[str, dict[str, Any]]) -> dict[str, EntitySubscription]: ...
27
+ def async_prepare_subscribe_topics(hass: HomeAssistant, sub_state: dict[str, EntitySubscription] | None, topics: dict[str, dict[str, Any]]) -> dict[str, EntitySubscription]: ...
28
28
  async def async_subscribe_topics(hass: HomeAssistant, sub_state: dict[str, EntitySubscription]) -> None: ...
29
29
  def async_subscribe_topics_internal(hass: HomeAssistant, sub_state: dict[str, EntitySubscription]) -> None: ...
30
30
  def async_unsubscribe_topics(hass: HomeAssistant, sub_state: dict[str, EntitySubscription] | None) -> dict[str, EntitySubscription]: ...
@@ -18,6 +18,7 @@ from homeassistant.helpers.service_info.mqtt import ReceivePayloadType as Receiv
18
18
  from homeassistant.helpers.typing import ConfigType as ConfigType
19
19
  from typing import Any
20
20
 
21
+ PARALLEL_UPDATES: int
21
22
  DEFAULT_NAME: str
22
23
  DEFAULT_PAYLOAD_ON: str
23
24
  DEFAULT_PAYLOAD_OFF: str
@@ -19,6 +19,7 @@ from homeassistant.helpers.typing import ConfigType as ConfigType, VolSchemaType
19
19
  from typing import Any
20
20
 
21
21
  _LOGGER: Incomplete
22
+ PARALLEL_UPDATES: int
22
23
  CONF_MAX: str
23
24
  CONF_MIN: str
24
25
  CONF_PATTERN: str
@@ -18,6 +18,7 @@ from homeassistant.util.json import JSON_DECODE_EXCEPTIONS as JSON_DECODE_EXCEPT
18
18
  from typing import Any
19
19
 
20
20
  _LOGGER: Incomplete
21
+ PARALLEL_UPDATES: int
21
22
  DEFAULT_NAME: str
22
23
  CONF_DISPLAY_PRECISION: str
23
24
  CONF_LATEST_VERSION_TEMPLATE: str
@@ -17,6 +17,7 @@ from homeassistant.helpers.typing import ConfigType as ConfigType, DiscoveryInfo
17
17
  from homeassistant.util.json import json_loads_object as json_loads_object
18
18
  from typing import Any
19
19
 
20
+ PARALLEL_UPDATES: int
20
21
  BATTERY: str
21
22
  FAN_SPEED: str
22
23
  STATE: str
@@ -17,6 +17,7 @@ from homeassistant.util.json import JSON_DECODE_EXCEPTIONS as JSON_DECODE_EXCEPT
17
17
  from homeassistant.util.percentage import percentage_to_ranged_value as percentage_to_ranged_value, ranged_value_to_percentage as ranged_value_to_percentage
18
18
 
19
19
  _LOGGER: Incomplete
20
+ PARALLEL_UPDATES: int
20
21
  CONF_REPORTS_POSITION: str
21
22
  DEFAULT_NAME: str
22
23
  MQTT_VALVE_ATTRIBUTES_BLOCKED: Incomplete
@@ -18,6 +18,7 @@ from homeassistant.util.unit_conversion import TemperatureConverter as Temperatu
18
18
  from typing import Any
19
19
 
20
20
  _LOGGER: Incomplete
21
+ PARALLEL_UPDATES: int
21
22
  DEFAULT_NAME: str
22
23
  MQTT_WATER_HEATER_ATTRIBUTES_BLOCKED: Incomplete
23
24
  VALUE_TEMPLATE_KEYS: Incomplete
@@ -0,0 +1,27 @@
1
+ import asyncio
2
+ from .const import DOMAIN as DOMAIN, LOGGER as LOGGER
3
+ from _typeshed import Incomplete
4
+ from dataclasses import dataclass
5
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigEntryState as ConfigEntryState
6
+ from homeassistant.const import CONF_URL as CONF_URL, EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP, Platform as Platform
7
+ from homeassistant.core import Event as Event, HomeAssistant as HomeAssistant
8
+ from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady
9
+ from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
10
+ 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 music_assistant_client import MusicAssistantClient
12
+ from music_assistant_models.event import MassEvent as MassEvent
13
+
14
+ PLATFORMS: Incomplete
15
+ CONNECT_TIMEOUT: int
16
+ LISTEN_READY_TIMEOUT: int
17
+ type MusicAssistantConfigEntry = ConfigEntry[MusicAssistantEntryData]
18
+
19
+ @dataclass
20
+ class MusicAssistantEntryData:
21
+ mass: MusicAssistantClient
22
+ listen_task: asyncio.Task
23
+ def __init__(self, mass, listen_task) -> None: ...
24
+
25
+ async def async_setup_entry(hass: HomeAssistant, entry: MusicAssistantConfigEntry) -> bool: ...
26
+ async def _client_listen(hass: HomeAssistant, entry: ConfigEntry, mass: MusicAssistantClient, init_ready: asyncio.Event) -> None: ...
27
+ async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
@@ -0,0 +1,24 @@
1
+ import voluptuous as vol
2
+ from .const import DOMAIN as DOMAIN, LOGGER as LOGGER
3
+ from _typeshed import Incomplete
4
+ from homeassistant.components import zeroconf as zeroconf
5
+ from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
6
+ from homeassistant.const import CONF_URL as CONF_URL
7
+ from homeassistant.core import HomeAssistant as HomeAssistant
8
+ from homeassistant.helpers import aiohttp_client as aiohttp_client
9
+ from music_assistant_models.api import ServerInfoMessage
10
+ from typing import Any
11
+
12
+ DEFAULT_URL: str
13
+ DEFAULT_TITLE: str
14
+
15
+ def get_manual_schema(user_input: dict[str, Any]) -> vol.Schema: ...
16
+ async def get_server_info(hass: HomeAssistant, url: str) -> ServerInfoMessage: ...
17
+
18
+ class MusicAssistantConfigFlow(ConfigFlow, domain=DOMAIN):
19
+ VERSION: int
20
+ server_info: Incomplete
21
+ def __init__(self) -> None: ...
22
+ async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
23
+ async def async_step_zeroconf(self, discovery_info: zeroconf.ZeroconfServiceInfo) -> ConfigFlowResult: ...
24
+ async def async_step_discovery_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -0,0 +1,12 @@
1
+ from _typeshed import Incomplete
2
+
3
+ DOMAIN: str
4
+ DOMAIN_EVENT: Incomplete
5
+ DEFAULT_NAME: str
6
+ ATTR_IS_GROUP: str
7
+ ATTR_GROUP_MEMBERS: str
8
+ ATTR_GROUP_PARENTS: str
9
+ ATTR_MASS_PLAYER_TYPE: str
10
+ ATTR_ACTIVE_QUEUE: str
11
+ ATTR_STREAM_TITLE: str
12
+ LOGGER: Incomplete
@@ -0,0 +1,24 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from _typeshed import Incomplete
3
+ from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
4
+ from homeassistant.helpers.entity import Entity as Entity
5
+ from music_assistant_client import MusicAssistantClient as MusicAssistantClient
6
+ from music_assistant_models.event import MassEvent as MassEvent
7
+ from music_assistant_models.player import Player as Player
8
+
9
+ class MusicAssistantEntity(Entity):
10
+ _attr_has_entity_name: bool
11
+ _attr_should_poll: bool
12
+ mass: Incomplete
13
+ player_id: Incomplete
14
+ _attr_device_info: Incomplete
15
+ def __init__(self, mass: MusicAssistantClient, player_id: str) -> None: ...
16
+ async def async_added_to_hass(self) -> None: ...
17
+ @property
18
+ def player(self) -> Player: ...
19
+ @property
20
+ def unique_id(self) -> str | None: ...
21
+ @property
22
+ def available(self) -> bool: ...
23
+ async def __on_mass_update(self, event: MassEvent) -> None: ...
24
+ async def async_on_update(self) -> None: ...
@@ -0,0 +1,33 @@
1
+ from .const import DEFAULT_NAME as DEFAULT_NAME, DOMAIN as DOMAIN
2
+ from _typeshed import Incomplete
3
+ from homeassistant.components import media_source as media_source
4
+ from homeassistant.components.media_player import BrowseError as BrowseError, BrowseMedia as BrowseMedia, MediaClass as MediaClass, MediaType as MediaType
5
+ from homeassistant.core import HomeAssistant as HomeAssistant
6
+ from music_assistant_client import MusicAssistantClient as MusicAssistantClient
7
+ from music_assistant_models.media_items import MediaItemType as MediaItemType
8
+ from typing import Any
9
+
10
+ MEDIA_TYPE_RADIO: str
11
+ PLAYABLE_MEDIA_TYPES: Incomplete
12
+ LIBRARY_ARTISTS: str
13
+ LIBRARY_ALBUMS: str
14
+ LIBRARY_TRACKS: str
15
+ LIBRARY_PLAYLISTS: str
16
+ LIBRARY_RADIO: str
17
+ LIBRARY_TITLE_MAP: Incomplete
18
+ LIBRARY_MEDIA_CLASS_MAP: Incomplete
19
+ MEDIA_CONTENT_TYPE_FLAC: str
20
+ THUMB_SIZE: int
21
+
22
+ def media_source_filter(item: BrowseMedia) -> bool: ...
23
+ async def async_browse_media(hass: HomeAssistant, mass: MusicAssistantClient, media_content_id: str | None, media_content_type: str | None) -> BrowseMedia: ...
24
+ async def build_main_listing(hass: HomeAssistant) -> BrowseMedia: ...
25
+ async def build_playlists_listing(mass: MusicAssistantClient) -> BrowseMedia: ...
26
+ async def build_playlist_items_listing(mass: MusicAssistantClient, identifier: str) -> BrowseMedia: ...
27
+ async def build_artists_listing(mass: MusicAssistantClient) -> BrowseMedia: ...
28
+ async def build_artist_items_listing(mass: MusicAssistantClient, identifier: str) -> BrowseMedia: ...
29
+ async def build_albums_listing(mass: MusicAssistantClient) -> BrowseMedia: ...
30
+ async def build_album_items_listing(mass: MusicAssistantClient, identifier: str) -> BrowseMedia: ...
31
+ async def build_tracks_listing(mass: MusicAssistantClient) -> BrowseMedia: ...
32
+ async def build_radio_listing(mass: MusicAssistantClient) -> BrowseMedia: ...
33
+ def build_item(mass: MusicAssistantClient, item: MediaItemType, can_expand: bool = True, media_class: Any = None) -> BrowseMedia: ...
@@ -0,0 +1,96 @@
1
+ from . import MusicAssistantConfigEntry as MusicAssistantConfigEntry
2
+ from .const import ATTR_ACTIVE_QUEUE as ATTR_ACTIVE_QUEUE, ATTR_MASS_PLAYER_TYPE as ATTR_MASS_PLAYER_TYPE, DOMAIN as DOMAIN
3
+ from .entity import MusicAssistantEntity as MusicAssistantEntity
4
+ from .media_browser import async_browse_media as async_browse_media
5
+ from _typeshed import Incomplete
6
+ from collections.abc import Awaitable, Callable as Callable, Coroutine, Mapping
7
+ from homeassistant.components import media_source as media_source
8
+ from homeassistant.components.media_player import ATTR_MEDIA_ENQUEUE as ATTR_MEDIA_ENQUEUE, ATTR_MEDIA_EXTRA as ATTR_MEDIA_EXTRA, BrowseMedia as BrowseMedia, MediaPlayerDeviceClass as MediaPlayerDeviceClass, MediaPlayerEnqueue as MediaPlayerEnqueue, MediaPlayerEntity as MediaPlayerEntity, MediaPlayerEntityFeature as MediaPlayerEntityFeature, MediaPlayerState as MediaPlayerState, RepeatMode as RepeatMode, async_process_play_media_url as async_process_play_media_url
9
+ from homeassistant.const import STATE_OFF as STATE_OFF
10
+ from homeassistant.core import HomeAssistant as HomeAssistant
11
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
12
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback, async_get_current_platform as async_get_current_platform
13
+ from homeassistant.util.dt import utc_from_timestamp as utc_from_timestamp
14
+ from music_assistant_client import MusicAssistantClient as MusicAssistantClient
15
+ from music_assistant_models.enums import MediaType, QueueOption
16
+ from music_assistant_models.event import MassEvent as MassEvent
17
+ from music_assistant_models.player import Player as Player
18
+ from music_assistant_models.player_queue import PlayerQueue as PlayerQueue
19
+ from typing import Any
20
+
21
+ SUPPORTED_FEATURES: Incomplete
22
+ QUEUE_OPTION_MAP: Incomplete
23
+ SERVICE_PLAY_MEDIA_ADVANCED: str
24
+ SERVICE_PLAY_ANNOUNCEMENT: str
25
+ SERVICE_TRANSFER_QUEUE: str
26
+ ATTR_RADIO_MODE: str
27
+ ATTR_MEDIA_ID: str
28
+ ATTR_MEDIA_TYPE: str
29
+ ATTR_ARTIST: str
30
+ ATTR_ALBUM: str
31
+ ATTR_URL: str
32
+ ATTR_USE_PRE_ANNOUNCE: str
33
+ ATTR_ANNOUNCE_VOLUME: str
34
+ ATTR_SOURCE_PLAYER: str
35
+ ATTR_AUTO_PLAY: str
36
+
37
+ def catch_musicassistant_error[_R, **P](func: Callable[..., Awaitable[_R]]) -> Callable[..., Coroutine[Any, Any, _R | None]]: ...
38
+ async def async_setup_entry(hass: HomeAssistant, entry: MusicAssistantConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
39
+
40
+ class MusicAssistantPlayer(MusicAssistantEntity, MediaPlayerEntity):
41
+ _attr_name: Incomplete
42
+ _attr_media_image_remotely_accessible: bool
43
+ _attr_media_content_type: Incomplete
44
+ _attr_icon: Incomplete
45
+ _attr_supported_features: Incomplete
46
+ _attr_device_class: Incomplete
47
+ _prev_time: int
48
+ def __init__(self, mass: MusicAssistantClient, player_id: str) -> None: ...
49
+ async def async_added_to_hass(self) -> None: ...
50
+ @property
51
+ def active_queue(self) -> PlayerQueue | None: ...
52
+ @property
53
+ def extra_state_attributes(self) -> Mapping[str, Any]: ...
54
+ _attr_state: Incomplete
55
+ _attr_group_members: Incomplete
56
+ _attr_volume_level: Incomplete
57
+ _attr_is_volume_muted: Incomplete
58
+ async def async_on_update(self) -> None: ...
59
+ async def async_media_play(self) -> None: ...
60
+ async def async_media_pause(self) -> None: ...
61
+ async def async_media_stop(self) -> None: ...
62
+ async def async_media_next_track(self) -> None: ...
63
+ async def async_media_previous_track(self) -> None: ...
64
+ async def async_media_seek(self, position: float) -> None: ...
65
+ async def async_mute_volume(self, mute: bool) -> None: ...
66
+ async def async_set_volume_level(self, volume: float) -> None: ...
67
+ async def async_volume_up(self) -> None: ...
68
+ async def async_volume_down(self) -> None: ...
69
+ async def async_turn_on(self) -> None: ...
70
+ async def async_turn_off(self) -> None: ...
71
+ async def async_set_shuffle(self, shuffle: bool) -> None: ...
72
+ async def async_set_repeat(self, repeat: RepeatMode) -> None: ...
73
+ async def async_clear_playlist(self) -> None: ...
74
+ async def async_play_media(self, media_type: MediaType | str, media_id: str, enqueue: MediaPlayerEnqueue | None = None, announce: bool | None = None, **kwargs: Any) -> None: ...
75
+ async def async_join_players(self, group_members: list[str]) -> None: ...
76
+ async def async_unjoin_player(self) -> None: ...
77
+ async def _async_handle_play_media(self, media_id: list[str], artist: str | None = None, album: str | None = None, enqueue: MediaPlayerEnqueue | QueueOption | None = None, radio_mode: bool | None = None, media_type: str | None = None) -> None: ...
78
+ async def _async_handle_play_announcement(self, url: str, use_pre_announce: bool | None = None, announce_volume: int | None = None) -> None: ...
79
+ async def _async_handle_transfer_queue(self, source_player: str | None = None, auto_play: bool | None = None) -> None: ...
80
+ async def async_browse_media(self, media_content_type: MediaType | str | None = None, media_content_id: str | None = None) -> BrowseMedia: ...
81
+ _attr_media_image_url: Incomplete
82
+ def _update_media_image_url(self, player: Player, queue: PlayerQueue | None) -> None: ...
83
+ _attr_media_artist: Incomplete
84
+ _attr_media_album_artist: Incomplete
85
+ _attr_media_album_name: Incomplete
86
+ _attr_media_title: Incomplete
87
+ _attr_media_content_id: Incomplete
88
+ _attr_media_duration: Incomplete
89
+ _attr_media_position: Incomplete
90
+ _attr_media_position_updated_at: Incomplete
91
+ _attr_app_id: Incomplete
92
+ _attr_shuffle: Incomplete
93
+ _attr_repeat: Incomplete
94
+ _attr_source: Incomplete
95
+ def _update_media_attributes(self, player: Player, queue: PlayerQueue | None) -> None: ...
96
+ def _convert_queueoption_to_media_player_enqueue(self, queue_option: MediaPlayerEnqueue | QueueOption | None) -> QueueOption | None: ...
@@ -0,0 +1,19 @@
1
+ from .const import DOMAIN as DOMAIN, MANUFACTURER as MANUFACTURER, SUPPORT_EMAIL as SUPPORT_EMAIL
2
+ from .coordinator import NASwebCoordinator as NASwebCoordinator
3
+ from .nasweb_data import NASwebData as NASwebData
4
+ from _typeshed import Incomplete
5
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
6
+ from homeassistant.const import CONF_HOST as CONF_HOST, CONF_PASSWORD as CONF_PASSWORD, CONF_USERNAME as CONF_USERNAME, Platform as Platform
7
+ from homeassistant.core import HomeAssistant as HomeAssistant
8
+ from homeassistant.exceptions import ConfigEntryError as ConfigEntryError, ConfigEntryNotReady as ConfigEntryNotReady
9
+ from homeassistant.helpers.network import NoURLAvailableError as NoURLAvailableError
10
+ from homeassistant.util.hass_dict import HassKey as HassKey
11
+
12
+ PLATFORMS: list[Platform]
13
+ NASWEB_CONFIG_URL: str
14
+ _LOGGER: Incomplete
15
+ type NASwebConfigEntry = ConfigEntry[NASwebCoordinator]
16
+ DATA_NASWEB: HassKey[NASwebData]
17
+
18
+ async def async_setup_entry(hass: HomeAssistant, entry: NASwebConfigEntry) -> bool: ...
19
+ async def async_unload_entry(hass: HomeAssistant, entry: NASwebConfigEntry) -> bool: ...
@@ -0,0 +1,27 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from .coordinator import NASwebCoordinator as NASwebCoordinator
3
+ from .nasweb_data import NASwebData as NASwebData
4
+ from _typeshed import Incomplete
5
+ from homeassistant import config_entries as config_entries
6
+ from homeassistant.config_entries import ConfigFlowResult as ConfigFlowResult
7
+ from homeassistant.const import CONF_HOST as CONF_HOST, CONF_PASSWORD as CONF_PASSWORD, CONF_UNIQUE_ID as CONF_UNIQUE_ID, CONF_USERNAME as CONF_USERNAME
8
+ from homeassistant.core import HomeAssistant as HomeAssistant
9
+ from homeassistant.data_entry_flow import AbortFlow as AbortFlow
10
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
11
+ from homeassistant.helpers.network import NoURLAvailableError as NoURLAvailableError
12
+ from typing import Any
13
+
14
+ NASWEB_SCHEMA_IMG_URL: str
15
+ _LOGGER: Incomplete
16
+ STEP_USER_DATA_SCHEMA: Incomplete
17
+
18
+ async def validate_input(hass: HomeAssistant, data: dict[str, Any]) -> dict[str, Any]: ...
19
+
20
+ class NASwebConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
21
+ VERSION: int
22
+ async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
23
+
24
+ class CannotConnect(HomeAssistantError): ...
25
+ class InvalidAuth(HomeAssistantError): ...
26
+ class MissingNASwebData(HomeAssistantError): ...
27
+ class MissingNASwebStatus(HomeAssistantError): ...
@@ -0,0 +1,5 @@
1
+ DOMAIN: str
2
+ MANUFACTURER: str
3
+ STATUS_UPDATE_MAX_TIME_INTERVAL: int
4
+ SUPPORT_EMAIL: str
5
+ WEBHOOK_URL: str