homeassistant-stubs 2024.10.3__py3-none-any.whl → 2024.11.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 (853) hide show
  1. homeassistant-stubs/auth/__init__.pyi +8 -5
  2. homeassistant-stubs/auth/mfa_modules/notify.pyi +1 -0
  3. homeassistant-stubs/auth/models.pyi +8 -5
  4. homeassistant-stubs/auth/permissions/types.pyi +7 -0
  5. homeassistant-stubs/auth/permissions/util.pyi +2 -0
  6. homeassistant-stubs/auth/providers/__init__.pyi +5 -4
  7. homeassistant-stubs/auth/providers/command_line.pyi +2 -2
  8. homeassistant-stubs/auth/providers/homeassistant.pyi +2 -2
  9. homeassistant-stubs/auth/providers/insecure_example.pyi +2 -3
  10. homeassistant-stubs/auth/providers/trusted_networks.pyi +5 -2
  11. homeassistant-stubs/bootstrap.pyi +1 -0
  12. homeassistant-stubs/components/abode/alarm_control_panel.pyi +2 -3
  13. homeassistant-stubs/components/accuweather/__init__.pyi +1 -9
  14. homeassistant-stubs/components/accuweather/coordinator.pyi +11 -2
  15. homeassistant-stubs/components/accuweather/diagnostics.pyi +1 -1
  16. homeassistant-stubs/components/accuweather/sensor.pyi +1 -2
  17. homeassistant-stubs/components/accuweather/system_health.pyi +1 -1
  18. homeassistant-stubs/components/accuweather/weather.pyi +1 -2
  19. homeassistant-stubs/components/acmeda/__init__.pyi +1 -0
  20. homeassistant-stubs/components/adguard/__init__.pyi +1 -0
  21. homeassistant-stubs/components/adguard/config_flow.pyi +1 -1
  22. homeassistant-stubs/components/aftership/__init__.pyi +2 -0
  23. homeassistant-stubs/components/airgradient/__init__.pyi +1 -0
  24. homeassistant-stubs/components/airgradient/update.pyi +0 -2
  25. homeassistant-stubs/components/airly/__init__.pyi +1 -0
  26. homeassistant-stubs/components/airnow/__init__.pyi +1 -0
  27. homeassistant-stubs/components/airthings/__init__.pyi +3 -0
  28. homeassistant-stubs/components/airthings_ble/__init__.pyi +2 -11
  29. homeassistant-stubs/components/airthings_ble/coordinator.pyi +21 -0
  30. homeassistant-stubs/components/airthings_ble/sensor.pyi +1 -1
  31. homeassistant-stubs/components/airtouch5/__init__.pyi +2 -1
  32. homeassistant-stubs/components/airvisual/__init__.pyi +1 -0
  33. homeassistant-stubs/components/airvisual/config_flow.pyi +1 -1
  34. homeassistant-stubs/components/airvisual_pro/__init__.pyi +1 -0
  35. homeassistant-stubs/components/airvisual_pro/config_flow.pyi +2 -3
  36. homeassistant-stubs/components/airzone/__init__.pyi +1 -0
  37. homeassistant-stubs/components/airzone/switch.pyi +33 -0
  38. homeassistant-stubs/components/airzone_cloud/__init__.pyi +1 -0
  39. homeassistant-stubs/components/airzone_cloud/select.pyi +10 -2
  40. homeassistant-stubs/components/airzone_cloud/switch.pyi +33 -0
  41. homeassistant-stubs/components/alarm_control_panel/__init__.pyi +13 -6
  42. homeassistant-stubs/components/alarm_control_panel/const.pyi +12 -0
  43. homeassistant-stubs/components/alarm_control_panel/device_condition.pyi +2 -2
  44. homeassistant-stubs/components/alarm_control_panel/device_trigger.pyi +2 -2
  45. homeassistant-stubs/components/alarm_control_panel/reproduce_state.pyi +2 -2
  46. homeassistant-stubs/components/alexa/capabilities.pyi +2 -2
  47. homeassistant-stubs/components/alexa/handlers.pyi +2 -2
  48. homeassistant-stubs/components/amberelectric/__init__.pyi +1 -0
  49. homeassistant-stubs/components/ambient_network/__init__.pyi +1 -0
  50. homeassistant-stubs/components/ambient_station/__init__.pyi +1 -0
  51. homeassistant-stubs/components/analytics/__init__.pyi +2 -0
  52. homeassistant-stubs/components/analytics/analytics.pyi +1 -0
  53. homeassistant-stubs/components/analytics_insights/__init__.pyi +1 -0
  54. homeassistant-stubs/components/analytics_insights/config_flow.pyi +1 -1
  55. homeassistant-stubs/components/analytics_insights/const.pyi +1 -0
  56. homeassistant-stubs/components/analytics_insights/coordinator.pyi +8 -2
  57. homeassistant-stubs/components/analytics_insights/sensor.pyi +4 -0
  58. homeassistant-stubs/components/android_ip_webcam/__init__.pyi +3 -5
  59. homeassistant-stubs/components/android_ip_webcam/binary_sensor.pyi +3 -4
  60. homeassistant-stubs/components/android_ip_webcam/camera.pyi +2 -3
  61. homeassistant-stubs/components/android_ip_webcam/coordinator.pyi +3 -2
  62. homeassistant-stubs/components/android_ip_webcam/sensor.pyi +2 -4
  63. homeassistant-stubs/components/android_ip_webcam/switch.pyi +2 -4
  64. homeassistant-stubs/components/androidtv/__init__.pyi +3 -1
  65. homeassistant-stubs/components/androidtv/config_flow.pyi +2 -1
  66. homeassistant-stubs/components/androidtv/const.pyi +2 -1
  67. homeassistant-stubs/components/androidtv/entity.pyi +5 -2
  68. homeassistant-stubs/components/androidtv/media_player.pyi +5 -6
  69. homeassistant-stubs/components/androidtv_remote/config_flow.pyi +5 -7
  70. homeassistant-stubs/components/anova/__init__.pyi +2 -1
  71. homeassistant-stubs/components/anova/config_flow.pyi +2 -1
  72. homeassistant-stubs/components/anova/models.pyi +1 -0
  73. homeassistant-stubs/components/anthemav/__init__.pyi +2 -0
  74. homeassistant-stubs/components/apache_kafka/__init__.pyi +1 -1
  75. homeassistant-stubs/components/apcupsd/__init__.pyi +1 -0
  76. homeassistant-stubs/components/apple_tv/__init__.pyi +1 -0
  77. homeassistant-stubs/components/apple_tv/config_flow.pyi +5 -1
  78. homeassistant-stubs/components/apsystems/__init__.pyi +1 -0
  79. homeassistant-stubs/components/apsystems/sensor.pyi +2 -2
  80. homeassistant-stubs/components/aquostv/media_player.pyi +1 -1
  81. homeassistant-stubs/components/aranet/__init__.pyi +3 -3
  82. homeassistant-stubs/components/aranet/sensor.pyi +4 -4
  83. homeassistant-stubs/components/arcam_fmj/__init__.pyi +1 -0
  84. homeassistant-stubs/components/arcam_fmj/config_flow.pyi +2 -0
  85. homeassistant-stubs/components/arcam_fmj/media_player.pyi +1 -1
  86. homeassistant-stubs/components/aseko_pool_live/__init__.pyi +4 -6
  87. homeassistant-stubs/components/aseko_pool_live/binary_sensor.pyi +2 -4
  88. homeassistant-stubs/components/aseko_pool_live/config_flow.pyi +2 -3
  89. homeassistant-stubs/components/aseko_pool_live/coordinator.pyi +2 -0
  90. homeassistant-stubs/components/aseko_pool_live/sensor.pyi +2 -4
  91. homeassistant-stubs/components/assist_pipeline/pipeline.pyi +2 -1
  92. homeassistant-stubs/components/asuswrt/__init__.pyi +1 -0
  93. homeassistant-stubs/components/asuswrt/bridge.pyi +4 -2
  94. homeassistant-stubs/components/autarco/__init__.pyi +1 -0
  95. homeassistant-stubs/components/auth/__init__.pyi +5 -0
  96. homeassistant-stubs/components/auth/login_flow.pyi +1 -1
  97. homeassistant-stubs/components/auth/mfa_setup_flow.pyi +4 -2
  98. homeassistant-stubs/components/automation/__init__.pyi +0 -14
  99. homeassistant-stubs/components/awair/__init__.pyi +4 -6
  100. homeassistant-stubs/components/awair/config_flow.pyi +1 -0
  101. homeassistant-stubs/components/awair/coordinator.pyi +1 -0
  102. homeassistant-stubs/components/awair/sensor.pyi +2 -2
  103. homeassistant-stubs/components/axis/__init__.pyi +1 -0
  104. homeassistant-stubs/components/axis/config_flow.pyi +2 -2
  105. homeassistant-stubs/components/backup/__init__.pyi +2 -2
  106. homeassistant-stubs/components/backup/const.pyi +3 -0
  107. homeassistant-stubs/components/backup/http.pyi +1 -1
  108. homeassistant-stubs/components/backup/manager.pyi +25 -11
  109. homeassistant-stubs/components/backup/websocket.pyi +2 -2
  110. homeassistant-stubs/components/baf/__init__.pyi +2 -0
  111. homeassistant-stubs/components/bang_olufsen/__init__.pyi +3 -2
  112. homeassistant-stubs/components/bang_olufsen/const.pyi +3 -2
  113. homeassistant-stubs/components/bang_olufsen/media_player.pyi +14 -6
  114. homeassistant-stubs/components/bang_olufsen/websocket.pyi +1 -0
  115. homeassistant-stubs/components/binary_sensor/__init__.pyi +0 -3
  116. homeassistant-stubs/components/blue_current/__init__.pyi +4 -3
  117. homeassistant-stubs/components/blue_current/config_flow.pyi +1 -2
  118. homeassistant-stubs/components/blue_current/sensor.pyi +2 -3
  119. homeassistant-stubs/components/blueprint/__init__.pyi +2 -2
  120. homeassistant-stubs/components/bluesound/__init__.pyi +2 -1
  121. homeassistant-stubs/components/bluesound/const.pyi +0 -4
  122. homeassistant-stubs/components/bluesound/media_player.pyi +6 -14
  123. homeassistant-stubs/components/bluesound/services.pyi +21 -0
  124. homeassistant-stubs/components/bluetooth/active_update_coordinator.pyi +1 -1
  125. homeassistant-stubs/components/bluetooth/active_update_processor.pyi +1 -1
  126. homeassistant-stubs/components/bluetooth/match.pyi +1 -1
  127. homeassistant-stubs/components/bluetooth/models.pyi +4 -0
  128. homeassistant-stubs/components/bluetooth/passive_update_processor.pyi +4 -4
  129. homeassistant-stubs/components/bmw_connected_drive/__init__.pyi +1 -0
  130. homeassistant-stubs/components/bmw_connected_drive/config_flow.pyi +4 -2
  131. homeassistant-stubs/components/bond/__init__.pyi +1 -0
  132. homeassistant-stubs/components/braviatv/config_flow.pyi +1 -2
  133. homeassistant-stubs/components/braviatv/coordinator.pyi +1 -1
  134. homeassistant-stubs/components/brother/__init__.pyi +1 -0
  135. homeassistant-stubs/components/brother/config_flow.pyi +2 -4
  136. homeassistant-stubs/components/bryant_evolution/__init__.pyi +2 -0
  137. homeassistant-stubs/components/bryant_evolution/config_flow.pyi +1 -4
  138. homeassistant-stubs/components/bthome/config_flow.pyi +1 -1
  139. homeassistant-stubs/components/bthome/coordinator.pyi +1 -1
  140. homeassistant-stubs/components/bthome/types.pyi +2 -0
  141. homeassistant-stubs/components/button/__init__.pyi +0 -3
  142. homeassistant-stubs/components/calendar/trigger.pyi +3 -1
  143. homeassistant-stubs/components/cambridge_audio/__init__.pyi +14 -0
  144. homeassistant-stubs/components/cambridge_audio/config_flow.pyi +14 -0
  145. homeassistant-stubs/components/cambridge_audio/const.pyi +9 -0
  146. homeassistant-stubs/components/cambridge_audio/diagnostics.pyi +5 -0
  147. homeassistant-stubs/components/cambridge_audio/entity.pyi +21 -0
  148. homeassistant-stubs/components/cambridge_audio/media_player.pyi +71 -0
  149. homeassistant-stubs/components/cambridge_audio/select.pyi +34 -0
  150. homeassistant-stubs/components/cambridge_audio/switch.pyi +30 -0
  151. homeassistant-stubs/components/camera/__init__.pyi +39 -22
  152. homeassistant-stubs/components/camera/const.pyi +1 -2
  153. homeassistant-stubs/components/camera/diagnostics.pyi +1 -1
  154. homeassistant-stubs/components/camera/helper.pyi +6 -0
  155. homeassistant-stubs/components/camera/webrtc.pyi +96 -0
  156. homeassistant-stubs/components/canary/alarm_control_panel.pyi +2 -3
  157. homeassistant-stubs/components/canary/sensor.pyi +1 -0
  158. homeassistant-stubs/components/cert_expiry/__init__.pyi +1 -0
  159. homeassistant-stubs/components/climate/__init__.pyi +0 -24
  160. homeassistant-stubs/components/cloud/client.pyi +5 -1
  161. homeassistant-stubs/components/cloud/const.pyi +1 -0
  162. homeassistant-stubs/components/cloud/http_api.pyi +2 -2
  163. homeassistant-stubs/components/cloud/prefs.pyi +4 -2
  164. homeassistant-stubs/components/co2signal/__init__.pyi +1 -0
  165. homeassistant-stubs/components/co2signal/config_flow.pyi +1 -2
  166. homeassistant-stubs/components/config/automation.pyi +1 -1
  167. homeassistant-stubs/components/config/script.pyi +1 -1
  168. homeassistant-stubs/components/config/view.pyi +2 -2
  169. homeassistant-stubs/components/configurator/__init__.pyi +2 -0
  170. homeassistant-stubs/components/counter/__init__.pyi +1 -1
  171. homeassistant-stubs/components/cover/__init__.pyi +12 -8
  172. homeassistant-stubs/components/cover/device_condition.pyi +2 -2
  173. homeassistant-stubs/components/cover/device_trigger.pyi +2 -2
  174. homeassistant-stubs/components/cover/reproduce_state.pyi +2 -2
  175. homeassistant-stubs/components/date/__init__.pyi +0 -4
  176. homeassistant-stubs/components/datetime/__init__.pyi +0 -4
  177. homeassistant-stubs/components/deako/__init__.pyi +2 -0
  178. homeassistant-stubs/components/deconz/alarm_control_panel.pyi +2 -3
  179. homeassistant-stubs/components/deconz/binary_sensor.pyi +10 -1
  180. homeassistant-stubs/components/deconz/config_flow.pyi +1 -1
  181. homeassistant-stubs/components/deconz/device_trigger.pyi +4 -0
  182. homeassistant-stubs/components/deconz/entity.pyi +6 -2
  183. homeassistant-stubs/components/deconz/light.pyi +1 -1
  184. homeassistant-stubs/components/deconz/number.pyi +3 -1
  185. homeassistant-stubs/components/demo/alarm_control_panel.pyi +2 -1
  186. homeassistant-stubs/components/demo/update.pyi +5 -2
  187. homeassistant-stubs/components/derivative/sensor.pyi +1 -4
  188. homeassistant-stubs/components/device_automation/__init__.pyi +2 -0
  189. homeassistant-stubs/components/device_tracker/config_entry.pyi +0 -10
  190. homeassistant-stubs/components/device_tracker/legacy.pyi +0 -2
  191. homeassistant-stubs/components/devolo_home_control/__init__.pyi +2 -0
  192. homeassistant-stubs/components/devolo_home_control/config_flow.pyi +2 -2
  193. homeassistant-stubs/components/devolo_home_network/__init__.pyi +4 -2
  194. homeassistant-stubs/components/devolo_home_network/binary_sensor.pyi +2 -2
  195. homeassistant-stubs/components/devolo_home_network/config_flow.pyi +4 -1
  196. homeassistant-stubs/components/devolo_home_network/coordinator.pyi +13 -0
  197. homeassistant-stubs/components/devolo_home_network/device_tracker.pyi +4 -3
  198. homeassistant-stubs/components/devolo_home_network/entity.pyi +8 -3
  199. homeassistant-stubs/components/devolo_home_network/image.pyi +2 -2
  200. homeassistant-stubs/components/devolo_home_network/sensor.pyi +9 -10
  201. homeassistant-stubs/components/devolo_home_network/switch.pyi +6 -6
  202. homeassistant-stubs/components/devolo_home_network/update.pyi +3 -3
  203. homeassistant-stubs/components/diagnostics/util.pyi +1 -1
  204. homeassistant-stubs/components/discovergy/__init__.pyi +1 -0
  205. homeassistant-stubs/components/discovergy/config_flow.pyi +2 -2
  206. homeassistant-stubs/components/dlna_dmr/config_flow.pyi +1 -0
  207. homeassistant-stubs/components/dlna_dmr/media_player.pyi +1 -1
  208. homeassistant-stubs/components/dlna_dms/dms.pyi +1 -3
  209. homeassistant-stubs/components/doorbird/config_flow.pyi +1 -1
  210. homeassistant-stubs/components/doorbird/device.pyi +0 -6
  211. homeassistant-stubs/components/doorbird/models.pyi +1 -0
  212. homeassistant-stubs/components/dormakaba_dkey/config_flow.pyi +1 -2
  213. homeassistant-stubs/components/dsmr/__init__.pyi +1 -0
  214. homeassistant-stubs/components/duotecno/entity.pyi +1 -1
  215. homeassistant-stubs/components/ecovacs/__init__.pyi +1 -0
  216. homeassistant-stubs/components/ecowitt/__init__.pyi +2 -0
  217. homeassistant-stubs/components/efergy/__init__.pyi +2 -0
  218. homeassistant-stubs/components/electric_kiwi/config_flow.pyi +1 -4
  219. homeassistant-stubs/components/elevenlabs/__init__.pyi +1 -0
  220. homeassistant-stubs/components/elgato/__init__.pyi +1 -0
  221. homeassistant-stubs/components/elkm1/__init__.pyi +1 -0
  222. homeassistant-stubs/components/elkm1/alarm_control_panel.pyi +2 -3
  223. homeassistant-stubs/components/elkm1/config_flow.pyi +3 -1
  224. homeassistant-stubs/components/energy/data.pyi +1 -0
  225. homeassistant-stubs/components/energy/types.pyi +2 -0
  226. homeassistant-stubs/components/energy/websocket_api.pyi +3 -0
  227. homeassistant-stubs/components/enigma2/__init__.pyi +1 -0
  228. homeassistant-stubs/components/enigma2/config_flow.pyi +0 -2
  229. homeassistant-stubs/components/enigma2/media_player.pyi +1 -6
  230. homeassistant-stubs/components/enphase_envoy/__init__.pyi +3 -1
  231. homeassistant-stubs/components/enphase_envoy/config_flow.pyi +4 -6
  232. homeassistant-stubs/components/enphase_envoy/const.pyi +2 -0
  233. homeassistant-stubs/components/enphase_envoy/coordinator.pyi +1 -0
  234. homeassistant-stubs/components/esphome/alarm_control_panel.pyi +5 -6
  235. homeassistant-stubs/components/esphome/assist_satellite.pyi +1 -1
  236. homeassistant-stubs/components/esphome/config_flow.pyi +6 -5
  237. homeassistant-stubs/components/esphome/entity.pyi +3 -3
  238. homeassistant-stubs/components/esphome/entry_data.pyi +1 -0
  239. homeassistant-stubs/components/esphome/enum_mapper.pyi +1 -1
  240. homeassistant-stubs/components/esphome/ffmpeg_proxy.pyi +7 -3
  241. homeassistant-stubs/components/esphome/update.pyi +3 -1
  242. homeassistant-stubs/components/event/__init__.pyi +0 -3
  243. homeassistant-stubs/components/evil_genius_labs/util.pyi +1 -1
  244. homeassistant-stubs/components/evohome/climate.pyi +2 -3
  245. homeassistant-stubs/components/evohome/entity.pyi +1 -1
  246. homeassistant-stubs/components/fan/__init__.pyi +0 -8
  247. homeassistant-stubs/components/fastdotcom/__init__.pyi +1 -1
  248. homeassistant-stubs/components/feedreader/__init__.pyi +1 -0
  249. homeassistant-stubs/components/feedreader/config_flow.pyi +1 -3
  250. homeassistant-stubs/components/feedreader/event.pyi +1 -0
  251. homeassistant-stubs/components/filesize/__init__.pyi +1 -0
  252. homeassistant-stubs/components/fitbit/api.pyi +1 -1
  253. homeassistant-stubs/components/fitbit/config_flow.pyi +1 -2
  254. homeassistant-stubs/components/flexit_bacnet/sensor.pyi +2 -1
  255. homeassistant-stubs/components/flux_led/config_flow.pyi +3 -1
  256. homeassistant-stubs/components/forecast_solar/__init__.pyi +1 -0
  257. homeassistant-stubs/components/fritz/config_flow.pyi +5 -5
  258. homeassistant-stubs/components/fritz/update.pyi +1 -1
  259. homeassistant-stubs/components/fritzbox/climate.pyi +1 -0
  260. homeassistant-stubs/components/fritzbox/config_flow.pyi +5 -6
  261. homeassistant-stubs/components/fritzbox/coordinator.pyi +1 -0
  262. homeassistant-stubs/components/fritzbox_callmonitor/__init__.pyi +2 -1
  263. homeassistant-stubs/components/fritzbox_callmonitor/config_flow.pyi +5 -0
  264. homeassistant-stubs/components/fronius/__init__.pyi +2 -1
  265. homeassistant-stubs/components/fronius/config_flow.pyi +1 -2
  266. homeassistant-stubs/components/fronius/const.pyi +1 -0
  267. homeassistant-stubs/components/fronius/coordinator.pyi +1 -1
  268. homeassistant-stubs/components/frontend/__init__.pyi +0 -3
  269. homeassistant-stubs/components/fujitsu_fglair/__init__.pyi +1 -0
  270. homeassistant-stubs/components/fujitsu_fglair/config_flow.pyi +1 -2
  271. homeassistant-stubs/components/fully_kiosk/config_flow.pyi +1 -0
  272. homeassistant-stubs/components/fyta/__init__.pyi +1 -0
  273. homeassistant-stubs/components/fyta/config_flow.pyi +0 -2
  274. homeassistant-stubs/components/fyta/coordinator.pyi +6 -1
  275. homeassistant-stubs/components/geo_location/__init__.pyi +0 -5
  276. homeassistant-stubs/components/gios/__init__.pyi +1 -0
  277. homeassistant-stubs/components/glances/__init__.pyi +1 -0
  278. homeassistant-stubs/components/glances/config_flow.pyi +1 -2
  279. homeassistant-stubs/components/go2rtc/__init__.pyi +41 -0
  280. homeassistant-stubs/components/go2rtc/config_flow.pyi +7 -0
  281. homeassistant-stubs/components/go2rtc/const.pyi +7 -0
  282. homeassistant-stubs/components/go2rtc/server.pyi +44 -0
  283. homeassistant-stubs/components/goalzero/config_flow.pyi +1 -2
  284. homeassistant-stubs/components/goalzero/coordinator.pyi +1 -0
  285. homeassistant-stubs/components/google/__init__.pyi +1 -1
  286. homeassistant-stubs/components/google/api.pyi +2 -2
  287. homeassistant-stubs/components/google/calendar.pyi +6 -5
  288. homeassistant-stubs/components/google/config_flow.pyi +2 -3
  289. homeassistant-stubs/components/google_assistant_sdk/config_flow.pyi +1 -2
  290. homeassistant-stubs/components/google_photos/config_flow.pyi +2 -3
  291. homeassistant-stubs/components/google_photos/types.pyi +2 -0
  292. homeassistant-stubs/components/google_sheets/__init__.pyi +1 -0
  293. homeassistant-stubs/components/google_sheets/config_flow.pyi +1 -3
  294. homeassistant-stubs/components/govee_ble/__init__.pyi +11 -0
  295. homeassistant-stubs/components/govee_ble/binary_sensor.pyi +22 -0
  296. homeassistant-stubs/components/govee_ble/config_flow.pyi +16 -0
  297. homeassistant-stubs/components/govee_ble/const.pyi +2 -0
  298. homeassistant-stubs/components/govee_ble/coordinator.pyi +24 -0
  299. homeassistant-stubs/components/govee_ble/device.pyi +4 -0
  300. homeassistant-stubs/components/govee_ble/event.pyi +27 -0
  301. homeassistant-stubs/components/govee_ble/sensor.pyi +25 -0
  302. homeassistant-stubs/components/gpsd/__init__.pyi +2 -0
  303. homeassistant-stubs/components/greeneye_monitor/sensor.pyi +1 -0
  304. homeassistant-stubs/components/group/cover.pyi +2 -2
  305. homeassistant-stubs/components/group/registry.pyi +2 -1
  306. homeassistant-stubs/components/group/sensor.pyi +10 -11
  307. homeassistant-stubs/components/guardian/config_flow.pyi +0 -1
  308. homeassistant-stubs/components/guardian/util.pyi +1 -1
  309. homeassistant-stubs/components/hardkernel/__init__.pyi +2 -1
  310. homeassistant-stubs/components/here_travel_time/config_flow.pyi +4 -5
  311. homeassistant-stubs/components/history_stats/__init__.pyi +1 -0
  312. homeassistant-stubs/components/history_stats/coordinator.pyi +2 -1
  313. homeassistant-stubs/components/history_stats/sensor.pyi +2 -1
  314. homeassistant-stubs/components/holiday/config_flow.pyi +1 -3
  315. homeassistant-stubs/components/homeassistant/__init__.pyi +1 -0
  316. homeassistant-stubs/components/homeassistant/triggers/numeric_state.pyi +2 -1
  317. homeassistant-stubs/components/homeassistant/triggers/time.pyi +7 -1
  318. homeassistant-stubs/components/homeassistant_alerts/coordinator.pyi +2 -1
  319. homeassistant-stubs/components/homeassistant_green/__init__.pyi +2 -1
  320. homeassistant-stubs/components/homeassistant_green/config_flow.pyi +2 -1
  321. homeassistant-stubs/components/homeassistant_hardware/firmware_config_flow.pyi +2 -1
  322. homeassistant-stubs/components/homeassistant_hardware/silabs_multiprotocol_addon.pyi +2 -1
  323. homeassistant-stubs/components/homeassistant_hardware/util.pyi +2 -1
  324. homeassistant-stubs/components/homeassistant_sky_connect/config_flow.pyi +3 -3
  325. homeassistant-stubs/components/homeassistant_yellow/__init__.pyi +2 -1
  326. homeassistant-stubs/components/homekit/__init__.pyi +0 -1
  327. homeassistant-stubs/components/homekit/models.pyi +1 -0
  328. homeassistant-stubs/components/homekit/type_covers.pyi +2 -2
  329. homeassistant-stubs/components/homekit/type_security_systems.pyi +2 -2
  330. homeassistant-stubs/components/homekit_controller/alarm_control_panel.pyi +4 -4
  331. homeassistant-stubs/components/homekit_controller/config_flow.pyi +4 -1
  332. homeassistant-stubs/components/homekit_controller/utils.pyi +1 -0
  333. homeassistant-stubs/components/homewizard/__init__.pyi +1 -0
  334. homeassistant-stubs/components/homewizard/config_flow.pyi +1 -2
  335. homeassistant-stubs/components/homewizard/helpers.pyi +1 -1
  336. homeassistant-stubs/components/homewizard/sensor.pyi +1 -1
  337. homeassistant-stubs/components/homeworks/config_flow.pyi +2 -5
  338. homeassistant-stubs/components/http/ban.pyi +2 -1
  339. homeassistant-stubs/components/http/data_validator.pyi +1 -1
  340. homeassistant-stubs/components/http/decorators.pyi +7 -4
  341. homeassistant-stubs/components/huawei_lte/config_flow.pyi +2 -0
  342. homeassistant-stubs/components/huawei_lte/device_tracker.pyi +1 -0
  343. homeassistant-stubs/components/humidifier/__init__.pyi +0 -10
  344. homeassistant-stubs/components/husqvarna_automower/__init__.pyi +2 -0
  345. homeassistant-stubs/components/husqvarna_automower/binary_sensor.pyi +1 -1
  346. homeassistant-stubs/components/husqvarna_automower/button.pyi +1 -3
  347. homeassistant-stubs/components/husqvarna_automower/config_flow.pyi +2 -3
  348. homeassistant-stubs/components/husqvarna_automower/entity.pyi +5 -4
  349. homeassistant-stubs/components/husqvarna_automower/number.pyi +8 -8
  350. homeassistant-stubs/components/husqvarna_automower/sensor.pyi +24 -3
  351. homeassistant-stubs/components/husqvarna_automower/switch.pyi +2 -5
  352. homeassistant-stubs/components/hydrawise/config_flow.pyi +1 -4
  353. homeassistant-stubs/components/hyperion/config_flow.pyi +1 -0
  354. homeassistant-stubs/components/ibeacon/__init__.pyi +1 -0
  355. homeassistant-stubs/components/image/__init__.pyi +7 -6
  356. homeassistant-stubs/components/imap/__init__.pyi +1 -0
  357. homeassistant-stubs/components/imap/config_flow.pyi +1 -2
  358. homeassistant-stubs/components/imgw_pib/__init__.pyi +1 -0
  359. homeassistant-stubs/components/intent/__init__.pyi +5 -0
  360. homeassistant-stubs/components/intent/timers.pyi +1 -2
  361. homeassistant-stubs/components/iotty/__init__.pyi +1 -0
  362. homeassistant-stubs/components/iotty/coordinator.pyi +1 -1
  363. homeassistant-stubs/components/ipp/__init__.pyi +1 -0
  364. homeassistant-stubs/components/islamic_prayer_times/__init__.pyi +1 -0
  365. homeassistant-stubs/components/jellyfin/__init__.pyi +2 -2
  366. homeassistant-stubs/components/jellyfin/config_flow.pyi +0 -1
  367. homeassistant-stubs/components/jellyfin/coordinator.pyi +8 -15
  368. homeassistant-stubs/components/jellyfin/entity.pyi +22 -7
  369. homeassistant-stubs/components/jellyfin/media_player.pyi +6 -18
  370. homeassistant-stubs/components/jellyfin/remote.pyi +19 -0
  371. homeassistant-stubs/components/jellyfin/sensor.pyi +10 -8
  372. homeassistant-stubs/components/jewish_calendar/config_flow.pyi +1 -0
  373. homeassistant-stubs/components/jvc_projector/__init__.pyi +1 -0
  374. homeassistant-stubs/components/jvc_projector/config_flow.pyi +1 -2
  375. homeassistant-stubs/components/knocki/__init__.pyi +1 -0
  376. homeassistant-stubs/components/knx/__init__.pyi +0 -1
  377. homeassistant-stubs/components/knx/climate.pyi +2 -0
  378. homeassistant-stubs/components/knx/const.pyi +4 -0
  379. homeassistant-stubs/components/knx/notify.pyi +3 -15
  380. homeassistant-stubs/components/knx/schema.pyi +1 -0
  381. homeassistant-stubs/components/knx/storage/config_store.pyi +2 -2
  382. homeassistant-stubs/components/knx/websocket.pyi +4 -1
  383. homeassistant-stubs/components/kraken/const.pyi +1 -0
  384. homeassistant-stubs/components/lacrosse_view/config_flow.pyi +1 -2
  385. homeassistant-stubs/components/lamarzocco/__init__.pyi +1 -1
  386. homeassistant-stubs/components/lamarzocco/binary_sensor.pyi +1 -1
  387. homeassistant-stubs/components/lamarzocco/button.pyi +3 -1
  388. homeassistant-stubs/components/lamarzocco/calendar.pyi +1 -2
  389. homeassistant-stubs/components/lamarzocco/config_flow.pyi +2 -5
  390. homeassistant-stubs/components/lamarzocco/coordinator.pyi +5 -4
  391. homeassistant-stubs/components/lamarzocco/diagnostics.pyi +1 -1
  392. homeassistant-stubs/components/lamarzocco/number.pyi +3 -2
  393. homeassistant-stubs/components/lamarzocco/select.pyi +5 -1
  394. homeassistant-stubs/components/lamarzocco/sensor.pyi +1 -1
  395. homeassistant-stubs/components/lamarzocco/switch.pyi +3 -2
  396. homeassistant-stubs/components/lamarzocco/update.pyi +3 -2
  397. homeassistant-stubs/components/lametric/config_flow.pyi +1 -2
  398. homeassistant-stubs/components/lametric/helpers.pyi +1 -1
  399. homeassistant-stubs/components/lawn_mower/__init__.pyi +0 -3
  400. homeassistant-stubs/components/lcn/__init__.pyi +2 -2
  401. homeassistant-stubs/components/lcn/binary_sensor.pyi +3 -0
  402. homeassistant-stubs/components/lcn/config_flow.pyi +2 -5
  403. homeassistant-stubs/components/lcn/const.pyi +1 -0
  404. homeassistant-stubs/components/lcn/helpers.pyi +4 -0
  405. homeassistant-stubs/components/lcn/sensor.pyi +4 -1
  406. homeassistant-stubs/components/lcn/switch.pyi +24 -1
  407. homeassistant-stubs/components/lcn/websocket.pyi +3 -1
  408. homeassistant-stubs/components/lektrico/__init__.pyi +1 -0
  409. homeassistant-stubs/components/lektrico/switch.pyi +31 -0
  410. homeassistant-stubs/components/lidarr/__init__.pyi +4 -2
  411. homeassistant-stubs/components/lidarr/config_flow.pyi +1 -5
  412. homeassistant-stubs/components/lidarr/coordinator.pyi +4 -1
  413. homeassistant-stubs/components/lifx/config_flow.pyi +3 -1
  414. homeassistant-stubs/components/lifx/coordinator.pyi +0 -6
  415. homeassistant-stubs/components/light/__init__.pyi +0 -15
  416. homeassistant-stubs/components/linear_garage_door/config_flow.pyi +1 -2
  417. homeassistant-stubs/components/linear_garage_door/coordinator.pyi +1 -1
  418. homeassistant-stubs/components/linkplay/__init__.pyi +2 -1
  419. homeassistant-stubs/components/linkplay/const.pyi +4 -0
  420. homeassistant-stubs/components/linkplay/media_player.pyi +12 -4
  421. homeassistant-stubs/components/litterrobot/__init__.pyi +1 -0
  422. homeassistant-stubs/components/litterrobot/vacuum.pyi +0 -1
  423. homeassistant-stubs/components/local_todo/__init__.pyi +1 -0
  424. homeassistant-stubs/components/lock/__init__.pyi +0 -10
  425. homeassistant-stubs/components/logbook/models.pyi +0 -7
  426. homeassistant-stubs/components/lookin/coordinator.pyi +1 -1
  427. homeassistant-stubs/components/madvr/__init__.pyi +1 -0
  428. homeassistant-stubs/components/madvr/config_flow.pyi +2 -5
  429. homeassistant-stubs/components/manual/alarm_control_panel.pyi +19 -10
  430. homeassistant-stubs/components/mastodon/__init__.pyi +1 -0
  431. homeassistant-stubs/components/mastodon/config_flow.pyi +2 -0
  432. homeassistant-stubs/components/matter/api.pyi +1 -1
  433. homeassistant-stubs/components/matter/climate.pyi +1 -0
  434. homeassistant-stubs/components/matter/config_flow.pyi +3 -1
  435. homeassistant-stubs/components/matter/entity.pyi +2 -2
  436. homeassistant-stubs/components/matter/fan.pyi +1 -0
  437. homeassistant-stubs/components/matter/light.pyi +1 -0
  438. homeassistant-stubs/components/matter/lock.pyi +1 -0
  439. homeassistant-stubs/components/matter/models.pyi +2 -0
  440. homeassistant-stubs/components/matter/select.pyi +2 -0
  441. homeassistant-stubs/components/matter/switch.pyi +1 -0
  442. homeassistant-stubs/components/matter/update.pyi +1 -0
  443. homeassistant-stubs/components/matter/vacuum.pyi +47 -0
  444. homeassistant-stubs/components/matter/valve.pyi +1 -0
  445. homeassistant-stubs/components/media_player/__init__.pyi +0 -33
  446. homeassistant-stubs/components/mikrotik/__init__.pyi +1 -0
  447. homeassistant-stubs/components/mikrotik/config_flow.pyi +0 -1
  448. homeassistant-stubs/components/modbus/__init__.pyi +1 -1
  449. homeassistant-stubs/components/modbus/const.pyi +0 -2
  450. homeassistant-stubs/components/modbus/cover.pyi +2 -2
  451. homeassistant-stubs/components/modbus/modbus.pyi +1 -2
  452. homeassistant-stubs/components/modbus/validators.pyi +1 -1
  453. homeassistant-stubs/components/mold_indicator/config_flow.pyi +9 -0
  454. homeassistant-stubs/components/mold_indicator/sensor.pyi +6 -2
  455. homeassistant-stubs/components/monzo/config_flow.pyi +1 -2
  456. homeassistant-stubs/components/mopeka/__init__.pyi +1 -0
  457. homeassistant-stubs/components/mqtt/__init__.pyi +2 -1
  458. homeassistant-stubs/components/mqtt/alarm_control_panel.pyi +3 -3
  459. homeassistant-stubs/components/mqtt/client.pyi +4 -0
  460. homeassistant-stubs/components/mqtt/config_flow.pyi +3 -2
  461. homeassistant-stubs/components/mqtt/const.pyi +3 -1
  462. homeassistant-stubs/components/mqtt/cover.pyi +1 -1
  463. homeassistant-stubs/components/mqtt/discovery.pyi +26 -9
  464. homeassistant-stubs/components/mqtt/entity.pyi +5 -2
  465. homeassistant-stubs/components/mqtt/models.pyi +11 -0
  466. homeassistant-stubs/components/mqtt/schemas.pyi +15 -7
  467. homeassistant-stubs/components/mqtt/update.pyi +7 -11
  468. homeassistant-stubs/components/mysensors/const.pyi +6 -1
  469. homeassistant-stubs/components/myuplink/__init__.pyi +1 -0
  470. homeassistant-stubs/components/myuplink/config_flow.pyi +1 -2
  471. homeassistant-stubs/components/myuplink/helpers.pyi +6 -0
  472. homeassistant-stubs/components/nam/__init__.pyi +1 -0
  473. homeassistant-stubs/components/nam/config_flow.pyi +4 -7
  474. homeassistant-stubs/components/nanoleaf/__init__.pyi +1 -0
  475. homeassistant-stubs/components/nanoleaf/config_flow.pyi +1 -2
  476. homeassistant-stubs/components/nest/__init__.pyi +1 -1
  477. homeassistant-stubs/components/nest/api.pyi +5 -3
  478. homeassistant-stubs/components/nest/camera.pyi +37 -16
  479. homeassistant-stubs/components/nest/config_flow.pyi +10 -4
  480. homeassistant-stubs/components/nest/const.pyi +2 -1
  481. homeassistant-stubs/components/netatmo/climate.pyi +1 -0
  482. homeassistant-stubs/components/network/websocket.pyi +2 -0
  483. homeassistant-stubs/components/nextdns/__init__.pyi +1 -0
  484. homeassistant-stubs/components/nextdns/config_flow.pyi +1 -2
  485. homeassistant-stubs/components/notify/__init__.pyi +0 -2
  486. homeassistant-stubs/components/notion/config_flow.pyi +1 -3
  487. homeassistant-stubs/components/number/__init__.pyi +0 -8
  488. homeassistant-stubs/components/nut/__init__.pyi +1 -0
  489. homeassistant-stubs/components/onboarding/views.pyi +1 -0
  490. homeassistant-stubs/components/oncue/config_flow.pyi +1 -3
  491. homeassistant-stubs/components/oncue/types.pyi +3 -0
  492. homeassistant-stubs/components/onewire/__init__.pyi +1 -0
  493. homeassistant-stubs/components/onkyo/__init__.pyi +25 -0
  494. homeassistant-stubs/components/onkyo/config_flow.pyi +30 -0
  495. homeassistant-stubs/components/onkyo/const.pyi +68 -0
  496. homeassistant-stubs/components/onkyo/media_player.pyi +24 -26
  497. homeassistant-stubs/components/onkyo/receiver.pyi +23 -3
  498. homeassistant-stubs/components/onkyo/services.pyi +14 -0
  499. homeassistant-stubs/components/openai_conversation/__init__.pyi +19 -0
  500. homeassistant-stubs/components/openai_conversation/config_flow.pyi +30 -0
  501. homeassistant-stubs/components/openai_conversation/const.pyi +14 -0
  502. homeassistant-stubs/components/openai_conversation/conversation.pyi +36 -0
  503. homeassistant-stubs/components/openexchangerates/config_flow.pyi +1 -2
  504. homeassistant-stubs/components/oralb/__init__.pyi +1 -0
  505. homeassistant-stubs/components/otbr/__init__.pyi +1 -0
  506. homeassistant-stubs/components/otbr/config_flow.pyi +2 -1
  507. homeassistant-stubs/components/otbr/silabs_multiprotocol.pyi +1 -1
  508. homeassistant-stubs/components/otbr/util.pyi +1 -1
  509. homeassistant-stubs/components/overkiz/alarm_control_panel.pyi +12 -12
  510. homeassistant-stubs/components/overkiz/climate/atlantic_pass_apc_zone_control_zone.pyi +0 -3
  511. homeassistant-stubs/components/overkiz/config_flow.pyi +1 -2
  512. homeassistant-stubs/components/p1_monitor/__init__.pyi +3 -2
  513. homeassistant-stubs/components/p1_monitor/config_flow.pyi +2 -2
  514. homeassistant-stubs/components/p1_monitor/coordinator.pyi +1 -1
  515. homeassistant-stubs/components/p1_monitor/diagnostics.pyi +1 -1
  516. homeassistant-stubs/components/panel_custom/__init__.pyi +28 -0
  517. homeassistant-stubs/components/pi_hole/__init__.pyi +1 -0
  518. homeassistant-stubs/components/pi_hole/update.pyi +1 -1
  519. homeassistant-stubs/components/ping/__init__.pyi +1 -0
  520. homeassistant-stubs/components/plugwise/__init__.pyi +1 -0
  521. homeassistant-stubs/components/plugwise/config_flow.pyi +8 -6
  522. homeassistant-stubs/components/plugwise/const.pyi +4 -1
  523. homeassistant-stubs/components/plugwise/util.pyi +1 -1
  524. homeassistant-stubs/components/powerwall/config_flow.pyi +0 -1
  525. homeassistant-stubs/components/powerwall/models.pyi +1 -0
  526. homeassistant-stubs/components/private_ble_device/coordinator.pyi +3 -0
  527. homeassistant-stubs/components/prometheus/__init__.pyi +7 -4
  528. homeassistant-stubs/components/proximity/coordinator.pyi +1 -0
  529. homeassistant-stubs/components/purpleair/config_flow.pyi +0 -1
  530. homeassistant-stubs/components/pvoutput/config_flow.pyi +1 -2
  531. homeassistant-stubs/components/qnap_qsw/sensor.pyi +8 -2
  532. homeassistant-stubs/components/radarr/__init__.pyi +1 -0
  533. homeassistant-stubs/components/radarr/config_flow.pyi +1 -3
  534. homeassistant-stubs/components/radio_browser/__init__.pyi +10 -0
  535. homeassistant-stubs/components/radio_browser/config_flow.pyi +8 -0
  536. homeassistant-stubs/components/radio_browser/const.pyi +5 -0
  537. homeassistant-stubs/components/radio_browser/media_source.pyi +28 -0
  538. homeassistant-stubs/components/rainforest_raven/__init__.pyi +3 -5
  539. homeassistant-stubs/components/rainforest_raven/coordinator.pyi +3 -12
  540. homeassistant-stubs/components/rainforest_raven/diagnostics.pyi +2 -4
  541. homeassistant-stubs/components/rainforest_raven/sensor.pyi +4 -5
  542. homeassistant-stubs/components/rainmachine/__init__.pyi +1 -0
  543. homeassistant-stubs/components/rainmachine/switch.pyi +1 -1
  544. homeassistant-stubs/components/rainmachine/update.pyi +7 -1
  545. homeassistant-stubs/components/raspberry_pi/__init__.pyi +2 -1
  546. homeassistant-stubs/components/recorder/core.pyi +2 -6
  547. homeassistant-stubs/components/recorder/migration.pyi +36 -16
  548. homeassistant-stubs/components/recorder/models/state.pyi +0 -7
  549. homeassistant-stubs/components/recorder/queries.pyi +1 -0
  550. homeassistant-stubs/components/recorder/table_managers/__init__.pyi +2 -2
  551. homeassistant-stubs/components/recorder/util.pyi +10 -5
  552. homeassistant-stubs/components/remote/__init__.pyi +0 -4
  553. homeassistant-stubs/components/renault/__init__.pyi +1 -0
  554. homeassistant-stubs/components/renault/renault_vehicle.pyi +1 -1
  555. homeassistant-stubs/components/repairs/issue_handler.pyi +1 -1
  556. homeassistant-stubs/components/rfxtrx/cover.pyi +1 -2
  557. homeassistant-stubs/components/rfxtrx/entity.pyi +1 -1
  558. homeassistant-stubs/components/ring/__init__.pyi +1 -0
  559. homeassistant-stubs/components/ring/config_flow.pyi +5 -2
  560. homeassistant-stubs/components/ring/coordinator.pyi +1 -1
  561. homeassistant-stubs/components/ring/entity.pyi +2 -2
  562. homeassistant-stubs/components/roborock/__init__.pyi +1 -0
  563. homeassistant-stubs/components/roborock/config_flow.pyi +1 -2
  564. homeassistant-stubs/components/roborock/coordinator.pyi +0 -5
  565. homeassistant-stubs/components/roku/browse_media.pyi +2 -0
  566. homeassistant-stubs/components/roku/helpers.pyi +5 -2
  567. homeassistant-stubs/components/rtsp_to_webrtc/__init__.pyi +1 -3
  568. homeassistant-stubs/components/rtsp_to_webrtc/config_flow.pyi +1 -1
  569. homeassistant-stubs/components/samsungtv/__init__.pyi +2 -2
  570. homeassistant-stubs/components/samsungtv/bridge.pyi +1 -1
  571. homeassistant-stubs/components/samsungtv/config_flow.pyi +2 -2
  572. homeassistant-stubs/components/scrape/__init__.pyi +1 -0
  573. homeassistant-stubs/components/scrape/coordinator.pyi +2 -1
  574. homeassistant-stubs/components/script/__init__.pyi +0 -16
  575. homeassistant-stubs/components/select/__init__.pyi +0 -3
  576. homeassistant-stubs/components/sensibo/__init__.pyi +1 -0
  577. homeassistant-stubs/components/sensibo/config_flow.pyi +5 -2
  578. homeassistant-stubs/components/sensibo/entity.pyi +1 -1
  579. homeassistant-stubs/components/sensibo/update.pyi +1 -1
  580. homeassistant-stubs/components/sensor/__init__.pyi +0 -9
  581. homeassistant-stubs/components/sensor/websocket_api.pyi +3 -0
  582. homeassistant-stubs/components/sensoterra/__init__.pyi +1 -0
  583. homeassistant-stubs/components/senz/__init__.pyi +2 -0
  584. homeassistant-stubs/components/sfr_box/binary_sensor.pyi +2 -2
  585. homeassistant-stubs/components/sfr_box/button.pyi +1 -1
  586. homeassistant-stubs/components/sfr_box/config_flow.pyi +1 -2
  587. homeassistant-stubs/components/sfr_box/coordinator.pyi +1 -1
  588. homeassistant-stubs/components/sfr_box/sensor.pyi +2 -2
  589. homeassistant-stubs/components/shell_command/__init__.pyi +13 -0
  590. homeassistant-stubs/components/shelly/binary_sensor.pyi +1 -1
  591. homeassistant-stubs/components/shelly/button.pyi +1 -1
  592. homeassistant-stubs/components/shelly/config_flow.pyi +1 -3
  593. homeassistant-stubs/components/shelly/const.pyi +1 -1
  594. homeassistant-stubs/components/shelly/coordinator.pyi +2 -4
  595. homeassistant-stubs/components/shelly/light.pyi +13 -2
  596. homeassistant-stubs/components/shelly/number.pyi +1 -1
  597. homeassistant-stubs/components/shelly/select.pyi +1 -1
  598. homeassistant-stubs/components/shelly/sensor.pyi +1 -1
  599. homeassistant-stubs/components/shelly/switch.pyi +10 -1
  600. homeassistant-stubs/components/shelly/text.pyi +1 -1
  601. homeassistant-stubs/components/shelly/update.pyi +2 -2
  602. homeassistant-stubs/components/shelly/utils.pyi +3 -2
  603. homeassistant-stubs/components/simplisafe/alarm_control_panel.pyi +2 -3
  604. homeassistant-stubs/components/simplisafe/typing.pyi +4 -0
  605. homeassistant-stubs/components/siren/__init__.pyi +0 -3
  606. homeassistant-stubs/components/sleepiq/config_flow.pyi +1 -3
  607. homeassistant-stubs/components/sleepiq/entity.pyi +3 -2
  608. homeassistant-stubs/components/smhi/config_flow.pyi +1 -3
  609. homeassistant-stubs/components/smlight/__init__.pyi +1 -0
  610. homeassistant-stubs/components/smlight/config_flow.pyi +0 -2
  611. homeassistant-stubs/components/smlight/coordinator.pyi +1 -1
  612. homeassistant-stubs/components/smlight/update.pyi +4 -2
  613. homeassistant-stubs/components/solarlog/__init__.pyi +1 -0
  614. homeassistant-stubs/components/solarlog/config_flow.pyi +1 -4
  615. homeassistant-stubs/components/solarlog/coordinator.pyi +6 -0
  616. homeassistant-stubs/components/sonarr/config_flow.pyi +1 -4
  617. homeassistant-stubs/components/speedtestdotnet/__init__.pyi +2 -1
  618. homeassistant-stubs/components/spotify/__init__.pyi +5 -0
  619. homeassistant-stubs/components/spotify/application_credentials.pyi +4 -0
  620. homeassistant-stubs/components/spotify/browse_media.pyi +49 -0
  621. homeassistant-stubs/components/spotify/config_flow.pyi +19 -0
  622. homeassistant-stubs/components/spotify/const.pyi +9 -0
  623. homeassistant-stubs/components/spotify/coordinator.pyi +34 -0
  624. homeassistant-stubs/components/spotify/diagnostics.pyi +5 -0
  625. homeassistant-stubs/components/spotify/entity.pyi +10 -0
  626. homeassistant-stubs/components/spotify/media_player.pyi +82 -0
  627. homeassistant-stubs/components/spotify/models.pyi +12 -0
  628. homeassistant-stubs/components/spotify/sensor.pyi +31 -0
  629. homeassistant-stubs/components/spotify/system_health.pyi +6 -0
  630. homeassistant-stubs/components/spotify/util.pyi +7 -0
  631. homeassistant-stubs/components/squeezebox/__init__.pyi +6 -3
  632. homeassistant-stubs/components/squeezebox/const.pyi +5 -0
  633. homeassistant-stubs/components/squeezebox/coordinator.pyi +15 -3
  634. homeassistant-stubs/components/squeezebox/media_player.pyi +12 -13
  635. homeassistant-stubs/components/ssdp/__init__.pyi +1 -0
  636. homeassistant-stubs/components/statistics/config_flow.pyi +8 -2
  637. homeassistant-stubs/components/statistics/sensor.pyi +20 -22
  638. homeassistant-stubs/components/steamist/config_flow.pyi +3 -1
  639. homeassistant-stubs/components/sun/entity.pyi +1 -0
  640. homeassistant-stubs/components/surepetcare/config_flow.pyi +1 -2
  641. homeassistant-stubs/components/switch/__init__.pyi +0 -2
  642. homeassistant-stubs/components/switch_as_x/__init__.pyi +3 -0
  643. homeassistant-stubs/components/switch_as_x/config_flow.pyi +18 -0
  644. homeassistant-stubs/components/switch_as_x/const.pyi +5 -0
  645. homeassistant-stubs/components/switch_as_x/cover.pyi +18 -0
  646. homeassistant-stubs/components/switch_as_x/entity.pyi +35 -0
  647. homeassistant-stubs/components/switch_as_x/fan.pyi +17 -0
  648. homeassistant-stubs/components/switch_as_x/light.pyi +13 -0
  649. homeassistant-stubs/components/switch_as_x/lock.pyi +17 -0
  650. homeassistant-stubs/components/switch_as_x/siren.pyi +12 -0
  651. homeassistant-stubs/components/switch_as_x/valve.pyi +19 -0
  652. homeassistant-stubs/components/switchbee/entity.pyi +2 -2
  653. homeassistant-stubs/components/switchbee/switch.pyi +2 -1
  654. homeassistant-stubs/components/switchbot_cloud/__init__.pyi +2 -1
  655. homeassistant-stubs/components/switchbot_cloud/coordinator.pyi +2 -0
  656. homeassistant-stubs/components/switchbot_cloud/lock.pyi +18 -0
  657. homeassistant-stubs/components/switcher_kis/__init__.pyi +1 -0
  658. homeassistant-stubs/components/switcher_kis/button.pyi +2 -5
  659. homeassistant-stubs/components/switcher_kis/climate.pyi +2 -5
  660. homeassistant-stubs/components/switcher_kis/config_flow.pyi +1 -2
  661. homeassistant-stubs/components/switcher_kis/coordinator.pyi +1 -1
  662. homeassistant-stubs/components/switcher_kis/cover.pyi +16 -9
  663. homeassistant-stubs/components/switcher_kis/entity.pyi +9 -0
  664. homeassistant-stubs/components/switcher_kis/light.pyi +44 -0
  665. homeassistant-stubs/components/switcher_kis/sensor.pyi +2 -5
  666. homeassistant-stubs/components/switcher_kis/switch.pyi +2 -5
  667. homeassistant-stubs/components/synology_dsm/coordinator.pyi +2 -2
  668. homeassistant-stubs/components/synology_dsm/entity.pyi +2 -1
  669. homeassistant-stubs/components/synology_dsm/update.pyi +1 -1
  670. homeassistant-stubs/components/system_log/__init__.pyi +1 -0
  671. homeassistant-stubs/components/systemmonitor/__init__.pyi +1 -0
  672. homeassistant-stubs/components/tailscale/config_flow.pyi +1 -2
  673. homeassistant-stubs/components/tailwind/config_flow.pyi +1 -2
  674. homeassistant-stubs/components/tailwind/typing.pyi +2 -0
  675. homeassistant-stubs/components/tautulli/__init__.pyi +1 -0
  676. homeassistant-stubs/components/technove/helpers.pyi +1 -1
  677. homeassistant-stubs/components/tedee/__init__.pyi +1 -1
  678. homeassistant-stubs/components/tedee/binary_sensor.pyi +1 -1
  679. homeassistant-stubs/components/tedee/config_flow.pyi +2 -5
  680. homeassistant-stubs/components/tedee/coordinator.pyi +5 -5
  681. homeassistant-stubs/components/tedee/lock.pyi +2 -2
  682. homeassistant-stubs/components/tedee/sensor.pyi +1 -1
  683. homeassistant-stubs/components/text/__init__.pyi +0 -6
  684. homeassistant-stubs/components/thethingsnetwork/config_flow.pyi +1 -2
  685. homeassistant-stubs/components/thethingsnetwork/sensor.pyi +2 -1
  686. homeassistant-stubs/components/threshold/binary_sensor.pyi +1 -3
  687. homeassistant-stubs/components/tibber/sensor.pyi +1 -0
  688. homeassistant-stubs/components/tile/device_tracker.pyi +3 -6
  689. homeassistant-stubs/components/time/__init__.pyi +0 -4
  690. homeassistant-stubs/components/timer/__init__.pyi +1 -1
  691. homeassistant-stubs/components/tod/binary_sensor.pyi +2 -1
  692. homeassistant-stubs/components/todo/__init__.pyi +0 -2
  693. homeassistant-stubs/components/tplink/__init__.pyi +1 -0
  694. homeassistant-stubs/components/tplink/button.pyi +1 -1
  695. homeassistant-stubs/components/tplink/config_flow.pyi +5 -3
  696. homeassistant-stubs/components/tplink/entity.pyi +4 -4
  697. homeassistant-stubs/components/tplink_omada/__init__.pyi +4 -3
  698. homeassistant-stubs/components/tplink_omada/binary_sensor.pyi +3 -5
  699. homeassistant-stubs/components/tplink_omada/const.pyi +11 -0
  700. homeassistant-stubs/components/tplink_omada/coordinator.pyi +1 -1
  701. homeassistant-stubs/components/tplink_omada/device_tracker.pyi +3 -4
  702. homeassistant-stubs/components/tplink_omada/entity.pyi +3 -1
  703. homeassistant-stubs/components/tplink_omada/sensor.pyi +34 -0
  704. homeassistant-stubs/components/tplink_omada/switch.pyi +3 -5
  705. homeassistant-stubs/components/tplink_omada/update.pyi +3 -6
  706. homeassistant-stubs/components/trace/__init__.pyi +5 -25
  707. homeassistant-stubs/components/trace/const.pyi +1 -1
  708. homeassistant-stubs/components/trace/models.pyi +2 -0
  709. homeassistant-stubs/components/trace/util.pyi +17 -0
  710. homeassistant-stubs/components/trace/websocket_api.pyi +1 -1
  711. homeassistant-stubs/components/tractive/__init__.pyi +1 -0
  712. homeassistant-stubs/components/trafikverket_camera/config_flow.pyi +2 -2
  713. homeassistant-stubs/components/trafikverket_ferry/config_flow.pyi +1 -2
  714. homeassistant-stubs/components/trafikverket_train/config_flow.pyi +0 -1
  715. homeassistant-stubs/components/trafikverket_weatherstation/config_flow.pyi +3 -2
  716. homeassistant-stubs/components/transmission/__init__.pyi +1 -0
  717. homeassistant-stubs/components/transmission/config_flow.pyi +1 -2
  718. homeassistant-stubs/components/trend/binary_sensor.pyi +1 -2
  719. homeassistant-stubs/components/tts/__init__.pyi +0 -5
  720. homeassistant-stubs/components/tts/const.pyi +1 -0
  721. homeassistant-stubs/components/twentemilieu/__init__.pyi +4 -0
  722. homeassistant-stubs/components/unifi/__init__.pyi +1 -0
  723. homeassistant-stubs/components/unifi/config_flow.pyi +1 -2
  724. homeassistant-stubs/components/unifi/device_tracker.pyi +0 -3
  725. homeassistant-stubs/components/unifi/update.pyi +1 -1
  726. homeassistant-stubs/components/unifiprotect/camera.pyi +3 -2
  727. homeassistant-stubs/components/unifiprotect/config_flow.pyi +0 -1
  728. homeassistant-stubs/components/unifiprotect/data.pyi +2 -0
  729. homeassistant-stubs/components/update/__init__.pyi +7 -12
  730. homeassistant-stubs/components/update/const.pyi +2 -0
  731. homeassistant-stubs/components/vacuum/__init__.pyi +0 -6
  732. homeassistant-stubs/components/vallox/config_flow.pyi +2 -5
  733. homeassistant-stubs/components/velbus/entity.pyi +1 -1
  734. homeassistant-stubs/components/vlc_telnet/__init__.pyi +1 -0
  735. homeassistant-stubs/components/vlc_telnet/config_flow.pyi +2 -3
  736. homeassistant-stubs/components/vlc_telnet/media_player.pyi +1 -1
  737. homeassistant-stubs/components/wallbox/__init__.pyi +1 -1
  738. homeassistant-stubs/components/wallbox/config_flow.pyi +2 -4
  739. homeassistant-stubs/components/wallbox/coordinator.pyi +3 -3
  740. homeassistant-stubs/components/water_heater/__init__.pyi +0 -9
  741. homeassistant-stubs/components/weather/__init__.pyi +0 -19
  742. homeassistant-stubs/components/webostv/config_flow.pyi +2 -2
  743. homeassistant-stubs/components/webostv/media_player.pyi +1 -1
  744. homeassistant-stubs/components/websocket_api/connection.pyi +3 -0
  745. homeassistant-stubs/components/websocket_api/const.pyi +4 -1
  746. homeassistant-stubs/components/wemo/__init__.pyi +4 -1
  747. homeassistant-stubs/components/wemo/coordinator.pyi +3 -0
  748. homeassistant-stubs/components/withings/__init__.pyi +4 -2
  749. homeassistant-stubs/components/withings/config_flow.pyi +1 -2
  750. homeassistant-stubs/components/withings/coordinator.pyi +7 -2
  751. homeassistant-stubs/components/withings/entity.pyi +14 -2
  752. homeassistant-stubs/components/withings/sensor.pyi +19 -4
  753. homeassistant-stubs/components/wiz/__init__.pyi +1 -0
  754. homeassistant-stubs/components/wled/__init__.pyi +1 -0
  755. homeassistant-stubs/components/wled/helpers.pyi +1 -1
  756. homeassistant-stubs/components/workday/__init__.pyi +13 -0
  757. homeassistant-stubs/components/workday/binary_sensor.pyi +46 -0
  758. homeassistant-stubs/components/workday/config_flow.pyi +33 -0
  759. homeassistant-stubs/components/workday/const.pyi +18 -0
  760. homeassistant-stubs/components/workday/diagnostics.pyi +5 -0
  761. homeassistant-stubs/components/workday/repairs.pyi +28 -0
  762. homeassistant-stubs/components/xiaomi_ble/config_flow.pyi +7 -2
  763. homeassistant-stubs/components/xiaomi_ble/coordinator.pyi +1 -1
  764. homeassistant-stubs/components/xiaomi_ble/types.pyi +2 -0
  765. homeassistant-stubs/components/yale_smart_alarm/__init__.pyi +1 -0
  766. homeassistant-stubs/components/yale_smart_alarm/alarm_control_panel.pyi +2 -3
  767. homeassistant-stubs/components/yale_smart_alarm/binary_sensor.pyi +7 -0
  768. homeassistant-stubs/components/yale_smart_alarm/config_flow.pyi +0 -1
  769. homeassistant-stubs/components/yale_smart_alarm/const.pyi +2 -1
  770. homeassistant-stubs/components/yale_smart_alarm/select.pyi +21 -0
  771. homeassistant-stubs/components/yalexs_ble/__init__.pyi +1 -0
  772. homeassistant-stubs/components/yalexs_ble/config_flow.pyi +6 -2
  773. homeassistant-stubs/components/youtube/config_flow.pyi +1 -2
  774. homeassistant-stubs/components/zwave_js/api.pyi +1 -1
  775. homeassistant-stubs/components/zwave_js/config_flow.pyi +6 -4
  776. homeassistant-stubs/components/zwave_js/discovery.pyi +2 -1
  777. homeassistant-stubs/components/zwave_js/discovery_data_template.pyi +1 -1
  778. homeassistant-stubs/components/zwave_js/light.pyi +8 -6
  779. homeassistant-stubs/components/zwave_js/services.pyi +4 -1
  780. homeassistant-stubs/components/zwave_js/update.pyi +2 -1
  781. homeassistant-stubs/config.pyi +3 -24
  782. homeassistant-stubs/config_entries.pyi +52 -27
  783. homeassistant-stubs/const.pyi +16 -12
  784. homeassistant-stubs/core.pyi +40 -109
  785. homeassistant-stubs/core_config.pyi +108 -0
  786. homeassistant-stubs/data_entry_flow.pyi +22 -18
  787. homeassistant-stubs/helpers/area_registry.pyi +6 -8
  788. homeassistant-stubs/helpers/category_registry.pyi +1 -0
  789. homeassistant-stubs/helpers/check_config.pyi +2 -1
  790. homeassistant-stubs/helpers/collection.pyi +6 -4
  791. homeassistant-stubs/helpers/condition.pyi +1 -0
  792. homeassistant-stubs/helpers/config_entry_flow.pyi +3 -2
  793. homeassistant-stubs/helpers/config_validation.pyi +6 -6
  794. homeassistant-stubs/helpers/data_entry_flow.pyi +1 -1
  795. homeassistant-stubs/helpers/debounce.pyi +1 -1
  796. homeassistant-stubs/helpers/deprecation.pyi +9 -4
  797. homeassistant-stubs/helpers/device_registry.pyi +7 -8
  798. homeassistant-stubs/helpers/discovery_flow.pyi +5 -5
  799. homeassistant-stubs/helpers/dispatcher.pyi +9 -8
  800. homeassistant-stubs/helpers/entity.pyi +2 -31
  801. homeassistant-stubs/helpers/entity_registry.pyi +7 -9
  802. homeassistant-stubs/helpers/event.pyi +2 -1
  803. homeassistant-stubs/helpers/floor_registry.pyi +3 -3
  804. homeassistant-stubs/helpers/frame.pyi +1 -5
  805. homeassistant-stubs/helpers/hassio.pyi +4 -0
  806. homeassistant-stubs/helpers/http.pyi +2 -0
  807. homeassistant-stubs/helpers/intent.pyi +6 -5
  808. homeassistant-stubs/helpers/json.pyi +3 -0
  809. homeassistant-stubs/helpers/label_registry.pyi +3 -3
  810. homeassistant-stubs/helpers/llm.pyi +1 -2
  811. homeassistant-stubs/helpers/network.pyi +1 -0
  812. homeassistant-stubs/helpers/normalized_name_base_registry.pyi +6 -3
  813. homeassistant-stubs/helpers/ratelimit.pyi +1 -1
  814. homeassistant-stubs/helpers/redact.pyi +2 -2
  815. homeassistant-stubs/helpers/registry.pyi +5 -3
  816. homeassistant-stubs/helpers/script.pyi +3 -7
  817. homeassistant-stubs/helpers/selector.pyi +1 -1
  818. homeassistant-stubs/helpers/service.pyi +2 -2
  819. homeassistant-stubs/helpers/service_info/hassio.pyi +11 -0
  820. homeassistant-stubs/helpers/service_info/mqtt.pyi +1 -0
  821. homeassistant-stubs/helpers/significant_change.pyi +3 -0
  822. homeassistant-stubs/helpers/singleton.pyi +3 -2
  823. homeassistant-stubs/helpers/storage.pyi +4 -5
  824. homeassistant-stubs/helpers/sun.pyi +2 -0
  825. homeassistant-stubs/helpers/system_info.pyi +1 -0
  826. homeassistant-stubs/helpers/template.pyi +4 -3
  827. homeassistant-stubs/helpers/trace.pyi +3 -3
  828. homeassistant-stubs/helpers/typing.pyi +13 -0
  829. homeassistant-stubs/helpers/update_coordinator.pyi +4 -4
  830. homeassistant-stubs/loader.pyi +5 -21
  831. homeassistant-stubs/scripts/benchmark/__init__.pyi +1 -1
  832. homeassistant-stubs/util/__init__.pyi +1 -1
  833. homeassistant-stubs/util/async_.pyi +2 -2
  834. homeassistant-stubs/util/decorator.pyi +2 -1
  835. homeassistant-stubs/util/dt.pyi +3 -2
  836. homeassistant-stubs/util/enum.pyi +2 -2
  837. homeassistant-stubs/util/hass_dict.pyi +17 -17
  838. homeassistant-stubs/util/json.pyi +3 -0
  839. homeassistant-stubs/util/limited_size_dict.pyi +1 -1
  840. homeassistant-stubs/util/logging.pyi +8 -8
  841. homeassistant-stubs/util/loop.pyi +1 -1
  842. homeassistant-stubs/util/percentage.pyi +2 -2
  843. homeassistant-stubs/util/read_only_dict.pyi +1 -1
  844. homeassistant-stubs/util/signal_type.pyi +3 -3
  845. homeassistant-stubs/util/timeout.pyi +3 -1
  846. homeassistant-stubs/util/variance.pyi +3 -3
  847. homeassistant-stubs/util/yaml/loader.pyi +2 -4
  848. {homeassistant_stubs-2024.10.3.dist-info → homeassistant_stubs-2024.11.0.dist-info}/METADATA +2 -2
  849. {homeassistant_stubs-2024.10.3.dist-info → homeassistant_stubs-2024.11.0.dist-info}/RECORD +851 -772
  850. homeassistant-stubs/components/jellyfin/models.pyi +0 -10
  851. homeassistant-stubs/components/map/__init__.pyi +0 -14
  852. {homeassistant_stubs-2024.10.3.dist-info → homeassistant_stubs-2024.11.0.dist-info}/WHEEL +0 -0
  853. {homeassistant_stubs-2024.10.3.dist-info → homeassistant_stubs-2024.11.0.dist-info}/licenses/LICENSE +0 -0
