homeassistant-stubs 2024.10.4__py3-none-any.whl → 2024.11.0b0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (854) 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 -1
  113. homeassistant-stubs/components/bang_olufsen/media_player.pyi +13 -5
  114. homeassistant-stubs/components/binary_sensor/__init__.pyi +0 -3
  115. homeassistant-stubs/components/blue_current/__init__.pyi +4 -3
  116. homeassistant-stubs/components/blue_current/config_flow.pyi +1 -2
  117. homeassistant-stubs/components/blue_current/sensor.pyi +2 -3
  118. homeassistant-stubs/components/blueprint/__init__.pyi +2 -2
  119. homeassistant-stubs/components/bluesound/__init__.pyi +2 -1
  120. homeassistant-stubs/components/bluesound/const.pyi +0 -4
  121. homeassistant-stubs/components/bluesound/media_player.pyi +6 -14
  122. homeassistant-stubs/components/bluesound/services.pyi +21 -0
  123. homeassistant-stubs/components/bluetooth/active_update_coordinator.pyi +1 -1
  124. homeassistant-stubs/components/bluetooth/active_update_processor.pyi +1 -1
  125. homeassistant-stubs/components/bluetooth/match.pyi +1 -1
  126. homeassistant-stubs/components/bluetooth/models.pyi +4 -0
  127. homeassistant-stubs/components/bluetooth/passive_update_processor.pyi +4 -4
  128. homeassistant-stubs/components/bmw_connected_drive/__init__.pyi +1 -0
  129. homeassistant-stubs/components/bmw_connected_drive/config_flow.pyi +3 -2
  130. homeassistant-stubs/components/bond/__init__.pyi +1 -0
  131. homeassistant-stubs/components/braviatv/config_flow.pyi +1 -2
  132. homeassistant-stubs/components/braviatv/coordinator.pyi +1 -1
  133. homeassistant-stubs/components/brother/__init__.pyi +1 -0
  134. homeassistant-stubs/components/brother/config_flow.pyi +2 -4
  135. homeassistant-stubs/components/bryant_evolution/__init__.pyi +2 -0
  136. homeassistant-stubs/components/bryant_evolution/config_flow.pyi +1 -4
  137. homeassistant-stubs/components/bthome/config_flow.pyi +1 -1
  138. homeassistant-stubs/components/bthome/coordinator.pyi +1 -1
  139. homeassistant-stubs/components/bthome/types.pyi +2 -0
  140. homeassistant-stubs/components/button/__init__.pyi +0 -3
  141. homeassistant-stubs/components/calendar/trigger.pyi +3 -1
  142. homeassistant-stubs/components/cambridge_audio/__init__.pyi +14 -0
  143. homeassistant-stubs/components/cambridge_audio/config_flow.pyi +14 -0
  144. homeassistant-stubs/components/cambridge_audio/const.pyi +9 -0
  145. homeassistant-stubs/components/cambridge_audio/diagnostics.pyi +5 -0
  146. homeassistant-stubs/components/cambridge_audio/entity.pyi +21 -0
  147. homeassistant-stubs/components/cambridge_audio/media_player.pyi +71 -0
  148. homeassistant-stubs/components/cambridge_audio/select.pyi +34 -0
  149. homeassistant-stubs/components/cambridge_audio/switch.pyi +30 -0
  150. homeassistant-stubs/components/camera/__init__.pyi +35 -22
  151. homeassistant-stubs/components/camera/const.pyi +1 -2
  152. homeassistant-stubs/components/camera/diagnostics.pyi +1 -1
  153. homeassistant-stubs/components/camera/helper.pyi +6 -0
  154. homeassistant-stubs/components/camera/webrtc.pyi +95 -0
  155. homeassistant-stubs/components/canary/alarm_control_panel.pyi +2 -3
  156. homeassistant-stubs/components/canary/sensor.pyi +1 -0
  157. homeassistant-stubs/components/cert_expiry/__init__.pyi +1 -0
  158. homeassistant-stubs/components/climate/__init__.pyi +0 -24
  159. homeassistant-stubs/components/cloud/client.pyi +5 -1
  160. homeassistant-stubs/components/cloud/const.pyi +1 -0
  161. homeassistant-stubs/components/cloud/http_api.pyi +2 -2
  162. homeassistant-stubs/components/cloud/prefs.pyi +4 -2
  163. homeassistant-stubs/components/co2signal/__init__.pyi +1 -0
  164. homeassistant-stubs/components/co2signal/config_flow.pyi +1 -2
  165. homeassistant-stubs/components/config/automation.pyi +1 -1
  166. homeassistant-stubs/components/config/script.pyi +1 -1
  167. homeassistant-stubs/components/config/view.pyi +2 -2
  168. homeassistant-stubs/components/configurator/__init__.pyi +2 -0
  169. homeassistant-stubs/components/counter/__init__.pyi +1 -1
  170. homeassistant-stubs/components/cover/__init__.pyi +12 -8
  171. homeassistant-stubs/components/cover/device_condition.pyi +2 -2
  172. homeassistant-stubs/components/cover/device_trigger.pyi +2 -2
  173. homeassistant-stubs/components/cover/reproduce_state.pyi +2 -2
  174. homeassistant-stubs/components/date/__init__.pyi +0 -4
  175. homeassistant-stubs/components/datetime/__init__.pyi +0 -4
  176. homeassistant-stubs/components/deako/__init__.pyi +2 -0
  177. homeassistant-stubs/components/deconz/alarm_control_panel.pyi +2 -3
  178. homeassistant-stubs/components/deconz/binary_sensor.pyi +10 -1
  179. homeassistant-stubs/components/deconz/config_flow.pyi +1 -1
  180. homeassistant-stubs/components/deconz/device_trigger.pyi +4 -0
  181. homeassistant-stubs/components/deconz/entity.pyi +6 -2
  182. homeassistant-stubs/components/deconz/light.pyi +1 -1
  183. homeassistant-stubs/components/deconz/number.pyi +3 -1
  184. homeassistant-stubs/components/demo/alarm_control_panel.pyi +2 -1
  185. homeassistant-stubs/components/demo/update.pyi +5 -2
  186. homeassistant-stubs/components/derivative/sensor.pyi +1 -4
  187. homeassistant-stubs/components/device_automation/__init__.pyi +2 -0
  188. homeassistant-stubs/components/device_tracker/config_entry.pyi +0 -10
  189. homeassistant-stubs/components/device_tracker/legacy.pyi +0 -2
  190. homeassistant-stubs/components/devolo_home_control/__init__.pyi +2 -0
  191. homeassistant-stubs/components/devolo_home_control/config_flow.pyi +2 -2
  192. homeassistant-stubs/components/devolo_home_network/__init__.pyi +4 -2
  193. homeassistant-stubs/components/devolo_home_network/binary_sensor.pyi +2 -2
  194. homeassistant-stubs/components/devolo_home_network/config_flow.pyi +4 -1
  195. homeassistant-stubs/components/devolo_home_network/coordinator.pyi +13 -0
  196. homeassistant-stubs/components/devolo_home_network/device_tracker.pyi +4 -3
  197. homeassistant-stubs/components/devolo_home_network/entity.pyi +7 -3
  198. homeassistant-stubs/components/devolo_home_network/image.pyi +2 -2
  199. homeassistant-stubs/components/devolo_home_network/sensor.pyi +9 -10
  200. homeassistant-stubs/components/devolo_home_network/switch.pyi +6 -6
  201. homeassistant-stubs/components/devolo_home_network/update.pyi +3 -3
  202. homeassistant-stubs/components/diagnostics/util.pyi +1 -1
  203. homeassistant-stubs/components/discovergy/__init__.pyi +1 -0
  204. homeassistant-stubs/components/discovergy/config_flow.pyi +2 -2
  205. homeassistant-stubs/components/dlna_dmr/config_flow.pyi +1 -0
  206. homeassistant-stubs/components/dlna_dmr/media_player.pyi +1 -1
  207. homeassistant-stubs/components/dlna_dms/dms.pyi +1 -3
  208. homeassistant-stubs/components/doorbird/config_flow.pyi +1 -1
  209. homeassistant-stubs/components/doorbird/device.pyi +0 -6
  210. homeassistant-stubs/components/doorbird/models.pyi +1 -0
  211. homeassistant-stubs/components/dormakaba_dkey/config_flow.pyi +1 -2
  212. homeassistant-stubs/components/dsmr/__init__.pyi +1 -0
  213. homeassistant-stubs/components/duotecno/entity.pyi +1 -1
  214. homeassistant-stubs/components/ecovacs/__init__.pyi +1 -0
  215. homeassistant-stubs/components/ecowitt/__init__.pyi +2 -0
  216. homeassistant-stubs/components/efergy/__init__.pyi +2 -0
  217. homeassistant-stubs/components/electric_kiwi/config_flow.pyi +1 -4
  218. homeassistant-stubs/components/elevenlabs/__init__.pyi +1 -0
  219. homeassistant-stubs/components/elgato/__init__.pyi +1 -0
  220. homeassistant-stubs/components/elkm1/__init__.pyi +1 -0
  221. homeassistant-stubs/components/elkm1/alarm_control_panel.pyi +2 -3
  222. homeassistant-stubs/components/elkm1/config_flow.pyi +3 -1
  223. homeassistant-stubs/components/energy/data.pyi +1 -0
  224. homeassistant-stubs/components/energy/types.pyi +2 -0
  225. homeassistant-stubs/components/energy/websocket_api.pyi +3 -0
  226. homeassistant-stubs/components/enigma2/__init__.pyi +1 -0
  227. homeassistant-stubs/components/enigma2/config_flow.pyi +0 -2
  228. homeassistant-stubs/components/enigma2/media_player.pyi +1 -6
  229. homeassistant-stubs/components/enphase_envoy/__init__.pyi +3 -1
  230. homeassistant-stubs/components/enphase_envoy/config_flow.pyi +4 -6
  231. homeassistant-stubs/components/enphase_envoy/const.pyi +2 -0
  232. homeassistant-stubs/components/enphase_envoy/coordinator.pyi +1 -0
  233. homeassistant-stubs/components/esphome/alarm_control_panel.pyi +5 -6
  234. homeassistant-stubs/components/esphome/assist_satellite.pyi +1 -1
  235. homeassistant-stubs/components/esphome/config_flow.pyi +6 -5
  236. homeassistant-stubs/components/esphome/entity.pyi +3 -3
  237. homeassistant-stubs/components/esphome/entry_data.pyi +1 -0
  238. homeassistant-stubs/components/esphome/enum_mapper.pyi +1 -1
  239. homeassistant-stubs/components/esphome/ffmpeg_proxy.pyi +7 -3
  240. homeassistant-stubs/components/esphome/update.pyi +3 -1
  241. homeassistant-stubs/components/event/__init__.pyi +0 -3
  242. homeassistant-stubs/components/evil_genius_labs/util.pyi +1 -1
  243. homeassistant-stubs/components/evohome/climate.pyi +2 -3
  244. homeassistant-stubs/components/evohome/entity.pyi +1 -1
  245. homeassistant-stubs/components/fan/__init__.pyi +0 -8
  246. homeassistant-stubs/components/fastdotcom/__init__.pyi +1 -1
  247. homeassistant-stubs/components/feedreader/__init__.pyi +1 -0
  248. homeassistant-stubs/components/feedreader/config_flow.pyi +1 -3
  249. homeassistant-stubs/components/feedreader/event.pyi +1 -0
  250. homeassistant-stubs/components/filesize/__init__.pyi +1 -0
  251. homeassistant-stubs/components/fitbit/api.pyi +1 -1
  252. homeassistant-stubs/components/fitbit/config_flow.pyi +1 -2
  253. homeassistant-stubs/components/flexit_bacnet/sensor.pyi +2 -1
  254. homeassistant-stubs/components/flux_led/config_flow.pyi +3 -1
  255. homeassistant-stubs/components/forecast_solar/__init__.pyi +1 -0
  256. homeassistant-stubs/components/fritz/config_flow.pyi +5 -5
  257. homeassistant-stubs/components/fritz/update.pyi +1 -1
  258. homeassistant-stubs/components/fritzbox/climate.pyi +1 -0
  259. homeassistant-stubs/components/fritzbox/config_flow.pyi +5 -6
  260. homeassistant-stubs/components/fritzbox/coordinator.pyi +1 -0
  261. homeassistant-stubs/components/fritzbox_callmonitor/__init__.pyi +2 -1
  262. homeassistant-stubs/components/fritzbox_callmonitor/config_flow.pyi +5 -0
  263. homeassistant-stubs/components/fronius/__init__.pyi +2 -1
  264. homeassistant-stubs/components/fronius/config_flow.pyi +1 -2
  265. homeassistant-stubs/components/fronius/const.pyi +1 -0
  266. homeassistant-stubs/components/fronius/coordinator.pyi +1 -1
  267. homeassistant-stubs/components/frontend/__init__.pyi +0 -3
  268. homeassistant-stubs/components/fujitsu_fglair/__init__.pyi +1 -0
  269. homeassistant-stubs/components/fujitsu_fglair/config_flow.pyi +1 -2
  270. homeassistant-stubs/components/fully_kiosk/config_flow.pyi +1 -0
  271. homeassistant-stubs/components/fyta/__init__.pyi +1 -0
  272. homeassistant-stubs/components/fyta/config_flow.pyi +0 -2
  273. homeassistant-stubs/components/fyta/coordinator.pyi +6 -1
  274. homeassistant-stubs/components/geo_location/__init__.pyi +0 -5
  275. homeassistant-stubs/components/gios/__init__.pyi +1 -0
  276. homeassistant-stubs/components/glances/__init__.pyi +1 -0
  277. homeassistant-stubs/components/glances/config_flow.pyi +1 -2
  278. homeassistant-stubs/components/go2rtc/__init__.pyi +40 -0
  279. homeassistant-stubs/components/go2rtc/config_flow.pyi +7 -0
  280. homeassistant-stubs/components/go2rtc/const.pyi +2 -0
  281. homeassistant-stubs/components/go2rtc/server.pyi +22 -0
  282. homeassistant-stubs/components/goalzero/config_flow.pyi +1 -2
  283. homeassistant-stubs/components/goalzero/coordinator.pyi +1 -0
  284. homeassistant-stubs/components/google/__init__.pyi +1 -1
  285. homeassistant-stubs/components/google/api.pyi +2 -2
  286. homeassistant-stubs/components/google/calendar.pyi +6 -5
  287. homeassistant-stubs/components/google/config_flow.pyi +2 -3
  288. homeassistant-stubs/components/google_assistant_sdk/config_flow.pyi +1 -2
  289. homeassistant-stubs/components/google_photos/config_flow.pyi +2 -3
  290. homeassistant-stubs/components/google_photos/types.pyi +2 -0
  291. homeassistant-stubs/components/google_sheets/__init__.pyi +1 -0
  292. homeassistant-stubs/components/google_sheets/config_flow.pyi +1 -3
  293. homeassistant-stubs/components/govee_ble/__init__.pyi +11 -0
  294. homeassistant-stubs/components/govee_ble/binary_sensor.pyi +22 -0
  295. homeassistant-stubs/components/govee_ble/config_flow.pyi +16 -0
  296. homeassistant-stubs/components/govee_ble/const.pyi +2 -0
  297. homeassistant-stubs/components/govee_ble/coordinator.pyi +24 -0
  298. homeassistant-stubs/components/govee_ble/device.pyi +4 -0
  299. homeassistant-stubs/components/govee_ble/event.pyi +27 -0
  300. homeassistant-stubs/components/govee_ble/sensor.pyi +25 -0
  301. homeassistant-stubs/components/gpsd/__init__.pyi +2 -0
  302. homeassistant-stubs/components/greeneye_monitor/sensor.pyi +1 -0
  303. homeassistant-stubs/components/group/cover.pyi +2 -2
  304. homeassistant-stubs/components/group/registry.pyi +2 -1
  305. homeassistant-stubs/components/group/sensor.pyi +10 -11
  306. homeassistant-stubs/components/guardian/config_flow.pyi +0 -1
  307. homeassistant-stubs/components/guardian/util.pyi +1 -1
  308. homeassistant-stubs/components/hardkernel/__init__.pyi +2 -1
  309. homeassistant-stubs/components/here_travel_time/config_flow.pyi +4 -5
  310. homeassistant-stubs/components/history_stats/__init__.pyi +1 -0
  311. homeassistant-stubs/components/history_stats/coordinator.pyi +2 -1
  312. homeassistant-stubs/components/history_stats/sensor.pyi +2 -1
  313. homeassistant-stubs/components/holiday/config_flow.pyi +1 -3
  314. homeassistant-stubs/components/homeassistant/__init__.pyi +1 -0
  315. homeassistant-stubs/components/homeassistant/triggers/numeric_state.pyi +2 -1
  316. homeassistant-stubs/components/homeassistant/triggers/time.pyi +7 -1
  317. homeassistant-stubs/components/homeassistant_alerts/coordinator.pyi +2 -1
  318. homeassistant-stubs/components/homeassistant_green/__init__.pyi +2 -1
  319. homeassistant-stubs/components/homeassistant_green/config_flow.pyi +2 -1
  320. homeassistant-stubs/components/homeassistant_hardware/firmware_config_flow.pyi +2 -1
  321. homeassistant-stubs/components/homeassistant_hardware/silabs_multiprotocol_addon.pyi +2 -1
  322. homeassistant-stubs/components/homeassistant_hardware/util.pyi +2 -1
  323. homeassistant-stubs/components/homeassistant_sky_connect/config_flow.pyi +3 -3
  324. homeassistant-stubs/components/homeassistant_yellow/__init__.pyi +2 -1
  325. homeassistant-stubs/components/homekit/__init__.pyi +0 -1
  326. homeassistant-stubs/components/homekit/models.pyi +1 -0
  327. homeassistant-stubs/components/homekit/type_covers.pyi +2 -2
  328. homeassistant-stubs/components/homekit/type_security_systems.pyi +2 -2
  329. homeassistant-stubs/components/homekit_controller/alarm_control_panel.pyi +4 -4
  330. homeassistant-stubs/components/homekit_controller/config_flow.pyi +4 -1
  331. homeassistant-stubs/components/homekit_controller/utils.pyi +1 -0
  332. homeassistant-stubs/components/homewizard/__init__.pyi +1 -0
  333. homeassistant-stubs/components/homewizard/config_flow.pyi +1 -2
  334. homeassistant-stubs/components/homewizard/helpers.pyi +1 -1
  335. homeassistant-stubs/components/homewizard/sensor.pyi +1 -1
  336. homeassistant-stubs/components/homeworks/config_flow.pyi +2 -5
  337. homeassistant-stubs/components/http/ban.pyi +2 -1
  338. homeassistant-stubs/components/http/data_validator.pyi +1 -1
  339. homeassistant-stubs/components/http/decorators.pyi +7 -4
  340. homeassistant-stubs/components/huawei_lte/config_flow.pyi +2 -0
  341. homeassistant-stubs/components/huawei_lte/device_tracker.pyi +1 -0
  342. homeassistant-stubs/components/humidifier/__init__.pyi +0 -10
  343. homeassistant-stubs/components/husqvarna_automower/__init__.pyi +2 -0
  344. homeassistant-stubs/components/husqvarna_automower/binary_sensor.pyi +1 -1
  345. homeassistant-stubs/components/husqvarna_automower/button.pyi +1 -3
  346. homeassistant-stubs/components/husqvarna_automower/config_flow.pyi +2 -3
  347. homeassistant-stubs/components/husqvarna_automower/entity.pyi +5 -4
  348. homeassistant-stubs/components/husqvarna_automower/number.pyi +8 -8
  349. homeassistant-stubs/components/husqvarna_automower/sensor.pyi +24 -3
  350. homeassistant-stubs/components/husqvarna_automower/switch.pyi +2 -5
  351. homeassistant-stubs/components/hydrawise/config_flow.pyi +1 -4
  352. homeassistant-stubs/components/hyperion/config_flow.pyi +1 -0
  353. homeassistant-stubs/components/ibeacon/__init__.pyi +1 -0
  354. homeassistant-stubs/components/image/__init__.pyi +7 -6
  355. homeassistant-stubs/components/imap/__init__.pyi +1 -0
  356. homeassistant-stubs/components/imap/config_flow.pyi +1 -2
  357. homeassistant-stubs/components/imgw_pib/__init__.pyi +1 -0
  358. homeassistant-stubs/components/intent/timers.pyi +1 -2
  359. homeassistant-stubs/components/iotty/__init__.pyi +1 -0
  360. homeassistant-stubs/components/iotty/coordinator.pyi +1 -1
  361. homeassistant-stubs/components/ipp/__init__.pyi +1 -0
  362. homeassistant-stubs/components/islamic_prayer_times/__init__.pyi +1 -0
  363. homeassistant-stubs/components/jellyfin/__init__.pyi +2 -2
  364. homeassistant-stubs/components/jellyfin/config_flow.pyi +0 -1
  365. homeassistant-stubs/components/jellyfin/coordinator.pyi +8 -15
  366. homeassistant-stubs/components/jellyfin/entity.pyi +22 -7
  367. homeassistant-stubs/components/jellyfin/media_player.pyi +6 -18
  368. homeassistant-stubs/components/jellyfin/remote.pyi +19 -0
  369. homeassistant-stubs/components/jellyfin/sensor.pyi +10 -8
  370. homeassistant-stubs/components/jewish_calendar/config_flow.pyi +1 -0
  371. homeassistant-stubs/components/jvc_projector/__init__.pyi +1 -0
  372. homeassistant-stubs/components/jvc_projector/config_flow.pyi +1 -2
  373. homeassistant-stubs/components/knocki/__init__.pyi +1 -0
  374. homeassistant-stubs/components/knx/__init__.pyi +0 -1
  375. homeassistant-stubs/components/knx/climate.pyi +2 -0
  376. homeassistant-stubs/components/knx/const.pyi +4 -0
  377. homeassistant-stubs/components/knx/notify.pyi +3 -15
  378. homeassistant-stubs/components/knx/schema.pyi +1 -0
  379. homeassistant-stubs/components/knx/storage/config_store.pyi +2 -2
  380. homeassistant-stubs/components/knx/websocket.pyi +4 -1
  381. homeassistant-stubs/components/kraken/const.pyi +1 -0
  382. homeassistant-stubs/components/lacrosse_view/config_flow.pyi +1 -2
  383. homeassistant-stubs/components/lamarzocco/__init__.pyi +1 -1
  384. homeassistant-stubs/components/lamarzocco/binary_sensor.pyi +1 -1
  385. homeassistant-stubs/components/lamarzocco/button.pyi +3 -1
  386. homeassistant-stubs/components/lamarzocco/calendar.pyi +1 -2
  387. homeassistant-stubs/components/lamarzocco/config_flow.pyi +2 -5
  388. homeassistant-stubs/components/lamarzocco/coordinator.pyi +5 -4
  389. homeassistant-stubs/components/lamarzocco/diagnostics.pyi +1 -1
  390. homeassistant-stubs/components/lamarzocco/number.pyi +3 -2
  391. homeassistant-stubs/components/lamarzocco/select.pyi +5 -1
  392. homeassistant-stubs/components/lamarzocco/sensor.pyi +1 -1
  393. homeassistant-stubs/components/lamarzocco/switch.pyi +3 -2
  394. homeassistant-stubs/components/lamarzocco/update.pyi +3 -2
  395. homeassistant-stubs/components/lametric/config_flow.pyi +1 -2
  396. homeassistant-stubs/components/lametric/helpers.pyi +1 -1
  397. homeassistant-stubs/components/lawn_mower/__init__.pyi +0 -3
  398. homeassistant-stubs/components/lcn/__init__.pyi +2 -2
  399. homeassistant-stubs/components/lcn/binary_sensor.pyi +3 -0
  400. homeassistant-stubs/components/lcn/config_flow.pyi +2 -5
  401. homeassistant-stubs/components/lcn/const.pyi +1 -0
  402. homeassistant-stubs/components/lcn/helpers.pyi +4 -0
  403. homeassistant-stubs/components/lcn/sensor.pyi +4 -1
  404. homeassistant-stubs/components/lcn/switch.pyi +24 -1
  405. homeassistant-stubs/components/lcn/websocket.pyi +3 -1
  406. homeassistant-stubs/components/lektrico/__init__.pyi +1 -0
  407. homeassistant-stubs/components/lektrico/switch.pyi +31 -0
  408. homeassistant-stubs/components/lidarr/__init__.pyi +4 -2
  409. homeassistant-stubs/components/lidarr/config_flow.pyi +1 -5
  410. homeassistant-stubs/components/lidarr/coordinator.pyi +4 -1
  411. homeassistant-stubs/components/lifx/config_flow.pyi +3 -1
  412. homeassistant-stubs/components/lifx/coordinator.pyi +0 -6
  413. homeassistant-stubs/components/light/__init__.pyi +0 -15
  414. homeassistant-stubs/components/linear_garage_door/config_flow.pyi +1 -2
  415. homeassistant-stubs/components/linear_garage_door/coordinator.pyi +1 -1
  416. homeassistant-stubs/components/linkplay/__init__.pyi +2 -1
  417. homeassistant-stubs/components/linkplay/const.pyi +4 -0
  418. homeassistant-stubs/components/linkplay/media_player.pyi +12 -4
  419. homeassistant-stubs/components/litterrobot/__init__.pyi +1 -0
  420. homeassistant-stubs/components/litterrobot/vacuum.pyi +0 -1
  421. homeassistant-stubs/components/local_todo/__init__.pyi +1 -0
  422. homeassistant-stubs/components/lock/__init__.pyi +0 -10
  423. homeassistant-stubs/components/logbook/models.pyi +0 -7
  424. homeassistant-stubs/components/lookin/coordinator.pyi +1 -1
  425. homeassistant-stubs/components/madvr/__init__.pyi +1 -0
  426. homeassistant-stubs/components/madvr/config_flow.pyi +2 -5
  427. homeassistant-stubs/components/manual/alarm_control_panel.pyi +19 -10
  428. homeassistant-stubs/components/mastodon/__init__.pyi +1 -0
  429. homeassistant-stubs/components/mastodon/config_flow.pyi +2 -0
  430. homeassistant-stubs/components/matter/api.pyi +1 -1
  431. homeassistant-stubs/components/matter/climate.pyi +1 -0
  432. homeassistant-stubs/components/matter/config_flow.pyi +3 -1
  433. homeassistant-stubs/components/matter/entity.pyi +2 -2
  434. homeassistant-stubs/components/matter/fan.pyi +1 -0
  435. homeassistant-stubs/components/matter/light.pyi +1 -0
  436. homeassistant-stubs/components/matter/lock.pyi +1 -0
  437. homeassistant-stubs/components/matter/models.pyi +2 -0
  438. homeassistant-stubs/components/matter/select.pyi +2 -0
  439. homeassistant-stubs/components/matter/switch.pyi +1 -0
  440. homeassistant-stubs/components/matter/update.pyi +1 -0
  441. homeassistant-stubs/components/matter/vacuum.pyi +47 -0
  442. homeassistant-stubs/components/matter/valve.pyi +1 -0
  443. homeassistant-stubs/components/media_player/__init__.pyi +0 -33
  444. homeassistant-stubs/components/mikrotik/__init__.pyi +1 -0
  445. homeassistant-stubs/components/mikrotik/config_flow.pyi +0 -1
  446. homeassistant-stubs/components/modbus/__init__.pyi +1 -1
  447. homeassistant-stubs/components/modbus/const.pyi +0 -2
  448. homeassistant-stubs/components/modbus/cover.pyi +2 -2
  449. homeassistant-stubs/components/modbus/modbus.pyi +1 -2
  450. homeassistant-stubs/components/modbus/validators.pyi +1 -1
  451. homeassistant-stubs/components/mold_indicator/config_flow.pyi +9 -0
  452. homeassistant-stubs/components/mold_indicator/sensor.pyi +6 -2
  453. homeassistant-stubs/components/monzo/config_flow.pyi +1 -2
  454. homeassistant-stubs/components/mopeka/__init__.pyi +1 -0
  455. homeassistant-stubs/components/mqtt/__init__.pyi +2 -1
  456. homeassistant-stubs/components/mqtt/alarm_control_panel.pyi +3 -3
  457. homeassistant-stubs/components/mqtt/client.pyi +4 -0
  458. homeassistant-stubs/components/mqtt/config_flow.pyi +3 -2
  459. homeassistant-stubs/components/mqtt/const.pyi +3 -1
  460. homeassistant-stubs/components/mqtt/cover.pyi +1 -1
  461. homeassistant-stubs/components/mqtt/discovery.pyi +26 -9
  462. homeassistant-stubs/components/mqtt/entity.pyi +5 -2
  463. homeassistant-stubs/components/mqtt/models.pyi +11 -0
  464. homeassistant-stubs/components/mqtt/schemas.pyi +15 -7
  465. homeassistant-stubs/components/mqtt/update.pyi +7 -11
  466. homeassistant-stubs/components/music_assistant/__init__.pyi +27 -0
  467. homeassistant-stubs/components/music_assistant/config_flow.pyi +24 -0
  468. homeassistant-stubs/components/music_assistant/const.pyi +12 -0
  469. homeassistant-stubs/components/music_assistant/entity.pyi +24 -0
  470. homeassistant-stubs/components/music_assistant/media_player.pyi +91 -0
  471. homeassistant-stubs/components/mysensors/const.pyi +6 -1
  472. homeassistant-stubs/components/myuplink/__init__.pyi +1 -0
  473. homeassistant-stubs/components/myuplink/config_flow.pyi +1 -2
  474. homeassistant-stubs/components/myuplink/helpers.pyi +6 -0
  475. homeassistant-stubs/components/nam/__init__.pyi +1 -0
  476. homeassistant-stubs/components/nam/config_flow.pyi +4 -7
  477. homeassistant-stubs/components/nanoleaf/__init__.pyi +1 -0
  478. homeassistant-stubs/components/nanoleaf/config_flow.pyi +1 -2
  479. homeassistant-stubs/components/nest/__init__.pyi +1 -1
  480. homeassistant-stubs/components/nest/api.pyi +5 -3
  481. homeassistant-stubs/components/nest/camera.pyi +12 -6
  482. homeassistant-stubs/components/nest/config_flow.pyi +10 -4
  483. homeassistant-stubs/components/nest/const.pyi +2 -1
  484. homeassistant-stubs/components/netatmo/climate.pyi +1 -0
  485. homeassistant-stubs/components/network/websocket.pyi +2 -0
  486. homeassistant-stubs/components/nextdns/__init__.pyi +1 -0
  487. homeassistant-stubs/components/nextdns/config_flow.pyi +1 -2
  488. homeassistant-stubs/components/notify/__init__.pyi +0 -2
  489. homeassistant-stubs/components/notion/config_flow.pyi +1 -3
  490. homeassistant-stubs/components/number/__init__.pyi +0 -8
  491. homeassistant-stubs/components/nut/__init__.pyi +1 -0
  492. homeassistant-stubs/components/onboarding/views.pyi +1 -0
  493. homeassistant-stubs/components/oncue/config_flow.pyi +1 -3
  494. homeassistant-stubs/components/oncue/types.pyi +3 -0
  495. homeassistant-stubs/components/onewire/__init__.pyi +1 -0
  496. homeassistant-stubs/components/onkyo/__init__.pyi +25 -0
  497. homeassistant-stubs/components/onkyo/config_flow.pyi +30 -0
  498. homeassistant-stubs/components/onkyo/const.pyi +68 -0
  499. homeassistant-stubs/components/onkyo/media_player.pyi +22 -25
  500. homeassistant-stubs/components/onkyo/receiver.pyi +23 -3
  501. homeassistant-stubs/components/onkyo/services.pyi +14 -0
  502. homeassistant-stubs/components/openai_conversation/__init__.pyi +19 -0
  503. homeassistant-stubs/components/openai_conversation/config_flow.pyi +30 -0
  504. homeassistant-stubs/components/openai_conversation/const.pyi +14 -0
  505. homeassistant-stubs/components/openai_conversation/conversation.pyi +36 -0
  506. homeassistant-stubs/components/openexchangerates/config_flow.pyi +1 -2
  507. homeassistant-stubs/components/oralb/__init__.pyi +1 -0
  508. homeassistant-stubs/components/otbr/__init__.pyi +1 -0
  509. homeassistant-stubs/components/otbr/config_flow.pyi +2 -1
  510. homeassistant-stubs/components/otbr/silabs_multiprotocol.pyi +1 -1
  511. homeassistant-stubs/components/otbr/util.pyi +1 -1
  512. homeassistant-stubs/components/overkiz/alarm_control_panel.pyi +12 -12
  513. homeassistant-stubs/components/overkiz/climate/atlantic_pass_apc_zone_control_zone.pyi +0 -3
  514. homeassistant-stubs/components/overkiz/config_flow.pyi +1 -2
  515. homeassistant-stubs/components/p1_monitor/__init__.pyi +3 -2
  516. homeassistant-stubs/components/p1_monitor/config_flow.pyi +2 -2
  517. homeassistant-stubs/components/p1_monitor/coordinator.pyi +1 -1
  518. homeassistant-stubs/components/p1_monitor/diagnostics.pyi +1 -1
  519. homeassistant-stubs/components/panel_custom/__init__.pyi +28 -0
  520. homeassistant-stubs/components/pi_hole/__init__.pyi +1 -0
  521. homeassistant-stubs/components/pi_hole/update.pyi +1 -1
  522. homeassistant-stubs/components/ping/__init__.pyi +1 -0
  523. homeassistant-stubs/components/plugwise/__init__.pyi +1 -0
  524. homeassistant-stubs/components/plugwise/config_flow.pyi +8 -6
  525. homeassistant-stubs/components/plugwise/const.pyi +4 -1
  526. homeassistant-stubs/components/plugwise/util.pyi +1 -1
  527. homeassistant-stubs/components/powerwall/config_flow.pyi +0 -1
  528. homeassistant-stubs/components/powerwall/models.pyi +1 -0
  529. homeassistant-stubs/components/private_ble_device/coordinator.pyi +3 -0
  530. homeassistant-stubs/components/prometheus/__init__.pyi +7 -4
  531. homeassistant-stubs/components/proximity/coordinator.pyi +1 -0
  532. homeassistant-stubs/components/purpleair/config_flow.pyi +0 -1
  533. homeassistant-stubs/components/pvoutput/config_flow.pyi +1 -2
  534. homeassistant-stubs/components/qnap_qsw/sensor.pyi +8 -2
  535. homeassistant-stubs/components/radarr/__init__.pyi +1 -0
  536. homeassistant-stubs/components/radarr/config_flow.pyi +1 -3
  537. homeassistant-stubs/components/radio_browser/__init__.pyi +10 -0
  538. homeassistant-stubs/components/radio_browser/config_flow.pyi +8 -0
  539. homeassistant-stubs/components/radio_browser/const.pyi +5 -0
  540. homeassistant-stubs/components/radio_browser/media_source.pyi +28 -0
  541. homeassistant-stubs/components/rainforest_raven/__init__.pyi +3 -5
  542. homeassistant-stubs/components/rainforest_raven/coordinator.pyi +3 -12
  543. homeassistant-stubs/components/rainforest_raven/diagnostics.pyi +2 -4
  544. homeassistant-stubs/components/rainforest_raven/sensor.pyi +4 -5
  545. homeassistant-stubs/components/rainmachine/__init__.pyi +1 -0
  546. homeassistant-stubs/components/rainmachine/switch.pyi +1 -1
  547. homeassistant-stubs/components/rainmachine/update.pyi +7 -1
  548. homeassistant-stubs/components/raspberry_pi/__init__.pyi +2 -1
  549. homeassistant-stubs/components/recorder/core.pyi +2 -6
  550. homeassistant-stubs/components/recorder/migration.pyi +36 -16
  551. homeassistant-stubs/components/recorder/models/state.pyi +0 -7
  552. homeassistant-stubs/components/recorder/queries.pyi +1 -0
  553. homeassistant-stubs/components/recorder/table_managers/__init__.pyi +2 -2
  554. homeassistant-stubs/components/recorder/util.pyi +10 -5
  555. homeassistant-stubs/components/remote/__init__.pyi +0 -4
  556. homeassistant-stubs/components/renault/__init__.pyi +1 -0
  557. homeassistant-stubs/components/renault/renault_vehicle.pyi +1 -1
  558. homeassistant-stubs/components/repairs/issue_handler.pyi +1 -1
  559. homeassistant-stubs/components/rfxtrx/cover.pyi +1 -2
  560. homeassistant-stubs/components/rfxtrx/entity.pyi +1 -1
  561. homeassistant-stubs/components/ring/__init__.pyi +1 -0
  562. homeassistant-stubs/components/ring/config_flow.pyi +5 -2
  563. homeassistant-stubs/components/ring/coordinator.pyi +1 -1
  564. homeassistant-stubs/components/ring/entity.pyi +2 -2
  565. homeassistant-stubs/components/roborock/__init__.pyi +1 -0
  566. homeassistant-stubs/components/roborock/config_flow.pyi +1 -2
  567. homeassistant-stubs/components/roborock/coordinator.pyi +0 -5
  568. homeassistant-stubs/components/roku/browse_media.pyi +2 -0
  569. homeassistant-stubs/components/roku/helpers.pyi +5 -2
  570. homeassistant-stubs/components/rtsp_to_webrtc/__init__.pyi +1 -3
  571. homeassistant-stubs/components/rtsp_to_webrtc/config_flow.pyi +1 -1
  572. homeassistant-stubs/components/samsungtv/__init__.pyi +2 -2
  573. homeassistant-stubs/components/samsungtv/bridge.pyi +1 -1
  574. homeassistant-stubs/components/samsungtv/config_flow.pyi +2 -2
  575. homeassistant-stubs/components/scrape/__init__.pyi +1 -0
  576. homeassistant-stubs/components/scrape/coordinator.pyi +2 -1
  577. homeassistant-stubs/components/script/__init__.pyi +3 -18
  578. homeassistant-stubs/components/select/__init__.pyi +0 -3
  579. homeassistant-stubs/components/sensibo/__init__.pyi +1 -0
  580. homeassistant-stubs/components/sensibo/config_flow.pyi +5 -2
  581. homeassistant-stubs/components/sensibo/entity.pyi +1 -1
  582. homeassistant-stubs/components/sensibo/update.pyi +1 -1
  583. homeassistant-stubs/components/sensor/__init__.pyi +0 -9
  584. homeassistant-stubs/components/sensor/websocket_api.pyi +3 -0
  585. homeassistant-stubs/components/sensoterra/__init__.pyi +1 -0
  586. homeassistant-stubs/components/senz/__init__.pyi +2 -0
  587. homeassistant-stubs/components/sfr_box/binary_sensor.pyi +2 -2
  588. homeassistant-stubs/components/sfr_box/button.pyi +1 -1
  589. homeassistant-stubs/components/sfr_box/config_flow.pyi +1 -2
  590. homeassistant-stubs/components/sfr_box/coordinator.pyi +1 -1
  591. homeassistant-stubs/components/sfr_box/sensor.pyi +2 -2
  592. homeassistant-stubs/components/shell_command/__init__.pyi +13 -0
  593. homeassistant-stubs/components/shelly/binary_sensor.pyi +1 -1
  594. homeassistant-stubs/components/shelly/button.pyi +1 -1
  595. homeassistant-stubs/components/shelly/config_flow.pyi +1 -3
  596. homeassistant-stubs/components/shelly/const.pyi +1 -1
  597. homeassistant-stubs/components/shelly/coordinator.pyi +2 -4
  598. homeassistant-stubs/components/shelly/light.pyi +13 -2
  599. homeassistant-stubs/components/shelly/number.pyi +1 -1
  600. homeassistant-stubs/components/shelly/select.pyi +1 -1
  601. homeassistant-stubs/components/shelly/sensor.pyi +1 -1
  602. homeassistant-stubs/components/shelly/switch.pyi +10 -1
  603. homeassistant-stubs/components/shelly/text.pyi +1 -1
  604. homeassistant-stubs/components/shelly/update.pyi +2 -2
  605. homeassistant-stubs/components/shelly/utils.pyi +3 -2
  606. homeassistant-stubs/components/simplisafe/alarm_control_panel.pyi +2 -3
  607. homeassistant-stubs/components/simplisafe/typing.pyi +4 -0
  608. homeassistant-stubs/components/siren/__init__.pyi +0 -3
  609. homeassistant-stubs/components/sleepiq/config_flow.pyi +1 -3
  610. homeassistant-stubs/components/sleepiq/entity.pyi +3 -2
  611. homeassistant-stubs/components/smhi/config_flow.pyi +1 -3
  612. homeassistant-stubs/components/smlight/__init__.pyi +1 -0
  613. homeassistant-stubs/components/smlight/config_flow.pyi +0 -2
  614. homeassistant-stubs/components/smlight/coordinator.pyi +1 -1
  615. homeassistant-stubs/components/smlight/update.pyi +4 -2
  616. homeassistant-stubs/components/solarlog/__init__.pyi +1 -0
  617. homeassistant-stubs/components/solarlog/config_flow.pyi +1 -4
  618. homeassistant-stubs/components/solarlog/coordinator.pyi +6 -0
  619. homeassistant-stubs/components/sonarr/config_flow.pyi +1 -4
  620. homeassistant-stubs/components/speedtestdotnet/__init__.pyi +1 -0
  621. homeassistant-stubs/components/spotify/__init__.pyi +5 -0
  622. homeassistant-stubs/components/spotify/application_credentials.pyi +4 -0
  623. homeassistant-stubs/components/spotify/browse_media.pyi +49 -0
  624. homeassistant-stubs/components/spotify/config_flow.pyi +19 -0
  625. homeassistant-stubs/components/spotify/const.pyi +9 -0
  626. homeassistant-stubs/components/spotify/coordinator.pyi +34 -0
  627. homeassistant-stubs/components/spotify/diagnostics.pyi +5 -0
  628. homeassistant-stubs/components/spotify/entity.pyi +10 -0
  629. homeassistant-stubs/components/spotify/media_player.pyi +80 -0
  630. homeassistant-stubs/components/spotify/models.pyi +12 -0
  631. homeassistant-stubs/components/spotify/sensor.pyi +28 -0
  632. homeassistant-stubs/components/spotify/system_health.pyi +6 -0
  633. homeassistant-stubs/components/spotify/util.pyi +7 -0
  634. homeassistant-stubs/components/squeezebox/__init__.pyi +6 -3
  635. homeassistant-stubs/components/squeezebox/const.pyi +5 -0
  636. homeassistant-stubs/components/squeezebox/coordinator.pyi +15 -3
  637. homeassistant-stubs/components/squeezebox/media_player.pyi +12 -13
  638. homeassistant-stubs/components/ssdp/__init__.pyi +1 -0
  639. homeassistant-stubs/components/statistics/config_flow.pyi +8 -2
  640. homeassistant-stubs/components/statistics/sensor.pyi +20 -22
  641. homeassistant-stubs/components/steamist/config_flow.pyi +3 -1
  642. homeassistant-stubs/components/sun/entity.pyi +1 -0
  643. homeassistant-stubs/components/surepetcare/config_flow.pyi +1 -2
  644. homeassistant-stubs/components/switch/__init__.pyi +0 -2
  645. homeassistant-stubs/components/switch_as_x/__init__.pyi +3 -0
  646. homeassistant-stubs/components/switch_as_x/config_flow.pyi +18 -0
  647. homeassistant-stubs/components/switch_as_x/const.pyi +5 -0
  648. homeassistant-stubs/components/switch_as_x/cover.pyi +18 -0
  649. homeassistant-stubs/components/switch_as_x/entity.pyi +35 -0
  650. homeassistant-stubs/components/switch_as_x/fan.pyi +17 -0
  651. homeassistant-stubs/components/switch_as_x/light.pyi +13 -0
  652. homeassistant-stubs/components/switch_as_x/lock.pyi +17 -0
  653. homeassistant-stubs/components/switch_as_x/siren.pyi +12 -0
  654. homeassistant-stubs/components/switch_as_x/valve.pyi +19 -0
  655. homeassistant-stubs/components/switchbee/entity.pyi +2 -2
  656. homeassistant-stubs/components/switchbee/switch.pyi +2 -1
  657. homeassistant-stubs/components/switchbot_cloud/__init__.pyi +2 -1
  658. homeassistant-stubs/components/switchbot_cloud/coordinator.pyi +2 -0
  659. homeassistant-stubs/components/switchbot_cloud/lock.pyi +18 -0
  660. homeassistant-stubs/components/switcher_kis/__init__.pyi +1 -0
  661. homeassistant-stubs/components/switcher_kis/button.pyi +2 -5
  662. homeassistant-stubs/components/switcher_kis/climate.pyi +2 -5
  663. homeassistant-stubs/components/switcher_kis/config_flow.pyi +1 -2
  664. homeassistant-stubs/components/switcher_kis/coordinator.pyi +1 -1
  665. homeassistant-stubs/components/switcher_kis/cover.pyi +16 -9
  666. homeassistant-stubs/components/switcher_kis/entity.pyi +9 -0
  667. homeassistant-stubs/components/switcher_kis/light.pyi +44 -0
  668. homeassistant-stubs/components/switcher_kis/sensor.pyi +2 -5
  669. homeassistant-stubs/components/switcher_kis/switch.pyi +2 -5
  670. homeassistant-stubs/components/synology_dsm/coordinator.pyi +2 -2
  671. homeassistant-stubs/components/synology_dsm/entity.pyi +2 -1
  672. homeassistant-stubs/components/synology_dsm/update.pyi +1 -1
  673. homeassistant-stubs/components/system_log/__init__.pyi +1 -0
  674. homeassistant-stubs/components/systemmonitor/__init__.pyi +1 -0
  675. homeassistant-stubs/components/tailscale/config_flow.pyi +1 -2
  676. homeassistant-stubs/components/tailwind/config_flow.pyi +1 -2
  677. homeassistant-stubs/components/tailwind/typing.pyi +2 -0
  678. homeassistant-stubs/components/tautulli/__init__.pyi +1 -0
  679. homeassistant-stubs/components/technove/helpers.pyi +1 -1
  680. homeassistant-stubs/components/tedee/__init__.pyi +1 -1
  681. homeassistant-stubs/components/tedee/binary_sensor.pyi +1 -1
  682. homeassistant-stubs/components/tedee/config_flow.pyi +2 -5
  683. homeassistant-stubs/components/tedee/coordinator.pyi +5 -5
  684. homeassistant-stubs/components/tedee/lock.pyi +2 -2
  685. homeassistant-stubs/components/tedee/sensor.pyi +1 -1
  686. homeassistant-stubs/components/text/__init__.pyi +0 -6
  687. homeassistant-stubs/components/thethingsnetwork/config_flow.pyi +1 -2
  688. homeassistant-stubs/components/thethingsnetwork/sensor.pyi +2 -1
  689. homeassistant-stubs/components/threshold/binary_sensor.pyi +1 -3
  690. homeassistant-stubs/components/tibber/sensor.pyi +1 -0
  691. homeassistant-stubs/components/tile/device_tracker.pyi +3 -6
  692. homeassistant-stubs/components/time/__init__.pyi +0 -4
  693. homeassistant-stubs/components/timer/__init__.pyi +1 -1
  694. homeassistant-stubs/components/tod/binary_sensor.pyi +2 -1
  695. homeassistant-stubs/components/todo/__init__.pyi +0 -2
  696. homeassistant-stubs/components/tplink/__init__.pyi +1 -0
  697. homeassistant-stubs/components/tplink/button.pyi +1 -1
  698. homeassistant-stubs/components/tplink/config_flow.pyi +5 -3
  699. homeassistant-stubs/components/tplink/entity.pyi +4 -4
  700. homeassistant-stubs/components/tplink_omada/__init__.pyi +4 -3
  701. homeassistant-stubs/components/tplink_omada/binary_sensor.pyi +3 -5
  702. homeassistant-stubs/components/tplink_omada/const.pyi +11 -0
  703. homeassistant-stubs/components/tplink_omada/coordinator.pyi +1 -1
  704. homeassistant-stubs/components/tplink_omada/device_tracker.pyi +3 -4
  705. homeassistant-stubs/components/tplink_omada/entity.pyi +3 -1
  706. homeassistant-stubs/components/tplink_omada/sensor.pyi +34 -0
  707. homeassistant-stubs/components/tplink_omada/switch.pyi +3 -5
  708. homeassistant-stubs/components/tplink_omada/update.pyi +3 -6
  709. homeassistant-stubs/components/trace/__init__.pyi +5 -25
  710. homeassistant-stubs/components/trace/const.pyi +1 -1
  711. homeassistant-stubs/components/trace/models.pyi +2 -0
  712. homeassistant-stubs/components/trace/util.pyi +17 -0
  713. homeassistant-stubs/components/trace/websocket_api.pyi +1 -1
  714. homeassistant-stubs/components/tractive/__init__.pyi +1 -0
  715. homeassistant-stubs/components/trafikverket_camera/config_flow.pyi +2 -2
  716. homeassistant-stubs/components/trafikverket_ferry/config_flow.pyi +1 -2
  717. homeassistant-stubs/components/trafikverket_train/config_flow.pyi +0 -1
  718. homeassistant-stubs/components/trafikverket_weatherstation/config_flow.pyi +3 -2
  719. homeassistant-stubs/components/transmission/__init__.pyi +1 -0
  720. homeassistant-stubs/components/transmission/config_flow.pyi +1 -2
  721. homeassistant-stubs/components/trend/binary_sensor.pyi +1 -2
  722. homeassistant-stubs/components/tts/__init__.pyi +0 -5
  723. homeassistant-stubs/components/tts/const.pyi +1 -0
  724. homeassistant-stubs/components/twentemilieu/__init__.pyi +4 -0
  725. homeassistant-stubs/components/unifi/__init__.pyi +1 -0
  726. homeassistant-stubs/components/unifi/config_flow.pyi +1 -2
  727. homeassistant-stubs/components/unifi/device_tracker.pyi +0 -3
  728. homeassistant-stubs/components/unifi/update.pyi +1 -1
  729. homeassistant-stubs/components/unifiprotect/config_flow.pyi +0 -1
  730. homeassistant-stubs/components/unifiprotect/data.pyi +2 -0
  731. homeassistant-stubs/components/update/__init__.pyi +7 -12
  732. homeassistant-stubs/components/update/const.pyi +2 -0
  733. homeassistant-stubs/components/vacuum/__init__.pyi +0 -6
  734. homeassistant-stubs/components/vallox/config_flow.pyi +2 -5
  735. homeassistant-stubs/components/velbus/entity.pyi +1 -1
  736. homeassistant-stubs/components/vlc_telnet/__init__.pyi +1 -0
  737. homeassistant-stubs/components/vlc_telnet/config_flow.pyi +2 -3
  738. homeassistant-stubs/components/vlc_telnet/media_player.pyi +1 -1
  739. homeassistant-stubs/components/wallbox/__init__.pyi +1 -1
  740. homeassistant-stubs/components/wallbox/config_flow.pyi +2 -4
  741. homeassistant-stubs/components/wallbox/coordinator.pyi +3 -3
  742. homeassistant-stubs/components/water_heater/__init__.pyi +0 -9
  743. homeassistant-stubs/components/weather/__init__.pyi +0 -19
  744. homeassistant-stubs/components/webostv/config_flow.pyi +2 -2
  745. homeassistant-stubs/components/webostv/media_player.pyi +1 -1
  746. homeassistant-stubs/components/websocket_api/connection.pyi +3 -0
  747. homeassistant-stubs/components/websocket_api/const.pyi +4 -1
  748. homeassistant-stubs/components/wemo/__init__.pyi +4 -1
  749. homeassistant-stubs/components/wemo/coordinator.pyi +3 -0
  750. homeassistant-stubs/components/withings/__init__.pyi +4 -2
  751. homeassistant-stubs/components/withings/config_flow.pyi +1 -2
  752. homeassistant-stubs/components/withings/coordinator.pyi +7 -2
  753. homeassistant-stubs/components/withings/entity.pyi +14 -2
  754. homeassistant-stubs/components/withings/sensor.pyi +19 -4
  755. homeassistant-stubs/components/wiz/__init__.pyi +1 -0
  756. homeassistant-stubs/components/wled/__init__.pyi +1 -0
  757. homeassistant-stubs/components/wled/helpers.pyi +1 -1
  758. homeassistant-stubs/components/workday/__init__.pyi +13 -0
  759. homeassistant-stubs/components/workday/binary_sensor.pyi +46 -0
  760. homeassistant-stubs/components/workday/config_flow.pyi +33 -0
  761. homeassistant-stubs/components/workday/const.pyi +18 -0
  762. homeassistant-stubs/components/workday/diagnostics.pyi +5 -0
  763. homeassistant-stubs/components/workday/repairs.pyi +28 -0
  764. homeassistant-stubs/components/xiaomi_ble/config_flow.pyi +7 -2
  765. homeassistant-stubs/components/xiaomi_ble/coordinator.pyi +1 -1
  766. homeassistant-stubs/components/xiaomi_ble/types.pyi +2 -0
  767. homeassistant-stubs/components/yale_smart_alarm/__init__.pyi +1 -0
  768. homeassistant-stubs/components/yale_smart_alarm/alarm_control_panel.pyi +2 -3
  769. homeassistant-stubs/components/yale_smart_alarm/binary_sensor.pyi +7 -0
  770. homeassistant-stubs/components/yale_smart_alarm/config_flow.pyi +0 -1
  771. homeassistant-stubs/components/yale_smart_alarm/const.pyi +2 -1
  772. homeassistant-stubs/components/yale_smart_alarm/select.pyi +21 -0
  773. homeassistant-stubs/components/yalexs_ble/__init__.pyi +1 -0
  774. homeassistant-stubs/components/yalexs_ble/config_flow.pyi +6 -2
  775. homeassistant-stubs/components/youtube/config_flow.pyi +1 -2
  776. homeassistant-stubs/components/zwave_js/api.pyi +1 -1
  777. homeassistant-stubs/components/zwave_js/config_flow.pyi +6 -4
  778. homeassistant-stubs/components/zwave_js/discovery.pyi +2 -1
  779. homeassistant-stubs/components/zwave_js/discovery_data_template.pyi +1 -1
  780. homeassistant-stubs/components/zwave_js/light.pyi +8 -6
  781. homeassistant-stubs/components/zwave_js/services.pyi +4 -1
  782. homeassistant-stubs/components/zwave_js/update.pyi +2 -1
  783. homeassistant-stubs/config.pyi +3 -24
  784. homeassistant-stubs/config_entries.pyi +52 -27
  785. homeassistant-stubs/const.pyi +16 -12
  786. homeassistant-stubs/core.pyi +36 -109
  787. homeassistant-stubs/core_config.pyi +108 -0
  788. homeassistant-stubs/data_entry_flow.pyi +22 -18
  789. homeassistant-stubs/helpers/area_registry.pyi +6 -8
  790. homeassistant-stubs/helpers/category_registry.pyi +1 -0
  791. homeassistant-stubs/helpers/check_config.pyi +2 -1
  792. homeassistant-stubs/helpers/collection.pyi +6 -4
  793. homeassistant-stubs/helpers/condition.pyi +1 -0
  794. homeassistant-stubs/helpers/config_entry_flow.pyi +3 -2
  795. homeassistant-stubs/helpers/config_validation.pyi +6 -6
  796. homeassistant-stubs/helpers/data_entry_flow.pyi +1 -1
  797. homeassistant-stubs/helpers/debounce.pyi +1 -1
  798. homeassistant-stubs/helpers/deprecation.pyi +9 -4
  799. homeassistant-stubs/helpers/device_registry.pyi +7 -8
  800. homeassistant-stubs/helpers/discovery_flow.pyi +5 -5
  801. homeassistant-stubs/helpers/dispatcher.pyi +9 -8
  802. homeassistant-stubs/helpers/entity.pyi +2 -31
  803. homeassistant-stubs/helpers/entity_registry.pyi +7 -9
  804. homeassistant-stubs/helpers/event.pyi +2 -1
  805. homeassistant-stubs/helpers/floor_registry.pyi +3 -3
  806. homeassistant-stubs/helpers/frame.pyi +1 -5
  807. homeassistant-stubs/helpers/hassio.pyi +4 -0
  808. homeassistant-stubs/helpers/http.pyi +2 -0
  809. homeassistant-stubs/helpers/intent.pyi +5 -5
  810. homeassistant-stubs/helpers/json.pyi +3 -0
  811. homeassistant-stubs/helpers/label_registry.pyi +3 -3
  812. homeassistant-stubs/helpers/llm.pyi +1 -2
  813. homeassistant-stubs/helpers/network.pyi +1 -0
  814. homeassistant-stubs/helpers/normalized_name_base_registry.pyi +6 -3
  815. homeassistant-stubs/helpers/ratelimit.pyi +1 -1
  816. homeassistant-stubs/helpers/redact.pyi +2 -2
  817. homeassistant-stubs/helpers/registry.pyi +5 -3
  818. homeassistant-stubs/helpers/script.pyi +3 -7
  819. homeassistant-stubs/helpers/selector.pyi +1 -1
  820. homeassistant-stubs/helpers/service.pyi +2 -2
  821. homeassistant-stubs/helpers/service_info/hassio.pyi +11 -0
  822. homeassistant-stubs/helpers/service_info/mqtt.pyi +1 -0
  823. homeassistant-stubs/helpers/significant_change.pyi +3 -0
  824. homeassistant-stubs/helpers/singleton.pyi +3 -2
  825. homeassistant-stubs/helpers/storage.pyi +4 -5
  826. homeassistant-stubs/helpers/sun.pyi +2 -0
  827. homeassistant-stubs/helpers/system_info.pyi +1 -0
  828. homeassistant-stubs/helpers/template.pyi +4 -3
  829. homeassistant-stubs/helpers/trace.pyi +3 -3
  830. homeassistant-stubs/helpers/typing.pyi +13 -0
  831. homeassistant-stubs/helpers/update_coordinator.pyi +4 -4
  832. homeassistant-stubs/loader.pyi +5 -21
  833. homeassistant-stubs/scripts/benchmark/__init__.pyi +1 -1
  834. homeassistant-stubs/util/__init__.pyi +1 -1
  835. homeassistant-stubs/util/async_.pyi +2 -2
  836. homeassistant-stubs/util/decorator.pyi +2 -1
  837. homeassistant-stubs/util/dt.pyi +3 -2
  838. homeassistant-stubs/util/enum.pyi +2 -2
  839. homeassistant-stubs/util/hass_dict.pyi +17 -17
  840. homeassistant-stubs/util/json.pyi +3 -0
  841. homeassistant-stubs/util/limited_size_dict.pyi +1 -1
  842. homeassistant-stubs/util/logging.pyi +8 -8
  843. homeassistant-stubs/util/loop.pyi +1 -1
  844. homeassistant-stubs/util/percentage.pyi +2 -2
  845. homeassistant-stubs/util/read_only_dict.pyi +1 -1
  846. homeassistant-stubs/util/signal_type.pyi +3 -3
  847. homeassistant-stubs/util/variance.pyi +3 -3
  848. homeassistant-stubs/util/yaml/loader.pyi +2 -4
  849. {homeassistant_stubs-2024.10.4.dist-info → homeassistant_stubs-2024.11.0b0.dist-info}/METADATA +2 -2
  850. {homeassistant_stubs-2024.10.4.dist-info → homeassistant_stubs-2024.11.0b0.dist-info}/RECORD +852 -768
  851. homeassistant-stubs/components/jellyfin/models.pyi +0 -10
  852. homeassistant-stubs/components/map/__init__.pyi +0 -14
  853. {homeassistant_stubs-2024.10.4.dist-info → homeassistant_stubs-2024.11.0b0.dist-info}/WHEEL +0 -0
  854. {homeassistant_stubs-2024.10.4.dist-info → homeassistant_stubs-2024.11.0b0.dist-info}/licenses/LICENSE +0 -0
