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.
- homeassistant-stubs/auth/__init__.pyi +8 -5
- homeassistant-stubs/auth/mfa_modules/notify.pyi +1 -0
- homeassistant-stubs/auth/models.pyi +8 -5
- homeassistant-stubs/auth/permissions/types.pyi +7 -0
- homeassistant-stubs/auth/permissions/util.pyi +2 -0
- homeassistant-stubs/auth/providers/__init__.pyi +5 -4
- homeassistant-stubs/auth/providers/command_line.pyi +2 -2
- homeassistant-stubs/auth/providers/homeassistant.pyi +2 -2
- homeassistant-stubs/auth/providers/insecure_example.pyi +2 -3
- homeassistant-stubs/auth/providers/trusted_networks.pyi +5 -2
- homeassistant-stubs/bootstrap.pyi +1 -0
- homeassistant-stubs/components/abode/alarm_control_panel.pyi +2 -3
- homeassistant-stubs/components/accuweather/__init__.pyi +1 -9
- homeassistant-stubs/components/accuweather/coordinator.pyi +11 -2
- homeassistant-stubs/components/accuweather/diagnostics.pyi +1 -1
- homeassistant-stubs/components/accuweather/sensor.pyi +1 -2
- homeassistant-stubs/components/accuweather/system_health.pyi +1 -1
- homeassistant-stubs/components/accuweather/weather.pyi +1 -2
- homeassistant-stubs/components/acmeda/__init__.pyi +1 -0
- homeassistant-stubs/components/adguard/__init__.pyi +1 -0
- homeassistant-stubs/components/adguard/config_flow.pyi +1 -1
- homeassistant-stubs/components/aftership/__init__.pyi +2 -0
- homeassistant-stubs/components/airgradient/__init__.pyi +1 -0
- homeassistant-stubs/components/airgradient/update.pyi +0 -2
- homeassistant-stubs/components/airly/__init__.pyi +1 -0
- homeassistant-stubs/components/airnow/__init__.pyi +1 -0
- homeassistant-stubs/components/airthings/__init__.pyi +3 -0
- homeassistant-stubs/components/airthings_ble/__init__.pyi +2 -11
- homeassistant-stubs/components/airthings_ble/coordinator.pyi +21 -0
- homeassistant-stubs/components/airthings_ble/sensor.pyi +1 -1
- homeassistant-stubs/components/airtouch5/__init__.pyi +2 -1
- homeassistant-stubs/components/airvisual/__init__.pyi +1 -0
- homeassistant-stubs/components/airvisual/config_flow.pyi +1 -1
- homeassistant-stubs/components/airvisual_pro/__init__.pyi +1 -0
- homeassistant-stubs/components/airvisual_pro/config_flow.pyi +2 -3
- homeassistant-stubs/components/airzone/__init__.pyi +1 -0
- homeassistant-stubs/components/airzone/switch.pyi +33 -0
- homeassistant-stubs/components/airzone_cloud/__init__.pyi +1 -0
- homeassistant-stubs/components/airzone_cloud/select.pyi +10 -2
- homeassistant-stubs/components/airzone_cloud/switch.pyi +33 -0
- homeassistant-stubs/components/alarm_control_panel/__init__.pyi +13 -6
- homeassistant-stubs/components/alarm_control_panel/const.pyi +12 -0
- homeassistant-stubs/components/alarm_control_panel/device_condition.pyi +2 -2
- homeassistant-stubs/components/alarm_control_panel/device_trigger.pyi +2 -2
- homeassistant-stubs/components/alarm_control_panel/reproduce_state.pyi +2 -2
- homeassistant-stubs/components/alexa/capabilities.pyi +2 -2
- homeassistant-stubs/components/alexa/handlers.pyi +2 -2
- homeassistant-stubs/components/amberelectric/__init__.pyi +1 -0
- homeassistant-stubs/components/ambient_network/__init__.pyi +1 -0
- homeassistant-stubs/components/ambient_station/__init__.pyi +1 -0
- homeassistant-stubs/components/analytics/__init__.pyi +2 -0
- homeassistant-stubs/components/analytics/analytics.pyi +1 -0
- homeassistant-stubs/components/analytics_insights/__init__.pyi +1 -0
- homeassistant-stubs/components/analytics_insights/config_flow.pyi +1 -1
- homeassistant-stubs/components/analytics_insights/const.pyi +1 -0
- homeassistant-stubs/components/analytics_insights/coordinator.pyi +8 -2
- homeassistant-stubs/components/analytics_insights/sensor.pyi +4 -0
- homeassistant-stubs/components/android_ip_webcam/__init__.pyi +3 -5
- homeassistant-stubs/components/android_ip_webcam/binary_sensor.pyi +3 -4
- homeassistant-stubs/components/android_ip_webcam/camera.pyi +2 -3
- homeassistant-stubs/components/android_ip_webcam/coordinator.pyi +3 -2
- homeassistant-stubs/components/android_ip_webcam/sensor.pyi +2 -4
- homeassistant-stubs/components/android_ip_webcam/switch.pyi +2 -4
- homeassistant-stubs/components/androidtv/__init__.pyi +3 -1
- homeassistant-stubs/components/androidtv/config_flow.pyi +2 -1
- homeassistant-stubs/components/androidtv/const.pyi +2 -1
- homeassistant-stubs/components/androidtv/entity.pyi +5 -2
- homeassistant-stubs/components/androidtv/media_player.pyi +5 -6
- homeassistant-stubs/components/androidtv_remote/config_flow.pyi +5 -7
- homeassistant-stubs/components/anova/__init__.pyi +2 -1
- homeassistant-stubs/components/anova/config_flow.pyi +2 -1
- homeassistant-stubs/components/anova/models.pyi +1 -0
- homeassistant-stubs/components/anthemav/__init__.pyi +2 -0
- homeassistant-stubs/components/apache_kafka/__init__.pyi +1 -1
- homeassistant-stubs/components/apcupsd/__init__.pyi +1 -0
- homeassistant-stubs/components/apple_tv/__init__.pyi +1 -0
- homeassistant-stubs/components/apple_tv/config_flow.pyi +5 -1
- homeassistant-stubs/components/apsystems/__init__.pyi +1 -0
- homeassistant-stubs/components/apsystems/sensor.pyi +2 -2
- homeassistant-stubs/components/aquostv/media_player.pyi +1 -1
- homeassistant-stubs/components/aranet/__init__.pyi +3 -3
- homeassistant-stubs/components/aranet/sensor.pyi +4 -4
- homeassistant-stubs/components/arcam_fmj/__init__.pyi +1 -0
- homeassistant-stubs/components/arcam_fmj/config_flow.pyi +2 -0
- homeassistant-stubs/components/arcam_fmj/media_player.pyi +1 -1
- homeassistant-stubs/components/aseko_pool_live/__init__.pyi +4 -6
- homeassistant-stubs/components/aseko_pool_live/binary_sensor.pyi +2 -4
- homeassistant-stubs/components/aseko_pool_live/config_flow.pyi +2 -3
- homeassistant-stubs/components/aseko_pool_live/coordinator.pyi +2 -0
- homeassistant-stubs/components/aseko_pool_live/sensor.pyi +2 -4
- homeassistant-stubs/components/assist_pipeline/pipeline.pyi +2 -1
- homeassistant-stubs/components/asuswrt/__init__.pyi +1 -0
- homeassistant-stubs/components/asuswrt/bridge.pyi +4 -2
- homeassistant-stubs/components/autarco/__init__.pyi +1 -0
- homeassistant-stubs/components/auth/__init__.pyi +5 -0
- homeassistant-stubs/components/auth/login_flow.pyi +1 -1
- homeassistant-stubs/components/auth/mfa_setup_flow.pyi +4 -2
- homeassistant-stubs/components/automation/__init__.pyi +0 -14
- homeassistant-stubs/components/awair/__init__.pyi +4 -6
- homeassistant-stubs/components/awair/config_flow.pyi +1 -0
- homeassistant-stubs/components/awair/coordinator.pyi +1 -0
- homeassistant-stubs/components/awair/sensor.pyi +2 -2
- homeassistant-stubs/components/axis/__init__.pyi +1 -0
- homeassistant-stubs/components/axis/config_flow.pyi +2 -2
- homeassistant-stubs/components/backup/__init__.pyi +2 -2
- homeassistant-stubs/components/backup/const.pyi +3 -0
- homeassistant-stubs/components/backup/http.pyi +1 -1
- homeassistant-stubs/components/backup/manager.pyi +25 -11
- homeassistant-stubs/components/backup/websocket.pyi +2 -2
- homeassistant-stubs/components/baf/__init__.pyi +2 -0
- homeassistant-stubs/components/bang_olufsen/__init__.pyi +3 -2
- homeassistant-stubs/components/bang_olufsen/const.pyi +3 -2
- homeassistant-stubs/components/bang_olufsen/media_player.pyi +14 -6
- homeassistant-stubs/components/bang_olufsen/websocket.pyi +1 -0
- homeassistant-stubs/components/binary_sensor/__init__.pyi +0 -3
- homeassistant-stubs/components/blue_current/__init__.pyi +4 -3
- homeassistant-stubs/components/blue_current/config_flow.pyi +1 -2
- homeassistant-stubs/components/blue_current/sensor.pyi +2 -3
- homeassistant-stubs/components/blueprint/__init__.pyi +2 -2
- homeassistant-stubs/components/bluesound/__init__.pyi +2 -1
- homeassistant-stubs/components/bluesound/const.pyi +0 -4
- homeassistant-stubs/components/bluesound/media_player.pyi +6 -14
- homeassistant-stubs/components/bluesound/services.pyi +21 -0
- homeassistant-stubs/components/bluetooth/active_update_coordinator.pyi +1 -1
- homeassistant-stubs/components/bluetooth/active_update_processor.pyi +1 -1
- homeassistant-stubs/components/bluetooth/match.pyi +1 -1
- homeassistant-stubs/components/bluetooth/models.pyi +4 -0
- homeassistant-stubs/components/bluetooth/passive_update_processor.pyi +4 -4
- homeassistant-stubs/components/bmw_connected_drive/__init__.pyi +1 -0
- homeassistant-stubs/components/bmw_connected_drive/config_flow.pyi +4 -2
- homeassistant-stubs/components/bond/__init__.pyi +1 -0
- homeassistant-stubs/components/braviatv/config_flow.pyi +1 -2
- homeassistant-stubs/components/braviatv/coordinator.pyi +1 -1
- homeassistant-stubs/components/brother/__init__.pyi +1 -0
- homeassistant-stubs/components/brother/config_flow.pyi +2 -4
- homeassistant-stubs/components/bryant_evolution/__init__.pyi +2 -0
- homeassistant-stubs/components/bryant_evolution/config_flow.pyi +1 -4
- homeassistant-stubs/components/bthome/config_flow.pyi +1 -1
- homeassistant-stubs/components/bthome/coordinator.pyi +1 -1
- homeassistant-stubs/components/bthome/types.pyi +2 -0
- homeassistant-stubs/components/button/__init__.pyi +0 -3
- homeassistant-stubs/components/calendar/trigger.pyi +3 -1
- homeassistant-stubs/components/cambridge_audio/__init__.pyi +14 -0
- homeassistant-stubs/components/cambridge_audio/config_flow.pyi +14 -0
- homeassistant-stubs/components/cambridge_audio/const.pyi +9 -0
- homeassistant-stubs/components/cambridge_audio/diagnostics.pyi +5 -0
- homeassistant-stubs/components/cambridge_audio/entity.pyi +21 -0
- homeassistant-stubs/components/cambridge_audio/media_player.pyi +71 -0
- homeassistant-stubs/components/cambridge_audio/select.pyi +34 -0
- homeassistant-stubs/components/cambridge_audio/switch.pyi +30 -0
- homeassistant-stubs/components/camera/__init__.pyi +39 -22
- homeassistant-stubs/components/camera/const.pyi +1 -2
- homeassistant-stubs/components/camera/diagnostics.pyi +1 -1
- homeassistant-stubs/components/camera/helper.pyi +6 -0
- homeassistant-stubs/components/camera/webrtc.pyi +96 -0
- homeassistant-stubs/components/canary/alarm_control_panel.pyi +2 -3
- homeassistant-stubs/components/canary/sensor.pyi +1 -0
- homeassistant-stubs/components/cert_expiry/__init__.pyi +1 -0
- homeassistant-stubs/components/climate/__init__.pyi +0 -24
- homeassistant-stubs/components/cloud/client.pyi +5 -1
- homeassistant-stubs/components/cloud/const.pyi +1 -0
- homeassistant-stubs/components/cloud/http_api.pyi +2 -2
- homeassistant-stubs/components/cloud/prefs.pyi +4 -2
- homeassistant-stubs/components/co2signal/__init__.pyi +1 -0
- homeassistant-stubs/components/co2signal/config_flow.pyi +1 -2
- homeassistant-stubs/components/config/automation.pyi +1 -1
- homeassistant-stubs/components/config/script.pyi +1 -1
- homeassistant-stubs/components/config/view.pyi +2 -2
- homeassistant-stubs/components/configurator/__init__.pyi +2 -0
- homeassistant-stubs/components/counter/__init__.pyi +1 -1
- homeassistant-stubs/components/cover/__init__.pyi +12 -8
- homeassistant-stubs/components/cover/device_condition.pyi +2 -2
- homeassistant-stubs/components/cover/device_trigger.pyi +2 -2
- homeassistant-stubs/components/cover/reproduce_state.pyi +2 -2
- homeassistant-stubs/components/date/__init__.pyi +0 -4
- homeassistant-stubs/components/datetime/__init__.pyi +0 -4
- homeassistant-stubs/components/deako/__init__.pyi +2 -0
- homeassistant-stubs/components/deconz/alarm_control_panel.pyi +2 -3
- homeassistant-stubs/components/deconz/binary_sensor.pyi +10 -1
- homeassistant-stubs/components/deconz/config_flow.pyi +1 -1
- homeassistant-stubs/components/deconz/device_trigger.pyi +4 -0
- homeassistant-stubs/components/deconz/entity.pyi +6 -2
- homeassistant-stubs/components/deconz/light.pyi +1 -1
- homeassistant-stubs/components/deconz/number.pyi +3 -1
- homeassistant-stubs/components/demo/alarm_control_panel.pyi +2 -1
- homeassistant-stubs/components/demo/update.pyi +5 -2
- homeassistant-stubs/components/derivative/sensor.pyi +1 -4
- homeassistant-stubs/components/device_automation/__init__.pyi +2 -0
- homeassistant-stubs/components/device_tracker/config_entry.pyi +0 -10
- homeassistant-stubs/components/device_tracker/legacy.pyi +0 -2
- homeassistant-stubs/components/devolo_home_control/__init__.pyi +2 -0
- homeassistant-stubs/components/devolo_home_control/config_flow.pyi +2 -2
- homeassistant-stubs/components/devolo_home_network/__init__.pyi +4 -2
- homeassistant-stubs/components/devolo_home_network/binary_sensor.pyi +2 -2
- homeassistant-stubs/components/devolo_home_network/config_flow.pyi +4 -1
- homeassistant-stubs/components/devolo_home_network/coordinator.pyi +13 -0
- homeassistant-stubs/components/devolo_home_network/device_tracker.pyi +4 -3
- homeassistant-stubs/components/devolo_home_network/entity.pyi +8 -3
- homeassistant-stubs/components/devolo_home_network/image.pyi +2 -2
- homeassistant-stubs/components/devolo_home_network/sensor.pyi +9 -10
- homeassistant-stubs/components/devolo_home_network/switch.pyi +6 -6
- homeassistant-stubs/components/devolo_home_network/update.pyi +3 -3
- homeassistant-stubs/components/diagnostics/util.pyi +1 -1
- homeassistant-stubs/components/discovergy/__init__.pyi +1 -0
- homeassistant-stubs/components/discovergy/config_flow.pyi +2 -2
- homeassistant-stubs/components/dlna_dmr/config_flow.pyi +1 -0
- homeassistant-stubs/components/dlna_dmr/media_player.pyi +1 -1
- homeassistant-stubs/components/dlna_dms/dms.pyi +1 -3
- homeassistant-stubs/components/doorbird/config_flow.pyi +1 -1
- homeassistant-stubs/components/doorbird/device.pyi +0 -6
- homeassistant-stubs/components/doorbird/models.pyi +1 -0
- homeassistant-stubs/components/dormakaba_dkey/config_flow.pyi +1 -2
- homeassistant-stubs/components/dsmr/__init__.pyi +1 -0
- homeassistant-stubs/components/duotecno/entity.pyi +1 -1
- homeassistant-stubs/components/ecovacs/__init__.pyi +1 -0
- homeassistant-stubs/components/ecowitt/__init__.pyi +2 -0
- homeassistant-stubs/components/efergy/__init__.pyi +2 -0
- homeassistant-stubs/components/electric_kiwi/config_flow.pyi +1 -4
- homeassistant-stubs/components/elevenlabs/__init__.pyi +1 -0
- homeassistant-stubs/components/elgato/__init__.pyi +1 -0
- homeassistant-stubs/components/elkm1/__init__.pyi +1 -0
- homeassistant-stubs/components/elkm1/alarm_control_panel.pyi +2 -3
- homeassistant-stubs/components/elkm1/config_flow.pyi +3 -1
- homeassistant-stubs/components/energy/data.pyi +1 -0
- homeassistant-stubs/components/energy/types.pyi +2 -0
- homeassistant-stubs/components/energy/websocket_api.pyi +3 -0
- homeassistant-stubs/components/enigma2/__init__.pyi +1 -0
- homeassistant-stubs/components/enigma2/config_flow.pyi +0 -2
- homeassistant-stubs/components/enigma2/media_player.pyi +1 -6
- homeassistant-stubs/components/enphase_envoy/__init__.pyi +3 -1
- homeassistant-stubs/components/enphase_envoy/config_flow.pyi +4 -6
- homeassistant-stubs/components/enphase_envoy/const.pyi +2 -0
- homeassistant-stubs/components/enphase_envoy/coordinator.pyi +1 -0
- homeassistant-stubs/components/esphome/alarm_control_panel.pyi +5 -6
- homeassistant-stubs/components/esphome/assist_satellite.pyi +1 -1
- homeassistant-stubs/components/esphome/config_flow.pyi +6 -5
- homeassistant-stubs/components/esphome/entity.pyi +3 -3
- homeassistant-stubs/components/esphome/entry_data.pyi +1 -0
- homeassistant-stubs/components/esphome/enum_mapper.pyi +1 -1
- homeassistant-stubs/components/esphome/ffmpeg_proxy.pyi +7 -3
- homeassistant-stubs/components/esphome/update.pyi +3 -1
- homeassistant-stubs/components/event/__init__.pyi +0 -3
- homeassistant-stubs/components/evil_genius_labs/util.pyi +1 -1
- homeassistant-stubs/components/evohome/climate.pyi +2 -3
- homeassistant-stubs/components/evohome/entity.pyi +1 -1
- homeassistant-stubs/components/fan/__init__.pyi +0 -8
- homeassistant-stubs/components/fastdotcom/__init__.pyi +1 -1
- homeassistant-stubs/components/feedreader/__init__.pyi +1 -0
- homeassistant-stubs/components/feedreader/config_flow.pyi +1 -3
- homeassistant-stubs/components/feedreader/event.pyi +1 -0
- homeassistant-stubs/components/filesize/__init__.pyi +1 -0
- homeassistant-stubs/components/fitbit/api.pyi +1 -1
- homeassistant-stubs/components/fitbit/config_flow.pyi +1 -2
- homeassistant-stubs/components/flexit_bacnet/sensor.pyi +2 -1
- homeassistant-stubs/components/flux_led/config_flow.pyi +3 -1
- homeassistant-stubs/components/forecast_solar/__init__.pyi +1 -0
- homeassistant-stubs/components/fritz/config_flow.pyi +5 -5
- homeassistant-stubs/components/fritz/update.pyi +1 -1
- homeassistant-stubs/components/fritzbox/climate.pyi +1 -0
- homeassistant-stubs/components/fritzbox/config_flow.pyi +5 -6
- homeassistant-stubs/components/fritzbox/coordinator.pyi +1 -0
- homeassistant-stubs/components/fritzbox_callmonitor/__init__.pyi +2 -1
- homeassistant-stubs/components/fritzbox_callmonitor/config_flow.pyi +5 -0
- homeassistant-stubs/components/fronius/__init__.pyi +2 -1
- homeassistant-stubs/components/fronius/config_flow.pyi +1 -2
- homeassistant-stubs/components/fronius/const.pyi +1 -0
- homeassistant-stubs/components/fronius/coordinator.pyi +1 -1
- homeassistant-stubs/components/frontend/__init__.pyi +0 -3
- homeassistant-stubs/components/fujitsu_fglair/__init__.pyi +1 -0
- homeassistant-stubs/components/fujitsu_fglair/config_flow.pyi +1 -2
- homeassistant-stubs/components/fully_kiosk/config_flow.pyi +1 -0
- homeassistant-stubs/components/fyta/__init__.pyi +1 -0
- homeassistant-stubs/components/fyta/config_flow.pyi +0 -2
- homeassistant-stubs/components/fyta/coordinator.pyi +6 -1
- homeassistant-stubs/components/geo_location/__init__.pyi +0 -5
- homeassistant-stubs/components/gios/__init__.pyi +1 -0
- homeassistant-stubs/components/glances/__init__.pyi +1 -0
- homeassistant-stubs/components/glances/config_flow.pyi +1 -2
- homeassistant-stubs/components/go2rtc/__init__.pyi +41 -0
- homeassistant-stubs/components/go2rtc/config_flow.pyi +7 -0
- homeassistant-stubs/components/go2rtc/const.pyi +7 -0
- homeassistant-stubs/components/go2rtc/server.pyi +44 -0
- homeassistant-stubs/components/goalzero/config_flow.pyi +1 -2
- homeassistant-stubs/components/goalzero/coordinator.pyi +1 -0
- homeassistant-stubs/components/google/__init__.pyi +1 -1
- homeassistant-stubs/components/google/api.pyi +2 -2
- homeassistant-stubs/components/google/calendar.pyi +6 -5
- homeassistant-stubs/components/google/config_flow.pyi +2 -3
- homeassistant-stubs/components/google_assistant_sdk/config_flow.pyi +1 -2
- homeassistant-stubs/components/google_photos/config_flow.pyi +2 -3
- homeassistant-stubs/components/google_photos/types.pyi +2 -0
- homeassistant-stubs/components/google_sheets/__init__.pyi +1 -0
- homeassistant-stubs/components/google_sheets/config_flow.pyi +1 -3
- homeassistant-stubs/components/govee_ble/__init__.pyi +11 -0
- homeassistant-stubs/components/govee_ble/binary_sensor.pyi +22 -0
- homeassistant-stubs/components/govee_ble/config_flow.pyi +16 -0
- homeassistant-stubs/components/govee_ble/const.pyi +2 -0
- homeassistant-stubs/components/govee_ble/coordinator.pyi +24 -0
- homeassistant-stubs/components/govee_ble/device.pyi +4 -0
- homeassistant-stubs/components/govee_ble/event.pyi +27 -0
- homeassistant-stubs/components/govee_ble/sensor.pyi +25 -0
- homeassistant-stubs/components/gpsd/__init__.pyi +2 -0
- homeassistant-stubs/components/greeneye_monitor/sensor.pyi +1 -0
- homeassistant-stubs/components/group/cover.pyi +2 -2
- homeassistant-stubs/components/group/registry.pyi +2 -1
- homeassistant-stubs/components/group/sensor.pyi +10 -11
- homeassistant-stubs/components/guardian/config_flow.pyi +0 -1
- homeassistant-stubs/components/guardian/util.pyi +1 -1
- homeassistant-stubs/components/hardkernel/__init__.pyi +2 -1
- homeassistant-stubs/components/here_travel_time/config_flow.pyi +4 -5
- homeassistant-stubs/components/history_stats/__init__.pyi +1 -0
- homeassistant-stubs/components/history_stats/coordinator.pyi +2 -1
- homeassistant-stubs/components/history_stats/sensor.pyi +2 -1
- homeassistant-stubs/components/holiday/config_flow.pyi +1 -3
- homeassistant-stubs/components/homeassistant/__init__.pyi +1 -0
- homeassistant-stubs/components/homeassistant/triggers/numeric_state.pyi +2 -1
- homeassistant-stubs/components/homeassistant/triggers/time.pyi +7 -1
- homeassistant-stubs/components/homeassistant_alerts/coordinator.pyi +2 -1
- homeassistant-stubs/components/homeassistant_green/__init__.pyi +2 -1
- homeassistant-stubs/components/homeassistant_green/config_flow.pyi +2 -1
- homeassistant-stubs/components/homeassistant_hardware/firmware_config_flow.pyi +2 -1
- homeassistant-stubs/components/homeassistant_hardware/silabs_multiprotocol_addon.pyi +2 -1
- homeassistant-stubs/components/homeassistant_hardware/util.pyi +2 -1
- homeassistant-stubs/components/homeassistant_sky_connect/config_flow.pyi +3 -3
- homeassistant-stubs/components/homeassistant_yellow/__init__.pyi +2 -1
- homeassistant-stubs/components/homekit/__init__.pyi +0 -1
- homeassistant-stubs/components/homekit/models.pyi +1 -0
- homeassistant-stubs/components/homekit/type_covers.pyi +2 -2
- homeassistant-stubs/components/homekit/type_security_systems.pyi +2 -2
- homeassistant-stubs/components/homekit_controller/alarm_control_panel.pyi +4 -4
- homeassistant-stubs/components/homekit_controller/config_flow.pyi +4 -1
- homeassistant-stubs/components/homekit_controller/utils.pyi +1 -0
- homeassistant-stubs/components/homewizard/__init__.pyi +1 -0
- homeassistant-stubs/components/homewizard/config_flow.pyi +1 -2
- homeassistant-stubs/components/homewizard/helpers.pyi +1 -1
- homeassistant-stubs/components/homewizard/sensor.pyi +1 -1
- homeassistant-stubs/components/homeworks/config_flow.pyi +2 -5
- homeassistant-stubs/components/http/ban.pyi +2 -1
- homeassistant-stubs/components/http/data_validator.pyi +1 -1
- homeassistant-stubs/components/http/decorators.pyi +7 -4
- homeassistant-stubs/components/huawei_lte/config_flow.pyi +2 -0
- homeassistant-stubs/components/huawei_lte/device_tracker.pyi +1 -0
- homeassistant-stubs/components/humidifier/__init__.pyi +0 -10
- homeassistant-stubs/components/husqvarna_automower/__init__.pyi +2 -0
- homeassistant-stubs/components/husqvarna_automower/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/husqvarna_automower/button.pyi +1 -3
- homeassistant-stubs/components/husqvarna_automower/config_flow.pyi +2 -3
- homeassistant-stubs/components/husqvarna_automower/entity.pyi +5 -4
- homeassistant-stubs/components/husqvarna_automower/number.pyi +8 -8
- homeassistant-stubs/components/husqvarna_automower/sensor.pyi +24 -3
- homeassistant-stubs/components/husqvarna_automower/switch.pyi +2 -5
- homeassistant-stubs/components/hydrawise/config_flow.pyi +1 -4
- homeassistant-stubs/components/hyperion/config_flow.pyi +1 -0
- homeassistant-stubs/components/ibeacon/__init__.pyi +1 -0
- homeassistant-stubs/components/image/__init__.pyi +7 -6
- homeassistant-stubs/components/imap/__init__.pyi +1 -0
- homeassistant-stubs/components/imap/config_flow.pyi +1 -2
- homeassistant-stubs/components/imgw_pib/__init__.pyi +1 -0
- homeassistant-stubs/components/intent/__init__.pyi +5 -0
- homeassistant-stubs/components/intent/timers.pyi +1 -2
- homeassistant-stubs/components/iotty/__init__.pyi +1 -0
- homeassistant-stubs/components/iotty/coordinator.pyi +1 -1
- homeassistant-stubs/components/ipp/__init__.pyi +1 -0
- homeassistant-stubs/components/islamic_prayer_times/__init__.pyi +1 -0
- homeassistant-stubs/components/jellyfin/__init__.pyi +2 -2
- homeassistant-stubs/components/jellyfin/config_flow.pyi +0 -1
- homeassistant-stubs/components/jellyfin/coordinator.pyi +8 -15
- homeassistant-stubs/components/jellyfin/entity.pyi +22 -7
- homeassistant-stubs/components/jellyfin/media_player.pyi +6 -18
- homeassistant-stubs/components/jellyfin/remote.pyi +19 -0
- homeassistant-stubs/components/jellyfin/sensor.pyi +10 -8
- homeassistant-stubs/components/jewish_calendar/config_flow.pyi +1 -0
- homeassistant-stubs/components/jvc_projector/__init__.pyi +1 -0
- homeassistant-stubs/components/jvc_projector/config_flow.pyi +1 -2
- homeassistant-stubs/components/knocki/__init__.pyi +1 -0
- homeassistant-stubs/components/knx/__init__.pyi +0 -1
- homeassistant-stubs/components/knx/climate.pyi +2 -0
- homeassistant-stubs/components/knx/const.pyi +4 -0
- homeassistant-stubs/components/knx/notify.pyi +3 -15
- homeassistant-stubs/components/knx/schema.pyi +1 -0
- homeassistant-stubs/components/knx/storage/config_store.pyi +2 -2
- homeassistant-stubs/components/knx/websocket.pyi +4 -1
- homeassistant-stubs/components/kraken/const.pyi +1 -0
- homeassistant-stubs/components/lacrosse_view/config_flow.pyi +1 -2
- homeassistant-stubs/components/lamarzocco/__init__.pyi +1 -1
- homeassistant-stubs/components/lamarzocco/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/lamarzocco/button.pyi +3 -1
- homeassistant-stubs/components/lamarzocco/calendar.pyi +1 -2
- homeassistant-stubs/components/lamarzocco/config_flow.pyi +2 -5
- homeassistant-stubs/components/lamarzocco/coordinator.pyi +5 -4
- homeassistant-stubs/components/lamarzocco/diagnostics.pyi +1 -1
- homeassistant-stubs/components/lamarzocco/number.pyi +3 -2
- homeassistant-stubs/components/lamarzocco/select.pyi +5 -1
- homeassistant-stubs/components/lamarzocco/sensor.pyi +1 -1
- homeassistant-stubs/components/lamarzocco/switch.pyi +3 -2
- homeassistant-stubs/components/lamarzocco/update.pyi +3 -2
- homeassistant-stubs/components/lametric/config_flow.pyi +1 -2
- homeassistant-stubs/components/lametric/helpers.pyi +1 -1
- homeassistant-stubs/components/lawn_mower/__init__.pyi +0 -3
- homeassistant-stubs/components/lcn/__init__.pyi +2 -2
- homeassistant-stubs/components/lcn/binary_sensor.pyi +3 -0
- homeassistant-stubs/components/lcn/config_flow.pyi +2 -5
- homeassistant-stubs/components/lcn/const.pyi +1 -0
- homeassistant-stubs/components/lcn/helpers.pyi +4 -0
- homeassistant-stubs/components/lcn/sensor.pyi +4 -1
- homeassistant-stubs/components/lcn/switch.pyi +24 -1
- homeassistant-stubs/components/lcn/websocket.pyi +3 -1
- homeassistant-stubs/components/lektrico/__init__.pyi +1 -0
- homeassistant-stubs/components/lektrico/switch.pyi +31 -0
- homeassistant-stubs/components/lidarr/__init__.pyi +4 -2
- homeassistant-stubs/components/lidarr/config_flow.pyi +1 -5
- homeassistant-stubs/components/lidarr/coordinator.pyi +4 -1
- homeassistant-stubs/components/lifx/config_flow.pyi +3 -1
- homeassistant-stubs/components/lifx/coordinator.pyi +0 -6
- homeassistant-stubs/components/light/__init__.pyi +0 -15
- homeassistant-stubs/components/linear_garage_door/config_flow.pyi +1 -2
- homeassistant-stubs/components/linear_garage_door/coordinator.pyi +1 -1
- homeassistant-stubs/components/linkplay/__init__.pyi +2 -1
- homeassistant-stubs/components/linkplay/const.pyi +4 -0
- homeassistant-stubs/components/linkplay/media_player.pyi +12 -4
- homeassistant-stubs/components/litterrobot/__init__.pyi +1 -0
- homeassistant-stubs/components/litterrobot/vacuum.pyi +0 -1
- homeassistant-stubs/components/local_todo/__init__.pyi +1 -0
- homeassistant-stubs/components/lock/__init__.pyi +0 -10
- homeassistant-stubs/components/logbook/models.pyi +0 -7
- homeassistant-stubs/components/lookin/coordinator.pyi +1 -1
- homeassistant-stubs/components/madvr/__init__.pyi +1 -0
- homeassistant-stubs/components/madvr/config_flow.pyi +2 -5
- homeassistant-stubs/components/manual/alarm_control_panel.pyi +19 -10
- homeassistant-stubs/components/mastodon/__init__.pyi +1 -0
- homeassistant-stubs/components/mastodon/config_flow.pyi +2 -0
- homeassistant-stubs/components/matter/api.pyi +1 -1
- homeassistant-stubs/components/matter/climate.pyi +1 -0
- homeassistant-stubs/components/matter/config_flow.pyi +3 -1
- homeassistant-stubs/components/matter/entity.pyi +2 -2
- homeassistant-stubs/components/matter/fan.pyi +1 -0
- homeassistant-stubs/components/matter/light.pyi +1 -0
- homeassistant-stubs/components/matter/lock.pyi +1 -0
- homeassistant-stubs/components/matter/models.pyi +2 -0
- homeassistant-stubs/components/matter/select.pyi +2 -0
- homeassistant-stubs/components/matter/switch.pyi +1 -0
- homeassistant-stubs/components/matter/update.pyi +1 -0
- homeassistant-stubs/components/matter/vacuum.pyi +47 -0
- homeassistant-stubs/components/matter/valve.pyi +1 -0
- homeassistant-stubs/components/media_player/__init__.pyi +0 -33
- homeassistant-stubs/components/mikrotik/__init__.pyi +1 -0
- homeassistant-stubs/components/mikrotik/config_flow.pyi +0 -1
- homeassistant-stubs/components/modbus/__init__.pyi +1 -1
- homeassistant-stubs/components/modbus/const.pyi +0 -2
- homeassistant-stubs/components/modbus/cover.pyi +2 -2
- homeassistant-stubs/components/modbus/modbus.pyi +1 -2
- homeassistant-stubs/components/modbus/validators.pyi +1 -1
- homeassistant-stubs/components/mold_indicator/config_flow.pyi +9 -0
- homeassistant-stubs/components/mold_indicator/sensor.pyi +6 -2
- homeassistant-stubs/components/monzo/config_flow.pyi +1 -2
- homeassistant-stubs/components/mopeka/__init__.pyi +1 -0
- homeassistant-stubs/components/mqtt/__init__.pyi +2 -1
- homeassistant-stubs/components/mqtt/alarm_control_panel.pyi +3 -3
- homeassistant-stubs/components/mqtt/client.pyi +4 -0
- homeassistant-stubs/components/mqtt/config_flow.pyi +3 -2
- homeassistant-stubs/components/mqtt/const.pyi +3 -1
- homeassistant-stubs/components/mqtt/cover.pyi +1 -1
- homeassistant-stubs/components/mqtt/discovery.pyi +26 -9
- homeassistant-stubs/components/mqtt/entity.pyi +5 -2
- homeassistant-stubs/components/mqtt/models.pyi +11 -0
- homeassistant-stubs/components/mqtt/schemas.pyi +15 -7
- homeassistant-stubs/components/mqtt/update.pyi +7 -11
- homeassistant-stubs/components/mysensors/const.pyi +6 -1
- homeassistant-stubs/components/myuplink/__init__.pyi +1 -0
- homeassistant-stubs/components/myuplink/config_flow.pyi +1 -2
- homeassistant-stubs/components/myuplink/helpers.pyi +6 -0
- homeassistant-stubs/components/nam/__init__.pyi +1 -0
- homeassistant-stubs/components/nam/config_flow.pyi +4 -7
- homeassistant-stubs/components/nanoleaf/__init__.pyi +1 -0
- homeassistant-stubs/components/nanoleaf/config_flow.pyi +1 -2
- homeassistant-stubs/components/nest/__init__.pyi +1 -1
- homeassistant-stubs/components/nest/api.pyi +5 -3
- homeassistant-stubs/components/nest/camera.pyi +37 -16
- homeassistant-stubs/components/nest/config_flow.pyi +10 -4
- homeassistant-stubs/components/nest/const.pyi +2 -1
- homeassistant-stubs/components/netatmo/climate.pyi +1 -0
- homeassistant-stubs/components/network/websocket.pyi +2 -0
- homeassistant-stubs/components/nextdns/__init__.pyi +1 -0
- homeassistant-stubs/components/nextdns/config_flow.pyi +1 -2
- homeassistant-stubs/components/notify/__init__.pyi +0 -2
- homeassistant-stubs/components/notion/config_flow.pyi +1 -3
- homeassistant-stubs/components/number/__init__.pyi +0 -8
- homeassistant-stubs/components/nut/__init__.pyi +1 -0
- homeassistant-stubs/components/onboarding/views.pyi +1 -0
- homeassistant-stubs/components/oncue/config_flow.pyi +1 -3
- homeassistant-stubs/components/oncue/types.pyi +3 -0
- homeassistant-stubs/components/onewire/__init__.pyi +1 -0
- homeassistant-stubs/components/onkyo/__init__.pyi +25 -0
- homeassistant-stubs/components/onkyo/config_flow.pyi +30 -0
- homeassistant-stubs/components/onkyo/const.pyi +68 -0
- homeassistant-stubs/components/onkyo/media_player.pyi +24 -26
- homeassistant-stubs/components/onkyo/receiver.pyi +23 -3
- homeassistant-stubs/components/onkyo/services.pyi +14 -0
- homeassistant-stubs/components/openai_conversation/__init__.pyi +19 -0
- homeassistant-stubs/components/openai_conversation/config_flow.pyi +30 -0
- homeassistant-stubs/components/openai_conversation/const.pyi +14 -0
- homeassistant-stubs/components/openai_conversation/conversation.pyi +36 -0
- homeassistant-stubs/components/openexchangerates/config_flow.pyi +1 -2
- homeassistant-stubs/components/oralb/__init__.pyi +1 -0
- homeassistant-stubs/components/otbr/__init__.pyi +1 -0
- homeassistant-stubs/components/otbr/config_flow.pyi +2 -1
- homeassistant-stubs/components/otbr/silabs_multiprotocol.pyi +1 -1
- homeassistant-stubs/components/otbr/util.pyi +1 -1
- homeassistant-stubs/components/overkiz/alarm_control_panel.pyi +12 -12
- homeassistant-stubs/components/overkiz/climate/atlantic_pass_apc_zone_control_zone.pyi +0 -3
- homeassistant-stubs/components/overkiz/config_flow.pyi +1 -2
- homeassistant-stubs/components/p1_monitor/__init__.pyi +3 -2
- homeassistant-stubs/components/p1_monitor/config_flow.pyi +2 -2
- homeassistant-stubs/components/p1_monitor/coordinator.pyi +1 -1
- homeassistant-stubs/components/p1_monitor/diagnostics.pyi +1 -1
- homeassistant-stubs/components/panel_custom/__init__.pyi +28 -0
- homeassistant-stubs/components/pi_hole/__init__.pyi +1 -0
- homeassistant-stubs/components/pi_hole/update.pyi +1 -1
- homeassistant-stubs/components/ping/__init__.pyi +1 -0
- homeassistant-stubs/components/plugwise/__init__.pyi +1 -0
- homeassistant-stubs/components/plugwise/config_flow.pyi +8 -6
- homeassistant-stubs/components/plugwise/const.pyi +4 -1
- homeassistant-stubs/components/plugwise/util.pyi +1 -1
- homeassistant-stubs/components/powerwall/config_flow.pyi +0 -1
- homeassistant-stubs/components/powerwall/models.pyi +1 -0
- homeassistant-stubs/components/private_ble_device/coordinator.pyi +3 -0
- homeassistant-stubs/components/prometheus/__init__.pyi +7 -4
- homeassistant-stubs/components/proximity/coordinator.pyi +1 -0
- homeassistant-stubs/components/purpleair/config_flow.pyi +0 -1
- homeassistant-stubs/components/pvoutput/config_flow.pyi +1 -2
- homeassistant-stubs/components/qnap_qsw/sensor.pyi +8 -2
- homeassistant-stubs/components/radarr/__init__.pyi +1 -0
- homeassistant-stubs/components/radarr/config_flow.pyi +1 -3
- homeassistant-stubs/components/radio_browser/__init__.pyi +10 -0
- homeassistant-stubs/components/radio_browser/config_flow.pyi +8 -0
- homeassistant-stubs/components/radio_browser/const.pyi +5 -0
- homeassistant-stubs/components/radio_browser/media_source.pyi +28 -0
- homeassistant-stubs/components/rainforest_raven/__init__.pyi +3 -5
- homeassistant-stubs/components/rainforest_raven/coordinator.pyi +3 -12
- homeassistant-stubs/components/rainforest_raven/diagnostics.pyi +2 -4
- homeassistant-stubs/components/rainforest_raven/sensor.pyi +4 -5
- homeassistant-stubs/components/rainmachine/__init__.pyi +1 -0
- homeassistant-stubs/components/rainmachine/switch.pyi +1 -1
- homeassistant-stubs/components/rainmachine/update.pyi +7 -1
- homeassistant-stubs/components/raspberry_pi/__init__.pyi +2 -1
- homeassistant-stubs/components/recorder/core.pyi +2 -6
- homeassistant-stubs/components/recorder/migration.pyi +36 -16
- homeassistant-stubs/components/recorder/models/state.pyi +0 -7
- homeassistant-stubs/components/recorder/queries.pyi +1 -0
- homeassistant-stubs/components/recorder/table_managers/__init__.pyi +2 -2
- homeassistant-stubs/components/recorder/util.pyi +10 -5
- homeassistant-stubs/components/remote/__init__.pyi +0 -4
- homeassistant-stubs/components/renault/__init__.pyi +1 -0
- homeassistant-stubs/components/renault/renault_vehicle.pyi +1 -1
- homeassistant-stubs/components/repairs/issue_handler.pyi +1 -1
- homeassistant-stubs/components/rfxtrx/cover.pyi +1 -2
- homeassistant-stubs/components/rfxtrx/entity.pyi +1 -1
- homeassistant-stubs/components/ring/__init__.pyi +1 -0
- homeassistant-stubs/components/ring/config_flow.pyi +5 -2
- homeassistant-stubs/components/ring/coordinator.pyi +1 -1
- homeassistant-stubs/components/ring/entity.pyi +2 -2
- homeassistant-stubs/components/roborock/__init__.pyi +1 -0
- homeassistant-stubs/components/roborock/config_flow.pyi +1 -2
- homeassistant-stubs/components/roborock/coordinator.pyi +0 -5
- homeassistant-stubs/components/roku/browse_media.pyi +2 -0
- homeassistant-stubs/components/roku/helpers.pyi +5 -2
- homeassistant-stubs/components/rtsp_to_webrtc/__init__.pyi +1 -3
- homeassistant-stubs/components/rtsp_to_webrtc/config_flow.pyi +1 -1
- homeassistant-stubs/components/samsungtv/__init__.pyi +2 -2
- homeassistant-stubs/components/samsungtv/bridge.pyi +1 -1
- homeassistant-stubs/components/samsungtv/config_flow.pyi +2 -2
- homeassistant-stubs/components/scrape/__init__.pyi +1 -0
- homeassistant-stubs/components/scrape/coordinator.pyi +2 -1
- homeassistant-stubs/components/script/__init__.pyi +0 -16
- homeassistant-stubs/components/select/__init__.pyi +0 -3
- homeassistant-stubs/components/sensibo/__init__.pyi +1 -0
- homeassistant-stubs/components/sensibo/config_flow.pyi +5 -2
- homeassistant-stubs/components/sensibo/entity.pyi +1 -1
- homeassistant-stubs/components/sensibo/update.pyi +1 -1
- homeassistant-stubs/components/sensor/__init__.pyi +0 -9
- homeassistant-stubs/components/sensor/websocket_api.pyi +3 -0
- homeassistant-stubs/components/sensoterra/__init__.pyi +1 -0
- homeassistant-stubs/components/senz/__init__.pyi +2 -0
- homeassistant-stubs/components/sfr_box/binary_sensor.pyi +2 -2
- homeassistant-stubs/components/sfr_box/button.pyi +1 -1
- homeassistant-stubs/components/sfr_box/config_flow.pyi +1 -2
- homeassistant-stubs/components/sfr_box/coordinator.pyi +1 -1
- homeassistant-stubs/components/sfr_box/sensor.pyi +2 -2
- homeassistant-stubs/components/shell_command/__init__.pyi +13 -0
- homeassistant-stubs/components/shelly/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/shelly/button.pyi +1 -1
- homeassistant-stubs/components/shelly/config_flow.pyi +1 -3
- homeassistant-stubs/components/shelly/const.pyi +1 -1
- homeassistant-stubs/components/shelly/coordinator.pyi +2 -4
- homeassistant-stubs/components/shelly/light.pyi +13 -2
- homeassistant-stubs/components/shelly/number.pyi +1 -1
- homeassistant-stubs/components/shelly/select.pyi +1 -1
- homeassistant-stubs/components/shelly/sensor.pyi +1 -1
- homeassistant-stubs/components/shelly/switch.pyi +10 -1
- homeassistant-stubs/components/shelly/text.pyi +1 -1
- homeassistant-stubs/components/shelly/update.pyi +2 -2
- homeassistant-stubs/components/shelly/utils.pyi +3 -2
- homeassistant-stubs/components/simplisafe/alarm_control_panel.pyi +2 -3
- homeassistant-stubs/components/simplisafe/typing.pyi +4 -0
- homeassistant-stubs/components/siren/__init__.pyi +0 -3
- homeassistant-stubs/components/sleepiq/config_flow.pyi +1 -3
- homeassistant-stubs/components/sleepiq/entity.pyi +3 -2
- homeassistant-stubs/components/smhi/config_flow.pyi +1 -3
- homeassistant-stubs/components/smlight/__init__.pyi +1 -0
- homeassistant-stubs/components/smlight/config_flow.pyi +0 -2
- homeassistant-stubs/components/smlight/coordinator.pyi +1 -1
- homeassistant-stubs/components/smlight/update.pyi +4 -2
- homeassistant-stubs/components/solarlog/__init__.pyi +1 -0
- homeassistant-stubs/components/solarlog/config_flow.pyi +1 -4
- homeassistant-stubs/components/solarlog/coordinator.pyi +6 -0
- homeassistant-stubs/components/sonarr/config_flow.pyi +1 -4
- homeassistant-stubs/components/speedtestdotnet/__init__.pyi +2 -1
- homeassistant-stubs/components/spotify/__init__.pyi +5 -0
- homeassistant-stubs/components/spotify/application_credentials.pyi +4 -0
- homeassistant-stubs/components/spotify/browse_media.pyi +49 -0
- homeassistant-stubs/components/spotify/config_flow.pyi +19 -0
- homeassistant-stubs/components/spotify/const.pyi +9 -0
- homeassistant-stubs/components/spotify/coordinator.pyi +34 -0
- homeassistant-stubs/components/spotify/diagnostics.pyi +5 -0
- homeassistant-stubs/components/spotify/entity.pyi +10 -0
- homeassistant-stubs/components/spotify/media_player.pyi +82 -0
- homeassistant-stubs/components/spotify/models.pyi +12 -0
- homeassistant-stubs/components/spotify/sensor.pyi +31 -0
- homeassistant-stubs/components/spotify/system_health.pyi +6 -0
- homeassistant-stubs/components/spotify/util.pyi +7 -0
- homeassistant-stubs/components/squeezebox/__init__.pyi +6 -3
- homeassistant-stubs/components/squeezebox/const.pyi +5 -0
- homeassistant-stubs/components/squeezebox/coordinator.pyi +15 -3
- homeassistant-stubs/components/squeezebox/media_player.pyi +12 -13
- homeassistant-stubs/components/ssdp/__init__.pyi +1 -0
- homeassistant-stubs/components/statistics/config_flow.pyi +8 -2
- homeassistant-stubs/components/statistics/sensor.pyi +20 -22
- homeassistant-stubs/components/steamist/config_flow.pyi +3 -1
- homeassistant-stubs/components/sun/entity.pyi +1 -0
- homeassistant-stubs/components/surepetcare/config_flow.pyi +1 -2
- homeassistant-stubs/components/switch/__init__.pyi +0 -2
- homeassistant-stubs/components/switch_as_x/__init__.pyi +3 -0
- homeassistant-stubs/components/switch_as_x/config_flow.pyi +18 -0
- homeassistant-stubs/components/switch_as_x/const.pyi +5 -0
- homeassistant-stubs/components/switch_as_x/cover.pyi +18 -0
- homeassistant-stubs/components/switch_as_x/entity.pyi +35 -0
- homeassistant-stubs/components/switch_as_x/fan.pyi +17 -0
- homeassistant-stubs/components/switch_as_x/light.pyi +13 -0
- homeassistant-stubs/components/switch_as_x/lock.pyi +17 -0
- homeassistant-stubs/components/switch_as_x/siren.pyi +12 -0
- homeassistant-stubs/components/switch_as_x/valve.pyi +19 -0
- homeassistant-stubs/components/switchbee/entity.pyi +2 -2
- homeassistant-stubs/components/switchbee/switch.pyi +2 -1
- homeassistant-stubs/components/switchbot_cloud/__init__.pyi +2 -1
- homeassistant-stubs/components/switchbot_cloud/coordinator.pyi +2 -0
- homeassistant-stubs/components/switchbot_cloud/lock.pyi +18 -0
- homeassistant-stubs/components/switcher_kis/__init__.pyi +1 -0
- homeassistant-stubs/components/switcher_kis/button.pyi +2 -5
- homeassistant-stubs/components/switcher_kis/climate.pyi +2 -5
- homeassistant-stubs/components/switcher_kis/config_flow.pyi +1 -2
- homeassistant-stubs/components/switcher_kis/coordinator.pyi +1 -1
- homeassistant-stubs/components/switcher_kis/cover.pyi +16 -9
- homeassistant-stubs/components/switcher_kis/entity.pyi +9 -0
- homeassistant-stubs/components/switcher_kis/light.pyi +44 -0
- homeassistant-stubs/components/switcher_kis/sensor.pyi +2 -5
- homeassistant-stubs/components/switcher_kis/switch.pyi +2 -5
- homeassistant-stubs/components/synology_dsm/coordinator.pyi +2 -2
- homeassistant-stubs/components/synology_dsm/entity.pyi +2 -1
- homeassistant-stubs/components/synology_dsm/update.pyi +1 -1
- homeassistant-stubs/components/system_log/__init__.pyi +1 -0
- homeassistant-stubs/components/systemmonitor/__init__.pyi +1 -0
- homeassistant-stubs/components/tailscale/config_flow.pyi +1 -2
- homeassistant-stubs/components/tailwind/config_flow.pyi +1 -2
- homeassistant-stubs/components/tailwind/typing.pyi +2 -0
- homeassistant-stubs/components/tautulli/__init__.pyi +1 -0
- homeassistant-stubs/components/technove/helpers.pyi +1 -1
- homeassistant-stubs/components/tedee/__init__.pyi +1 -1
- homeassistant-stubs/components/tedee/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/tedee/config_flow.pyi +2 -5
- homeassistant-stubs/components/tedee/coordinator.pyi +5 -5
- homeassistant-stubs/components/tedee/lock.pyi +2 -2
- homeassistant-stubs/components/tedee/sensor.pyi +1 -1
- homeassistant-stubs/components/text/__init__.pyi +0 -6
- homeassistant-stubs/components/thethingsnetwork/config_flow.pyi +1 -2
- homeassistant-stubs/components/thethingsnetwork/sensor.pyi +2 -1
- homeassistant-stubs/components/threshold/binary_sensor.pyi +1 -3
- homeassistant-stubs/components/tibber/sensor.pyi +1 -0
- homeassistant-stubs/components/tile/device_tracker.pyi +3 -6
- homeassistant-stubs/components/time/__init__.pyi +0 -4
- homeassistant-stubs/components/timer/__init__.pyi +1 -1
- homeassistant-stubs/components/tod/binary_sensor.pyi +2 -1
- homeassistant-stubs/components/todo/__init__.pyi +0 -2
- homeassistant-stubs/components/tplink/__init__.pyi +1 -0
- homeassistant-stubs/components/tplink/button.pyi +1 -1
- homeassistant-stubs/components/tplink/config_flow.pyi +5 -3
- homeassistant-stubs/components/tplink/entity.pyi +4 -4
- homeassistant-stubs/components/tplink_omada/__init__.pyi +4 -3
- homeassistant-stubs/components/tplink_omada/binary_sensor.pyi +3 -5
- homeassistant-stubs/components/tplink_omada/const.pyi +11 -0
- homeassistant-stubs/components/tplink_omada/coordinator.pyi +1 -1
- homeassistant-stubs/components/tplink_omada/device_tracker.pyi +3 -4
- homeassistant-stubs/components/tplink_omada/entity.pyi +3 -1
- homeassistant-stubs/components/tplink_omada/sensor.pyi +34 -0
- homeassistant-stubs/components/tplink_omada/switch.pyi +3 -5
- homeassistant-stubs/components/tplink_omada/update.pyi +3 -6
- homeassistant-stubs/components/trace/__init__.pyi +5 -25
- homeassistant-stubs/components/trace/const.pyi +1 -1
- homeassistant-stubs/components/trace/models.pyi +2 -0
- homeassistant-stubs/components/trace/util.pyi +17 -0
- homeassistant-stubs/components/trace/websocket_api.pyi +1 -1
- homeassistant-stubs/components/tractive/__init__.pyi +1 -0
- homeassistant-stubs/components/trafikverket_camera/config_flow.pyi +2 -2
- homeassistant-stubs/components/trafikverket_ferry/config_flow.pyi +1 -2
- homeassistant-stubs/components/trafikverket_train/config_flow.pyi +0 -1
- homeassistant-stubs/components/trafikverket_weatherstation/config_flow.pyi +3 -2
- homeassistant-stubs/components/transmission/__init__.pyi +1 -0
- homeassistant-stubs/components/transmission/config_flow.pyi +1 -2
- homeassistant-stubs/components/trend/binary_sensor.pyi +1 -2
- homeassistant-stubs/components/tts/__init__.pyi +0 -5
- homeassistant-stubs/components/tts/const.pyi +1 -0
- homeassistant-stubs/components/twentemilieu/__init__.pyi +4 -0
- homeassistant-stubs/components/unifi/__init__.pyi +1 -0
- homeassistant-stubs/components/unifi/config_flow.pyi +1 -2
- homeassistant-stubs/components/unifi/device_tracker.pyi +0 -3
- homeassistant-stubs/components/unifi/update.pyi +1 -1
- homeassistant-stubs/components/unifiprotect/camera.pyi +3 -2
- homeassistant-stubs/components/unifiprotect/config_flow.pyi +0 -1
- homeassistant-stubs/components/unifiprotect/data.pyi +2 -0
- homeassistant-stubs/components/update/__init__.pyi +7 -12
- homeassistant-stubs/components/update/const.pyi +2 -0
- homeassistant-stubs/components/vacuum/__init__.pyi +0 -6
- homeassistant-stubs/components/vallox/config_flow.pyi +2 -5
- homeassistant-stubs/components/velbus/entity.pyi +1 -1
- homeassistant-stubs/components/vlc_telnet/__init__.pyi +1 -0
- homeassistant-stubs/components/vlc_telnet/config_flow.pyi +2 -3
- homeassistant-stubs/components/vlc_telnet/media_player.pyi +1 -1
- homeassistant-stubs/components/wallbox/__init__.pyi +1 -1
- homeassistant-stubs/components/wallbox/config_flow.pyi +2 -4
- homeassistant-stubs/components/wallbox/coordinator.pyi +3 -3
- homeassistant-stubs/components/water_heater/__init__.pyi +0 -9
- homeassistant-stubs/components/weather/__init__.pyi +0 -19
- homeassistant-stubs/components/webostv/config_flow.pyi +2 -2
- homeassistant-stubs/components/webostv/media_player.pyi +1 -1
- homeassistant-stubs/components/websocket_api/connection.pyi +3 -0
- homeassistant-stubs/components/websocket_api/const.pyi +4 -1
- homeassistant-stubs/components/wemo/__init__.pyi +4 -1
- homeassistant-stubs/components/wemo/coordinator.pyi +3 -0
- homeassistant-stubs/components/withings/__init__.pyi +4 -2
- homeassistant-stubs/components/withings/config_flow.pyi +1 -2
- homeassistant-stubs/components/withings/coordinator.pyi +7 -2
- homeassistant-stubs/components/withings/entity.pyi +14 -2
- homeassistant-stubs/components/withings/sensor.pyi +19 -4
- homeassistant-stubs/components/wiz/__init__.pyi +1 -0
- homeassistant-stubs/components/wled/__init__.pyi +1 -0
- homeassistant-stubs/components/wled/helpers.pyi +1 -1
- homeassistant-stubs/components/workday/__init__.pyi +13 -0
- homeassistant-stubs/components/workday/binary_sensor.pyi +46 -0
- homeassistant-stubs/components/workday/config_flow.pyi +33 -0
- homeassistant-stubs/components/workday/const.pyi +18 -0
- homeassistant-stubs/components/workday/diagnostics.pyi +5 -0
- homeassistant-stubs/components/workday/repairs.pyi +28 -0
- homeassistant-stubs/components/xiaomi_ble/config_flow.pyi +7 -2
- homeassistant-stubs/components/xiaomi_ble/coordinator.pyi +1 -1
- homeassistant-stubs/components/xiaomi_ble/types.pyi +2 -0
- homeassistant-stubs/components/yale_smart_alarm/__init__.pyi +1 -0
- homeassistant-stubs/components/yale_smart_alarm/alarm_control_panel.pyi +2 -3
- homeassistant-stubs/components/yale_smart_alarm/binary_sensor.pyi +7 -0
- homeassistant-stubs/components/yale_smart_alarm/config_flow.pyi +0 -1
- homeassistant-stubs/components/yale_smart_alarm/const.pyi +2 -1
- homeassistant-stubs/components/yale_smart_alarm/select.pyi +21 -0
- homeassistant-stubs/components/yalexs_ble/__init__.pyi +1 -0
- homeassistant-stubs/components/yalexs_ble/config_flow.pyi +6 -2
- homeassistant-stubs/components/youtube/config_flow.pyi +1 -2
- homeassistant-stubs/components/zwave_js/api.pyi +1 -1
- homeassistant-stubs/components/zwave_js/config_flow.pyi +6 -4
- homeassistant-stubs/components/zwave_js/discovery.pyi +2 -1
- homeassistant-stubs/components/zwave_js/discovery_data_template.pyi +1 -1
- homeassistant-stubs/components/zwave_js/light.pyi +8 -6
- homeassistant-stubs/components/zwave_js/services.pyi +4 -1
- homeassistant-stubs/components/zwave_js/update.pyi +2 -1
- homeassistant-stubs/config.pyi +3 -24
- homeassistant-stubs/config_entries.pyi +52 -27
- homeassistant-stubs/const.pyi +16 -12
- homeassistant-stubs/core.pyi +40 -109
- homeassistant-stubs/core_config.pyi +108 -0
- homeassistant-stubs/data_entry_flow.pyi +22 -18
- homeassistant-stubs/helpers/area_registry.pyi +6 -8
- homeassistant-stubs/helpers/category_registry.pyi +1 -0
- homeassistant-stubs/helpers/check_config.pyi +2 -1
- homeassistant-stubs/helpers/collection.pyi +6 -4
- homeassistant-stubs/helpers/condition.pyi +1 -0
- homeassistant-stubs/helpers/config_entry_flow.pyi +3 -2
- homeassistant-stubs/helpers/config_validation.pyi +6 -6
- homeassistant-stubs/helpers/data_entry_flow.pyi +1 -1
- homeassistant-stubs/helpers/debounce.pyi +1 -1
- homeassistant-stubs/helpers/deprecation.pyi +9 -4
- homeassistant-stubs/helpers/device_registry.pyi +7 -8
- homeassistant-stubs/helpers/discovery_flow.pyi +5 -5
- homeassistant-stubs/helpers/dispatcher.pyi +9 -8
- homeassistant-stubs/helpers/entity.pyi +2 -31
- homeassistant-stubs/helpers/entity_registry.pyi +7 -9
- homeassistant-stubs/helpers/event.pyi +2 -1
- homeassistant-stubs/helpers/floor_registry.pyi +3 -3
- homeassistant-stubs/helpers/frame.pyi +1 -5
- homeassistant-stubs/helpers/hassio.pyi +4 -0
- homeassistant-stubs/helpers/http.pyi +2 -0
- homeassistant-stubs/helpers/intent.pyi +6 -5
- homeassistant-stubs/helpers/json.pyi +3 -0
- homeassistant-stubs/helpers/label_registry.pyi +3 -3
- homeassistant-stubs/helpers/llm.pyi +1 -2
- homeassistant-stubs/helpers/network.pyi +1 -0
- homeassistant-stubs/helpers/normalized_name_base_registry.pyi +6 -3
- homeassistant-stubs/helpers/ratelimit.pyi +1 -1
- homeassistant-stubs/helpers/redact.pyi +2 -2
- homeassistant-stubs/helpers/registry.pyi +5 -3
- homeassistant-stubs/helpers/script.pyi +3 -7
- homeassistant-stubs/helpers/selector.pyi +1 -1
- homeassistant-stubs/helpers/service.pyi +2 -2
- homeassistant-stubs/helpers/service_info/hassio.pyi +11 -0
- homeassistant-stubs/helpers/service_info/mqtt.pyi +1 -0
- homeassistant-stubs/helpers/significant_change.pyi +3 -0
- homeassistant-stubs/helpers/singleton.pyi +3 -2
- homeassistant-stubs/helpers/storage.pyi +4 -5
- homeassistant-stubs/helpers/sun.pyi +2 -0
- homeassistant-stubs/helpers/system_info.pyi +1 -0
- homeassistant-stubs/helpers/template.pyi +4 -3
- homeassistant-stubs/helpers/trace.pyi +3 -3
- homeassistant-stubs/helpers/typing.pyi +13 -0
- homeassistant-stubs/helpers/update_coordinator.pyi +4 -4
- homeassistant-stubs/loader.pyi +5 -21
- homeassistant-stubs/scripts/benchmark/__init__.pyi +1 -1
- homeassistant-stubs/util/__init__.pyi +1 -1
- homeassistant-stubs/util/async_.pyi +2 -2
- homeassistant-stubs/util/decorator.pyi +2 -1
- homeassistant-stubs/util/dt.pyi +3 -2
- homeassistant-stubs/util/enum.pyi +2 -2
- homeassistant-stubs/util/hass_dict.pyi +17 -17
- homeassistant-stubs/util/json.pyi +3 -0
- homeassistant-stubs/util/limited_size_dict.pyi +1 -1
- homeassistant-stubs/util/logging.pyi +8 -8
- homeassistant-stubs/util/loop.pyi +1 -1
- homeassistant-stubs/util/percentage.pyi +2 -2
- homeassistant-stubs/util/read_only_dict.pyi +1 -1
- homeassistant-stubs/util/signal_type.pyi +3 -3
- homeassistant-stubs/util/timeout.pyi +3 -1
- homeassistant-stubs/util/variance.pyi +3 -3
- homeassistant-stubs/util/yaml/loader.pyi +2 -4
- {homeassistant_stubs-2024.10.3.dist-info → homeassistant_stubs-2024.11.0.dist-info}/METADATA +2 -2
- {homeassistant_stubs-2024.10.3.dist-info → homeassistant_stubs-2024.11.0.dist-info}/RECORD +851 -772
- homeassistant-stubs/components/jellyfin/models.pyi +0 -10
- homeassistant-stubs/components/map/__init__.pyi +0 -14
- {homeassistant_stubs-2024.10.3.dist-info → homeassistant_stubs-2024.11.0.dist-info}/WHEEL +0 -0
- {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,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,
|
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,
|
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
|
-
|
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
|
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
|
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
|
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: ...
|