@@ -9,6 +9,7 @@ from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
9
9
  from homeassistant.helpers.entity import Entity as Entity
10
10
  from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
11
11
 
12
+ type _DataCoordinatorType = SleepIQDataUpdateCoordinator | SleepIQPauseUpdateCoordinator
12
13
  def device_from_bed(bed: SleepIQBed) -> DeviceInfo: ...
13
14
  def sleeper_for_side(bed: SleepIQBed, side: str) -> SleepIQSleeper: ...
14
15
 
@@ -17,7 +18,7 @@ class SleepIQEntity(Entity):
17
18
  _attr_device_info: Incomplete
18
19
  def __init__(self, bed: SleepIQBed) -> None: ...
19
20
 
20
- class SleepIQBedEntity(CoordinatorEntity[_SleepIQCoordinatorT], metaclass=abc.ABCMeta):
21
+ class SleepIQBedEntity[_SleepIQCoordinatorT: _DataCoordinatorType](CoordinatorEntity[_SleepIQCoordinatorT], metaclass=abc.ABCMeta):
21
22
  _attr_icon = ICON_OCCUPIED
22
23
  bed: Incomplete
23
24
  _attr_device_info: Incomplete
@@ -26,7 +27,7 @@ class SleepIQBedEntity(CoordinatorEntity[_SleepIQCoordinatorT], metaclass=abc.AB
26
27
  @abstractmethod
27
28
  def _async_update_attrs(self) -> None: ...
28
29
 
29
- class SleepIQSleeperEntity(SleepIQBedEntity[_SleepIQCoordinatorT], metaclass=abc.ABCMeta):
30
+ class SleepIQSleeperEntity[_SleepIQCoordinatorT: _DataCoordinatorType](SleepIQBedEntity[_SleepIQCoordinatorT], metaclass=abc.ABCMeta):
30
31
  _attr_icon = ICON_OCCUPIED
31
32
  sleeper: Incomplete
32
33
  _attr_name: Incomplete
@@ -1,5 +1,5 @@
1
1
  from .const import DEFAULT_NAME as DEFAULT_NAME, DOMAIN as DOMAIN, HOME_LOCATION_NAME as HOME_LOCATION_NAME
2
- from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
2
+ from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
3
3
  from homeassistant.const import CONF_LATITUDE as CONF_LATITUDE, CONF_LOCATION as CONF_LOCATION, CONF_LONGITUDE as CONF_LONGITUDE, CONF_NAME as CONF_NAME
4
4
  from homeassistant.core import HomeAssistant as HomeAssistant
5
5
  from homeassistant.helpers import aiohttp_client as aiohttp_client
@@ -10,7 +10,5 @@ async def async_check_location(hass: HomeAssistant, longitude: float, latitude:
10
10
 
11
11
  class SmhiFlowHandler(ConfigFlow, domain=DOMAIN):
12
12
  VERSION: int
13
- config_entry: ConfigEntry | None
14
13
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
15
14
  async def async_step_reconfigure(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
16
- async def async_step_reconfigure_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -12,6 +12,7 @@ class SmlightData:
12
12
  data: SmDataUpdateCoordinator
13
13
  firmware: SmFirmwareUpdateCoordinator
14
14
  def __init__(self, *, data, firmware) -> None: ...
15
+ type SmConfigEntry = ConfigEntry[SmlightData]
15
16
 
16
17
  async def async_setup_entry(hass: HomeAssistant, entry: SmConfigEntry) -> bool: ...
17
18
  async def async_unload_entry(hass: HomeAssistant, entry: SmConfigEntry) -> bool: ...
@@ -1,4 +1,3 @@
1
- from . import SmConfigEntry as SmConfigEntry
2
1
  from .const import DOMAIN as DOMAIN
3
2
  from _typeshed import Incomplete
4
3
  from collections.abc import Mapping
@@ -15,7 +14,6 @@ STEP_AUTH_DATA_SCHEMA: Incomplete
15
14
  class SmlightConfigFlow(ConfigFlow, domain=DOMAIN):
16
15
  client: Incomplete
17
16
  host: Incomplete
18
- _reauth_entry: Incomplete
19
17
  def __init__(self) -> None: ...
20
18
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
21
19
  async def async_step_auth(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -27,7 +27,7 @@ class SmFwData:
27
27
  zb_firmware: list[Firmware] | None
28
28
  def __init__(self, info, esp_firmware, zb_firmware) -> None: ...
29
29
 
30
- class SmBaseDataUpdateCoordinator(DataUpdateCoordinator[_DataT], metaclass=abc.ABCMeta):
30
+ class SmBaseDataUpdateCoordinator[_DataT](DataUpdateCoordinator[_DataT], metaclass=abc.ABCMeta):
31
31
  config_entry: SmConfigEntry
32
32
  client: Incomplete
33
33
  unique_id: Incomplete
@@ -1,4 +1,5 @@
1
1
  from . import SmConfigEntry as SmConfigEntry
2
+ from .const import LOGGER as LOGGER
2
3
  from .coordinator import SmFirmwareUpdateCoordinator as SmFirmwareUpdateCoordinator, SmFwData as SmFwData
3
4
  from .entity import SmEntity as SmEntity
4
5
  from _typeshed import Incomplete
@@ -17,7 +18,7 @@ from typing import Any, Final
17
18
  class SmUpdateEntityDescription(UpdateEntityDescription):
18
19
  installed_version: Callable[[Info], str | None]
19
20
  fw_list: Callable[[SmFwData], list[Firmware] | None]
20
- def __init__(self, *, key, device_class=..., entity_category=..., entity_registry_enabled_default=..., entity_registry_visible_default=..., force_update=..., icon=..., has_entity_name=..., name=..., translation_key=..., translation_placeholders=..., unit_of_measurement=..., installed_version, fw_list) -> None: ...
21
+ def __init__(self, *, key, device_class=..., entity_category=..., entity_registry_enabled_default=..., entity_registry_visible_default=..., force_update=..., icon=..., has_entity_name=..., name=..., translation_key=..., translation_placeholders=..., unit_of_measurement=..., display_precision=..., installed_version, fw_list) -> None: ...
21
22
 
22
23
  UPDATE_ENTITIES: Final[Incomplete]
23
24
 
@@ -40,8 +41,9 @@ class SmUpdateEntity(SmEntity, UpdateEntity):
40
41
  def latest_version(self) -> str | None: ...
41
42
  def register_callbacks(self) -> None: ...
42
43
  def release_notes(self) -> str | None: ...
43
- _attr_in_progress: Incomplete
44
+ _attr_update_percentage: Incomplete
44
45
  def _update_progress(self, progress: MessageEvent) -> None: ...
46
+ _attr_in_progress: bool
45
47
  def _update_done(self) -> None: ...
46
48
  def _update_finished(self, event: MessageEvent) -> None: ...
47
49
  def _update_failed(self, event: MessageEvent) -> None: ...
@@ -7,6 +7,7 @@ from homeassistant.core import HomeAssistant as HomeAssistant
7
7
 
8
8
  _LOGGER: Incomplete
9
9
  PLATFORMS: Incomplete
10
+ type SolarlogConfigEntry = ConfigEntry[SolarLogCoordinator]
10
11
 
11
12
  async def async_setup_entry(hass: HomeAssistant, entry: SolarlogConfigEntry) -> bool: ...
12
13
  async def async_unload_entry(hass: HomeAssistant, entry: SolarlogConfigEntry) -> bool: ...
@@ -1,4 +1,3 @@
1
- from . import SolarlogConfigEntry as SolarlogConfigEntry
2
1
  from .const import CONF_HAS_PWD as CONF_HAS_PWD, DEFAULT_HOST as DEFAULT_HOST, DEFAULT_NAME as DEFAULT_NAME, DOMAIN as DOMAIN
3
2
  from _typeshed import Incomplete
4
3
  from collections.abc import Mapping
@@ -10,7 +9,6 @@ from typing import Any
10
9
  _LOGGER: Incomplete
11
10
 
12
11
  class SolarLogConfigFlow(ConfigFlow, domain=DOMAIN):
13
- _entry: SolarlogConfigEntry | None
14
12
  VERSION: int
15
13
  MINOR_VERSION: int
16
14
  _errors: Incomplete
@@ -21,7 +19,6 @@ class SolarLogConfigFlow(ConfigFlow, domain=DOMAIN):
21
19
  async def _test_extended_data(self, host: str, pwd: str = '') -> bool: ...
22
20
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
23
21
  async def async_step_password(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
24
- async def async_step_reconfigure(self, entry_data: Mapping[str, Any]) -> ConfigFlowResult: ...
25
- async def async_step_reconfigure_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
22
+ async def async_step_reconfigure(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
26
23
  async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> ConfigFlowResult: ...
27
24
  async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -1,14 +1,19 @@
1
1
  from . import SolarlogConfigEntry as SolarlogConfigEntry
2
+ from .const import DOMAIN as DOMAIN
2
3
  from _typeshed import Incomplete
4
+ from collections.abc import Callable as Callable
3
5
  from homeassistant.const import CONF_HOST as CONF_HOST
4
6
  from homeassistant.core import HomeAssistant as HomeAssistant
5
7
  from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryNotReady as ConfigEntryNotReady
6
8
  from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
9
+ from homeassistant.util import slugify as slugify
7
10
  from solarlog_cli.solarlog_models import SolarlogData
8
11
 
9
12
  _LOGGER: Incomplete
10
13
 
11
14
  class SolarLogCoordinator(DataUpdateCoordinator[SolarlogData]):
15
+ new_device_callbacks: Incomplete
16
+ _devices_last_update: Incomplete
12
17
  unique_id: Incomplete
13
18
  name: Incomplete
14
19
  host: Incomplete
@@ -16,4 +21,5 @@ class SolarLogCoordinator(DataUpdateCoordinator[SolarlogData]):
16
21
  def __init__(self, hass: HomeAssistant, entry: SolarlogConfigEntry) -> None: ...
17
22
  async def _async_setup(self) -> None: ...
18
23
  async def _async_update_data(self) -> SolarlogData: ...
24
+ def _async_add_remove_devices(self, data: SolarlogData) -> None: ...
19
25
  async def renew_authentication(self) -> bool: ...
@@ -2,7 +2,7 @@ import voluptuous as vol
2
2
  from .const import CONF_UPCOMING_DAYS as CONF_UPCOMING_DAYS, CONF_WANTED_MAX_ITEMS as CONF_WANTED_MAX_ITEMS, DEFAULT_UPCOMING_DAYS as DEFAULT_UPCOMING_DAYS, DEFAULT_VERIFY_SSL as DEFAULT_VERIFY_SSL, DEFAULT_WANTED_MAX_ITEMS as DEFAULT_WANTED_MAX_ITEMS, DOMAIN as DOMAIN
3
3
  from _typeshed import Incomplete
4
4
  from collections.abc import Mapping
5
- from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow
5
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow, SOURCE_REAUTH as SOURCE_REAUTH
6
6
  from homeassistant.const import CONF_API_KEY as CONF_API_KEY, CONF_URL as CONF_URL, CONF_VERIFY_SSL as CONF_VERIFY_SSL
7
7
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
8
8
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
@@ -14,14 +14,11 @@ async def _validate_input(hass: HomeAssistant, data: dict[str, Any]) -> None: ..
14
14
 
15
15
  class SonarrConfigFlow(ConfigFlow, domain=DOMAIN):
16
16
  VERSION: int
17
- entry: Incomplete
18
- def __init__(self) -> None: ...
19
17
  @staticmethod
20
18
  def async_get_options_flow(config_entry: ConfigEntry) -> SonarrOptionsFlowHandler: ...
21
19
  async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> ConfigFlowResult: ...
22
20
  async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
23
21
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
24
- async def _async_reauth_update_entry(self, data: dict[str, Any]) -> ConfigFlowResult: ...
25
22
  def _get_user_data_schema(self) -> dict[vol.Marker, type]: ...
26
23
 
27
24
  class SonarrOptionsFlowHandler(OptionsFlow):
@@ -1,12 +1,13 @@
1
1
  from .coordinator import SpeedTestDataCoordinator as SpeedTestDataCoordinator
2
2
  from _typeshed import Incomplete
3
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
3
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigEntryState as ConfigEntryState
4
4
  from homeassistant.const import Platform as Platform
5
5
  from homeassistant.core import HomeAssistant as HomeAssistant
6
6
  from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady
7
7
  from homeassistant.helpers.start import async_at_started as async_at_started
8
8
 
9
9
  PLATFORMS: Incomplete
10
+ type SpeedTestConfigEntry = ConfigEntry[SpeedTestDataCoordinator]
10
11
 
11
12
  async def async_setup_entry(hass: HomeAssistant, config_entry: SpeedTestConfigEntry) -> bool: ...
12
13
  async def async_unload_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> bool: ...
@@ -0,0 +1,5 @@
1
+ from .browse_media import async_browse_media as async_browse_media
2
+ from .const import DOMAIN as DOMAIN
3
+ from .util import is_spotify_media_type as is_spotify_media_type, resolve_spotify_media_type as resolve_spotify_media_type, spotify_uri_from_media_browser_url as spotify_uri_from_media_browser_url
4
+
5
+ __all__ = ['async_browse_media', 'DOMAIN', 'spotify_uri_from_media_browser_url', 'is_spotify_media_type', 'resolve_spotify_media_type']
@@ -0,0 +1,4 @@
1
+ from homeassistant.components.application_credentials import AuthorizationServer as AuthorizationServer
2
+ from homeassistant.core import HomeAssistant as HomeAssistant
3
+
4
+ async def async_get_authorization_server(hass: HomeAssistant) -> AuthorizationServer: ...
@@ -0,0 +1,49 @@
1
+ from .const import DOMAIN as DOMAIN, MEDIA_PLAYER_PREFIX as MEDIA_PLAYER_PREFIX, MEDIA_TYPE_SHOW as MEDIA_TYPE_SHOW, PLAYABLE_MEDIA_TYPES as PLAYABLE_MEDIA_TYPES
2
+ from .util import fetch_image_url as fetch_image_url
3
+ from _typeshed import Incomplete
4
+ from enum import StrEnum
5
+ from homeassistant.components.media_player import BrowseError as BrowseError, BrowseMedia as BrowseMedia, MediaClass as MediaClass, MediaType as MediaType
6
+ from homeassistant.config_entries import ConfigEntryState as ConfigEntryState
7
+ from homeassistant.core import HomeAssistant as HomeAssistant
8
+ from spotifyaio import Artist as Artist, BasePlaylist as BasePlaylist, SimplifiedAlbum as SimplifiedAlbum, SimplifiedTrack as SimplifiedTrack, SpotifyClient as SpotifyClient
9
+ from typing import Any, TypedDict
10
+
11
+ BROWSE_LIMIT: int
12
+ _LOGGER: Incomplete
13
+
14
+ class ItemPayload(TypedDict):
15
+ name: str
16
+ type: str
17
+ uri: str
18
+ id: str | None
19
+ thumbnail: str | None
20
+
21
+ def _get_artist_item_payload(artist: Artist) -> ItemPayload: ...
22
+ def _get_album_item_payload(album: SimplifiedAlbum) -> ItemPayload: ...
23
+ def _get_playlist_item_payload(playlist: BasePlaylist) -> ItemPayload: ...
24
+ def _get_track_item_payload(track: SimplifiedTrack, show_thumbnails: bool = True) -> ItemPayload: ...
25
+
26
+ class BrowsableMedia(StrEnum):
27
+ CURRENT_USER_PLAYLISTS = 'current_user_playlists'
28
+ CURRENT_USER_FOLLOWED_ARTISTS = 'current_user_followed_artists'
29
+ CURRENT_USER_SAVED_ALBUMS = 'current_user_saved_albums'
30
+ CURRENT_USER_SAVED_TRACKS = 'current_user_saved_tracks'
31
+ CURRENT_USER_SAVED_SHOWS = 'current_user_saved_shows'
32
+ CURRENT_USER_RECENTLY_PLAYED = 'current_user_recently_played'
33
+ CURRENT_USER_TOP_ARTISTS = 'current_user_top_artists'
34
+ CURRENT_USER_TOP_TRACKS = 'current_user_top_tracks'
35
+ CATEGORIES = 'categories'
36
+ FEATURED_PLAYLISTS = 'featured_playlists'
37
+ NEW_RELEASES = 'new_releases'
38
+
39
+ LIBRARY_MAP: Incomplete
40
+ CONTENT_TYPE_MEDIA_CLASS: dict[str, Any]
41
+
42
+ class MissingMediaInformation(BrowseError): ...
43
+ class UnknownMediaType(BrowseError): ...
44
+
45
+ async def async_browse_media(hass: HomeAssistant, media_content_type: str | None, media_content_id: str | None, *, can_play_artist: bool = True) -> BrowseMedia: ...
46
+ async def async_browse_media_internal(hass: HomeAssistant, spotify: SpotifyClient, media_content_type: str | None, media_content_id: str | None, *, can_play_artist: bool = True) -> BrowseMedia: ...
47
+ async def build_item_response(spotify: SpotifyClient, payload: dict[str, str | None], *, can_play_artist: bool) -> BrowseMedia | None: ...
48
+ def item_payload(item: ItemPayload, *, can_play_artist: bool) -> BrowseMedia: ...
49
+ async def library_payload(*, can_play_artist: bool) -> BrowseMedia: ...
@@ -0,0 +1,19 @@
1
+ import logging
2
+ from .const import DOMAIN as DOMAIN, SPOTIFY_SCOPES as SPOTIFY_SCOPES
3
+ from collections.abc import Mapping
4
+ from homeassistant.config_entries import ConfigFlowResult as ConfigFlowResult, SOURCE_REAUTH as SOURCE_REAUTH
5
+ from homeassistant.const import CONF_ACCESS_TOKEN as CONF_ACCESS_TOKEN, CONF_NAME as CONF_NAME, CONF_TOKEN as CONF_TOKEN
6
+ from homeassistant.helpers import config_entry_oauth2_flow as config_entry_oauth2_flow
7
+ from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
8
+ from typing import Any
9
+
10
+ class SpotifyFlowHandler(config_entry_oauth2_flow.AbstractOAuth2FlowHandler, domain=DOMAIN):
11
+ DOMAIN = DOMAIN
12
+ VERSION: int
13
+ @property
14
+ def logger(self) -> logging.Logger: ...
15
+ @property
16
+ def extra_authorize_data(self) -> dict[str, Any]: ...
17
+ async def async_oauth_create_entry(self, data: dict[str, Any]) -> ConfigFlowResult: ...
18
+ async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> ConfigFlowResult: ...
19
+ async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -0,0 +1,9 @@
1
+ from _typeshed import Incomplete
2
+ from homeassistant.components.media_player import MediaType as MediaType
3
+
4
+ DOMAIN: str
5
+ LOGGER: Incomplete
6
+ SPOTIFY_SCOPES: Incomplete
7
+ MEDIA_PLAYER_PREFIX: str
8
+ MEDIA_TYPE_SHOW: str
9
+ PLAYABLE_MEDIA_TYPES: Incomplete
@@ -0,0 +1,34 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from .models import SpotifyData as SpotifyData
3
+ from _typeshed import Incomplete
4
+ from dataclasses import dataclass
5
+ from datetime import datetime
6
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
+ from homeassistant.core import HomeAssistant as HomeAssistant
8
+ from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
9
+ from spotifyaio import PlaybackState as PlaybackState, Playlist as Playlist, SpotifyClient as SpotifyClient, UserProfile as UserProfile
10
+ from spotifyaio.models import AudioFeatures as AudioFeatures
11
+
12
+ _LOGGER: Incomplete
13
+ type SpotifyConfigEntry = ConfigEntry[SpotifyData]
14
+
15
+ @dataclass
16
+ class SpotifyCoordinatorData:
17
+ current_playback: PlaybackState | None
18
+ position_updated_at: datetime | None
19
+ playlist: Playlist | None
20
+ audio_features: AudioFeatures | None
21
+ dj_playlist: bool = ...
22
+ def __init__(self, current_playback, position_updated_at, playlist, audio_features, dj_playlist=...) -> None: ...
23
+
24
+ SPOTIFY_DJ_PLAYLIST_URI: str
25
+
26
+ class SpotifyCoordinator(DataUpdateCoordinator[SpotifyCoordinatorData]):
27
+ current_user: UserProfile
28
+ config_entry: SpotifyConfigEntry
29
+ client: Incomplete
30
+ _playlist: Incomplete
31
+ _currently_loaded_track: Incomplete
32
+ def __init__(self, hass: HomeAssistant, client: SpotifyClient) -> None: ...
33
+ async def _async_setup(self) -> None: ...
34
+ async def _async_update_data(self) -> SpotifyCoordinatorData: ...
@@ -0,0 +1,5 @@
1
+ from .coordinator import SpotifyConfigEntry as SpotifyConfigEntry
2
+ from homeassistant.core import HomeAssistant as HomeAssistant
3
+ from typing import Any
4
+
5
+ async def async_get_config_entry_diagnostics(hass: HomeAssistant, entry: SpotifyConfigEntry) -> dict[str, Any]: ...
@@ -0,0 +1,10 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from .coordinator import SpotifyCoordinator as SpotifyCoordinator
3
+ from _typeshed import Incomplete
4
+ from homeassistant.helpers.device_registry import DeviceEntryType as DeviceEntryType, DeviceInfo as DeviceInfo
5
+ from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
6
+
7
+ class SpotifyEntity(CoordinatorEntity[SpotifyCoordinator]):
8
+ _attr_has_entity_name: bool
9
+ _attr_device_info: Incomplete
10
+ def __init__(self, coordinator: SpotifyCoordinator) -> None: ...
@@ -0,0 +1,82 @@
1
+ import datetime as dt
2
+ from .browse_media import async_browse_media_internal as async_browse_media_internal
3
+ from .const import MEDIA_PLAYER_PREFIX as MEDIA_PLAYER_PREFIX, PLAYABLE_MEDIA_TYPES as PLAYABLE_MEDIA_TYPES
4
+ from .coordinator import SpotifyConfigEntry as SpotifyConfigEntry, SpotifyCoordinator as SpotifyCoordinator
5
+ from .entity import SpotifyEntity as SpotifyEntity
6
+ from _typeshed import Incomplete
7
+ from collections.abc import Awaitable, Callable as Callable, Coroutine
8
+ from homeassistant.components.media_player import ATTR_MEDIA_ENQUEUE as ATTR_MEDIA_ENQUEUE, BrowseMedia as BrowseMedia, MediaPlayerEnqueue as MediaPlayerEnqueue, MediaPlayerEntity as MediaPlayerEntity, MediaPlayerEntityFeature as MediaPlayerEntityFeature, MediaPlayerState as MediaPlayerState, MediaType as MediaType, RepeatMode as RepeatMode
9
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
10
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
11
+ from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator
12
+ from spotifyaio import Device as Device, Item as Item, PlaybackState as PlaybackState
13
+ from typing import Any, Concatenate
14
+
15
+ _LOGGER: Incomplete
16
+ SUPPORT_SPOTIFY: Incomplete
17
+ REPEAT_MODE_MAPPING_TO_HA: Incomplete
18
+ REPEAT_MODE_MAPPING_TO_SPOTIFY: Incomplete
19
+ AFTER_REQUEST_SLEEP: int
20
+
21
+ async def async_setup_entry(hass: HomeAssistant, entry: SpotifyConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
22
+ def ensure_item[_R](func: Callable[[SpotifyMediaPlayer, Item], _R]) -> Callable[[SpotifyMediaPlayer], _R | None]: ...
23
+ def async_refresh_after[_T: SpotifyEntity, **_P](func: Callable[Concatenate[_T, _P], Awaitable[None]]) -> Callable[Concatenate[_T, _P], Coroutine[Any, Any, None]]: ...
24
+
25
+ class SpotifyMediaPlayer(SpotifyEntity, MediaPlayerEntity):
26
+ _attr_media_image_remotely_accessible: bool
27
+ _attr_name: Incomplete
28
+ _attr_translation_key: str
29
+ devices: Incomplete
30
+ _attr_unique_id: Incomplete
31
+ def __init__(self, coordinator: SpotifyCoordinator, device_coordinator: DataUpdateCoordinator[list[Device]]) -> None: ...
32
+ @property
33
+ def currently_playing(self) -> PlaybackState | None: ...
34
+ @property
35
+ def supported_features(self) -> MediaPlayerEntityFeature: ...
36
+ @property
37
+ def state(self) -> MediaPlayerState: ...
38
+ @property
39
+ def volume_level(self) -> float | None: ...
40
+ @property
41
+ def media_content_id(self, item: Item) -> str: ...
42
+ @property
43
+ def media_content_type(self, item: Item) -> str: ...
44
+ @property
45
+ def media_duration(self, item: Item) -> int: ...
46
+ @property
47
+ def media_position(self) -> int | None: ...
48
+ @property
49
+ def media_position_updated_at(self) -> dt.datetime | None: ...
50
+ @property
51
+ def media_image_url(self, item: Item) -> str | None: ...
52
+ @property
53
+ def media_title(self, item: Item) -> str: ...
54
+ @property
55
+ def media_artist(self, item: Item) -> str: ...
56
+ @property
57
+ def media_album_name(self, item: Item) -> str: ...
58
+ @property
59
+ def media_track(self, item: Item) -> int | None: ...
60
+ @property
61
+ def media_playlist(self) -> str | None: ...
62
+ @property
63
+ def source(self) -> str | None: ...
64
+ @property
65
+ def source_list(self) -> list[str] | None: ...
66
+ @property
67
+ def shuffle(self) -> bool | None: ...
68
+ @property
69
+ def repeat(self) -> RepeatMode | None: ...
70
+ async def async_set_volume_level(self, volume: float) -> None: ...
71
+ async def async_media_play(self) -> None: ...
72
+ async def async_media_pause(self) -> None: ...
73
+ async def async_media_previous_track(self) -> None: ...
74
+ async def async_media_next_track(self) -> None: ...
75
+ async def async_media_seek(self, position: float) -> None: ...
76
+ async def async_play_media(self, media_type: MediaType | str, media_id: str, **kwargs: Any) -> None: ...
77
+ async def async_select_source(self, source: str) -> None: ...
78
+ async def async_set_shuffle(self, shuffle: bool) -> None: ...
79
+ async def async_set_repeat(self, repeat: RepeatMode) -> None: ...
80
+ async def async_browse_media(self, media_content_type: MediaType | str | None = None, media_content_id: str | None = None) -> BrowseMedia: ...
81
+ def _handle_devices_update(self) -> None: ...
82
+ async def async_added_to_hass(self) -> None: ...
@@ -0,0 +1,12 @@
1
+ from .coordinator import SpotifyCoordinator as SpotifyCoordinator
2
+ from dataclasses import dataclass
3
+ from homeassistant.helpers.config_entry_oauth2_flow import OAuth2Session as OAuth2Session
4
+ from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator
5
+ from spotifyaio import Device as Device
6
+
7
+ @dataclass
8
+ class SpotifyData:
9
+ coordinator: SpotifyCoordinator
10
+ session: OAuth2Session
11
+ devices: DataUpdateCoordinator[list[Device]]
12
+ def __init__(self, coordinator, session, devices) -> None: ...
@@ -0,0 +1,31 @@
1
+ from .coordinator import SpotifyConfigEntry as SpotifyConfigEntry, SpotifyCoordinator as SpotifyCoordinator
2
+ from .entity import SpotifyEntity as SpotifyEntity
3
+ from _typeshed import Incomplete
4
+ from collections.abc import Callable as Callable
5
+ from dataclasses import dataclass
6
+ from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription
7
+ from homeassistant.const import PERCENTAGE as PERCENTAGE
8
+ from homeassistant.core import HomeAssistant as HomeAssistant
9
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
10
+ from spotifyaio.models import AudioFeatures as AudioFeatures, Key
11
+
12
+ @dataclass(frozen=True, kw_only=True)
13
+ class SpotifyAudioFeaturesSensorEntityDescription(SensorEntityDescription):
14
+ value_fn: Callable[[AudioFeatures], float | str | None]
15
+ def __init__(self, *, key, device_class=..., entity_category=..., entity_registry_enabled_default=..., entity_registry_visible_default=..., force_update=..., icon=..., has_entity_name=..., name=..., translation_key=..., translation_placeholders=..., unit_of_measurement=..., last_reset=..., native_unit_of_measurement=..., options=..., state_class=..., suggested_display_precision=..., suggested_unit_of_measurement=..., value_fn) -> None: ...
16
+
17
+ KEYS: dict[Key, str]
18
+ KEY_OPTIONS: Incomplete
19
+
20
+ def _get_key(audio_features: AudioFeatures) -> str | None: ...
21
+
22
+ AUDIO_FEATURE_SENSORS: tuple[SpotifyAudioFeaturesSensorEntityDescription, ...]
23
+
24
+ async def async_setup_entry(hass: HomeAssistant, entry: SpotifyConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
25
+
26
+ class SpotifyAudioFeatureSensor(SpotifyEntity, SensorEntity):
27
+ entity_description: SpotifyAudioFeaturesSensorEntityDescription
28
+ _attr_unique_id: Incomplete
29
+ def __init__(self, coordinator: SpotifyCoordinator, entity_description: SpotifyAudioFeaturesSensorEntityDescription) -> None: ...
30
+ @property
31
+ def native_value(self) -> float | str | None: ...
@@ -0,0 +1,6 @@
1
+ from homeassistant.components import system_health as system_health
2
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
3
+ from typing import Any
4
+
5
+ def async_register(hass: HomeAssistant, register: system_health.SystemHealthRegistration) -> None: ...
6
+ async def system_health_info(hass: HomeAssistant) -> dict[str, Any]: ...
@@ -0,0 +1,7 @@
1
+ from .const import MEDIA_PLAYER_PREFIX as MEDIA_PLAYER_PREFIX
2
+ from spotifyaio import Image as Image
3
+
4
+ def is_spotify_media_type(media_content_type: str) -> bool: ...
5
+ def resolve_spotify_media_type(media_content_type: str) -> str: ...
6
+ def fetch_image_url(images: list[Image]) -> str | None: ...
7
+ def spotify_uri_from_media_browser_url(media_content_id: str) -> str: ...
@@ -1,5 +1,5 @@
1
- from .const import CONF_HTTPS as CONF_HTTPS, DISCOVERY_TASK as DISCOVERY_TASK, DOMAIN as DOMAIN, MANUFACTURER as MANUFACTURER, SERVER_MODEL as SERVER_MODEL, STATUS_API_TIMEOUT as STATUS_API_TIMEOUT, STATUS_QUERY_LIBRARYNAME as STATUS_QUERY_LIBRARYNAME, STATUS_QUERY_MAC as STATUS_QUERY_MAC, STATUS_QUERY_UUID as STATUS_QUERY_UUID, STATUS_QUERY_VERSION as STATUS_QUERY_VERSION
2
- from .coordinator import LMSStatusDataUpdateCoordinator as LMSStatusDataUpdateCoordinator
1
+ from .const import CONF_HTTPS as CONF_HTTPS, DISCOVERY_INTERVAL as DISCOVERY_INTERVAL, DISCOVERY_TASK as DISCOVERY_TASK, DOMAIN as DOMAIN, KNOWN_PLAYERS as KNOWN_PLAYERS, KNOWN_SERVERS as KNOWN_SERVERS, MANUFACTURER as MANUFACTURER, SERVER_MODEL as SERVER_MODEL, SIGNAL_PLAYER_DISCOVERED as SIGNAL_PLAYER_DISCOVERED, SIGNAL_PLAYER_REDISCOVERED as SIGNAL_PLAYER_REDISCOVERED, STATUS_API_TIMEOUT as STATUS_API_TIMEOUT, STATUS_QUERY_LIBRARYNAME as STATUS_QUERY_LIBRARYNAME, STATUS_QUERY_MAC as STATUS_QUERY_MAC, STATUS_QUERY_UUID as STATUS_QUERY_UUID, STATUS_QUERY_VERSION as STATUS_QUERY_VERSION
2
+ from .coordinator import LMSStatusDataUpdateCoordinator as LMSStatusDataUpdateCoordinator, SqueezeBoxPlayerUpdateCoordinator as SqueezeBoxPlayerUpdateCoordinator
3
3
  from _typeshed import Incomplete
4
4
  from dataclasses import dataclass
5
5
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
@@ -8,7 +8,9 @@ from homeassistant.core import HomeAssistant as HomeAssistant
8
8
  from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady
9
9
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
10
10
  from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC as CONNECTION_NETWORK_MAC, DeviceEntryType as DeviceEntryType, format_mac as format_mac
11
- from pysqueezebox import Server
11
+ from homeassistant.helpers.dispatcher import async_dispatcher_send as async_dispatcher_send
12
+ from homeassistant.helpers.event import async_call_later as async_call_later
13
+ from pysqueezebox import Player as Player, Server
12
14
 
13
15
  _LOGGER: Incomplete
14
16
  PLATFORMS: Incomplete
@@ -18,6 +20,7 @@ class SqueezeboxData:
18
20
  coordinator: LMSStatusDataUpdateCoordinator
19
21
  server: Server
20
22
  def __init__(self, coordinator, server) -> None: ...
23
+ type SqueezeboxConfigEntry = ConfigEntry[SqueezeboxData]
21
24
 
22
25
  async def async_setup_entry(hass: HomeAssistant, entry: SqueezeboxConfigEntry) -> bool: ...
23
26
  async def async_unload_entry(hass: HomeAssistant, entry: SqueezeboxConfigEntry) -> bool: ...
@@ -5,6 +5,7 @@ DISCOVERY_TASK: str
5
5
  DOMAIN: str
6
6
  DEFAULT_PORT: int
7
7
  KNOWN_PLAYERS: str
8
+ KNOWN_SERVERS: str
8
9
  MANUFACTURER: str
9
10
  PLAYER_DISCOVERY_UNSUB: str
10
11
  SENSOR_UPDATE_INTERVAL: int
@@ -27,3 +28,7 @@ STATUS_QUERY_MAC: str
27
28
  STATUS_QUERY_UUID: str
28
29
  STATUS_QUERY_VERSION: str
29
30
  SQUEEZEBOX_SOURCE_STRINGS: Incomplete
31
+ SIGNAL_PLAYER_DISCOVERED: str
32
+ SIGNAL_PLAYER_REDISCOVERED: str
33
+ DISCOVERY_INTERVAL: int
34
+ PLAYER_UPDATE_INTERVAL: int
@@ -1,8 +1,11 @@
1
- from .const import SENSOR_UPDATE_INTERVAL as SENSOR_UPDATE_INTERVAL, STATUS_API_TIMEOUT as STATUS_API_TIMEOUT, STATUS_SENSOR_LASTSCAN as STATUS_SENSOR_LASTSCAN, STATUS_SENSOR_NEEDSRESTART as STATUS_SENSOR_NEEDSRESTART, STATUS_SENSOR_RESCAN as STATUS_SENSOR_RESCAN
1
+ from .const import PLAYER_UPDATE_INTERVAL as PLAYER_UPDATE_INTERVAL, SENSOR_UPDATE_INTERVAL as SENSOR_UPDATE_INTERVAL, SIGNAL_PLAYER_REDISCOVERED as SIGNAL_PLAYER_REDISCOVERED, STATUS_API_TIMEOUT as STATUS_API_TIMEOUT, STATUS_SENSOR_LASTSCAN as STATUS_SENSOR_LASTSCAN, STATUS_SENSOR_NEEDSRESTART as STATUS_SENSOR_NEEDSRESTART, STATUS_SENSOR_RESCAN as STATUS_SENSOR_RESCAN
2
2
  from _typeshed import Incomplete
3
- from homeassistant.core import HomeAssistant as HomeAssistant
3
+ from collections.abc import Callable as Callable
4
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
5
+ from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
4
6
  from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
5
- from pysqueezebox import Server as Server
7
+ from pysqueezebox import Player as Player, Server as Server
8
+ from typing import Any
6
9
 
7
10
  _LOGGER: Incomplete
8
11
 
@@ -12,3 +15,12 @@ class LMSStatusDataUpdateCoordinator(DataUpdateCoordinator):
12
15
  def __init__(self, hass: HomeAssistant, lms: Server) -> None: ...
13
16
  async def _async_update_data(self) -> dict: ...
14
17
  def _prepare_status_data(self, data: dict) -> dict: ...
18
+
19
+ class SqueezeBoxPlayerUpdateCoordinator(DataUpdateCoordinator[dict[str, Any]]):
20
+ player: Incomplete
21
+ available: bool
22
+ _remove_dispatcher: Incomplete
23
+ server_uuid: Incomplete
24
+ def __init__(self, hass: HomeAssistant, player: Player, server_uuid: str) -> None: ...
25
+ async def _async_update_data(self) -> dict[str, Any]: ...
26
+ def rediscovered(self, unique_id: str, connected: bool) -> None: ...
@@ -1,32 +1,30 @@
1
1
  from . import SqueezeboxConfigEntry as SqueezeboxConfigEntry
2
2
  from .browse_media import build_item_response as build_item_response, generate_playlist as generate_playlist, library_payload as library_payload, media_source_content_filter as media_source_content_filter
3
- from .const import DISCOVERY_TASK as DISCOVERY_TASK, DOMAIN as DOMAIN, KNOWN_PLAYERS as KNOWN_PLAYERS, SQUEEZEBOX_SOURCE_STRINGS as SQUEEZEBOX_SOURCE_STRINGS
3
+ from .const import DISCOVERY_TASK as DISCOVERY_TASK, DOMAIN as DOMAIN, KNOWN_PLAYERS as KNOWN_PLAYERS, KNOWN_SERVERS as KNOWN_SERVERS, SIGNAL_PLAYER_DISCOVERED as SIGNAL_PLAYER_DISCOVERED, SQUEEZEBOX_SOURCE_STRINGS as SQUEEZEBOX_SOURCE_STRINGS
4
+ from .coordinator import SqueezeBoxPlayerUpdateCoordinator as SqueezeBoxPlayerUpdateCoordinator
4
5
  from _typeshed import Incomplete
5
6
  from collections.abc import Callable as Callable
6
7
  from datetime import datetime
7
8
  from homeassistant.components import media_source as media_source
8
9
  from homeassistant.components.media_player import ATTR_MEDIA_ENQUEUE as ATTR_MEDIA_ENQUEUE, BrowseError as BrowseError, 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
9
10
  from homeassistant.config_entries import SOURCE_INTEGRATION_DISCOVERY as SOURCE_INTEGRATION_DISCOVERY
10
- from homeassistant.const import ATTR_COMMAND as ATTR_COMMAND, CONF_HOST as CONF_HOST, CONF_PORT as CONF_PORT
11
+ from homeassistant.const import ATTR_COMMAND as ATTR_COMMAND, CONF_HOST as CONF_HOST, CONF_PORT as CONF_PORT, Platform as Platform
11
12
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
12
13
  from homeassistant.exceptions import ServiceValidationError as ServiceValidationError
13
14
  from homeassistant.helpers import discovery_flow as discovery_flow, entity_platform as entity_platform
14
15
  from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC as CONNECTION_NETWORK_MAC, DeviceInfo as DeviceInfo, format_mac as format_mac
15
- from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect, async_dispatcher_send as async_dispatcher_send
16
+ from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
16
17
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
17
- from homeassistant.helpers.event import async_call_later as async_call_later
18
18
  from homeassistant.helpers.start import async_at_start as async_at_start
19
+ from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
19
20
  from homeassistant.util.dt import utcnow as utcnow
20
- from pysqueezebox import Player as Player, Server as Server
21
+ from pysqueezebox import Server as Server
21
22
  from typing import Any
22
23
 
23
24
  SERVICE_CALL_METHOD: str
24
25
  SERVICE_CALL_QUERY: str
25
26
  ATTR_QUERY_RESULT: str
26
- SIGNAL_PLAYER_REDISCOVERED: str
27
27
  _LOGGER: Incomplete
28
- DISCOVERY_INTERVAL: int
29
- KNOWN_SERVERS: str
30
28
  ATTR_PARAMETERS: str
31
29
  ATTR_OTHER_PLAYER: str
32
30
  ATTR_TO_PROPERTY: Incomplete
@@ -35,24 +33,25 @@ SQUEEZEBOX_MODE: Incomplete
35
33
  async def start_server_discovery(hass: HomeAssistant) -> None: ...
36
34
  async def async_setup_entry(hass: HomeAssistant, entry: SqueezeboxConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
37
35
 
38
- class SqueezeBoxEntity(MediaPlayerEntity):
36
+ class SqueezeBoxMediaPlayerEntity(CoordinatorEntity[SqueezeBoxPlayerUpdateCoordinator], MediaPlayerEntity):
39
37
  _attr_supported_features: Incomplete
40
38
  _attr_has_entity_name: bool
41
39
  _attr_name: Incomplete
42
40
  _last_update: datetime | None
43
- _attr_available: bool
44
41
  _player: Incomplete
45
42
  _query_result: Incomplete
46
43
  _remove_dispatcher: Incomplete
44
+ _previous_media_position: int
47
45
  _attr_unique_id: Incomplete
48
46
  _attr_device_info: Incomplete
49
- def __init__(self, player: Player, server: Server) -> None: ...
47
+ def __init__(self, coordinator: SqueezeBoxPlayerUpdateCoordinator) -> None: ...
48
+ def _handle_coordinator_update(self) -> None: ...
49
+ @property
50
+ def available(self) -> bool: ...
50
51
  @property
51
52
  def extra_state_attributes(self) -> dict[str, Any]: ...
52
- def rediscovered(self, unique_id: str, connected: bool) -> None: ...
53
53
  @property
54
54
  def state(self) -> MediaPlayerState | None: ...
55
- async def async_update(self) -> None: ...
56
55
  async def async_will_remove_from_hass(self) -> None: ...
57
56
  @property
58
57
  def volume_level(self) -> float | None: ...