@@ -2,7 +2,7 @@ import datetime
2
2
  from . import CalendarEntity as CalendarEntity, CalendarEvent as CalendarEvent
3
3
  from .const import DATA_COMPONENT as DATA_COMPONENT, DOMAIN as DOMAIN
4
4
  from _typeshed import Incomplete
5
- from collections.abc import Coroutine
5
+ from collections.abc import Awaitable, Callable, Coroutine
6
6
  from dataclasses import dataclass
7
7
  from homeassistant.const import CONF_ENTITY_ID as CONF_ENTITY_ID, CONF_EVENT as CONF_EVENT, CONF_OFFSET as CONF_OFFSET, CONF_PLATFORM as CONF_PLATFORM
8
8
  from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, HassJob as HassJob, HomeAssistant as HomeAssistant, callback as callback
@@ -34,6 +34,8 @@ class Timespan:
34
34
  def next_upcoming(self, now: datetime.datetime, interval: datetime.timedelta) -> Timespan: ...
35
35
  def __str__(self) -> str: ...
36
36
  def __init__(self, start, end) -> None: ...
37
+ type EventFetcher = Callable[[Timespan], Awaitable[list[CalendarEvent]]]
38
+ type QueuedEventFetcher = Callable[[Timespan], Awaitable[list[QueuedCalendarEvent]]]
37
39
 
