homeassistant-stubs 2024.10.3__py3-none-any.whl → 2024.11.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (853) hide show
  1. homeassistant-stubs/auth/__init__.pyi +8 -5
  2. homeassistant-stubs/auth/mfa_modules/notify.pyi +1 -0
  3. homeassistant-stubs/auth/models.pyi +8 -5
  4. homeassistant-stubs/auth/permissions/types.pyi +7 -0
  5. homeassistant-stubs/auth/permissions/util.pyi +2 -0
  6. homeassistant-stubs/auth/providers/__init__.pyi +5 -4
  7. homeassistant-stubs/auth/providers/command_line.pyi +2 -2
  8. homeassistant-stubs/auth/providers/homeassistant.pyi +2 -2
  9. homeassistant-stubs/auth/providers/insecure_example.pyi +2 -3
  10. homeassistant-stubs/auth/providers/trusted_networks.pyi +5 -2
  11. homeassistant-stubs/bootstrap.pyi +1 -0
  12. homeassistant-stubs/components/abode/alarm_control_panel.pyi +2 -3
  13. homeassistant-stubs/components/accuweather/__init__.pyi +1 -9
  14. homeassistant-stubs/components/accuweather/coordinator.pyi +11 -2
  15. homeassistant-stubs/components/accuweather/diagnostics.pyi +1 -1
  16. homeassistant-stubs/components/accuweather/sensor.pyi +1 -2
  17. homeassistant-stubs/components/accuweather/system_health.pyi +1 -1
  18. homeassistant-stubs/components/accuweather/weather.pyi +1 -2
  19. homeassistant-stubs/components/acmeda/__init__.pyi +1 -0
  20. homeassistant-stubs/components/adguard/__init__.pyi +1 -0
  21. homeassistant-stubs/components/adguard/config_flow.pyi +1 -1
  22. homeassistant-stubs/components/aftership/__init__.pyi +2 -0
  23. homeassistant-stubs/components/airgradient/__init__.pyi +1 -0
  24. homeassistant-stubs/components/airgradient/update.pyi +0 -2
  25. homeassistant-stubs/components/airly/__init__.pyi +1 -0
  26. homeassistant-stubs/components/airnow/__init__.pyi +1 -0
  27. homeassistant-stubs/components/airthings/__init__.pyi +3 -0
  28. homeassistant-stubs/components/airthings_ble/__init__.pyi +2 -11
  29. homeassistant-stubs/components/airthings_ble/coordinator.pyi +21 -0
  30. homeassistant-stubs/components/airthings_ble/sensor.pyi +1 -1
  31. homeassistant-stubs/components/airtouch5/__init__.pyi +2 -1
  32. homeassistant-stubs/components/airvisual/__init__.pyi +1 -0
  33. homeassistant-stubs/components/airvisual/config_flow.pyi +1 -1
  34. homeassistant-stubs/components/airvisual_pro/__init__.pyi +1 -0
  35. homeassistant-stubs/components/airvisual_pro/config_flow.pyi +2 -3
  36. homeassistant-stubs/components/airzone/__init__.pyi +1 -0
  37. homeassistant-stubs/components/airzone/switch.pyi +33 -0
  38. homeassistant-stubs/components/airzone_cloud/__init__.pyi +1 -0
  39. homeassistant-stubs/components/airzone_cloud/select.pyi +10 -2
  40. homeassistant-stubs/components/airzone_cloud/switch.pyi +33 -0
  41. homeassistant-stubs/components/alarm_control_panel/__init__.pyi +13 -6
  42. homeassistant-stubs/components/alarm_control_panel/const.pyi +12 -0
  43. homeassistant-stubs/components/alarm_control_panel/device_condition.pyi +2 -2
  44. homeassistant-stubs/components/alarm_control_panel/device_trigger.pyi +2 -2
  45. homeassistant-stubs/components/alarm_control_panel/reproduce_state.pyi +2 -2
  46. homeassistant-stubs/components/alexa/capabilities.pyi +2 -2
  47. homeassistant-stubs/components/alexa/handlers.pyi +2 -2
  48. homeassistant-stubs/components/amberelectric/__init__.pyi +1 -0
  49. homeassistant-stubs/components/ambient_network/__init__.pyi +1 -0
  50. homeassistant-stubs/components/ambient_station/__init__.pyi +1 -0
  51. homeassistant-stubs/components/analytics/__init__.pyi +2 -0
  52. homeassistant-stubs/components/analytics/analytics.pyi +1 -0
  53. homeassistant-stubs/components/analytics_insights/__init__.pyi +1 -0
  54. homeassistant-stubs/components/analytics_insights/config_flow.pyi +1 -1
  55. homeassistant-stubs/components/analytics_insights/const.pyi +1 -0
  56. homeassistant-stubs/components/analytics_insights/coordinator.pyi +8 -2
  57. homeassistant-stubs/components/analytics_insights/sensor.pyi +4 -0
  58. homeassistant-stubs/components/android_ip_webcam/__init__.pyi +3 -5
  59. homeassistant-stubs/components/android_ip_webcam/binary_sensor.pyi +3 -4
  60. homeassistant-stubs/components/android_ip_webcam/camera.pyi +2 -3
  61. homeassistant-stubs/components/android_ip_webcam/coordinator.pyi +3 -2
  62. homeassistant-stubs/components/android_ip_webcam/sensor.pyi +2 -4
  63. homeassistant-stubs/components/android_ip_webcam/switch.pyi +2 -4
  64. homeassistant-stubs/components/androidtv/__init__.pyi +3 -1
  65. homeassistant-stubs/components/androidtv/config_flow.pyi +2 -1
  66. homeassistant-stubs/components/androidtv/const.pyi +2 -1
  67. homeassistant-stubs/components/androidtv/entity.pyi +5 -2
  68. homeassistant-stubs/components/androidtv/media_player.pyi +5 -6
  69. homeassistant-stubs/components/androidtv_remote/config_flow.pyi +5 -7
  70. homeassistant-stubs/components/anova/__init__.pyi +2 -1
  71. homeassistant-stubs/components/anova/config_flow.pyi +2 -1
  72. homeassistant-stubs/components/anova/models.pyi +1 -0
  73. homeassistant-stubs/components/anthemav/__init__.pyi +2 -0
  74. homeassistant-stubs/components/apache_kafka/__init__.pyi +1 -1
  75. homeassistant-stubs/components/apcupsd/__init__.pyi +1 -0
  76. homeassistant-stubs/components/apple_tv/__init__.pyi +1 -0
  77. homeassistant-stubs/components/apple_tv/config_flow.pyi +5 -1
  78. homeassistant-stubs/components/apsystems/__init__.pyi +1 -0
  79. homeassistant-stubs/components/apsystems/sensor.pyi +2 -2
  80. homeassistant-stubs/components/aquostv/media_player.pyi +1 -1
  81. homeassistant-stubs/components/aranet/__init__.pyi +3 -3
  82. homeassistant-stubs/components/aranet/sensor.pyi +4 -4
  83. homeassistant-stubs/components/arcam_fmj/__init__.pyi +1 -0
  84. homeassistant-stubs/components/arcam_fmj/config_flow.pyi +2 -0
  85. homeassistant-stubs/components/arcam_fmj/media_player.pyi +1 -1
  86. homeassistant-stubs/components/aseko_pool_live/__init__.pyi +4 -6
  87. homeassistant-stubs/components/aseko_pool_live/binary_sensor.pyi +2 -4
  88. homeassistant-stubs/components/aseko_pool_live/config_flow.pyi +2 -3
  89. homeassistant-stubs/components/aseko_pool_live/coordinator.pyi +2 -0
  90. homeassistant-stubs/components/aseko_pool_live/sensor.pyi +2 -4
  91. homeassistant-stubs/components/assist_pipeline/pipeline.pyi +2 -1
  92. homeassistant-stubs/components/asuswrt/__init__.pyi +1 -0
  93. homeassistant-stubs/components/asuswrt/bridge.pyi +4 -2
  94. homeassistant-stubs/components/autarco/__init__.pyi +1 -0
  95. homeassistant-stubs/components/auth/__init__.pyi +5 -0
  96. homeassistant-stubs/components/auth/login_flow.pyi +1 -1
  97. homeassistant-stubs/components/auth/mfa_setup_flow.pyi +4 -2
  98. homeassistant-stubs/components/automation/__init__.pyi +0 -14
  99. homeassistant-stubs/components/awair/__init__.pyi +4 -6
  100. homeassistant-stubs/components/awair/config_flow.pyi +1 -0
  101. homeassistant-stubs/components/awair/coordinator.pyi +1 -0
  102. homeassistant-stubs/components/awair/sensor.pyi +2 -2
  103. homeassistant-stubs/components/axis/__init__.pyi +1 -0
  104. homeassistant-stubs/components/axis/config_flow.pyi +2 -2
  105. homeassistant-stubs/components/backup/__init__.pyi +2 -2
  106. homeassistant-stubs/components/backup/const.pyi +3 -0
  107. homeassistant-stubs/components/backup/http.pyi +1 -1
  108. homeassistant-stubs/components/backup/manager.pyi +25 -11
  109. homeassistant-stubs/components/backup/websocket.pyi +2 -2
  110. homeassistant-stubs/components/baf/__init__.pyi +2 -0
  111. homeassistant-stubs/components/bang_olufsen/__init__.pyi +3 -2
  112. homeassistant-stubs/components/bang_olufsen/const.pyi +3 -2
  113. homeassistant-stubs/components/bang_olufsen/media_player.pyi +14 -6
  114. homeassistant-stubs/components/bang_olufsen/websocket.pyi +1 -0
  115. homeassistant-stubs/components/binary_sensor/__init__.pyi +0 -3
  116. homeassistant-stubs/components/blue_current/__init__.pyi +4 -3
  117. homeassistant-stubs/components/blue_current/config_flow.pyi +1 -2
  118. homeassistant-stubs/components/blue_current/sensor.pyi +2 -3
  119. homeassistant-stubs/components/blueprint/__init__.pyi +2 -2
  120. homeassistant-stubs/components/bluesound/__init__.pyi +2 -1
  121. homeassistant-stubs/components/bluesound/const.pyi +0 -4
  122. homeassistant-stubs/components/bluesound/media_player.pyi +6 -14
  123. homeassistant-stubs/components/bluesound/services.pyi +21 -0
  124. homeassistant-stubs/components/bluetooth/active_update_coordinator.pyi +1 -1
  125. homeassistant-stubs/components/bluetooth/active_update_processor.pyi +1 -1
  126. homeassistant-stubs/components/bluetooth/match.pyi +1 -1
  127. homeassistant-stubs/components/bluetooth/models.pyi +4 -0
  128. homeassistant-stubs/components/bluetooth/passive_update_processor.pyi +4 -4
  129. homeassistant-stubs/components/bmw_connected_drive/__init__.pyi +1 -0
  130. homeassistant-stubs/components/bmw_connected_drive/config_flow.pyi +4 -2
  131. homeassistant-stubs/components/bond/__init__.pyi +1 -0
  132. homeassistant-stubs/components/braviatv/config_flow.pyi +1 -2
  133. homeassistant-stubs/components/braviatv/coordinator.pyi +1 -1
  134. homeassistant-stubs/components/brother/__init__.pyi +1 -0
  135. homeassistant-stubs/components/brother/config_flow.pyi +2 -4
  136. homeassistant-stubs/components/bryant_evolution/__init__.pyi +2 -0
  137. homeassistant-stubs/components/bryant_evolution/config_flow.pyi +1 -4
  138. homeassistant-stubs/components/bthome/config_flow.pyi +1 -1
  139. homeassistant-stubs/components/bthome/coordinator.pyi +1 -1
  140. homeassistant-stubs/components/bthome/types.pyi +2 -0
  141. homeassistant-stubs/components/button/__init__.pyi +0 -3
  142. homeassistant-stubs/components/calendar/trigger.pyi +3 -1
  143. homeassistant-stubs/components/cambridge_audio/__init__.pyi +14 -0
  144. homeassistant-stubs/components/cambridge_audio/config_flow.pyi +14 -0
  145. homeassistant-stubs/components/cambridge_audio/const.pyi +9 -0
  146. homeassistant-stubs/components/cambridge_audio/diagnostics.pyi +5 -0
  147. homeassistant-stubs/components/cambridge_audio/entity.pyi +21 -0
  148. homeassistant-stubs/components/cambridge_audio/media_player.pyi +71 -0
  149. homeassistant-stubs/components/cambridge_audio/select.pyi +34 -0
  150. homeassistant-stubs/components/cambridge_audio/switch.pyi +30 -0
  151. homeassistant-stubs/components/camera/__init__.pyi +39 -22
  152. homeassistant-stubs/components/camera/const.pyi +1 -2
  153. homeassistant-stubs/components/camera/diagnostics.pyi +1 -1
  154. homeassistant-stubs/components/camera/helper.pyi +6 -0
  155. homeassistant-stubs/components/camera/webrtc.pyi +96 -0
  156. homeassistant-stubs/components/canary/alarm_control_panel.pyi +2 -3
  157. homeassistant-stubs/components/canary/sensor.pyi +1 -0
  158. homeassistant-stubs/components/cert_expiry/__init__.pyi +1 -0
  159. homeassistant-stubs/components/climate/__init__.pyi +0 -24
  160. homeassistant-stubs/components/cloud/client.pyi +5 -1
  161. homeassistant-stubs/components/cloud/const.pyi +1 -0
  162. homeassistant-stubs/components/cloud/http_api.pyi +2 -2
  163. homeassistant-stubs/components/cloud/prefs.pyi +4 -2
  164. homeassistant-stubs/components/co2signal/__init__.pyi +1 -0
  165. homeassistant-stubs/components/co2signal/config_flow.pyi +1 -2
  166. homeassistant-stubs/components/config/automation.pyi +1 -1
  167. homeassistant-stubs/components/config/script.pyi +1 -1
  168. homeassistant-stubs/components/config/view.pyi +2 -2
  169. homeassistant-stubs/components/configurator/__init__.pyi +2 -0
  170. homeassistant-stubs/components/counter/__init__.pyi +1 -1
  171. homeassistant-stubs/components/cover/__init__.pyi +12 -8
  172. homeassistant-stubs/components/cover/device_condition.pyi +2 -2
  173. homeassistant-stubs/components/cover/device_trigger.pyi +2 -2
  174. homeassistant-stubs/components/cover/reproduce_state.pyi +2 -2
  175. homeassistant-stubs/components/date/__init__.pyi +0 -4
  176. homeassistant-stubs/components/datetime/__init__.pyi +0 -4
  177. homeassistant-stubs/components/deako/__init__.pyi +2 -0
  178. homeassistant-stubs/components/deconz/alarm_control_panel.pyi +2 -3
  179. homeassistant-stubs/components/deconz/binary_sensor.pyi +10 -1
  180. homeassistant-stubs/components/deconz/config_flow.pyi +1 -1
  181. homeassistant-stubs/components/deconz/device_trigger.pyi +4 -0
  182. homeassistant-stubs/components/deconz/entity.pyi +6 -2
  183. homeassistant-stubs/components/deconz/light.pyi +1 -1
  184. homeassistant-stubs/components/deconz/number.pyi +3 -1
  185. homeassistant-stubs/components/demo/alarm_control_panel.pyi +2 -1
  186. homeassistant-stubs/components/demo/update.pyi +5 -2
  187. homeassistant-stubs/components/derivative/sensor.pyi +1 -4
  188. homeassistant-stubs/components/device_automation/__init__.pyi +2 -0
  189. homeassistant-stubs/components/device_tracker/config_entry.pyi +0 -10
  190. homeassistant-stubs/components/device_tracker/legacy.pyi +0 -2
  191. homeassistant-stubs/components/devolo_home_control/__init__.pyi +2 -0
  192. homeassistant-stubs/components/devolo_home_control/config_flow.pyi +2 -2
  193. homeassistant-stubs/components/devolo_home_network/__init__.pyi +4 -2
  194. homeassistant-stubs/components/devolo_home_network/binary_sensor.pyi +2 -2
  195. homeassistant-stubs/components/devolo_home_network/config_flow.pyi +4 -1
  196. homeassistant-stubs/components/devolo_home_network/coordinator.pyi +13 -0
  197. homeassistant-stubs/components/devolo_home_network/device_tracker.pyi +4 -3
  198. homeassistant-stubs/components/devolo_home_network/entity.pyi +8 -3
  199. homeassistant-stubs/components/devolo_home_network/image.pyi +2 -2
  200. homeassistant-stubs/components/devolo_home_network/sensor.pyi +9 -10
  201. homeassistant-stubs/components/devolo_home_network/switch.pyi +6 -6
  202. homeassistant-stubs/components/devolo_home_network/update.pyi +3 -3
  203. homeassistant-stubs/components/diagnostics/util.pyi +1 -1
  204. homeassistant-stubs/components/discovergy/__init__.pyi +1 -0
  205. homeassistant-stubs/components/discovergy/config_flow.pyi +2 -2
  206. homeassistant-stubs/components/dlna_dmr/config_flow.pyi +1 -0
  207. homeassistant-stubs/components/dlna_dmr/media_player.pyi +1 -1
  208. homeassistant-stubs/components/dlna_dms/dms.pyi +1 -3
  209. homeassistant-stubs/components/doorbird/config_flow.pyi +1 -1
  210. homeassistant-stubs/components/doorbird/device.pyi +0 -6
  211. homeassistant-stubs/components/doorbird/models.pyi +1 -0
  212. homeassistant-stubs/components/dormakaba_dkey/config_flow.pyi +1 -2
  213. homeassistant-stubs/components/dsmr/__init__.pyi +1 -0
  214. homeassistant-stubs/components/duotecno/entity.pyi +1 -1
  215. homeassistant-stubs/components/ecovacs/__init__.pyi +1 -0
  216. homeassistant-stubs/components/ecowitt/__init__.pyi +2 -0
  217. homeassistant-stubs/components/efergy/__init__.pyi +2 -0
  218. homeassistant-stubs/components/electric_kiwi/config_flow.pyi +1 -4
  219. homeassistant-stubs/components/elevenlabs/__init__.pyi +1 -0
  220. homeassistant-stubs/components/elgato/__init__.pyi +1 -0
  221. homeassistant-stubs/components/elkm1/__init__.pyi +1 -0
  222. homeassistant-stubs/components/elkm1/alarm_control_panel.pyi +2 -3
  223. homeassistant-stubs/components/elkm1/config_flow.pyi +3 -1
  224. homeassistant-stubs/components/energy/data.pyi +1 -0
  225. homeassistant-stubs/components/energy/types.pyi +2 -0
  226. homeassistant-stubs/components/energy/websocket_api.pyi +3 -0
  227. homeassistant-stubs/components/enigma2/__init__.pyi +1 -0
  228. homeassistant-stubs/components/enigma2/config_flow.pyi +0 -2
  229. homeassistant-stubs/components/enigma2/media_player.pyi +1 -6
  230. homeassistant-stubs/components/enphase_envoy/__init__.pyi +3 -1
  231. homeassistant-stubs/components/enphase_envoy/config_flow.pyi +4 -6
  232. homeassistant-stubs/components/enphase_envoy/const.pyi +2 -0
  233. homeassistant-stubs/components/enphase_envoy/coordinator.pyi +1 -0
  234. homeassistant-stubs/components/esphome/alarm_control_panel.pyi +5 -6
  235. homeassistant-stubs/components/esphome/assist_satellite.pyi +1 -1
  236. homeassistant-stubs/components/esphome/config_flow.pyi +6 -5
  237. homeassistant-stubs/components/esphome/entity.pyi +3 -3
  238. homeassistant-stubs/components/esphome/entry_data.pyi +1 -0
  239. homeassistant-stubs/components/esphome/enum_mapper.pyi +1 -1
  240. homeassistant-stubs/components/esphome/ffmpeg_proxy.pyi +7 -3
  241. homeassistant-stubs/components/esphome/update.pyi +3 -1
  242. homeassistant-stubs/components/event/__init__.pyi +0 -3
  243. homeassistant-stubs/components/evil_genius_labs/util.pyi +1 -1
  244. homeassistant-stubs/components/evohome/climate.pyi +2 -3
  245. homeassistant-stubs/components/evohome/entity.pyi +1 -1
  246. homeassistant-stubs/components/fan/__init__.pyi +0 -8
  247. homeassistant-stubs/components/fastdotcom/__init__.pyi +1 -1
  248. homeassistant-stubs/components/feedreader/__init__.pyi +1 -0
  249. homeassistant-stubs/components/feedreader/config_flow.pyi +1 -3
  250. homeassistant-stubs/components/feedreader/event.pyi +1 -0
  251. homeassistant-stubs/components/filesize/__init__.pyi +1 -0
  252. homeassistant-stubs/components/fitbit/api.pyi +1 -1
  253. homeassistant-stubs/components/fitbit/config_flow.pyi +1 -2
  254. homeassistant-stubs/components/flexit_bacnet/sensor.pyi +2 -1
  255. homeassistant-stubs/components/flux_led/config_flow.pyi +3 -1
  256. homeassistant-stubs/components/forecast_solar/__init__.pyi +1 -0
  257. homeassistant-stubs/components/fritz/config_flow.pyi +5 -5
  258. homeassistant-stubs/components/fritz/update.pyi +1 -1
  259. homeassistant-stubs/components/fritzbox/climate.pyi +1 -0
  260. homeassistant-stubs/components/fritzbox/config_flow.pyi +5 -6
  261. homeassistant-stubs/components/fritzbox/coordinator.pyi +1 -0
  262. homeassistant-stubs/components/fritzbox_callmonitor/__init__.pyi +2 -1
  263. homeassistant-stubs/components/fritzbox_callmonitor/config_flow.pyi +5 -0
  264. homeassistant-stubs/components/fronius/__init__.pyi +2 -1
  265. homeassistant-stubs/components/fronius/config_flow.pyi +1 -2
  266. homeassistant-stubs/components/fronius/const.pyi +1 -0
  267. homeassistant-stubs/components/fronius/coordinator.pyi +1 -1
  268. homeassistant-stubs/components/frontend/__init__.pyi +0 -3
  269. homeassistant-stubs/components/fujitsu_fglair/__init__.pyi +1 -0
  270. homeassistant-stubs/components/fujitsu_fglair/config_flow.pyi +1 -2
  271. homeassistant-stubs/components/fully_kiosk/config_flow.pyi +1 -0
  272. homeassistant-stubs/components/fyta/__init__.pyi +1 -0
  273. homeassistant-stubs/components/fyta/config_flow.pyi +0 -2
  274. homeassistant-stubs/components/fyta/coordinator.pyi +6 -1
  275. homeassistant-stubs/components/geo_location/__init__.pyi +0 -5
  276. homeassistant-stubs/components/gios/__init__.pyi +1 -0
  277. homeassistant-stubs/components/glances/__init__.pyi +1 -0
  278. homeassistant-stubs/components/glances/config_flow.pyi +1 -2
  279. homeassistant-stubs/components/go2rtc/__init__.pyi +41 -0
  280. homeassistant-stubs/components/go2rtc/config_flow.pyi +7 -0
  281. homeassistant-stubs/components/go2rtc/const.pyi +7 -0
  282. homeassistant-stubs/components/go2rtc/server.pyi +44 -0
  283. homeassistant-stubs/components/goalzero/config_flow.pyi +1 -2
  284. homeassistant-stubs/components/goalzero/coordinator.pyi +1 -0
  285. homeassistant-stubs/components/google/__init__.pyi +1 -1
  286. homeassistant-stubs/components/google/api.pyi +2 -2
  287. homeassistant-stubs/components/google/calendar.pyi +6 -5
  288. homeassistant-stubs/components/google/config_flow.pyi +2 -3
  289. homeassistant-stubs/components/google_assistant_sdk/config_flow.pyi +1 -2
  290. homeassistant-stubs/components/google_photos/config_flow.pyi +2 -3
  291. homeassistant-stubs/components/google_photos/types.pyi +2 -0
  292. homeassistant-stubs/components/google_sheets/__init__.pyi +1 -0
  293. homeassistant-stubs/components/google_sheets/config_flow.pyi +1 -3
  294. homeassistant-stubs/components/govee_ble/__init__.pyi +11 -0
  295. homeassistant-stubs/components/govee_ble/binary_sensor.pyi +22 -0
  296. homeassistant-stubs/components/govee_ble/config_flow.pyi +16 -0
  297. homeassistant-stubs/components/govee_ble/const.pyi +2 -0
  298. homeassistant-stubs/components/govee_ble/coordinator.pyi +24 -0
  299. homeassistant-stubs/components/govee_ble/device.pyi +4 -0
  300. homeassistant-stubs/components/govee_ble/event.pyi +27 -0
  301. homeassistant-stubs/components/govee_ble/sensor.pyi +25 -0
  302. homeassistant-stubs/components/gpsd/__init__.pyi +2 -0
  303. homeassistant-stubs/components/greeneye_monitor/sensor.pyi +1 -0
  304. homeassistant-stubs/components/group/cover.pyi +2 -2
  305. homeassistant-stubs/components/group/registry.pyi +2 -1
  306. homeassistant-stubs/components/group/sensor.pyi +10 -11
  307. homeassistant-stubs/components/guardian/config_flow.pyi +0 -1
  308. homeassistant-stubs/components/guardian/util.pyi +1 -1
  309. homeassistant-stubs/components/hardkernel/__init__.pyi +2 -1
  310. homeassistant-stubs/components/here_travel_time/config_flow.pyi +4 -5
  311. homeassistant-stubs/components/history_stats/__init__.pyi +1 -0
  312. homeassistant-stubs/components/history_stats/coordinator.pyi +2 -1
  313. homeassistant-stubs/components/history_stats/sensor.pyi +2 -1
  314. homeassistant-stubs/components/holiday/config_flow.pyi +1 -3
  315. homeassistant-stubs/components/homeassistant/__init__.pyi +1 -0
  316. homeassistant-stubs/components/homeassistant/triggers/numeric_state.pyi +2 -1
  317. homeassistant-stubs/components/homeassistant/triggers/time.pyi +7 -1
  318. homeassistant-stubs/components/homeassistant_alerts/coordinator.pyi +2 -1
  319. homeassistant-stubs/components/homeassistant_green/__init__.pyi +2 -1
  320. homeassistant-stubs/components/homeassistant_green/config_flow.pyi +2 -1
  321. homeassistant-stubs/components/homeassistant_hardware/firmware_config_flow.pyi +2 -1
  322. homeassistant-stubs/components/homeassistant_hardware/silabs_multiprotocol_addon.pyi +2 -1
  323. homeassistant-stubs/components/homeassistant_hardware/util.pyi +2 -1
  324. homeassistant-stubs/components/homeassistant_sky_connect/config_flow.pyi +3 -3
  325. homeassistant-stubs/components/homeassistant_yellow/__init__.pyi +2 -1
  326. homeassistant-stubs/components/homekit/__init__.pyi +0 -1
  327. homeassistant-stubs/components/homekit/models.pyi +1 -0
  328. homeassistant-stubs/components/homekit/type_covers.pyi +2 -2
  329. homeassistant-stubs/components/homekit/type_security_systems.pyi +2 -2
  330. homeassistant-stubs/components/homekit_controller/alarm_control_panel.pyi +4 -4
  331. homeassistant-stubs/components/homekit_controller/config_flow.pyi +4 -1
  332. homeassistant-stubs/components/homekit_controller/utils.pyi +1 -0
  333. homeassistant-stubs/components/homewizard/__init__.pyi +1 -0
  334. homeassistant-stubs/components/homewizard/config_flow.pyi +1 -2
  335. homeassistant-stubs/components/homewizard/helpers.pyi +1 -1
  336. homeassistant-stubs/components/homewizard/sensor.pyi +1 -1
  337. homeassistant-stubs/components/homeworks/config_flow.pyi +2 -5
  338. homeassistant-stubs/components/http/ban.pyi +2 -1
  339. homeassistant-stubs/components/http/data_validator.pyi +1 -1
  340. homeassistant-stubs/components/http/decorators.pyi +7 -4
  341. homeassistant-stubs/components/huawei_lte/config_flow.pyi +2 -0
  342. homeassistant-stubs/components/huawei_lte/device_tracker.pyi +1 -0
  343. homeassistant-stubs/components/humidifier/__init__.pyi +0 -10
  344. homeassistant-stubs/components/husqvarna_automower/__init__.pyi +2 -0
  345. homeassistant-stubs/components/husqvarna_automower/binary_sensor.pyi +1 -1
  346. homeassistant-stubs/components/husqvarna_automower/button.pyi +1 -3
  347. homeassistant-stubs/components/husqvarna_automower/config_flow.pyi +2 -3
  348. homeassistant-stubs/components/husqvarna_automower/entity.pyi +5 -4
  349. homeassistant-stubs/components/husqvarna_automower/number.pyi +8 -8
  350. homeassistant-stubs/components/husqvarna_automower/sensor.pyi +24 -3
  351. homeassistant-stubs/components/husqvarna_automower/switch.pyi +2 -5
  352. homeassistant-stubs/components/hydrawise/config_flow.pyi +1 -4
  353. homeassistant-stubs/components/hyperion/config_flow.pyi +1 -0
  354. homeassistant-stubs/components/ibeacon/__init__.pyi +1 -0
  355. homeassistant-stubs/components/image/__init__.pyi +7 -6
  356. homeassistant-stubs/components/imap/__init__.pyi +1 -0
  357. homeassistant-stubs/components/imap/config_flow.pyi +1 -2
  358. homeassistant-stubs/components/imgw_pib/__init__.pyi +1 -0
  359. homeassistant-stubs/components/intent/__init__.pyi +5 -0
  360. homeassistant-stubs/components/intent/timers.pyi +1 -2
  361. homeassistant-stubs/components/iotty/__init__.pyi +1 -0
  362. homeassistant-stubs/components/iotty/coordinator.pyi +1 -1
  363. homeassistant-stubs/components/ipp/__init__.pyi +1 -0
  364. homeassistant-stubs/components/islamic_prayer_times/__init__.pyi +1 -0
  365. homeassistant-stubs/components/jellyfin/__init__.pyi +2 -2
  366. homeassistant-stubs/components/jellyfin/config_flow.pyi +0 -1
  367. homeassistant-stubs/components/jellyfin/coordinator.pyi +8 -15
  368. homeassistant-stubs/components/jellyfin/entity.pyi +22 -7
  369. homeassistant-stubs/components/jellyfin/media_player.pyi +6 -18
  370. homeassistant-stubs/components/jellyfin/remote.pyi +19 -0
  371. homeassistant-stubs/components/jellyfin/sensor.pyi +10 -8
  372. homeassistant-stubs/components/jewish_calendar/config_flow.pyi +1 -0
  373. homeassistant-stubs/components/jvc_projector/__init__.pyi +1 -0
  374. homeassistant-stubs/components/jvc_projector/config_flow.pyi +1 -2
  375. homeassistant-stubs/components/knocki/__init__.pyi +1 -0
  376. homeassistant-stubs/components/knx/__init__.pyi +0 -1
  377. homeassistant-stubs/components/knx/climate.pyi +2 -0
  378. homeassistant-stubs/components/knx/const.pyi +4 -0
  379. homeassistant-stubs/components/knx/notify.pyi +3 -15
  380. homeassistant-stubs/components/knx/schema.pyi +1 -0
  381. homeassistant-stubs/components/knx/storage/config_store.pyi +2 -2
  382. homeassistant-stubs/components/knx/websocket.pyi +4 -1
  383. homeassistant-stubs/components/kraken/const.pyi +1 -0
  384. homeassistant-stubs/components/lacrosse_view/config_flow.pyi +1 -2
  385. homeassistant-stubs/components/lamarzocco/__init__.pyi +1 -1
  386. homeassistant-stubs/components/lamarzocco/binary_sensor.pyi +1 -1
  387. homeassistant-stubs/components/lamarzocco/button.pyi +3 -1
  388. homeassistant-stubs/components/lamarzocco/calendar.pyi +1 -2
  389. homeassistant-stubs/components/lamarzocco/config_flow.pyi +2 -5
  390. homeassistant-stubs/components/lamarzocco/coordinator.pyi +5 -4
  391. homeassistant-stubs/components/lamarzocco/diagnostics.pyi +1 -1
  392. homeassistant-stubs/components/lamarzocco/number.pyi +3 -2
  393. homeassistant-stubs/components/lamarzocco/select.pyi +5 -1
  394. homeassistant-stubs/components/lamarzocco/sensor.pyi +1 -1
  395. homeassistant-stubs/components/lamarzocco/switch.pyi +3 -2
  396. homeassistant-stubs/components/lamarzocco/update.pyi +3 -2
  397. homeassistant-stubs/components/lametric/config_flow.pyi +1 -2
  398. homeassistant-stubs/components/lametric/helpers.pyi +1 -1
  399. homeassistant-stubs/components/lawn_mower/__init__.pyi +0 -3
  400. homeassistant-stubs/components/lcn/__init__.pyi +2 -2
  401. homeassistant-stubs/components/lcn/binary_sensor.pyi +3 -0
  402. homeassistant-stubs/components/lcn/config_flow.pyi +2 -5
  403. homeassistant-stubs/components/lcn/const.pyi +1 -0
  404. homeassistant-stubs/components/lcn/helpers.pyi +4 -0
  405. homeassistant-stubs/components/lcn/sensor.pyi +4 -1
  406. homeassistant-stubs/components/lcn/switch.pyi +24 -1
  407. homeassistant-stubs/components/lcn/websocket.pyi +3 -1
  408. homeassistant-stubs/components/lektrico/__init__.pyi +1 -0
  409. homeassistant-stubs/components/lektrico/switch.pyi +31 -0
  410. homeassistant-stubs/components/lidarr/__init__.pyi +4 -2
  411. homeassistant-stubs/components/lidarr/config_flow.pyi +1 -5
  412. homeassistant-stubs/components/lidarr/coordinator.pyi +4 -1
  413. homeassistant-stubs/components/lifx/config_flow.pyi +3 -1
  414. homeassistant-stubs/components/lifx/coordinator.pyi +0 -6
  415. homeassistant-stubs/components/light/__init__.pyi +0 -15
  416. homeassistant-stubs/components/linear_garage_door/config_flow.pyi +1 -2
  417. homeassistant-stubs/components/linear_garage_door/coordinator.pyi +1 -1
  418. homeassistant-stubs/components/linkplay/__init__.pyi +2 -1
  419. homeassistant-stubs/components/linkplay/const.pyi +4 -0
  420. homeassistant-stubs/components/linkplay/media_player.pyi +12 -4
  421. homeassistant-stubs/components/litterrobot/__init__.pyi +1 -0
  422. homeassistant-stubs/components/litterrobot/vacuum.pyi +0 -1
  423. homeassistant-stubs/components/local_todo/__init__.pyi +1 -0
  424. homeassistant-stubs/components/lock/__init__.pyi +0 -10
  425. homeassistant-stubs/components/logbook/models.pyi +0 -7
  426. homeassistant-stubs/components/lookin/coordinator.pyi +1 -1
  427. homeassistant-stubs/components/madvr/__init__.pyi +1 -0
  428. homeassistant-stubs/components/madvr/config_flow.pyi +2 -5
  429. homeassistant-stubs/components/manual/alarm_control_panel.pyi +19 -10
  430. homeassistant-stubs/components/mastodon/__init__.pyi +1 -0
  431. homeassistant-stubs/components/mastodon/config_flow.pyi +2 -0
  432. homeassistant-stubs/components/matter/api.pyi +1 -1
  433. homeassistant-stubs/components/matter/climate.pyi +1 -0
  434. homeassistant-stubs/components/matter/config_flow.pyi +3 -1
  435. homeassistant-stubs/components/matter/entity.pyi +2 -2
  436. homeassistant-stubs/components/matter/fan.pyi +1 -0
  437. homeassistant-stubs/components/matter/light.pyi +1 -0
  438. homeassistant-stubs/components/matter/lock.pyi +1 -0
  439. homeassistant-stubs/components/matter/models.pyi +2 -0
  440. homeassistant-stubs/components/matter/select.pyi +2 -0
  441. homeassistant-stubs/components/matter/switch.pyi +1 -0
  442. homeassistant-stubs/components/matter/update.pyi +1 -0
  443. homeassistant-stubs/components/matter/vacuum.pyi +47 -0
  444. homeassistant-stubs/components/matter/valve.pyi +1 -0
  445. homeassistant-stubs/components/media_player/__init__.pyi +0 -33
  446. homeassistant-stubs/components/mikrotik/__init__.pyi +1 -0
  447. homeassistant-stubs/components/mikrotik/config_flow.pyi +0 -1
  448. homeassistant-stubs/components/modbus/__init__.pyi +1 -1
  449. homeassistant-stubs/components/modbus/const.pyi +0 -2
  450. homeassistant-stubs/components/modbus/cover.pyi +2 -2
  451. homeassistant-stubs/components/modbus/modbus.pyi +1 -2
  452. homeassistant-stubs/components/modbus/validators.pyi +1 -1
  453. homeassistant-stubs/components/mold_indicator/config_flow.pyi +9 -0
  454. homeassistant-stubs/components/mold_indicator/sensor.pyi +6 -2
  455. homeassistant-stubs/components/monzo/config_flow.pyi +1 -2
  456. homeassistant-stubs/components/mopeka/__init__.pyi +1 -0
  457. homeassistant-stubs/components/mqtt/__init__.pyi +2 -1
  458. homeassistant-stubs/components/mqtt/alarm_control_panel.pyi +3 -3
  459. homeassistant-stubs/components/mqtt/client.pyi +4 -0
  460. homeassistant-stubs/components/mqtt/config_flow.pyi +3 -2
  461. homeassistant-stubs/components/mqtt/const.pyi +3 -1
  462. homeassistant-stubs/components/mqtt/cover.pyi +1 -1
  463. homeassistant-stubs/components/mqtt/discovery.pyi +26 -9
  464. homeassistant-stubs/components/mqtt/entity.pyi +5 -2
  465. homeassistant-stubs/components/mqtt/models.pyi +11 -0
  466. homeassistant-stubs/components/mqtt/schemas.pyi +15 -7
  467. homeassistant-stubs/components/mqtt/update.pyi +7 -11
  468. homeassistant-stubs/components/mysensors/const.pyi +6 -1
  469. homeassistant-stubs/components/myuplink/__init__.pyi +1 -0
  470. homeassistant-stubs/components/myuplink/config_flow.pyi +1 -2
  471. homeassistant-stubs/components/myuplink/helpers.pyi +6 -0
  472. homeassistant-stubs/components/nam/__init__.pyi +1 -0
  473. homeassistant-stubs/components/nam/config_flow.pyi +4 -7
  474. homeassistant-stubs/components/nanoleaf/__init__.pyi +1 -0
  475. homeassistant-stubs/components/nanoleaf/config_flow.pyi +1 -2
  476. homeassistant-stubs/components/nest/__init__.pyi +1 -1
  477. homeassistant-stubs/components/nest/api.pyi +5 -3
  478. homeassistant-stubs/components/nest/camera.pyi +37 -16
  479. homeassistant-stubs/components/nest/config_flow.pyi +10 -4
  480. homeassistant-stubs/components/nest/const.pyi +2 -1
  481. homeassistant-stubs/components/netatmo/climate.pyi +1 -0
  482. homeassistant-stubs/components/network/websocket.pyi +2 -0
  483. homeassistant-stubs/components/nextdns/__init__.pyi +1 -0
  484. homeassistant-stubs/components/nextdns/config_flow.pyi +1 -2
  485. homeassistant-stubs/components/notify/__init__.pyi +0 -2
  486. homeassistant-stubs/components/notion/config_flow.pyi +1 -3
  487. homeassistant-stubs/components/number/__init__.pyi +0 -8
  488. homeassistant-stubs/components/nut/__init__.pyi +1 -0
  489. homeassistant-stubs/components/onboarding/views.pyi +1 -0
  490. homeassistant-stubs/components/oncue/config_flow.pyi +1 -3
  491. homeassistant-stubs/components/oncue/types.pyi +3 -0
  492. homeassistant-stubs/components/onewire/__init__.pyi +1 -0
  493. homeassistant-stubs/components/onkyo/__init__.pyi +25 -0
  494. homeassistant-stubs/components/onkyo/config_flow.pyi +30 -0
  495. homeassistant-stubs/components/onkyo/const.pyi +68 -0
  496. homeassistant-stubs/components/onkyo/media_player.pyi +24 -26
  497. homeassistant-stubs/components/onkyo/receiver.pyi +23 -3
  498. homeassistant-stubs/components/onkyo/services.pyi +14 -0
  499. homeassistant-stubs/components/openai_conversation/__init__.pyi +19 -0
  500. homeassistant-stubs/components/openai_conversation/config_flow.pyi +30 -0
  501. homeassistant-stubs/components/openai_conversation/const.pyi +14 -0
  502. homeassistant-stubs/components/openai_conversation/conversation.pyi +36 -0
  503. homeassistant-stubs/components/openexchangerates/config_flow.pyi +1 -2
  504. homeassistant-stubs/components/oralb/__init__.pyi +1 -0
  505. homeassistant-stubs/components/otbr/__init__.pyi +1 -0
  506. homeassistant-stubs/components/otbr/config_flow.pyi +2 -1
  507. homeassistant-stubs/components/otbr/silabs_multiprotocol.pyi +1 -1
  508. homeassistant-stubs/components/otbr/util.pyi +1 -1
  509. homeassistant-stubs/components/overkiz/alarm_control_panel.pyi +12 -12
  510. homeassistant-stubs/components/overkiz/climate/atlantic_pass_apc_zone_control_zone.pyi +0 -3
  511. homeassistant-stubs/components/overkiz/config_flow.pyi +1 -2
  512. homeassistant-stubs/components/p1_monitor/__init__.pyi +3 -2
  513. homeassistant-stubs/components/p1_monitor/config_flow.pyi +2 -2
  514. homeassistant-stubs/components/p1_monitor/coordinator.pyi +1 -1
  515. homeassistant-stubs/components/p1_monitor/diagnostics.pyi +1 -1
  516. homeassistant-stubs/components/panel_custom/__init__.pyi +28 -0
  517. homeassistant-stubs/components/pi_hole/__init__.pyi +1 -0
  518. homeassistant-stubs/components/pi_hole/update.pyi +1 -1
  519. homeassistant-stubs/components/ping/__init__.pyi +1 -0
  520. homeassistant-stubs/components/plugwise/__init__.pyi +1 -0
  521. homeassistant-stubs/components/plugwise/config_flow.pyi +8 -6
  522. homeassistant-stubs/components/plugwise/const.pyi +4 -1
  523. homeassistant-stubs/components/plugwise/util.pyi +1 -1
  524. homeassistant-stubs/components/powerwall/config_flow.pyi +0 -1
  525. homeassistant-stubs/components/powerwall/models.pyi +1 -0
  526. homeassistant-stubs/components/private_ble_device/coordinator.pyi +3 -0
  527. homeassistant-stubs/components/prometheus/__init__.pyi +7 -4
  528. homeassistant-stubs/components/proximity/coordinator.pyi +1 -0
  529. homeassistant-stubs/components/purpleair/config_flow.pyi +0 -1
  530. homeassistant-stubs/components/pvoutput/config_flow.pyi +1 -2
  531. homeassistant-stubs/components/qnap_qsw/sensor.pyi +8 -2
  532. homeassistant-stubs/components/radarr/__init__.pyi +1 -0
  533. homeassistant-stubs/components/radarr/config_flow.pyi +1 -3
  534. homeassistant-stubs/components/radio_browser/__init__.pyi +10 -0
  535. homeassistant-stubs/components/radio_browser/config_flow.pyi +8 -0
  536. homeassistant-stubs/components/radio_browser/const.pyi +5 -0
  537. homeassistant-stubs/components/radio_browser/media_source.pyi +28 -0
  538. homeassistant-stubs/components/rainforest_raven/__init__.pyi +3 -5
  539. homeassistant-stubs/components/rainforest_raven/coordinator.pyi +3 -12
  540. homeassistant-stubs/components/rainforest_raven/diagnostics.pyi +2 -4
  541. homeassistant-stubs/components/rainforest_raven/sensor.pyi +4 -5
  542. homeassistant-stubs/components/rainmachine/__init__.pyi +1 -0
  543. homeassistant-stubs/components/rainmachine/switch.pyi +1 -1
  544. homeassistant-stubs/components/rainmachine/update.pyi +7 -1
  545. homeassistant-stubs/components/raspberry_pi/__init__.pyi +2 -1
  546. homeassistant-stubs/components/recorder/core.pyi +2 -6
  547. homeassistant-stubs/components/recorder/migration.pyi +36 -16
  548. homeassistant-stubs/components/recorder/models/state.pyi +0 -7
  549. homeassistant-stubs/components/recorder/queries.pyi +1 -0
  550. homeassistant-stubs/components/recorder/table_managers/__init__.pyi +2 -2
  551. homeassistant-stubs/components/recorder/util.pyi +10 -5
  552. homeassistant-stubs/components/remote/__init__.pyi +0 -4
  553. homeassistant-stubs/components/renault/__init__.pyi +1 -0
  554. homeassistant-stubs/components/renault/renault_vehicle.pyi +1 -1
  555. homeassistant-stubs/components/repairs/issue_handler.pyi +1 -1
  556. homeassistant-stubs/components/rfxtrx/cover.pyi +1 -2
  557. homeassistant-stubs/components/rfxtrx/entity.pyi +1 -1
  558. homeassistant-stubs/components/ring/__init__.pyi +1 -0
  559. homeassistant-stubs/components/ring/config_flow.pyi +5 -2
  560. homeassistant-stubs/components/ring/coordinator.pyi +1 -1
  561. homeassistant-stubs/components/ring/entity.pyi +2 -2
  562. homeassistant-stubs/components/roborock/__init__.pyi +1 -0
  563. homeassistant-stubs/components/roborock/config_flow.pyi +1 -2
  564. homeassistant-stubs/components/roborock/coordinator.pyi +0 -5
  565. homeassistant-stubs/components/roku/browse_media.pyi +2 -0
  566. homeassistant-stubs/components/roku/helpers.pyi +5 -2
  567. homeassistant-stubs/components/rtsp_to_webrtc/__init__.pyi +1 -3
  568. homeassistant-stubs/components/rtsp_to_webrtc/config_flow.pyi +1 -1
  569. homeassistant-stubs/components/samsungtv/__init__.pyi +2 -2
  570. homeassistant-stubs/components/samsungtv/bridge.pyi +1 -1
  571. homeassistant-stubs/components/samsungtv/config_flow.pyi +2 -2
  572. homeassistant-stubs/components/scrape/__init__.pyi +1 -0
  573. homeassistant-stubs/components/scrape/coordinator.pyi +2 -1
  574. homeassistant-stubs/components/script/__init__.pyi +0 -16
  575. homeassistant-stubs/components/select/__init__.pyi +0 -3
  576. homeassistant-stubs/components/sensibo/__init__.pyi +1 -0
  577. homeassistant-stubs/components/sensibo/config_flow.pyi +5 -2
  578. homeassistant-stubs/components/sensibo/entity.pyi +1 -1
  579. homeassistant-stubs/components/sensibo/update.pyi +1 -1
  580. homeassistant-stubs/components/sensor/__init__.pyi +0 -9
  581. homeassistant-stubs/components/sensor/websocket_api.pyi +3 -0
  582. homeassistant-stubs/components/sensoterra/__init__.pyi +1 -0
  583. homeassistant-stubs/components/senz/__init__.pyi +2 -0
  584. homeassistant-stubs/components/sfr_box/binary_sensor.pyi +2 -2
  585. homeassistant-stubs/components/sfr_box/button.pyi +1 -1
  586. homeassistant-stubs/components/sfr_box/config_flow.pyi +1 -2
  587. homeassistant-stubs/components/sfr_box/coordinator.pyi +1 -1
  588. homeassistant-stubs/components/sfr_box/sensor.pyi +2 -2
  589. homeassistant-stubs/components/shell_command/__init__.pyi +13 -0
  590. homeassistant-stubs/components/shelly/binary_sensor.pyi +1 -1
  591. homeassistant-stubs/components/shelly/button.pyi +1 -1
  592. homeassistant-stubs/components/shelly/config_flow.pyi +1 -3
  593. homeassistant-stubs/components/shelly/const.pyi +1 -1
  594. homeassistant-stubs/components/shelly/coordinator.pyi +2 -4
  595. homeassistant-stubs/components/shelly/light.pyi +13 -2
  596. homeassistant-stubs/components/shelly/number.pyi +1 -1
  597. homeassistant-stubs/components/shelly/select.pyi +1 -1
  598. homeassistant-stubs/components/shelly/sensor.pyi +1 -1
  599. homeassistant-stubs/components/shelly/switch.pyi +10 -1
  600. homeassistant-stubs/components/shelly/text.pyi +1 -1
  601. homeassistant-stubs/components/shelly/update.pyi +2 -2
  602. homeassistant-stubs/components/shelly/utils.pyi +3 -2
  603. homeassistant-stubs/components/simplisafe/alarm_control_panel.pyi +2 -3
  604. homeassistant-stubs/components/simplisafe/typing.pyi +4 -0
  605. homeassistant-stubs/components/siren/__init__.pyi +0 -3
  606. homeassistant-stubs/components/sleepiq/config_flow.pyi +1 -3
  607. homeassistant-stubs/components/sleepiq/entity.pyi +3 -2
  608. homeassistant-stubs/components/smhi/config_flow.pyi +1 -3
  609. homeassistant-stubs/components/smlight/__init__.pyi +1 -0
  610. homeassistant-stubs/components/smlight/config_flow.pyi +0 -2
  611. homeassistant-stubs/components/smlight/coordinator.pyi +1 -1
  612. homeassistant-stubs/components/smlight/update.pyi +4 -2
  613. homeassistant-stubs/components/solarlog/__init__.pyi +1 -0
  614. homeassistant-stubs/components/solarlog/config_flow.pyi +1 -4
  615. homeassistant-stubs/components/solarlog/coordinator.pyi +6 -0
  616. homeassistant-stubs/components/sonarr/config_flow.pyi +1 -4
  617. homeassistant-stubs/components/speedtestdotnet/__init__.pyi +2 -1
  618. homeassistant-stubs/components/spotify/__init__.pyi +5 -0
  619. homeassistant-stubs/components/spotify/application_credentials.pyi +4 -0
  620. homeassistant-stubs/components/spotify/browse_media.pyi +49 -0
  621. homeassistant-stubs/components/spotify/config_flow.pyi +19 -0
  622. homeassistant-stubs/components/spotify/const.pyi +9 -0
  623. homeassistant-stubs/components/spotify/coordinator.pyi +34 -0
  624. homeassistant-stubs/components/spotify/diagnostics.pyi +5 -0
  625. homeassistant-stubs/components/spotify/entity.pyi +10 -0
  626. homeassistant-stubs/components/spotify/media_player.pyi +82 -0
  627. homeassistant-stubs/components/spotify/models.pyi +12 -0
  628. homeassistant-stubs/components/spotify/sensor.pyi +31 -0
  629. homeassistant-stubs/components/spotify/system_health.pyi +6 -0
  630. homeassistant-stubs/components/spotify/util.pyi +7 -0
  631. homeassistant-stubs/components/squeezebox/__init__.pyi +6 -3
  632. homeassistant-stubs/components/squeezebox/const.pyi +5 -0
  633. homeassistant-stubs/components/squeezebox/coordinator.pyi +15 -3
  634. homeassistant-stubs/components/squeezebox/media_player.pyi +12 -13
  635. homeassistant-stubs/components/ssdp/__init__.pyi +1 -0
  636. homeassistant-stubs/components/statistics/config_flow.pyi +8 -2
  637. homeassistant-stubs/components/statistics/sensor.pyi +20 -22
  638. homeassistant-stubs/components/steamist/config_flow.pyi +3 -1
  639. homeassistant-stubs/components/sun/entity.pyi +1 -0
  640. homeassistant-stubs/components/surepetcare/config_flow.pyi +1 -2
  641. homeassistant-stubs/components/switch/__init__.pyi +0 -2
  642. homeassistant-stubs/components/switch_as_x/__init__.pyi +3 -0
  643. homeassistant-stubs/components/switch_as_x/config_flow.pyi +18 -0
  644. homeassistant-stubs/components/switch_as_x/const.pyi +5 -0
  645. homeassistant-stubs/components/switch_as_x/cover.pyi +18 -0
  646. homeassistant-stubs/components/switch_as_x/entity.pyi +35 -0
  647. homeassistant-stubs/components/switch_as_x/fan.pyi +17 -0
  648. homeassistant-stubs/components/switch_as_x/light.pyi +13 -0
  649. homeassistant-stubs/components/switch_as_x/lock.pyi +17 -0
  650. homeassistant-stubs/components/switch_as_x/siren.pyi +12 -0
  651. homeassistant-stubs/components/switch_as_x/valve.pyi +19 -0
  652. homeassistant-stubs/components/switchbee/entity.pyi +2 -2
  653. homeassistant-stubs/components/switchbee/switch.pyi +2 -1
  654. homeassistant-stubs/components/switchbot_cloud/__init__.pyi +2 -1
  655. homeassistant-stubs/components/switchbot_cloud/coordinator.pyi +2 -0
  656. homeassistant-stubs/components/switchbot_cloud/lock.pyi +18 -0
  657. homeassistant-stubs/components/switcher_kis/__init__.pyi +1 -0
  658. homeassistant-stubs/components/switcher_kis/button.pyi +2 -5
  659. homeassistant-stubs/components/switcher_kis/climate.pyi +2 -5
  660. homeassistant-stubs/components/switcher_kis/config_flow.pyi +1 -2
  661. homeassistant-stubs/components/switcher_kis/coordinator.pyi +1 -1
  662. homeassistant-stubs/components/switcher_kis/cover.pyi +16 -9
  663. homeassistant-stubs/components/switcher_kis/entity.pyi +9 -0
  664. homeassistant-stubs/components/switcher_kis/light.pyi +44 -0
  665. homeassistant-stubs/components/switcher_kis/sensor.pyi +2 -5
  666. homeassistant-stubs/components/switcher_kis/switch.pyi +2 -5
  667. homeassistant-stubs/components/synology_dsm/coordinator.pyi +2 -2
  668. homeassistant-stubs/components/synology_dsm/entity.pyi +2 -1
  669. homeassistant-stubs/components/synology_dsm/update.pyi +1 -1
  670. homeassistant-stubs/components/system_log/__init__.pyi +1 -0
  671. homeassistant-stubs/components/systemmonitor/__init__.pyi +1 -0
  672. homeassistant-stubs/components/tailscale/config_flow.pyi +1 -2
  673. homeassistant-stubs/components/tailwind/config_flow.pyi +1 -2
  674. homeassistant-stubs/components/tailwind/typing.pyi +2 -0
  675. homeassistant-stubs/components/tautulli/__init__.pyi +1 -0
  676. homeassistant-stubs/components/technove/helpers.pyi +1 -1
  677. homeassistant-stubs/components/tedee/__init__.pyi +1 -1
  678. homeassistant-stubs/components/tedee/binary_sensor.pyi +1 -1
  679. homeassistant-stubs/components/tedee/config_flow.pyi +2 -5
  680. homeassistant-stubs/components/tedee/coordinator.pyi +5 -5
  681. homeassistant-stubs/components/tedee/lock.pyi +2 -2
  682. homeassistant-stubs/components/tedee/sensor.pyi +1 -1
  683. homeassistant-stubs/components/text/__init__.pyi +0 -6
  684. homeassistant-stubs/components/thethingsnetwork/config_flow.pyi +1 -2
  685. homeassistant-stubs/components/thethingsnetwork/sensor.pyi +2 -1
  686. homeassistant-stubs/components/threshold/binary_sensor.pyi +1 -3
  687. homeassistant-stubs/components/tibber/sensor.pyi +1 -0
  688. homeassistant-stubs/components/tile/device_tracker.pyi +3 -6
  689. homeassistant-stubs/components/time/__init__.pyi +0 -4
  690. homeassistant-stubs/components/timer/__init__.pyi +1 -1
  691. homeassistant-stubs/components/tod/binary_sensor.pyi +2 -1
  692. homeassistant-stubs/components/todo/__init__.pyi +0 -2
  693. homeassistant-stubs/components/tplink/__init__.pyi +1 -0
  694. homeassistant-stubs/components/tplink/button.pyi +1 -1
  695. homeassistant-stubs/components/tplink/config_flow.pyi +5 -3
  696. homeassistant-stubs/components/tplink/entity.pyi +4 -4
  697. homeassistant-stubs/components/tplink_omada/__init__.pyi +4 -3
  698. homeassistant-stubs/components/tplink_omada/binary_sensor.pyi +3 -5
  699. homeassistant-stubs/components/tplink_omada/const.pyi +11 -0
  700. homeassistant-stubs/components/tplink_omada/coordinator.pyi +1 -1
  701. homeassistant-stubs/components/tplink_omada/device_tracker.pyi +3 -4
  702. homeassistant-stubs/components/tplink_omada/entity.pyi +3 -1
  703. homeassistant-stubs/components/tplink_omada/sensor.pyi +34 -0
  704. homeassistant-stubs/components/tplink_omada/switch.pyi +3 -5
  705. homeassistant-stubs/components/tplink_omada/update.pyi +3 -6
  706. homeassistant-stubs/components/trace/__init__.pyi +5 -25
  707. homeassistant-stubs/components/trace/const.pyi +1 -1
  708. homeassistant-stubs/components/trace/models.pyi +2 -0
  709. homeassistant-stubs/components/trace/util.pyi +17 -0
  710. homeassistant-stubs/components/trace/websocket_api.pyi +1 -1
  711. homeassistant-stubs/components/tractive/__init__.pyi +1 -0
  712. homeassistant-stubs/components/trafikverket_camera/config_flow.pyi +2 -2
  713. homeassistant-stubs/components/trafikverket_ferry/config_flow.pyi +1 -2
  714. homeassistant-stubs/components/trafikverket_train/config_flow.pyi +0 -1
  715. homeassistant-stubs/components/trafikverket_weatherstation/config_flow.pyi +3 -2
  716. homeassistant-stubs/components/transmission/__init__.pyi +1 -0
  717. homeassistant-stubs/components/transmission/config_flow.pyi +1 -2
  718. homeassistant-stubs/components/trend/binary_sensor.pyi +1 -2
  719. homeassistant-stubs/components/tts/__init__.pyi +0 -5
  720. homeassistant-stubs/components/tts/const.pyi +1 -0
  721. homeassistant-stubs/components/twentemilieu/__init__.pyi +4 -0
  722. homeassistant-stubs/components/unifi/__init__.pyi +1 -0
  723. homeassistant-stubs/components/unifi/config_flow.pyi +1 -2
  724. homeassistant-stubs/components/unifi/device_tracker.pyi +0 -3
  725. homeassistant-stubs/components/unifi/update.pyi +1 -1
  726. homeassistant-stubs/components/unifiprotect/camera.pyi +3 -2
  727. homeassistant-stubs/components/unifiprotect/config_flow.pyi +0 -1
  728. homeassistant-stubs/components/unifiprotect/data.pyi +2 -0
  729. homeassistant-stubs/components/update/__init__.pyi +7 -12
  730. homeassistant-stubs/components/update/const.pyi +2 -0
  731. homeassistant-stubs/components/vacuum/__init__.pyi +0 -6
  732. homeassistant-stubs/components/vallox/config_flow.pyi +2 -5
  733. homeassistant-stubs/components/velbus/entity.pyi +1 -1
  734. homeassistant-stubs/components/vlc_telnet/__init__.pyi +1 -0
  735. homeassistant-stubs/components/vlc_telnet/config_flow.pyi +2 -3
  736. homeassistant-stubs/components/vlc_telnet/media_player.pyi +1 -1
  737. homeassistant-stubs/components/wallbox/__init__.pyi +1 -1
  738. homeassistant-stubs/components/wallbox/config_flow.pyi +2 -4
  739. homeassistant-stubs/components/wallbox/coordinator.pyi +3 -3
  740. homeassistant-stubs/components/water_heater/__init__.pyi +0 -9
  741. homeassistant-stubs/components/weather/__init__.pyi +0 -19
  742. homeassistant-stubs/components/webostv/config_flow.pyi +2 -2
  743. homeassistant-stubs/components/webostv/media_player.pyi +1 -1
  744. homeassistant-stubs/components/websocket_api/connection.pyi +3 -0
  745. homeassistant-stubs/components/websocket_api/const.pyi +4 -1
  746. homeassistant-stubs/components/wemo/__init__.pyi +4 -1
  747. homeassistant-stubs/components/wemo/coordinator.pyi +3 -0
  748. homeassistant-stubs/components/withings/__init__.pyi +4 -2
  749. homeassistant-stubs/components/withings/config_flow.pyi +1 -2
  750. homeassistant-stubs/components/withings/coordinator.pyi +7 -2
  751. homeassistant-stubs/components/withings/entity.pyi +14 -2
  752. homeassistant-stubs/components/withings/sensor.pyi +19 -4
  753. homeassistant-stubs/components/wiz/__init__.pyi +1 -0
  754. homeassistant-stubs/components/wled/__init__.pyi +1 -0
  755. homeassistant-stubs/components/wled/helpers.pyi +1 -1
  756. homeassistant-stubs/components/workday/__init__.pyi +13 -0
  757. homeassistant-stubs/components/workday/binary_sensor.pyi +46 -0
  758. homeassistant-stubs/components/workday/config_flow.pyi +33 -0
  759. homeassistant-stubs/components/workday/const.pyi +18 -0
  760. homeassistant-stubs/components/workday/diagnostics.pyi +5 -0
  761. homeassistant-stubs/components/workday/repairs.pyi +28 -0
  762. homeassistant-stubs/components/xiaomi_ble/config_flow.pyi +7 -2
  763. homeassistant-stubs/components/xiaomi_ble/coordinator.pyi +1 -1
  764. homeassistant-stubs/components/xiaomi_ble/types.pyi +2 -0
  765. homeassistant-stubs/components/yale_smart_alarm/__init__.pyi +1 -0
  766. homeassistant-stubs/components/yale_smart_alarm/alarm_control_panel.pyi +2 -3
  767. homeassistant-stubs/components/yale_smart_alarm/binary_sensor.pyi +7 -0
  768. homeassistant-stubs/components/yale_smart_alarm/config_flow.pyi +0 -1
  769. homeassistant-stubs/components/yale_smart_alarm/const.pyi +2 -1
  770. homeassistant-stubs/components/yale_smart_alarm/select.pyi +21 -0
  771. homeassistant-stubs/components/yalexs_ble/__init__.pyi +1 -0
  772. homeassistant-stubs/components/yalexs_ble/config_flow.pyi +6 -2
  773. homeassistant-stubs/components/youtube/config_flow.pyi +1 -2
  774. homeassistant-stubs/components/zwave_js/api.pyi +1 -1
  775. homeassistant-stubs/components/zwave_js/config_flow.pyi +6 -4
  776. homeassistant-stubs/components/zwave_js/discovery.pyi +2 -1
  777. homeassistant-stubs/components/zwave_js/discovery_data_template.pyi +1 -1
  778. homeassistant-stubs/components/zwave_js/light.pyi +8 -6
  779. homeassistant-stubs/components/zwave_js/services.pyi +4 -1
  780. homeassistant-stubs/components/zwave_js/update.pyi +2 -1
  781. homeassistant-stubs/config.pyi +3 -24
  782. homeassistant-stubs/config_entries.pyi +52 -27
  783. homeassistant-stubs/const.pyi +16 -12
  784. homeassistant-stubs/core.pyi +40 -109
  785. homeassistant-stubs/core_config.pyi +108 -0
  786. homeassistant-stubs/data_entry_flow.pyi +22 -18
  787. homeassistant-stubs/helpers/area_registry.pyi +6 -8
  788. homeassistant-stubs/helpers/category_registry.pyi +1 -0
  789. homeassistant-stubs/helpers/check_config.pyi +2 -1
  790. homeassistant-stubs/helpers/collection.pyi +6 -4
  791. homeassistant-stubs/helpers/condition.pyi +1 -0
  792. homeassistant-stubs/helpers/config_entry_flow.pyi +3 -2
  793. homeassistant-stubs/helpers/config_validation.pyi +6 -6
  794. homeassistant-stubs/helpers/data_entry_flow.pyi +1 -1
  795. homeassistant-stubs/helpers/debounce.pyi +1 -1
  796. homeassistant-stubs/helpers/deprecation.pyi +9 -4
  797. homeassistant-stubs/helpers/device_registry.pyi +7 -8
  798. homeassistant-stubs/helpers/discovery_flow.pyi +5 -5
  799. homeassistant-stubs/helpers/dispatcher.pyi +9 -8
  800. homeassistant-stubs/helpers/entity.pyi +2 -31
  801. homeassistant-stubs/helpers/entity_registry.pyi +7 -9
  802. homeassistant-stubs/helpers/event.pyi +2 -1
  803. homeassistant-stubs/helpers/floor_registry.pyi +3 -3
  804. homeassistant-stubs/helpers/frame.pyi +1 -5
  805. homeassistant-stubs/helpers/hassio.pyi +4 -0
  806. homeassistant-stubs/helpers/http.pyi +2 -0
  807. homeassistant-stubs/helpers/intent.pyi +6 -5
  808. homeassistant-stubs/helpers/json.pyi +3 -0
  809. homeassistant-stubs/helpers/label_registry.pyi +3 -3
  810. homeassistant-stubs/helpers/llm.pyi +1 -2
  811. homeassistant-stubs/helpers/network.pyi +1 -0
  812. homeassistant-stubs/helpers/normalized_name_base_registry.pyi +6 -3
  813. homeassistant-stubs/helpers/ratelimit.pyi +1 -1
  814. homeassistant-stubs/helpers/redact.pyi +2 -2
  815. homeassistant-stubs/helpers/registry.pyi +5 -3
  816. homeassistant-stubs/helpers/script.pyi +3 -7
  817. homeassistant-stubs/helpers/selector.pyi +1 -1
  818. homeassistant-stubs/helpers/service.pyi +2 -2
  819. homeassistant-stubs/helpers/service_info/hassio.pyi +11 -0
  820. homeassistant-stubs/helpers/service_info/mqtt.pyi +1 -0
  821. homeassistant-stubs/helpers/significant_change.pyi +3 -0
  822. homeassistant-stubs/helpers/singleton.pyi +3 -2
  823. homeassistant-stubs/helpers/storage.pyi +4 -5
  824. homeassistant-stubs/helpers/sun.pyi +2 -0
  825. homeassistant-stubs/helpers/system_info.pyi +1 -0
  826. homeassistant-stubs/helpers/template.pyi +4 -3
  827. homeassistant-stubs/helpers/trace.pyi +3 -3
  828. homeassistant-stubs/helpers/typing.pyi +13 -0
  829. homeassistant-stubs/helpers/update_coordinator.pyi +4 -4
  830. homeassistant-stubs/loader.pyi +5 -21
  831. homeassistant-stubs/scripts/benchmark/__init__.pyi +1 -1
  832. homeassistant-stubs/util/__init__.pyi +1 -1
  833. homeassistant-stubs/util/async_.pyi +2 -2
  834. homeassistant-stubs/util/decorator.pyi +2 -1
  835. homeassistant-stubs/util/dt.pyi +3 -2
  836. homeassistant-stubs/util/enum.pyi +2 -2
  837. homeassistant-stubs/util/hass_dict.pyi +17 -17
  838. homeassistant-stubs/util/json.pyi +3 -0
  839. homeassistant-stubs/util/limited_size_dict.pyi +1 -1
  840. homeassistant-stubs/util/logging.pyi +8 -8
  841. homeassistant-stubs/util/loop.pyi +1 -1
  842. homeassistant-stubs/util/percentage.pyi +2 -2
  843. homeassistant-stubs/util/read_only_dict.pyi +1 -1
  844. homeassistant-stubs/util/signal_type.pyi +3 -3
  845. homeassistant-stubs/util/timeout.pyi +3 -1
  846. homeassistant-stubs/util/variance.pyi +3 -3
  847. homeassistant-stubs/util/yaml/loader.pyi +2 -4
  848. {homeassistant_stubs-2024.10.3.dist-info → homeassistant_stubs-2024.11.0.dist-info}/METADATA +2 -2
  849. {homeassistant_stubs-2024.10.3.dist-info → homeassistant_stubs-2024.11.0.dist-info}/RECORD +851 -772
  850. homeassistant-stubs/components/jellyfin/models.pyi +0 -10
  851. homeassistant-stubs/components/map/__init__.pyi +0 -14
  852. {homeassistant_stubs-2024.10.3.dist-info → homeassistant_stubs-2024.11.0.dist-info}/WHEEL +0 -0
  853. {homeassistant_stubs-2024.10.3.dist-info → homeassistant_stubs-2024.11.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,7 +1,6 @@
1
1
  from .const import DOMAIN as DOMAIN, SERVICE_PRESS as SERVICE_PRESS
2
2
  from _typeshed import Incomplete
3
3
  from enum import StrEnum
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 STATE_UNAVAILABLE as STATE_UNAVAILABLE
7
6
  from homeassistant.core import HomeAssistant as HomeAssistant
@@ -44,9 +43,7 @@ class ButtonEntity(RestoreEntity, cached_properties=CACHED_PROPERTIES_WITH_ATTR_
44
43
  _attr_state: None
45
44
  __last_pressed_isoformat: str | None
46
45
  def _default_to_device_class_name(self) -> bool: ...
47
- @cached_property
48
46
  def device_class(self) -> ButtonDeviceClass | None: ...
49
- @cached_property
50
47
  def state(self) -> str | None: ...
51
48
  def __set_state(self, state: str | None) -> None: ...
52
49
  async def _async_press_action(self) -> None: ...
@@ -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
@@ -24,6 +26,7 @@ from homeassistant.helpers.template import Template as Template
24
26
  from homeassistant.helpers.typing import ConfigType as ConfigType, VolDictType as VolDictType
25
27
  from homeassistant.loader import bind_hass as bind_hass
26
28
  from typing import Any, Final
29
+ from webrtc_models import RTCIceCandidate as RTCIceCandidate
27
30
 
28
31
  _LOGGER: Incomplete
29
32
  ENTITY_ID_FORMAT: Final[Incomplete]
@@ -47,7 +50,6 @@ class CameraEntityFeature(IntFlag):
47
50
 
48
51
  _DEPRECATED_SUPPORT_ON_OFF: Final[Incomplete]
49
52
  _DEPRECATED_SUPPORT_STREAM: Final[Incomplete]
50
- RTSP_PREFIXES: Incomplete
51
53
  DEFAULT_CONTENT_TYPE: Final[str]
52
54
  ENTITY_IMAGE_URL: Final[str]
53
55
  TOKEN_CHANGE_INTERVAL: Final[Incomplete]
@@ -70,6 +72,11 @@ class Image:
70
72
  def __gt__(self, other): ...
71
73
  def __ge__(self, other): ...
72
74
 
75
+ @dataclass(frozen=True)
76
+ class CameraCapabilities:
77
+ frontend_stream_types: set[StreamType]
78
+ def __init__(self, frontend_stream_types) -> None: ...
79
+
73
80
  async def async_request_stream(hass: HomeAssistant, entity_id: str, fmt: str) -> str: ...
74
81
  async def _async_get_image(camera: Camera, timeout: int = 10, width: int | None = None, height: int | None = None) -> Image: ...
75
82
  async def async_get_image(hass: HomeAssistant, entity_id: str, timeout: int = 10, width: int | None = None, height: int | None = None) -> Image: ...
@@ -77,10 +84,6 @@ async def _async_get_stream_image(camera: Camera, width: int | None = None, heig
77
84
  async def async_get_stream_source(hass: HomeAssistant, entity_id: str) -> str | None: ...
78
85
  async def async_get_mjpeg_stream(hass: HomeAssistant, request: web.Request, entity_id: str) -> web.StreamResponse | None: ...
79
86
  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
87
  async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
85
88
  async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
86
89
  async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
@@ -100,33 +103,29 @@ class Camera(Entity, cached_properties=CACHED_PROPERTIES_WITH_ATTR_):
100
103
  _attr_should_poll: bool
101
104
  _attr_state: None
102
105
  _attr_supported_features: CameraEntityFeature
106
+ __supports_stream: CameraEntityFeature | None
107
+ _cache: Incomplete
103
108
  stream: Incomplete
104
109
  stream_options: Incomplete
105
110
  content_type: Incomplete
106
111
  access_tokens: Incomplete
107
112
  _warned_old_signature: bool
108
113
  _create_stream_lock: Incomplete
109
- _rtsp_to_webrtc: bool
114
+ _webrtc_provider: Incomplete
115
+ _legacy_webrtc_provider: Incomplete
116
+ _supports_native_sync_webrtc: Incomplete
117
+ _supports_native_async_webrtc: Incomplete
110
118
  def __init__(self) -> None: ...
111
- @cached_property
112
119
  def entity_picture(self) -> str: ...
113
- @cached_property
114
120
  def use_stream_for_stills(self) -> bool: ...
115
- @cached_property
116
121
  def supported_features(self) -> CameraEntityFeature: ...
117
122
  @property
118
123
  def supported_features_compat(self) -> CameraEntityFeature: ...
119
- @cached_property
120
124
  def is_recording(self) -> bool: ...
121
- @cached_property
122
125
  def is_streaming(self) -> bool: ...
123
- @cached_property
124
126
  def brand(self) -> str | None: ...
125
- @cached_property
126
127
  def motion_detection_enabled(self) -> bool: ...
127
- @cached_property
128
128
  def model(self) -> str | None: ...
129
- @cached_property
130
129
  def frame_interval(self) -> float: ...
131
130
  @property
132
131
  def frontend_stream_type(self) -> StreamType | None: ...
@@ -135,13 +134,13 @@ class Camera(Entity, cached_properties=CACHED_PROPERTIES_WITH_ATTR_):
135
134
  async def async_create_stream(self) -> Stream | None: ...
136
135
  async def stream_source(self) -> str | None: ...
137
136
  async def async_handle_web_rtc_offer(self, offer_sdp: str) -> str | None: ...
137
+ async def async_handle_async_webrtc_offer(self, offer_sdp: str, session_id: str, send_message: WebRTCSendMessage) -> None: ...
138
138
  def camera_image(self, width: int | None = None, height: int | None = None) -> bytes | None: ...
139
139
  async def async_camera_image(self, width: int | None = None, height: int | None = None) -> bytes | None: ...
140
140
  async def handle_async_still_stream(self, request: web.Request, interval: float) -> web.StreamResponse: ...
141
141
  async def handle_async_mjpeg_stream(self, request: web.Request) -> web.StreamResponse | None: ...
142
142
  @property
143
143
  def state(self) -> str: ...
144
- @cached_property
145
144
  def is_on(self) -> bool: ...
146
145
  def turn_off(self) -> None: ...
147
146
  async def async_turn_off(self) -> None: ...
@@ -155,8 +154,15 @@ class Camera(Entity, cached_properties=CACHED_PROPERTIES_WITH_ATTR_):
155
154
  def state_attributes(self) -> dict[str, str | None]: ...
156
155
  def async_update_token(self) -> None: ...
157
156
  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: ...
157
+ async def async_refresh_providers(self, *, write_state: bool = True) -> None: ...
158
+ async def _async_get_supported_webrtc_provider[_T](self, fn: Callable[[HomeAssistant, Camera], Coroutine[None, None, _T | None]]) -> _T | None: ...
159
+ def _async_get_webrtc_client_configuration(self) -> WebRTCClientConfiguration: ...
160
+ def async_get_webrtc_client_configuration(self) -> WebRTCClientConfiguration: ...
161
+ async def async_on_webrtc_candidate(self, session_id: str, candidate: RTCIceCandidate) -> None: ...
162
+ def close_webrtc_session(self, session_id: str) -> None: ...
163
+ def _invalidate_camera_capabilities_cache(self) -> None: ...
164
+ def camera_capabilities(self) -> CameraCapabilities: ...
165
+ def async_write_ha_state(self) -> None: ...
160
166
 
161
167
  class CameraView(HomeAssistantView):
162
168
  requires_auth: bool
@@ -175,10 +181,21 @@ class CameraMjpegStream(CameraView):
175
181
  name: str
176
182
  async def handle(self, request: web.Request, camera: Camera) -> web.StreamResponse: ...
177
183
 
184
+ async def ws_camera_capabilities(hass: HomeAssistant, connection: ActiveConnection, msg: dict[str, Any]) -> None: ...
178
185
  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
186
  async def websocket_get_prefs(hass: HomeAssistant, connection: ActiveConnection, msg: dict[str, Any]) -> None: ...
181
187
  async def websocket_update_prefs(hass: HomeAssistant, connection: ActiveConnection, msg: dict[str, Any]) -> None: ...
188
+
189
+ class _TemplateCameraEntity:
190
+ _camera: Incomplete
191
+ _entity_id: Incomplete
192
+ _hass: Incomplete
193
+ _service: Incomplete
194
+ def __init__(self, camera: Camera, service: str) -> None: ...
195
+ def _report_issue(self) -> None: ...
196
+ def __getattr__(self, name: str) -> Any: ...
197
+ def __str__(self) -> str: ...
198
+
182
199
  async def async_handle_snapshot_service(camera: Camera, service_call: ServiceCall) -> None: ...
183
200
  async def async_handle_play_stream_service(camera: Camera, service_call: ServiceCall) -> None: ...
184
201
  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,96 @@
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, RTCIceCandidate, 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: RTCIceCandidate
42
+ def as_dict(self) -> dict[str, Any]: ...
43
+ def __init__(self, candidate) -> None: ...
44
+
45
+ @dataclass(frozen=True)
46
+ class WebRTCError(WebRTCMessage):
47
+ code: str
48
+ message: str
49
+ def __init__(self, code, message) -> None: ...
50
+ type WebRTCSendMessage = Callable[[WebRTCMessage], None]
51
+
52
+ @dataclass(kw_only=True)
53
+ class WebRTCClientConfiguration:
54
+ configuration: RTCConfiguration = ...
55
+ data_channel: str | None = ...
56
+ get_candidates_upfront: bool = ...
57
+ def to_frontend_dict(self) -> dict[str, Any]: ...
58
+ def __init__(self, *, configuration=..., data_channel=..., get_candidates_upfront=...) -> None: ...
59
+
60
+ class CameraWebRTCProvider(ABC, metaclass=abc.ABCMeta):
61
+ @property
62
+ @abstractmethod
63
+ def domain(self) -> str: ...
64
+ @abstractmethod
65
+ def async_is_supported(self, stream_source: str) -> bool: ...
66
+ @abstractmethod
67
+ async def async_handle_async_webrtc_offer(self, camera: Camera, offer_sdp: str, session_id: str, send_message: WebRTCSendMessage) -> None: ...
68
+ @abstractmethod
69
+ async def async_on_webrtc_candidate(self, session_id: str, candidate: RTCIceCandidate) -> None: ...
70
+ def async_close_session(self, session_id: str) -> None: ...
71
+
72
+ class CameraWebRTCLegacyProvider(Protocol):
73
+ async def async_is_supported(self, stream_source: str) -> bool: ...
74
+ async def async_handle_web_rtc_offer(self, camera: Camera, offer_sdp: str) -> str | None: ...
75
+
76
+ def async_register_webrtc_provider(hass: HomeAssistant, provider: CameraWebRTCProvider) -> Callable[[], None]: ...
77
+ async def _async_refresh_providers(hass: HomeAssistant) -> None: ...
78
+ async def ws_webrtc_offer(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
79
+ async def ws_get_client_config(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
80
+ async def ws_candidate(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
81
+ def async_register_ws(hass: HomeAssistant) -> None: ...
82
+ async def async_get_supported_provider(hass: HomeAssistant, camera: Camera) -> CameraWebRTCProvider | None: ...
83
+ async def async_get_supported_legacy_provider(hass: HomeAssistant, camera: Camera) -> CameraWebRTCLegacyProvider | None: ...
84
+ def async_register_ice_servers(hass: HomeAssistant, get_ice_server_fn: Callable[[], Iterable[RTCIceServer]]) -> Callable[[], None]: ...
85
+
86
+ _RTSP_PREFIXES: Incomplete
87
+ type RtspToWebRtcProviderType = Callable[[str, str, str], Awaitable[str | None]]
88
+
89
+ class _CameraRtspToWebRTCProvider(CameraWebRTCLegacyProvider):
90
+ _fn: Incomplete
91
+ def __init__(self, fn: RtspToWebRtcProviderType) -> None: ...
92
+ async def async_is_supported(self, stream_source: str) -> bool: ...
93
+ async def async_handle_web_rtc_offer(self, camera: Camera, offer_sdp: str) -> str | None: ...
94
+
95
+ def async_register_rtsp_to_web_rtc_provider(hass: HomeAssistant, domain: str, provider: RtspToWebRtcProviderType) -> Callable[[], None]: ...
96
+ 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: ...