38
40
  def get_entity(hass: HomeAssistant, entity_id: str) -> CalendarEntity: ...
39
41
  def event_fetcher(hass: HomeAssistant, entity_id: str) -> EventFetcher: ...
@@ -0,0 +1,14 @@
1
+ from .const import CONNECT_TIMEOUT as CONNECT_TIMEOUT, DOMAIN as DOMAIN, STREAM_MAGIC_EXCEPTIONS as STREAM_MAGIC_EXCEPTIONS
2
+ from _typeshed import Incomplete
3
+ from aiostreammagic import StreamMagicClient
4
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
5
+ from homeassistant.const import CONF_HOST as CONF_HOST, Platform as Platform
6
+ from homeassistant.core import HomeAssistant as HomeAssistant
7
+ from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady
8
+
9
+ PLATFORMS: list[Platform]
10
+ _LOGGER: Incomplete
11
+ type CambridgeAudioConfigEntry = ConfigEntry[StreamMagicClient]
12
+
13
+ async def async_setup_entry(hass: HomeAssistant, entry: CambridgeAudioConfigEntry) -> bool: ...
14
+ async def async_unload_entry(hass: HomeAssistant, entry: CambridgeAudioConfigEntry) -> bool: ...
@@ -0,0 +1,14 @@
1
+ from .const import CONNECT_TIMEOUT as CONNECT_TIMEOUT, DOMAIN as DOMAIN, STREAM_MAGIC_EXCEPTIONS as STREAM_MAGIC_EXCEPTIONS
2
+ from _typeshed import Incomplete
3
+ from homeassistant.components import zeroconf as zeroconf
4
+ from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
5
+ from homeassistant.const import CONF_HOST as CONF_HOST, CONF_NAME as CONF_NAME
6
+ from typing import Any
7
+
8
+ class CambridgeAudioConfigFlow(ConfigFlow, domain=DOMAIN):
9
+ VERSION: int
10
+ data: Incomplete
11
+ def __init__(self) -> None: ...
12
+ async def async_step_zeroconf(self, discovery_info: zeroconf.ZeroconfServiceInfo) -> ConfigFlowResult: ...
13
+ async def async_step_discovery_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
14
+ async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -0,0 +1,9 @@
1
+ from _typeshed import Incomplete
2
+
3
+ DOMAIN: str
4
+ LOGGER: Incomplete
5
+ STREAM_MAGIC_EXCEPTIONS: Incomplete
6
+ CONNECT_TIMEOUT: int
7
+ CAMBRIDGE_MEDIA_TYPE_PRESET: str
8
+ CAMBRIDGE_MEDIA_TYPE_AIRABLE: str
9
+ CAMBRIDGE_MEDIA_TYPE_INTERNET_RADIO: str
@@ -0,0 +1,5 @@
1
+ from . import CambridgeAudioConfigEntry as CambridgeAudioConfigEntry
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: CambridgeAudioConfigEntry) -> dict[str, Any]: ...
@@ -0,0 +1,21 @@
1
+ from .const import DOMAIN as DOMAIN, STREAM_MAGIC_EXCEPTIONS as STREAM_MAGIC_EXCEPTIONS
2
+ from _typeshed import Incomplete
3
+ from aiostreammagic import StreamMagicClient as StreamMagicClient
4
+ from aiostreammagic.models import CallbackType as CallbackType
5
+ from collections.abc import Awaitable, Callable as Callable, Coroutine
6
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
7
+ from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
8
+ from homeassistant.helpers.entity import Entity as Entity
9
+ from typing import Any, Concatenate
10
+
11
+ def command[_EntityT: CambridgeAudioEntity, **_P](func: Callable[Concatenate[_EntityT, _P], Awaitable[None]]) -> Callable[Concatenate[_EntityT, _P], Coroutine[Any, Any, None]]: ...
12
+
13
+ class CambridgeAudioEntity(Entity):
14
+ _attr_has_entity_name: bool
15
+ client: Incomplete
16
+ _attr_device_info: Incomplete
17
+ def __init__(self, client: StreamMagicClient) -> None: ...
18
+ _attr_available: Incomplete
19
+ async def _state_update_callback(self, _client: StreamMagicClient, _callback_type: CallbackType) -> None: ...
20
+ async def async_added_to_hass(self) -> None: ...
21
+ async def async_will_remove_from_hass(self) -> None: ...
@@ -0,0 +1,71 @@
1
+ from .const import CAMBRIDGE_MEDIA_TYPE_AIRABLE as CAMBRIDGE_MEDIA_TYPE_AIRABLE, CAMBRIDGE_MEDIA_TYPE_INTERNET_RADIO as CAMBRIDGE_MEDIA_TYPE_INTERNET_RADIO, CAMBRIDGE_MEDIA_TYPE_PRESET as CAMBRIDGE_MEDIA_TYPE_PRESET, DOMAIN as DOMAIN
2
+ from .entity import CambridgeAudioEntity as CambridgeAudioEntity, command as command
3
+ from _typeshed import Incomplete
4
+ from aiostreammagic import StreamMagicClient as StreamMagicClient, TransportControl
5
+ from datetime import datetime
6
+ from homeassistant.components.media_player import MediaPlayerDeviceClass as MediaPlayerDeviceClass, MediaPlayerEntity as MediaPlayerEntity, MediaPlayerEntityFeature as MediaPlayerEntityFeature, MediaPlayerState as MediaPlayerState, MediaType as MediaType, RepeatMode as RepeatMode
7
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
+ from homeassistant.core import HomeAssistant as HomeAssistant
9
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, ServiceValidationError as ServiceValidationError
10
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
11
+ from typing import Any
12
+
13
+ BASE_FEATURES: Incomplete
14
+ PREAMP_FEATURES: Incomplete
15
+ TRANSPORT_FEATURES: dict[TransportControl, MediaPlayerEntityFeature]
16
+
17
+ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
18
+
19
+ class CambridgeAudioDevice(CambridgeAudioEntity, MediaPlayerEntity):
20
+ _attr_name: Incomplete
21
+ _attr_media_content_type: Incomplete
22
+ _attr_device_class: Incomplete
23
+ _attr_unique_id: Incomplete
24
+ def __init__(self, client: StreamMagicClient) -> None: ...
25
+ @property
26
+ def supported_features(self) -> MediaPlayerEntityFeature: ...
27
+ @property
28
+ def state(self) -> MediaPlayerState: ...
29
+ @property
30
+ def source_list(self) -> list[str]: ...
31
+ @property
32
+ def source(self) -> str | None: ...
33
+ @property
34
+ def media_title(self) -> str | None: ...
35
+ @property
36
+ def media_artist(self) -> str | None: ...
37
+ @property
38
+ def media_album_name(self) -> str | None: ...
39
+ @property
40
+ def media_image_url(self) -> str | None: ...
41
+ @property
42
+ def media_duration(self) -> int | None: ...
43
+ @property
44
+ def media_position(self) -> int | None: ...
45
+ @property
46
+ def media_position_updated_at(self) -> datetime: ...
47
+ @property
48
+ def is_volume_muted(self) -> bool | None: ...
49
+ @property
50
+ def volume_level(self) -> float | None: ...
51
+ @property
52
+ def shuffle(self) -> bool: ...
53
+ @property
54
+ def repeat(self) -> RepeatMode | None: ...
55
+ async def async_media_play_pause(self) -> None: ...
56
+ async def async_media_pause(self) -> None: ...
57
+ async def async_media_stop(self) -> None: ...
58
+ async def async_media_play(self) -> None: ...
59
+ async def async_media_next_track(self) -> None: ...
60
+ async def async_media_previous_track(self) -> None: ...
61
+ async def async_select_source(self, source: str) -> None: ...
62
+ async def async_turn_on(self) -> None: ...
63
+ async def async_turn_off(self) -> None: ...
64
+ async def async_volume_up(self) -> None: ...
65
+ async def async_volume_down(self) -> None: ...
66
+ async def async_set_volume_level(self, volume: float) -> None: ...
67
+ async def async_mute_volume(self, mute: bool) -> None: ...
68
+ async def async_media_seek(self, position: float) -> None: ...
69
+ async def async_set_shuffle(self, shuffle: bool) -> None: ...
70
+ async def async_set_repeat(self, repeat: RepeatMode) -> None: ...
71
+ async def async_play_media(self, media_type: MediaType | str, media_id: str, **kwargs: Any) -> None: ...
@@ -0,0 +1,34 @@
1
+ from .entity import CambridgeAudioEntity as CambridgeAudioEntity
2
+ from _typeshed import Incomplete
3
+ from aiostreammagic import StreamMagicClient as StreamMagicClient
4
+ from collections.abc import Awaitable, Callable as Callable
5
+ from dataclasses import dataclass
6
+ from homeassistant.components.select import SelectEntity as SelectEntity, SelectEntityDescription as SelectEntityDescription
7
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
+ from homeassistant.const import EntityCategory as EntityCategory
9
+ from homeassistant.core import HomeAssistant as HomeAssistant
10
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
11
+
12
+ @dataclass(frozen=True, kw_only=True)
13
+ class CambridgeAudioSelectEntityDescription(SelectEntityDescription):
14
+ options_fn: Callable[[StreamMagicClient], list[str]] = ...
15
+ load_fn: Callable[[StreamMagicClient], bool] = ...
16
+ value_fn: Callable[[StreamMagicClient], str | None]
17
+ set_value_fn: Callable[[StreamMagicClient, str], Awaitable[None]]
18
+ 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=..., options=..., options_fn=..., load_fn=..., value_fn, set_value_fn) -> None: ...
19
+
20
+ async def _audio_output_set_value_fn(client: StreamMagicClient, value: str) -> None: ...
21
+ def _audio_output_value_fn(client: StreamMagicClient) -> str | None: ...
22
+
23
+ CONTROL_ENTITIES: tuple[CambridgeAudioSelectEntityDescription, ...]
24
+
25
+ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
26
+
27
+ class CambridgeAudioSelect(CambridgeAudioEntity, SelectEntity):
28
+ entity_description: CambridgeAudioSelectEntityDescription
29
+ _attr_unique_id: Incomplete
30
+ _attr_options: Incomplete
31
+ def __init__(self, client: StreamMagicClient, description: CambridgeAudioSelectEntityDescription) -> None: ...
32
+ @property
33
+ def current_option(self) -> str | None: ...
34
+ async def async_select_option(self, option: str) -> None: ...
@@ -0,0 +1,30 @@
1
+ from .entity import CambridgeAudioEntity as CambridgeAudioEntity
2
+ from _typeshed import Incomplete
3
+ from aiostreammagic import StreamMagicClient as StreamMagicClient
4
+ from collections.abc import Awaitable, Callable as Callable
5
+ from dataclasses import dataclass
6
+ from homeassistant.components.switch import SwitchEntity as SwitchEntity, SwitchEntityDescription as SwitchEntityDescription
7
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
+ from homeassistant.const import EntityCategory as EntityCategory
9
+ from homeassistant.core import HomeAssistant as HomeAssistant
10
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
11
+ from typing import Any
12
+
13
+ @dataclass(frozen=True, kw_only=True)
14
+ class CambridgeAudioSwitchEntityDescription(SwitchEntityDescription):
15
+ value_fn: Callable[[StreamMagicClient], bool]
16
+ set_value_fn: Callable[[StreamMagicClient, bool], Awaitable[None]]
17
+ 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=..., value_fn, set_value_fn) -> None: ...
18
+
19
+ CONTROL_ENTITIES: tuple[CambridgeAudioSwitchEntityDescription, ...]
20
+
21
+ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
22
+
23
+ class CambridgeAudioSwitch(CambridgeAudioEntity, SwitchEntity):
24
+ entity_description: CambridgeAudioSwitchEntityDescription
25
+ _attr_unique_id: Incomplete
26
+ def __init__(self, client: StreamMagicClient, description: CambridgeAudioSwitchEntityDescription) -> None: ...
27
+ @property
28
+ def is_on(self) -> bool: ...
29
+ async def async_turn_on(self, **kwargs: Any) -> None: ...
30
+ async def async_turn_off(self, **kwargs: Any) -> None: ...
@@ -1,11 +1,13 @@
1
- from .const import CAMERA_IMAGE_TIMEOUT as CAMERA_IMAGE_TIMEOUT, CAMERA_STREAM_SOURCE_TIMEOUT as CAMERA_STREAM_SOURCE_TIMEOUT, CONF_DURATION as CONF_DURATION, CONF_LOOKBACK as CONF_LOOKBACK, CameraState as CameraState, DATA_CAMERA_PREFS as DATA_CAMERA_PREFS, DATA_COMPONENT as DATA_COMPONENT, DATA_RTSP_TO_WEB_RTC as DATA_RTSP_TO_WEB_RTC, DOMAIN as DOMAIN, PREF_ORIENTATION as PREF_ORIENTATION, PREF_PRELOAD_STREAM as PREF_PRELOAD_STREAM, SERVICE_RECORD as SERVICE_RECORD, StreamType as StreamType, _DEPRECATED_STREAM_TYPE_HLS as _DEPRECATED_STREAM_TYPE_HLS, _DEPRECATED_STREAM_TYPE_WEB_RTC as _DEPRECATED_STREAM_TYPE_WEB_RTC
1
+ from .const import CAMERA_IMAGE_TIMEOUT as CAMERA_IMAGE_TIMEOUT, CAMERA_STREAM_SOURCE_TIMEOUT as CAMERA_STREAM_SOURCE_TIMEOUT, CONF_DURATION as CONF_DURATION, CONF_LOOKBACK as CONF_LOOKBACK, CameraState as CameraState, DATA_CAMERA_PREFS as DATA_CAMERA_PREFS, DATA_COMPONENT as DATA_COMPONENT, DOMAIN as DOMAIN, PREF_ORIENTATION as PREF_ORIENTATION, PREF_PRELOAD_STREAM as PREF_PRELOAD_STREAM, SERVICE_RECORD as SERVICE_RECORD, StreamType as StreamType, _DEPRECATED_STREAM_TYPE_HLS as _DEPRECATED_STREAM_TYPE_HLS, _DEPRECATED_STREAM_TYPE_WEB_RTC as _DEPRECATED_STREAM_TYPE_WEB_RTC
2
+ from .helper import get_camera_from_entity_id as get_camera_from_entity_id
2
3
  from .img_util import scale_jpeg_camera_image as scale_jpeg_camera_image
3
4
  from .prefs import CameraPreferences as CameraPreferences, DynamicStreamSettings as DynamicStreamSettings
5
+ from .webrtc import CameraWebRTCLegacyProvider as CameraWebRTCLegacyProvider, CameraWebRTCProvider as CameraWebRTCProvider, DATA_ICE_SERVERS as DATA_ICE_SERVERS, WebRTCAnswer as WebRTCAnswer, WebRTCCandidate as WebRTCCandidate, WebRTCClientConfiguration as WebRTCClientConfiguration, WebRTCError as WebRTCError, WebRTCMessage as WebRTCMessage, WebRTCSendMessage as WebRTCSendMessage, async_get_supported_legacy_provider as async_get_supported_legacy_provider, async_get_supported_provider as async_get_supported_provider, async_register_ice_servers as async_register_ice_servers, async_register_rtsp_to_web_rtc_provider as async_register_rtsp_to_web_rtc_provider, async_register_webrtc_provider as async_register_webrtc_provider, async_register_ws as async_register_ws
4
6
  from _typeshed import Incomplete
5
7
  from aiohttp import web
6
- from collections.abc import Awaitable, Callable, Iterable
8
+ from collections.abc import Awaitable, Callable as Callable, Coroutine
9
+ from dataclasses import dataclass
7
10
  from enum import IntFlag
8
- from functools import cached_property as cached_property
9
11
  from homeassistant.components import websocket_api as websocket_api
10
12
  from homeassistant.components.http import HomeAssistantView as HomeAssistantView, KEY_AUTHENTICATED as KEY_AUTHENTICATED
11
13
  from homeassistant.components.media_player import ATTR_MEDIA_CONTENT_ID as ATTR_MEDIA_CONTENT_ID, ATTR_MEDIA_CONTENT_TYPE as ATTR_MEDIA_CONTENT_TYPE, SERVICE_PLAY_MEDIA as SERVICE_PLAY_MEDIA
@@ -47,7 +49,6 @@ class CameraEntityFeature(IntFlag):
47
49
 
48
50
  _DEPRECATED_SUPPORT_ON_OFF: Final[Incomplete]
49
51
  _DEPRECATED_SUPPORT_STREAM: Final[Incomplete]
50
- RTSP_PREFIXES: Incomplete
51
52
  DEFAULT_CONTENT_TYPE: Final[str]
52
53
  ENTITY_IMAGE_URL: Final[str]
53
54
  TOKEN_CHANGE_INTERVAL: Final[Incomplete]
@@ -70,6 +71,11 @@ class Image:
70
71
  def __gt__(self, other): ...
71
72
  def __ge__(self, other): ...
72
73
 
74
+ @dataclass(frozen=True)
75
+ class CameraCapabilities:
76
+ frontend_stream_types: set[StreamType]
77
+ def __init__(self, frontend_stream_types) -> None: ...
78
+
73
79
  async def async_request_stream(hass: HomeAssistant, entity_id: str, fmt: str) -> str: ...
74
80
  async def _async_get_image(camera: Camera, timeout: int = 10, width: int | None = None, height: int | None = None) -> Image: ...
75
81
  async def async_get_image(hass: HomeAssistant, entity_id: str, timeout: int = 10, width: int | None = None, height: int | None = None) -> Image: ...
@@ -77,10 +83,6 @@ async def _async_get_stream_image(camera: Camera, width: int | None = None, heig
77
83
  async def async_get_stream_source(hass: HomeAssistant, entity_id: str) -> str | None: ...
78
84
  async def async_get_mjpeg_stream(hass: HomeAssistant, request: web.Request, entity_id: str) -> web.StreamResponse | None: ...
79
85
  async def async_get_still_stream(request: web.Request, image_cb: Callable[[], Awaitable[bytes | None]], content_type: str, interval: float) -> web.StreamResponse: ...
80
- def _get_camera_from_entity_id(hass: HomeAssistant, entity_id: str) -> Camera: ...
81
- def async_register_rtsp_to_web_rtc_provider(hass: HomeAssistant, domain: str, provider: RtspToWebRtcProviderType) -> Callable[[], None]: ...
82
- async def _async_refresh_providers(hass: HomeAssistant) -> None: ...
83
- def _async_get_rtsp_to_web_rtc_providers(hass: HomeAssistant) -> Iterable[RtspToWebRtcProviderType]: ...
84
86
  async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
85
87
  async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
86
88
  async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
@@ -100,33 +102,27 @@ class Camera(Entity, cached_properties=CACHED_PROPERTIES_WITH_ATTR_):
100
102
  _attr_should_poll: bool
101
103
  _attr_state: None
102
104
  _attr_supported_features: CameraEntityFeature
105
+ _cache: Incomplete
103
106
  stream: Incomplete
104
107
  stream_options: Incomplete
105
108
  content_type: Incomplete
106
109
  access_tokens: Incomplete
107
110
  _warned_old_signature: bool
108
111
  _create_stream_lock: Incomplete
109
- _rtsp_to_webrtc: bool
112
+ _webrtc_provider: Incomplete
113
+ _legacy_webrtc_provider: Incomplete
114
+ _webrtc_sync_offer: Incomplete
110
115
  def __init__(self) -> None: ...
111
- @cached_property
112
116
  def entity_picture(self) -> str: ...
113
- @cached_property
114
117
  def use_stream_for_stills(self) -> bool: ...
115
- @cached_property
116
118
  def supported_features(self) -> CameraEntityFeature: ...
117
119
  @property
118
120
  def supported_features_compat(self) -> CameraEntityFeature: ...
119
- @cached_property
120
121
  def is_recording(self) -> bool: ...
121
- @cached_property
122
122
  def is_streaming(self) -> bool: ...
123
- @cached_property
124
123
  def brand(self) -> str | None: ...
125
- @cached_property
126
124
  def motion_detection_enabled(self) -> bool: ...
127
- @cached_property
128
125
  def model(self) -> str | None: ...
129
- @cached_property
130
126
  def frame_interval(self) -> float: ...
131
127
  @property
132
128
  def frontend_stream_type(self) -> StreamType | None: ...
@@ -135,13 +131,13 @@ class Camera(Entity, cached_properties=CACHED_PROPERTIES_WITH_ATTR_):
135
131
  async def async_create_stream(self) -> Stream | None: ...
136
132
  async def stream_source(self) -> str | None: ...
137
133
  async def async_handle_web_rtc_offer(self, offer_sdp: str) -> str | None: ...
134
+ async def async_handle_async_webrtc_offer(self, offer_sdp: str, session_id: str, send_message: WebRTCSendMessage) -> None: ...
138
135
  def camera_image(self, width: int | None = None, height: int | None = None) -> bytes | None: ...
139
136
  async def async_camera_image(self, width: int | None = None, height: int | None = None) -> bytes | None: ...
140
137
  async def handle_async_still_stream(self, request: web.Request, interval: float) -> web.StreamResponse: ...
141
138
  async def handle_async_mjpeg_stream(self, request: web.Request) -> web.StreamResponse | None: ...
142
139
  @property
143
140
  def state(self) -> str: ...
144
- @cached_property
145
141
  def is_on(self) -> bool: ...
146
142
  def turn_off(self) -> None: ...
147
143
  async def async_turn_off(self) -> None: ...
@@ -155,8 +151,14 @@ class Camera(Entity, cached_properties=CACHED_PROPERTIES_WITH_ATTR_):
155
151
  def state_attributes(self) -> dict[str, str | None]: ...
156
152
  def async_update_token(self) -> None: ...
157
153
  async def async_internal_added_to_hass(self) -> None: ...
158
- async def async_refresh_providers(self) -> None: ...
159
- async def _async_use_rtsp_to_webrtc(self) -> bool: ...
154
+ async def async_refresh_providers(self, *, write_state: bool = True) -> None: ...
155
+ async def _async_get_supported_webrtc_provider[_T](self, fn: Callable[[HomeAssistant, Camera], Coroutine[None, None, _T | None]]) -> _T | None: ...
156
+ def _async_get_webrtc_client_configuration(self) -> WebRTCClientConfiguration: ...
157
+ def async_get_webrtc_client_configuration(self) -> WebRTCClientConfiguration: ...
158
+ async def async_on_webrtc_candidate(self, session_id: str, candidate: str) -> None: ...
159
+ def close_webrtc_session(self, session_id: str) -> None: ...
160
+ def _invalidate_camera_capabilities_cache(self) -> None: ...
161
+ def camera_capabilities(self) -> CameraCapabilities: ...
160
162
 
161
163
  class CameraView(HomeAssistantView):
162
164
  requires_auth: bool
@@ -175,10 +177,21 @@ class CameraMjpegStream(CameraView):
175
177
  name: str
176
178
  async def handle(self, request: web.Request, camera: Camera) -> web.StreamResponse: ...
177
179
 
180
+ async def ws_camera_capabilities(hass: HomeAssistant, connection: ActiveConnection, msg: dict[str, Any]) -> None: ...
178
181
  async def ws_camera_stream(hass: HomeAssistant, connection: ActiveConnection, msg: dict[str, Any]) -> None: ...
179
- async def ws_camera_web_rtc_offer(hass: HomeAssistant, connection: ActiveConnection, msg: dict[str, Any]) -> None: ...
180
182
  async def websocket_get_prefs(hass: HomeAssistant, connection: ActiveConnection, msg: dict[str, Any]) -> None: ...
181
183
  async def websocket_update_prefs(hass: HomeAssistant, connection: ActiveConnection, msg: dict[str, Any]) -> None: ...
184
+
185
+ class _TemplateCameraEntity:
186
+ _camera: Incomplete
187
+ _entity_id: Incomplete
188
+ _hass: Incomplete
189
+ _service: Incomplete
190
+ def __init__(self, camera: Camera, service: str) -> None: ...
191
+ def _report_issue(self) -> None: ...
192
+ def __getattr__(self, name: str) -> Any: ...
193
+ def __str__(self) -> str: ...
194
+
182
195
  async def async_handle_snapshot_service(camera: Camera, service_call: ServiceCall) -> None: ...
183
196
  async def async_handle_play_stream_service(camera: Camera, service_call: ServiceCall) -> None: ...
184
197
  async def _async_stream_endpoint_url(hass: HomeAssistant, camera: Camera, fmt: str) -> str: ...
@@ -1,4 +1,4 @@
1
- from . import Camera as Camera, RtspToWebRtcProviderType as RtspToWebRtcProviderType
1
+ from . import Camera as Camera
2
2
  from .prefs import CameraPreferences as CameraPreferences
3
3
  from _typeshed import Incomplete
4
4
  from enum import StrEnum
@@ -10,7 +10,6 @@ from typing import Final
10
10
  DOMAIN: Final[str]
11
11
  DATA_COMPONENT: HassKey[EntityComponent[Camera]]
12
12
  DATA_CAMERA_PREFS: HassKey[CameraPreferences]
13
- DATA_RTSP_TO_WEB_RTC: HassKey[dict[str, RtspToWebRtcProviderType]]
14
13
  PREF_PRELOAD_STREAM: Final[str]
15
14
  PREF_ORIENTATION: Final[str]
16
15
  SERVICE_RECORD: Final[str]
@@ -1,5 +1,5 @@
1
- from . import _get_camera_from_entity_id as _get_camera_from_entity_id
2
1
  from .const import DOMAIN as DOMAIN
2
+ from .helper import get_camera_from_entity_id as get_camera_from_entity_id
3
3
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
4
4
  from homeassistant.core import HomeAssistant as HomeAssistant
5
5
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
@@ -0,0 +1,6 @@
1
+ from . import Camera as Camera
2
+ from .const import DATA_COMPONENT as DATA_COMPONENT
3
+ from homeassistant.core import HomeAssistant as HomeAssistant
4
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
5
+
6
+ def get_camera_from_entity_id(hass: HomeAssistant, entity_id: str) -> Camera: ...
@@ -0,0 +1,95 @@
1
+ import abc
2
+ from . import Camera as Camera
3
+ from .const import DATA_COMPONENT as DATA_COMPONENT, DOMAIN as DOMAIN, StreamType as StreamType
4
+ from .helper import get_camera_from_entity_id as get_camera_from_entity_id
5
+ from _typeshed import Incomplete
6
+ from abc import ABC, abstractmethod
7
+ from collections.abc import Awaitable, Callable, Iterable
8
+ from dataclasses import dataclass
9
+ from homeassistant.components import websocket_api as websocket_api
10
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
11
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
12
+ from homeassistant.util.hass_dict import HassKey as HassKey
13
+ from homeassistant.util.ulid import ulid as ulid
14
+ from typing import Any, Protocol
15
+ from webrtc_models import RTCConfiguration, RTCIceServer as RTCIceServer
16
+
17
+ _LOGGER: Incomplete
18
+ DATA_WEBRTC_PROVIDERS: HassKey[set[CameraWebRTCProvider]]
19
+ DATA_WEBRTC_LEGACY_PROVIDERS: HassKey[dict[str, CameraWebRTCLegacyProvider]]
20
+ DATA_ICE_SERVERS: HassKey[list[Callable[[], Iterable[RTCIceServer]]]]
21
+ _WEBRTC: str
22
+
23
+ @dataclass(frozen=True)
24
+ class WebRTCMessage:
25
+ @classmethod
26
+ def _get_type(cls) -> str: ...
27
+ def as_dict(self) -> dict[str, Any]: ...
28
+
29
+ @dataclass(frozen=True)
30
+ class WebRTCSession(WebRTCMessage):
31
+ session_id: str
32
+ def __init__(self, session_id) -> None: ...
33
+
34
+ @dataclass(frozen=True)
35
+ class WebRTCAnswer(WebRTCMessage):
36
+ answer: str
37
+ def __init__(self, answer) -> None: ...
38
+
39
+ @dataclass(frozen=True)
40
+ class WebRTCCandidate(WebRTCMessage):
41
+ candidate: str
42
+ def __init__(self, candidate) -> None: ...
43
+
44
+ @dataclass(frozen=True)
45
+ class WebRTCError(WebRTCMessage):
46
+ code: str
47
+ message: str
48
+ def __init__(self, code, message) -> None: ...
49
+ type WebRTCSendMessage = Callable[[WebRTCMessage], None]
50
+
51
+ @dataclass(kw_only=True)
52
+ class WebRTCClientConfiguration:
53
+ configuration: RTCConfiguration = ...
54
+ data_channel: str | None = ...
55
+ get_candidates_upfront: bool = ...
56
+ def to_frontend_dict(self) -> dict[str, Any]: ...
57
+ def __init__(self, *, configuration=..., data_channel=..., get_candidates_upfront=...) -> None: ...
58
+
59
+ class CameraWebRTCProvider(ABC, metaclass=abc.ABCMeta):
60
+ @property
61
+ @abstractmethod
62
+ def domain(self) -> str: ...
63
+ @abstractmethod
64
+ def async_is_supported(self, stream_source: str) -> bool: ...
65
+ @abstractmethod
66
+ async def async_handle_async_webrtc_offer(self, camera: Camera, offer_sdp: str, session_id: str, send_message: WebRTCSendMessage) -> None: ...
67
+ @abstractmethod
68
+ async def async_on_webrtc_candidate(self, session_id: str, candidate: str) -> None: ...
69
+ def async_close_session(self, session_id: str) -> None: ...
70
+
71
+ class CameraWebRTCLegacyProvider(Protocol):
72
+ async def async_is_supported(self, stream_source: str) -> bool: ...
73
+ async def async_handle_web_rtc_offer(self, camera: Camera, offer_sdp: str) -> str | None: ...
74
+
75
+ def async_register_webrtc_provider(hass: HomeAssistant, provider: CameraWebRTCProvider) -> Callable[[], None]: ...
76
+ async def _async_refresh_providers(hass: HomeAssistant) -> None: ...
77
+ async def ws_webrtc_offer(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
78
+ async def ws_get_client_config(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
79
+ async def ws_candidate(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
80
+ def async_register_ws(hass: HomeAssistant) -> None: ...
81
+ async def async_get_supported_provider(hass: HomeAssistant, camera: Camera) -> CameraWebRTCProvider | None: ...
82
+ async def async_get_supported_legacy_provider(hass: HomeAssistant, camera: Camera) -> CameraWebRTCLegacyProvider | None: ...
83
+ def async_register_ice_servers(hass: HomeAssistant, get_ice_server_fn: Callable[[], Iterable[RTCIceServer]]) -> Callable[[], None]: ...
84
+
85
+ _RTSP_PREFIXES: Incomplete
86
+ type RtspToWebRtcProviderType = Callable[[str, str, str], Awaitable[str | None]]
87
+
88
+ class _CameraRtspToWebRTCProvider(CameraWebRTCLegacyProvider):
89
+ _fn: Incomplete
90
+ def __init__(self, fn: RtspToWebRtcProviderType) -> None: ...
91
+ async def async_is_supported(self, stream_source: str) -> bool: ...
92
+ async def async_handle_web_rtc_offer(self, camera: Camera, offer_sdp: str) -> str | None: ...
93
+
94
+ def async_register_rtsp_to_web_rtc_provider(hass: HomeAssistant, domain: str, provider: RtspToWebRtcProviderType) -> Callable[[], None]: ...
95
+ def _async_check_conflicting_legacy_provider(hass: HomeAssistant) -> None: ...
@@ -2,9 +2,8 @@ from .const import DATA_COORDINATOR as DATA_COORDINATOR, DOMAIN as DOMAIN
2
2
  from .coordinator import CanaryDataUpdateCoordinator as CanaryDataUpdateCoordinator
3
3
  from _typeshed import Incomplete
4
4
  from canary.model import Location as Location
5
- from homeassistant.components.alarm_control_panel import AlarmControlPanelEntity as AlarmControlPanelEntity, AlarmControlPanelEntityFeature as AlarmControlPanelEntityFeature
5
+ from homeassistant.components.alarm_control_panel import AlarmControlPanelEntity as AlarmControlPanelEntity, AlarmControlPanelEntityFeature as AlarmControlPanelEntityFeature, AlarmControlPanelState as AlarmControlPanelState
6
6
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
- from homeassistant.const import STATE_ALARM_ARMED_AWAY as STATE_ALARM_ARMED_AWAY, STATE_ALARM_ARMED_HOME as STATE_ALARM_ARMED_HOME, STATE_ALARM_ARMED_NIGHT as STATE_ALARM_ARMED_NIGHT, STATE_ALARM_DISARMED as STATE_ALARM_DISARMED
8
7
  from homeassistant.core import HomeAssistant as HomeAssistant
9
8
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
10
9
  from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
@@ -22,7 +21,7 @@ class CanaryAlarm(CoordinatorEntity[CanaryDataUpdateCoordinator], AlarmControlPa
22
21
  @property
23
22
  def location(self) -> Location: ...
24
23
  @property
25
- def state(self) -> str | None: ...
24
+ def alarm_state(self) -> AlarmControlPanelState | None: ...
26
25
  @property
27
26
  def extra_state_attributes(self) -> dict[str, Any]: ...
28
27
  def alarm_disarm(self, code: str | None = None) -> None: ...
@@ -11,6 +11,7 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEnti
11
11
  from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
12
12
  from typing import Final
13
13
 
14
+ type SensorTypeItem = tuple[str, str | None, str | None, SensorDeviceClass | None, list[str]]
14
15
  SENSOR_VALUE_PRECISION: Final[int]
15
16
  ATTR_AIR_QUALITY: Final[str]
16
17
  CANARY_PRO: Final[str]
@@ -6,6 +6,7 @@ from homeassistant.core import HomeAssistant as HomeAssistant
6
6
  from homeassistant.helpers.start import async_at_started as async_at_started
7
7
 
8
8
  PLATFORMS: Incomplete
9
+ type CertExpiryConfigEntry = ConfigEntry[CertExpiryDataUpdateCoordinator]
9
10
 
10
11
  async def async_setup_entry(hass: HomeAssistant, entry: CertExpiryConfigEntry) -> bool: ...
11
12
  async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
@@ -1,7 +1,6 @@
1
1
  import asyncio
2
2
  from .const import ATTR_AUX_HEAT as ATTR_AUX_HEAT, ATTR_CURRENT_HUMIDITY as ATTR_CURRENT_HUMIDITY, ATTR_CURRENT_TEMPERATURE as ATTR_CURRENT_TEMPERATURE, ATTR_FAN_MODE as ATTR_FAN_MODE, ATTR_FAN_MODES as ATTR_FAN_MODES, ATTR_HUMIDITY as ATTR_HUMIDITY, ATTR_HVAC_ACTION as ATTR_HVAC_ACTION, ATTR_HVAC_MODE as ATTR_HVAC_MODE, ATTR_HVAC_MODES as ATTR_HVAC_MODES, ATTR_MAX_HUMIDITY as ATTR_MAX_HUMIDITY, ATTR_MAX_TEMP as ATTR_MAX_TEMP, ATTR_MIN_HUMIDITY as ATTR_MIN_HUMIDITY, ATTR_MIN_TEMP as ATTR_MIN_TEMP, ATTR_PRESET_MODE as ATTR_PRESET_MODE, ATTR_PRESET_MODES as ATTR_PRESET_MODES, ATTR_SWING_MODE as ATTR_SWING_MODE, ATTR_SWING_MODES as ATTR_SWING_MODES, ATTR_TARGET_TEMP_HIGH as ATTR_TARGET_TEMP_HIGH, ATTR_TARGET_TEMP_LOW as ATTR_TARGET_TEMP_LOW, ATTR_TARGET_TEMP_STEP as ATTR_TARGET_TEMP_STEP, ClimateEntityFeature as ClimateEntityFeature, DOMAIN as DOMAIN, FAN_AUTO as FAN_AUTO, FAN_DIFFUSE as FAN_DIFFUSE, FAN_FOCUS as FAN_FOCUS, FAN_HIGH as FAN_HIGH, FAN_LOW as FAN_LOW, FAN_MEDIUM as FAN_MEDIUM, FAN_MIDDLE as FAN_MIDDLE, FAN_OFF as FAN_OFF, FAN_ON as FAN_ON, FAN_TOP as FAN_TOP, HVACAction as HVACAction, HVACMode as HVACMode, HVAC_MODES as HVAC_MODES, INTENT_GET_TEMPERATURE as INTENT_GET_TEMPERATURE, PRESET_ACTIVITY as PRESET_ACTIVITY, PRESET_AWAY as PRESET_AWAY, PRESET_BOOST as PRESET_BOOST, PRESET_COMFORT as PRESET_COMFORT, PRESET_ECO as PRESET_ECO, PRESET_HOME as PRESET_HOME, PRESET_NONE as PRESET_NONE, PRESET_SLEEP as PRESET_SLEEP, SERVICE_SET_AUX_HEAT as SERVICE_SET_AUX_HEAT, SERVICE_SET_FAN_MODE as SERVICE_SET_FAN_MODE, SERVICE_SET_HUMIDITY as SERVICE_SET_HUMIDITY, SERVICE_SET_HVAC_MODE as SERVICE_SET_HVAC_MODE, SERVICE_SET_PRESET_MODE as SERVICE_SET_PRESET_MODE, SERVICE_SET_SWING_MODE as SERVICE_SET_SWING_MODE, SERVICE_SET_TEMPERATURE as SERVICE_SET_TEMPERATURE, SWING_BOTH as SWING_BOTH, SWING_HORIZONTAL as SWING_HORIZONTAL, SWING_OFF as SWING_OFF, SWING_ON as SWING_ON, SWING_VERTICAL as SWING_VERTICAL, _DEPRECATED_HVAC_MODE_AUTO as _DEPRECATED_HVAC_MODE_AUTO, _DEPRECATED_HVAC_MODE_COOL as _DEPRECATED_HVAC_MODE_COOL, _DEPRECATED_HVAC_MODE_DRY as _DEPRECATED_HVAC_MODE_DRY, _DEPRECATED_HVAC_MODE_FAN_ONLY as _DEPRECATED_HVAC_MODE_FAN_ONLY, _DEPRECATED_HVAC_MODE_HEAT as _DEPRECATED_HVAC_MODE_HEAT, _DEPRECATED_HVAC_MODE_HEAT_COOL as _DEPRECATED_HVAC_MODE_HEAT_COOL, _DEPRECATED_HVAC_MODE_OFF as _DEPRECATED_HVAC_MODE_OFF, _DEPRECATED_SUPPORT_AUX_HEAT as _DEPRECATED_SUPPORT_AUX_HEAT, _DEPRECATED_SUPPORT_FAN_MODE as _DEPRECATED_SUPPORT_FAN_MODE, _DEPRECATED_SUPPORT_PRESET_MODE as _DEPRECATED_SUPPORT_PRESET_MODE, _DEPRECATED_SUPPORT_SWING_MODE as _DEPRECATED_SUPPORT_SWING_MODE, _DEPRECATED_SUPPORT_TARGET_HUMIDITY as _DEPRECATED_SUPPORT_TARGET_HUMIDITY, _DEPRECATED_SUPPORT_TARGET_TEMPERATURE as _DEPRECATED_SUPPORT_TARGET_TEMPERATURE, _DEPRECATED_SUPPORT_TARGET_TEMPERATURE_RANGE as _DEPRECATED_SUPPORT_TARGET_TEMPERATURE_RANGE
3
3
  from _typeshed import Incomplete
4
- from functools import cached_property as cached_property
5
4
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
6
5
  from homeassistant.const import ATTR_TEMPERATURE as ATTR_TEMPERATURE, PRECISION_TENTHS as PRECISION_TENTHS, PRECISION_WHOLE as PRECISION_WHOLE, SERVICE_TOGGLE as SERVICE_TOGGLE, SERVICE_TURN_OFF as SERVICE_TURN_OFF, SERVICE_TURN_ON as SERVICE_TURN_ON, STATE_OFF as STATE_OFF, STATE_ON as STATE_ON, UnitOfTemperature as UnitOfTemperature
7
6
  from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, callback as callback
@@ -81,41 +80,23 @@ class ClimateEntity(Entity, cached_properties=CACHED_PROPERTIES_WITH_ATTR_):
81
80
  def capability_attributes(self) -> dict[str, Any] | None: ...
82
81
  @property
83
82
  def state_attributes(self) -> dict[str, Any]: ...
84
- @cached_property
85
83
  def temperature_unit(self) -> str: ...
86
- @cached_property
87
84
  def current_humidity(self) -> float | None: ...
88
- @cached_property
89
85
  def target_humidity(self) -> float | None: ...
90
- @cached_property
91
86
  def hvac_mode(self) -> HVACMode | None: ...
92
- @cached_property
93
87
  def hvac_modes(self) -> list[HVACMode]: ...
94
- @cached_property
95
88
  def hvac_action(self) -> HVACAction | None: ...
96
- @cached_property
97
89
  def current_temperature(self) -> float | None: ...
98
- @cached_property
99
90
  def target_temperature(self) -> float | None: ...
100
- @cached_property
101
91
  def target_temperature_step(self) -> float | None: ...
102
- @cached_property
103
92
  def target_temperature_high(self) -> float | None: ...
104
- @cached_property
105
93
  def target_temperature_low(self) -> float | None: ...
106
- @cached_property
107
94
  def preset_mode(self) -> str | None: ...
108
- @cached_property
109
95
  def preset_modes(self) -> list[str] | None: ...
110
- @cached_property
111
96
  def is_aux_heat(self) -> bool | None: ...
112
- @cached_property
113
97
  def fan_mode(self) -> str | None: ...
114
- @cached_property
115
98
  def fan_modes(self) -> list[str] | None: ...
116
- @cached_property
117
99
  def swing_mode(self) -> str | None: ...
118
- @cached_property
119
100
  def swing_modes(self) -> list[str] | None: ...
120
101
  def _valid_mode_or_raise(self, mode_type: Literal['preset', 'swing', 'fan', 'hvac'], mode: str | HVACMode, modes: list[str] | list[HVACMode] | None) -> None: ...
121
102
  def set_temperature(self, **kwargs: Any) -> None: ...
@@ -144,15 +125,10 @@ class ClimateEntity(Entity, cached_properties=CACHED_PROPERTIES_WITH_ATTR_):
144
125
  async def async_turn_off(self) -> None: ...
145
126
  def toggle(self) -> None: ...
146
127
  async def async_toggle(self) -> None: ...
147
- @cached_property
148
128
  def supported_features(self) -> ClimateEntityFeature: ...
149
- @cached_property
150
129
  def min_temp(self) -> float: ...
151
- @cached_property
152
130
  def max_temp(self) -> float: ...
153
- @cached_property
154
131
  def min_humidity(self) -> float: ...
155
- @cached_property
156
132
  def max_humidity(self) -> float: ...
157
133
 
158
134
  async def async_service_aux_heat(entity: ClimateEntity, service_call: ServiceCall) -> None: ...
@@ -1,11 +1,13 @@
1
1
  import aiohttp
2
2
  import asyncio
3
3
  from . import alexa_config as alexa_config, google_config as google_config
4
- from .const import DISPATCHER_REMOTE_UPDATE as DISPATCHER_REMOTE_UPDATE, DOMAIN as DOMAIN
4
+ from .const import DISPATCHER_REMOTE_UPDATE as DISPATCHER_REMOTE_UPDATE, DOMAIN as DOMAIN, PREF_ENABLE_CLOUD_ICE_SERVERS as PREF_ENABLE_CLOUD_ICE_SERVERS
5
5
  from .prefs import CloudPreferences as CloudPreferences
6
6
  from _typeshed import Incomplete
7
+ from collections.abc import Callable as Callable
7
8
  from hass_nabucasa.client import CloudClient as Interface
8
9
  from homeassistant.components import google_assistant as google_assistant, persistent_notification as persistent_notification, webhook as webhook
10
+ from homeassistant.components.camera.webrtc import async_register_ice_servers as async_register_ice_servers
9
11
  from homeassistant.core import Context as Context, HassJob as HassJob, HomeAssistant as HomeAssistant, callback as callback
10
12
  from homeassistant.helpers.aiohttp_client import SERVER_SOFTWARE as SERVER_SOFTWARE
11
13
  from homeassistant.helpers.dispatcher import async_dispatcher_send as async_dispatcher_send
@@ -14,6 +16,7 @@ from homeassistant.helpers.issue_registry import IssueSeverity as IssueSeverity,
14
16
  from homeassistant.util.aiohttp import MockRequest as MockRequest, serialize_response as serialize_response
15
17
  from pathlib import Path
16
18
  from typing import Any, Literal
19
+ from webrtc_models import RTCIceServer as RTCIceServer
17
20
 
18
21
  _LOGGER: Incomplete
19
22
  VALID_REPAIR_TRANSLATION_KEYS: Incomplete
@@ -29,6 +32,7 @@ class CloudClient(Interface):
29
32
  _alexa_config_init_lock: Incomplete
30
33
  _google_config_init_lock: Incomplete
31
34
  _relayer_region: Incomplete
35
+ _cloud_ice_servers_listener: Incomplete
32
36
  def __init__(self, hass: HomeAssistant, prefs: CloudPreferences, websession: aiohttp.ClientSession, alexa_user_config: dict[str, Any], google_user_config: dict[str, Any]) -> None: ...
33
37
  @property
34
38
  def base_path(self) -> Path: ...
@@ -33,6 +33,7 @@ PREF_GOOGLE_SETTINGS_VERSION: str
33
33
  PREF_TTS_DEFAULT_VOICE: str
34
34
  PREF_GOOGLE_CONNECTED: str
35
35
  PREF_REMOTE_ALLOW_REMOTE_ENABLE: str
36
+ PREF_ENABLE_CLOUD_ICE_SERVERS: str
36
37
  DEFAULT_TTS_DEFAULT_VOICE: Incomplete
37
38
  DEFAULT_DISABLE_2FA: bool
38
39
  DEFAULT_ALEXA_REPORT_STATE: bool