homeassistant-stubs 2024.10.4__py3-none-any.whl → 2024.11.0b0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 -1
- homeassistant-stubs/components/bang_olufsen/media_player.pyi +13 -5
- 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 +3 -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 +35 -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 +95 -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 +7 -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 +40 -0
- homeassistant-stubs/components/go2rtc/config_flow.pyi +7 -0
- homeassistant-stubs/components/go2rtc/const.pyi +2 -0
- homeassistant-stubs/components/go2rtc/server.pyi +22 -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/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/music_assistant/__init__.pyi +27 -0
- homeassistant-stubs/components/music_assistant/config_flow.pyi +24 -0
- homeassistant-stubs/components/music_assistant/const.pyi +12 -0
- homeassistant-stubs/components/music_assistant/entity.pyi +24 -0
- homeassistant-stubs/components/music_assistant/media_player.pyi +91 -0
- 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 +12 -6
- 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 +22 -25
- 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 +3 -18
- 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 +1 -0
- 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 +80 -0
- homeassistant-stubs/components/spotify/models.pyi +12 -0
- homeassistant-stubs/components/spotify/sensor.pyi +28 -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/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 +36 -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 +5 -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/variance.pyi +3 -3
- homeassistant-stubs/util/yaml/loader.pyi +2 -4
- {homeassistant_stubs-2024.10.4.dist-info → homeassistant_stubs-2024.11.0b0.dist-info}/METADATA +2 -2
- {homeassistant_stubs-2024.10.4.dist-info → homeassistant_stubs-2024.11.0b0.dist-info}/RECORD +852 -768
- homeassistant-stubs/components/jellyfin/models.pyi +0 -10
- homeassistant-stubs/components/map/__init__.pyi +0 -14
- {homeassistant_stubs-2024.10.4.dist-info → homeassistant_stubs-2024.11.0b0.dist-info}/WHEEL +0 -0
- {homeassistant_stubs-2024.10.4.dist-info → homeassistant_stubs-2024.11.0b0.dist-info}/licenses/LICENSE +0 -0
@@ -1,16 +1,17 @@
|
|
1
1
|
from .abbreviations import ABBREVIATIONS as ABBREVIATIONS, DEVICE_ABBREVIATIONS as DEVICE_ABBREVIATIONS, ORIGIN_ABBREVIATIONS as ORIGIN_ABBREVIATIONS
|
2
2
|
from .client import async_subscribe_internal as async_subscribe_internal
|
3
|
-
from .const import ATTR_DISCOVERY_HASH as ATTR_DISCOVERY_HASH, ATTR_DISCOVERY_PAYLOAD as ATTR_DISCOVERY_PAYLOAD, ATTR_DISCOVERY_TOPIC as ATTR_DISCOVERY_TOPIC, CONF_AVAILABILITY as CONF_AVAILABILITY, CONF_ORIGIN as CONF_ORIGIN, CONF_TOPIC as CONF_TOPIC, DOMAIN as DOMAIN, SUPPORTED_COMPONENTS as SUPPORTED_COMPONENTS
|
4
|
-
from .models import DATA_MQTT as DATA_MQTT, MqttOriginInfo as MqttOriginInfo, ReceiveMessage as ReceiveMessage
|
5
|
-
from .schemas import MQTT_ORIGIN_INFO_SCHEMA as MQTT_ORIGIN_INFO_SCHEMA
|
3
|
+
from .const import ATTR_DISCOVERY_HASH as ATTR_DISCOVERY_HASH, ATTR_DISCOVERY_PAYLOAD as ATTR_DISCOVERY_PAYLOAD, ATTR_DISCOVERY_TOPIC as ATTR_DISCOVERY_TOPIC, CONF_AVAILABILITY as CONF_AVAILABILITY, CONF_COMPONENTS as CONF_COMPONENTS, CONF_ORIGIN as CONF_ORIGIN, CONF_TOPIC as CONF_TOPIC, DOMAIN as DOMAIN, SUPPORTED_COMPONENTS as SUPPORTED_COMPONENTS
|
4
|
+
from .models import DATA_MQTT as DATA_MQTT, MqttComponentConfig as MqttComponentConfig, MqttOriginInfo as MqttOriginInfo, ReceiveMessage as ReceiveMessage
|
5
|
+
from .schemas import DEVICE_DISCOVERY_SCHEMA as DEVICE_DISCOVERY_SCHEMA, MQTT_ORIGIN_INFO_SCHEMA as MQTT_ORIGIN_INFO_SCHEMA, SHARED_OPTIONS as SHARED_OPTIONS
|
6
6
|
from .util import async_forward_entry_setup_and_setup_discovery as async_forward_entry_setup_and_setup_discovery
|
7
7
|
from _typeshed import Incomplete
|
8
|
-
from
|
8
|
+
from dataclasses import dataclass
|
9
|
+
from homeassistant.config_entries import ConfigEntry as ConfigEntry, SOURCE_MQTT as SOURCE_MQTT, signal_discovered_config_entry_removed as signal_discovered_config_entry_removed
|
9
10
|
from homeassistant.const import CONF_DEVICE as CONF_DEVICE, CONF_PLATFORM as CONF_PLATFORM
|
10
11
|
from homeassistant.core import HassJobType as HassJobType, HomeAssistant as HomeAssistant, callback as callback
|
11
|
-
from homeassistant.
|
12
|
+
from homeassistant.helpers import discovery_flow as discovery_flow
|
12
13
|
from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect, async_dispatcher_send as async_dispatcher_send
|
13
|
-
from homeassistant.helpers.service_info.mqtt import MqttServiceInfo as MqttServiceInfo
|
14
|
+
from homeassistant.helpers.service_info.mqtt import MqttServiceInfo as MqttServiceInfo, ReceivePayloadType as ReceivePayloadType
|
14
15
|
from homeassistant.helpers.typing import DiscoveryInfoType as DiscoveryInfoType
|
15
16
|
from homeassistant.loader import async_get_mqtt as async_get_mqtt
|
16
17
|
from homeassistant.util.json import json_loads_object as json_loads_object
|
@@ -26,16 +27,32 @@ MQTT_DISCOVERY_UPDATED: SignalTypeFormat[MQTTDiscoveryPayload]
|
|
26
27
|
MQTT_DISCOVERY_NEW: SignalTypeFormat[MQTTDiscoveryPayload]
|
27
28
|
MQTT_DISCOVERY_DONE: SignalTypeFormat[Any]
|
28
29
|
TOPIC_BASE: str
|
30
|
+
CONF_MIGRATE_DISCOVERY: str
|
31
|
+
MIGRATE_DISCOVERY_SCHEMA: Incomplete
|
29
32
|
|
30
33
|
class MQTTDiscoveryPayload(dict[str, Any]):
|
34
|
+
device_discovery: bool
|
35
|
+
migrate_discovery: bool
|
31
36
|
discovery_data: DiscoveryInfoType
|
32
37
|
|
38
|
+
@dataclass(frozen=True)
|
39
|
+
class MQTTIntegrationDiscoveryConfig:
|
40
|
+
integration: str
|
41
|
+
msg: ReceiveMessage
|
42
|
+
def __init__(self, integration, msg) -> None: ...
|
43
|
+
|
44
|
+
def _async_process_discovery_migration(payload: MQTTDiscoveryPayload) -> bool: ...
|
33
45
|
def clear_discovery_hash(hass: HomeAssistant, discovery_hash: tuple[str, str]) -> None: ...
|
34
46
|
def set_discovery_hash(hass: HomeAssistant, discovery_hash: tuple[str, str]) -> None: ...
|
47
|
+
def get_origin_log_string(discovery_payload: MQTTDiscoveryPayload, *, include_url: bool) -> str: ...
|
48
|
+
def get_origin_support_url(discovery_payload: MQTTDiscoveryPayload) -> str | None: ...
|
35
49
|
def async_log_discovery_origin_info(message: str, discovery_payload: MQTTDiscoveryPayload, level: int = ...) -> None: ...
|
36
|
-
def _replace_abbreviations(payload:
|
37
|
-
def _replace_all_abbreviations(discovery_payload:
|
38
|
-
def _replace_topic_base(discovery_payload:
|
50
|
+
def _replace_abbreviations(payload: dict[str, Any] | str, abbreviations: dict[str, str], abbreviations_set: set[str]) -> None: ...
|
51
|
+
def _replace_all_abbreviations(discovery_payload: dict[str, Any], component_only: bool = False) -> None: ...
|
52
|
+
def _replace_topic_base(discovery_payload: MQTTDiscoveryPayload) -> None: ...
|
53
|
+
def _generate_device_config(hass: HomeAssistant, object_id: str, node_id: str | None, migrate_discovery: bool = False) -> MQTTDiscoveryPayload: ...
|
54
|
+
def _parse_device_payload(hass: HomeAssistant, payload: ReceivePayloadType, object_id: str, node_id: str | None) -> MQTTDiscoveryPayload: ...
|
39
55
|
def _valid_origin_info(discovery_payload: MQTTDiscoveryPayload) -> bool: ...
|
56
|
+
def _merge_common_device_options(component_config: MQTTDiscoveryPayload, device_config: dict[str, Any]) -> None: ...
|
40
57
|
async def async_start(hass: HomeAssistant, discovery_topic: str, config_entry: ConfigEntry) -> None: ...
|
41
58
|
async def async_stop(hass: HomeAssistant) -> None: ...
|
@@ -2,9 +2,9 @@ import abc
|
|
2
2
|
import voluptuous as vol
|
3
3
|
from . import debug_info as debug_info, subscription as subscription
|
4
4
|
from .client import async_publish as async_publish
|
5
|
-
from .const import ATTR_DISCOVERY_HASH as ATTR_DISCOVERY_HASH, ATTR_DISCOVERY_PAYLOAD as ATTR_DISCOVERY_PAYLOAD, ATTR_DISCOVERY_TOPIC as ATTR_DISCOVERY_TOPIC, AVAILABILITY_ALL as AVAILABILITY_ALL, AVAILABILITY_ANY as AVAILABILITY_ANY, CONF_AVAILABILITY as CONF_AVAILABILITY, CONF_AVAILABILITY_MODE as CONF_AVAILABILITY_MODE, CONF_AVAILABILITY_TEMPLATE as CONF_AVAILABILITY_TEMPLATE, CONF_AVAILABILITY_TOPIC as CONF_AVAILABILITY_TOPIC, CONF_CONFIGURATION_URL as CONF_CONFIGURATION_URL, CONF_CONNECTIONS as CONF_CONNECTIONS, CONF_ENABLED_BY_DEFAULT as CONF_ENABLED_BY_DEFAULT, CONF_ENCODING as CONF_ENCODING, CONF_HW_VERSION as CONF_HW_VERSION, CONF_IDENTIFIERS as CONF_IDENTIFIERS, CONF_JSON_ATTRS_TEMPLATE as CONF_JSON_ATTRS_TEMPLATE, CONF_JSON_ATTRS_TOPIC as CONF_JSON_ATTRS_TOPIC, CONF_MANUFACTURER as CONF_MANUFACTURER, CONF_OBJECT_ID as CONF_OBJECT_ID, CONF_PAYLOAD_AVAILABLE as CONF_PAYLOAD_AVAILABLE, CONF_PAYLOAD_NOT_AVAILABLE as CONF_PAYLOAD_NOT_AVAILABLE, CONF_QOS as CONF_QOS, CONF_RETAIN as CONF_RETAIN, CONF_SCHEMA as CONF_SCHEMA, CONF_SERIAL_NUMBER as CONF_SERIAL_NUMBER, CONF_SUGGESTED_AREA as CONF_SUGGESTED_AREA, CONF_SW_VERSION as CONF_SW_VERSION, CONF_TOPIC as CONF_TOPIC, CONF_VIA_DEVICE as CONF_VIA_DEVICE, DEFAULT_ENCODING as DEFAULT_ENCODING, DOMAIN as DOMAIN, MQTT_CONNECTION_STATE as MQTT_CONNECTION_STATE
|
5
|
+
from .const import ATTR_DISCOVERY_HASH as ATTR_DISCOVERY_HASH, ATTR_DISCOVERY_PAYLOAD as ATTR_DISCOVERY_PAYLOAD, ATTR_DISCOVERY_TOPIC as ATTR_DISCOVERY_TOPIC, AVAILABILITY_ALL as AVAILABILITY_ALL, AVAILABILITY_ANY as AVAILABILITY_ANY, CONF_AVAILABILITY as CONF_AVAILABILITY, CONF_AVAILABILITY_MODE as CONF_AVAILABILITY_MODE, CONF_AVAILABILITY_TEMPLATE as CONF_AVAILABILITY_TEMPLATE, CONF_AVAILABILITY_TOPIC as CONF_AVAILABILITY_TOPIC, CONF_CONFIGURATION_URL as CONF_CONFIGURATION_URL, CONF_CONNECTIONS as CONF_CONNECTIONS, CONF_ENABLED_BY_DEFAULT as CONF_ENABLED_BY_DEFAULT, CONF_ENCODING as CONF_ENCODING, CONF_ENTITY_PICTURE as CONF_ENTITY_PICTURE, CONF_HW_VERSION as CONF_HW_VERSION, CONF_IDENTIFIERS as CONF_IDENTIFIERS, CONF_JSON_ATTRS_TEMPLATE as CONF_JSON_ATTRS_TEMPLATE, CONF_JSON_ATTRS_TOPIC as CONF_JSON_ATTRS_TOPIC, CONF_MANUFACTURER as CONF_MANUFACTURER, CONF_OBJECT_ID as CONF_OBJECT_ID, CONF_PAYLOAD_AVAILABLE as CONF_PAYLOAD_AVAILABLE, CONF_PAYLOAD_NOT_AVAILABLE as CONF_PAYLOAD_NOT_AVAILABLE, CONF_QOS as CONF_QOS, CONF_RETAIN as CONF_RETAIN, CONF_SCHEMA as CONF_SCHEMA, CONF_SERIAL_NUMBER as CONF_SERIAL_NUMBER, CONF_SUGGESTED_AREA as CONF_SUGGESTED_AREA, CONF_SW_VERSION as CONF_SW_VERSION, CONF_TOPIC as CONF_TOPIC, CONF_VIA_DEVICE as CONF_VIA_DEVICE, DEFAULT_ENCODING as DEFAULT_ENCODING, DOMAIN as DOMAIN, MQTT_CONNECTION_STATE as MQTT_CONNECTION_STATE
|
6
6
|
from .debug_info import log_message as log_message
|
7
|
-
from .discovery import MQTTDiscoveryPayload as MQTTDiscoveryPayload, MQTT_DISCOVERY_DONE as MQTT_DISCOVERY_DONE, MQTT_DISCOVERY_NEW as MQTT_DISCOVERY_NEW, MQTT_DISCOVERY_UPDATED as MQTT_DISCOVERY_UPDATED, clear_discovery_hash as clear_discovery_hash, set_discovery_hash as set_discovery_hash
|
7
|
+
from .discovery import MQTTDiscoveryPayload as MQTTDiscoveryPayload, MQTT_DISCOVERY_DONE as MQTT_DISCOVERY_DONE, MQTT_DISCOVERY_NEW as MQTT_DISCOVERY_NEW, MQTT_DISCOVERY_UPDATED as MQTT_DISCOVERY_UPDATED, clear_discovery_hash as clear_discovery_hash, get_origin_log_string as get_origin_log_string, get_origin_support_url as get_origin_support_url, set_discovery_hash as set_discovery_hash
|
8
8
|
from .models import DATA_MQTT as DATA_MQTT, MessageCallbackType as MessageCallbackType, MqttValueTemplate as MqttValueTemplate, MqttValueTemplateException as MqttValueTemplateException, PublishPayloadType as PublishPayloadType, ReceiveMessage as ReceiveMessage
|
9
9
|
from .subscription import EntitySubscription as EntitySubscription, async_prepare_subscribe_topics as async_prepare_subscribe_topics, async_subscribe_topics_internal as async_subscribe_topics_internal, async_unsubscribe_topics as async_unsubscribe_topics
|
10
10
|
from .util import mqtt_config_entry_enabled as mqtt_config_entry_enabled
|
@@ -89,6 +89,7 @@ class MqttDiscoveryDeviceUpdateMixin(ABC, metaclass=abc.ABCMeta):
|
|
89
89
|
_config_entry: Incomplete
|
90
90
|
_config_entry_id: Incomplete
|
91
91
|
_skip_device_removal: bool
|
92
|
+
_migrate_discovery: Incomplete
|
92
93
|
_remove_discovery_updated: Incomplete
|
93
94
|
_remove_device_updated: Incomplete
|
94
95
|
def __init__(self, hass: HomeAssistant, discovery_data: DiscoveryInfoType, device_id: str | None, config_entry: ConfigEntry, log_name: str) -> None: ...
|
@@ -107,6 +108,7 @@ class MqttDiscoveryUpdateMixin(Entity):
|
|
107
108
|
_remove_discovery_updated: Incomplete
|
108
109
|
_removed_from_hass: bool
|
109
110
|
_registry_hooks: Incomplete
|
111
|
+
_migrate_discovery: Incomplete
|
110
112
|
def __init__(self, hass: HomeAssistant, discovery_data: DiscoveryInfoType | None, discovery_update: Callable[[MQTTDiscoveryPayload], Coroutine[Any, Any, None]] | None = None) -> None: ...
|
111
113
|
async def async_added_to_hass(self) -> None: ...
|
112
114
|
async def _async_remove_state_and_registry_entry(self) -> None: ...
|
@@ -157,6 +159,7 @@ class MqttEntity(MqttAttributesMixin, MqttAvailabilityMixin, MqttDiscoveryUpdate
|
|
157
159
|
_attr_entity_category: Incomplete
|
158
160
|
_attr_entity_registry_enabled_default: Incomplete
|
159
161
|
_attr_icon: Incomplete
|
162
|
+
_attr_entity_picture: Incomplete
|
160
163
|
def _setup_common_attributes_from_config(self, config: ConfigType) -> None: ...
|
161
164
|
def _setup_from_config(self, config: ConfigType) -> None: ...
|
162
165
|
@abstractmethod
|
@@ -7,6 +7,7 @@ from .discovery import MQTTDiscoveryPayload as MQTTDiscoveryPayload
|
|
7
7
|
from .tag import MQTTTagScanner as MQTTTagScanner
|
8
8
|
from _typeshed import Incomplete
|
9
9
|
from collections import deque
|
10
|
+
from collections.abc import Callable
|
10
11
|
from dataclasses import dataclass
|
11
12
|
from enum import StrEnum
|
12
13
|
from homeassistant.const import ATTR_ENTITY_ID as ATTR_ENTITY_ID, ATTR_NAME as ATTR_NAME, Platform as Platform
|
@@ -26,6 +27,7 @@ class PayloadSentinel(StrEnum):
|
|
26
27
|
|
27
28
|
_LOGGER: Incomplete
|
28
29
|
ATTR_THIS: str
|
30
|
+
type PublishPayloadType = str | bytes | int | float | None
|
29
31
|
|
30
32
|
def convert_outgoing_mqtt_payload(payload: PublishPayloadType) -> PublishPayloadType: ...
|
31
33
|
|
@@ -46,6 +48,7 @@ class ReceiveMessage:
|
|
46
48
|
subscribed_topic: str
|
47
49
|
timestamp: float
|
48
50
|
def __init__(self, topic, payload, qos, retain, subscribed_topic, timestamp) -> None: ...
|
51
|
+
type MessageCallbackType = Callable[[ReceiveMessage], None]
|
49
52
|
|
50
53
|
class SubscriptionDebugInfo(TypedDict):
|
51
54
|
messages: deque[ReceiveMessage]
|
@@ -128,5 +131,13 @@ class MqttData:
|
|
128
131
|
tags: dict[str, dict[str, MQTTTagScanner]] = ...
|
129
132
|
def __init__(self, client, config, debug_info_entities=..., debug_info_triggers=..., device_triggers=..., data_config_flow_lock=..., discovery_already_discovered=..., discovery_pending_discovered=..., discovery_registry_hooks=..., discovery_unsubscribe=..., integration_unsubscribe=..., last_discovery=..., platforms_loaded=..., reload_dispatchers=..., reload_handlers=..., reload_schema=..., state_write_requests=..., subscriptions_to_restore=..., tags=...) -> None: ...
|
130
133
|
|
134
|
+
@dataclass(slots=True)
|
135
|
+
class MqttComponentConfig:
|
136
|
+
component: str
|
137
|
+
object_id: str
|
138
|
+
node_id: str | None
|
139
|
+
discovery_payload: MQTTDiscoveryPayload
|
140
|
+
def __init__(self, component, object_id, node_id, discovery_payload) -> None: ...
|
141
|
+
|
131
142
|
DATA_MQTT: HassKey[MqttData]
|
132
143
|
DATA_MQTT_AVAILABLE: HassKey[asyncio.Future[bool]]
|
@@ -1,16 +1,24 @@
|
|
1
|
-
from .const import AVAILABILITY_LATEST as AVAILABILITY_LATEST, AVAILABILITY_MODES as AVAILABILITY_MODES, CONF_AVAILABILITY as CONF_AVAILABILITY, CONF_AVAILABILITY_MODE as CONF_AVAILABILITY_MODE, CONF_AVAILABILITY_TEMPLATE as CONF_AVAILABILITY_TEMPLATE, CONF_AVAILABILITY_TOPIC as CONF_AVAILABILITY_TOPIC, CONF_CONFIGURATION_URL as CONF_CONFIGURATION_URL, CONF_CONNECTIONS as CONF_CONNECTIONS, CONF_DEPRECATED_VIA_HUB as CONF_DEPRECATED_VIA_HUB, CONF_ENABLED_BY_DEFAULT as CONF_ENABLED_BY_DEFAULT, CONF_HW_VERSION as CONF_HW_VERSION, CONF_IDENTIFIERS as CONF_IDENTIFIERS, CONF_JSON_ATTRS_TEMPLATE as CONF_JSON_ATTRS_TEMPLATE, CONF_JSON_ATTRS_TOPIC as CONF_JSON_ATTRS_TOPIC, CONF_MANUFACTURER as CONF_MANUFACTURER, CONF_OBJECT_ID as CONF_OBJECT_ID, CONF_ORIGIN as CONF_ORIGIN, CONF_PAYLOAD_AVAILABLE as CONF_PAYLOAD_AVAILABLE, CONF_PAYLOAD_NOT_AVAILABLE as CONF_PAYLOAD_NOT_AVAILABLE, CONF_SERIAL_NUMBER as CONF_SERIAL_NUMBER, CONF_SUGGESTED_AREA as CONF_SUGGESTED_AREA, CONF_SUPPORT_URL as CONF_SUPPORT_URL, CONF_SW_VERSION as CONF_SW_VERSION, CONF_TOPIC as CONF_TOPIC, CONF_VIA_DEVICE as CONF_VIA_DEVICE, DEFAULT_PAYLOAD_AVAILABLE as DEFAULT_PAYLOAD_AVAILABLE, DEFAULT_PAYLOAD_NOT_AVAILABLE as DEFAULT_PAYLOAD_NOT_AVAILABLE
|
2
|
-
from .util import valid_subscribe_topic as valid_subscribe_topic
|
1
|
+
from .const import AVAILABILITY_LATEST as AVAILABILITY_LATEST, AVAILABILITY_MODES as AVAILABILITY_MODES, CONF_AVAILABILITY as CONF_AVAILABILITY, CONF_AVAILABILITY_MODE as CONF_AVAILABILITY_MODE, CONF_AVAILABILITY_TEMPLATE as CONF_AVAILABILITY_TEMPLATE, CONF_AVAILABILITY_TOPIC as CONF_AVAILABILITY_TOPIC, CONF_COMMAND_TOPIC as CONF_COMMAND_TOPIC, CONF_COMPONENTS as CONF_COMPONENTS, CONF_CONFIGURATION_URL as CONF_CONFIGURATION_URL, CONF_CONNECTIONS as CONF_CONNECTIONS, CONF_DEPRECATED_VIA_HUB as CONF_DEPRECATED_VIA_HUB, CONF_ENABLED_BY_DEFAULT as CONF_ENABLED_BY_DEFAULT, CONF_ENCODING as CONF_ENCODING, CONF_ENTITY_PICTURE as CONF_ENTITY_PICTURE, CONF_HW_VERSION as CONF_HW_VERSION, CONF_IDENTIFIERS as CONF_IDENTIFIERS, CONF_JSON_ATTRS_TEMPLATE as CONF_JSON_ATTRS_TEMPLATE, CONF_JSON_ATTRS_TOPIC as CONF_JSON_ATTRS_TOPIC, CONF_MANUFACTURER as CONF_MANUFACTURER, CONF_OBJECT_ID as CONF_OBJECT_ID, CONF_ORIGIN as CONF_ORIGIN, CONF_PAYLOAD_AVAILABLE as CONF_PAYLOAD_AVAILABLE, CONF_PAYLOAD_NOT_AVAILABLE as CONF_PAYLOAD_NOT_AVAILABLE, CONF_QOS as CONF_QOS, CONF_SERIAL_NUMBER as CONF_SERIAL_NUMBER, CONF_STATE_TOPIC as CONF_STATE_TOPIC, CONF_SUGGESTED_AREA as CONF_SUGGESTED_AREA, CONF_SUPPORT_URL as CONF_SUPPORT_URL, CONF_SW_VERSION as CONF_SW_VERSION, CONF_TOPIC as CONF_TOPIC, CONF_VIA_DEVICE as CONF_VIA_DEVICE, DEFAULT_PAYLOAD_AVAILABLE as DEFAULT_PAYLOAD_AVAILABLE, DEFAULT_PAYLOAD_NOT_AVAILABLE as DEFAULT_PAYLOAD_NOT_AVAILABLE, ENTITY_PLATFORMS as ENTITY_PLATFORMS, SUPPORTED_COMPONENTS as SUPPORTED_COMPONENTS
|
2
|
+
from .util import valid_publish_topic as valid_publish_topic, valid_qos_schema as valid_qos_schema, valid_subscribe_topic as valid_subscribe_topic
|
3
3
|
from _typeshed import Incomplete
|
4
|
-
from homeassistant.const import CONF_DEVICE as CONF_DEVICE, CONF_ENTITY_CATEGORY as CONF_ENTITY_CATEGORY, CONF_ICON as CONF_ICON, CONF_MODEL as CONF_MODEL, CONF_MODEL_ID as CONF_MODEL_ID, CONF_NAME as CONF_NAME, CONF_UNIQUE_ID as CONF_UNIQUE_ID, CONF_VALUE_TEMPLATE as CONF_VALUE_TEMPLATE
|
4
|
+
from homeassistant.const import CONF_DEVICE as CONF_DEVICE, CONF_ENTITY_CATEGORY as CONF_ENTITY_CATEGORY, CONF_ICON as CONF_ICON, CONF_MODEL as CONF_MODEL, CONF_MODEL_ID as CONF_MODEL_ID, CONF_NAME as CONF_NAME, CONF_PLATFORM as CONF_PLATFORM, CONF_UNIQUE_ID as CONF_UNIQUE_ID, CONF_VALUE_TEMPLATE as CONF_VALUE_TEMPLATE
|
5
5
|
from homeassistant.helpers.entity import ENTITY_CATEGORIES_SCHEMA as ENTITY_CATEGORIES_SCHEMA
|
6
6
|
from homeassistant.helpers.typing import ConfigType as ConfigType
|
7
|
+
from typing import Any
|
7
8
|
|
8
|
-
|
9
|
-
|
10
|
-
|
9
|
+
SHARED_OPTIONS: Incomplete
|
10
|
+
MQTT_ORIGIN_INFO_SCHEMA: Incomplete
|
11
|
+
_MQTT_AVAILABILITY_SINGLE_SCHEMA: Incomplete
|
12
|
+
_MQTT_AVAILABILITY_LIST_SCHEMA: Incomplete
|
13
|
+
_MQTT_AVAILABILITY_SCHEMA: Incomplete
|
11
14
|
|
12
15
|
def validate_device_has_at_least_one_identifier(value: ConfigType) -> ConfigType: ...
|
13
16
|
|
14
17
|
MQTT_ENTITY_DEVICE_INFO_SCHEMA: Incomplete
|
15
|
-
MQTT_ORIGIN_INFO_SCHEMA: Incomplete
|
16
18
|
MQTT_ENTITY_COMMON_SCHEMA: Incomplete
|
19
|
+
_UNIQUE_ID_SCHEMA: Incomplete
|
20
|
+
|
21
|
+
def check_unique_id(config: dict[str, Any]) -> dict[str, Any]: ...
|
22
|
+
|
23
|
+
_COMPONENT_CONFIG_SCHEMA: Incomplete
|
24
|
+
DEVICE_DISCOVERY_SCHEMA: Incomplete
|
@@ -15,11 +15,11 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEnti
|
|
15
15
|
from homeassistant.helpers.restore_state import RestoreEntity as RestoreEntity
|
16
16
|
from homeassistant.helpers.typing import ConfigType as ConfigType, VolSchemaType as VolSchemaType
|
17
17
|
from homeassistant.util.json import JSON_DECODE_EXCEPTIONS as JSON_DECODE_EXCEPTIONS, json_loads as json_loads
|
18
|
-
from typing import Any
|
18
|
+
from typing import Any
|
19
19
|
|
20
20
|
_LOGGER: Incomplete
|
21
21
|
DEFAULT_NAME: str
|
22
|
-
|
22
|
+
CONF_DISPLAY_PRECISION: str
|
23
23
|
CONF_LATEST_VERSION_TEMPLATE: str
|
24
24
|
CONF_LATEST_VERSION_TOPIC: str
|
25
25
|
CONF_PAYLOAD_INSTALL: str
|
@@ -28,26 +28,19 @@ CONF_RELEASE_URL: str
|
|
28
28
|
CONF_TITLE: str
|
29
29
|
PLATFORM_SCHEMA_MODERN: Incomplete
|
30
30
|
DISCOVERY_SCHEMA: Incomplete
|
31
|
-
|
32
|
-
class _MqttUpdatePayloadType(TypedDict, total=False):
|
33
|
-
installed_version: str
|
34
|
-
latest_version: str
|
35
|
-
title: str
|
36
|
-
release_summary: str
|
37
|
-
release_url: str
|
38
|
-
entity_picture: str
|
31
|
+
MQTT_JSON_UPDATE_SCHEMA: Incomplete
|
39
32
|
|
40
33
|
async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
|
41
34
|
|
42
35
|
class MqttUpdate(MqttEntity, UpdateEntity, RestoreEntity):
|
43
36
|
_default_name = DEFAULT_NAME
|
44
37
|
_entity_id_format: Incomplete
|
45
|
-
_entity_picture: str | None
|
46
38
|
@property
|
47
39
|
def entity_picture(self) -> str | None: ...
|
48
40
|
@staticmethod
|
49
41
|
def config_schema() -> VolSchemaType: ...
|
50
42
|
_attr_device_class: Incomplete
|
43
|
+
_attr_display_precision: Incomplete
|
51
44
|
_attr_release_summary: Incomplete
|
52
45
|
_attr_release_url: Incomplete
|
53
46
|
_attr_title: Incomplete
|
@@ -55,6 +48,9 @@ class MqttUpdate(MqttEntity, UpdateEntity, RestoreEntity):
|
|
55
48
|
def _setup_from_config(self, config: ConfigType) -> None: ...
|
56
49
|
_attr_installed_version: Incomplete
|
57
50
|
_attr_latest_version: Incomplete
|
51
|
+
_attr_entity_picture: Incomplete
|
52
|
+
_attr_update_percentage: Incomplete
|
53
|
+
_attr_in_progress: Incomplete
|
58
54
|
def _handle_state_message_received(self, msg: ReceiveMessage) -> None: ...
|
59
55
|
def _handle_latest_version_received(self, msg: ReceiveMessage) -> None: ...
|
60
56
|
def _prepare_subscribe_topics(self) -> None: ...
|
@@ -0,0 +1,27 @@
|
|
1
|
+
import asyncio
|
2
|
+
from .const import DOMAIN as DOMAIN, LOGGER as LOGGER
|
3
|
+
from _typeshed import Incomplete
|
4
|
+
from dataclasses import dataclass
|
5
|
+
from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigEntryState as ConfigEntryState
|
6
|
+
from homeassistant.const import CONF_URL as CONF_URL, EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP, Platform as Platform
|
7
|
+
from homeassistant.core import Event as Event, HomeAssistant as HomeAssistant
|
8
|
+
from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady
|
9
|
+
from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
|
10
|
+
from homeassistant.helpers.issue_registry import IssueSeverity as IssueSeverity, async_create_issue as async_create_issue, async_delete_issue as async_delete_issue
|
11
|
+
from music_assistant_client import MusicAssistantClient
|
12
|
+
from music_assistant_models.event import MassEvent as MassEvent
|
13
|
+
|
14
|
+
type MusicAssistantConfigEntry = ConfigEntry[MusicAssistantEntryData]
|
15
|
+
PLATFORMS: Incomplete
|
16
|
+
CONNECT_TIMEOUT: int
|
17
|
+
LISTEN_READY_TIMEOUT: int
|
18
|
+
|
19
|
+
@dataclass
|
20
|
+
class MusicAssistantEntryData:
|
21
|
+
mass: MusicAssistantClient
|
22
|
+
listen_task: asyncio.Task
|
23
|
+
def __init__(self, mass, listen_task) -> None: ...
|
24
|
+
|
25
|
+
async def async_setup_entry(hass: HomeAssistant, entry: MusicAssistantConfigEntry) -> bool: ...
|
26
|
+
async def _client_listen(hass: HomeAssistant, entry: ConfigEntry, mass: MusicAssistantClient, init_ready: asyncio.Event) -> None: ...
|
27
|
+
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import voluptuous as vol
|
2
|
+
from .const import DOMAIN as DOMAIN, LOGGER as LOGGER
|
3
|
+
from _typeshed import Incomplete
|
4
|
+
from homeassistant.components import zeroconf as zeroconf
|
5
|
+
from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
|
6
|
+
from homeassistant.const import CONF_URL as CONF_URL
|
7
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
8
|
+
from homeassistant.helpers import aiohttp_client as aiohttp_client
|
9
|
+
from music_assistant_models.api import ServerInfoMessage
|
10
|
+
from typing import Any
|
11
|
+
|
12
|
+
DEFAULT_URL: str
|
13
|
+
DEFAULT_TITLE: str
|
14
|
+
|
15
|
+
def get_manual_schema(user_input: dict[str, Any]) -> vol.Schema: ...
|
16
|
+
async def get_server_info(hass: HomeAssistant, url: str) -> ServerInfoMessage: ...
|
17
|
+
|
18
|
+
class MusicAssistantConfigFlow(ConfigFlow, domain=DOMAIN):
|
19
|
+
VERSION: int
|
20
|
+
server_info: Incomplete
|
21
|
+
def __init__(self) -> None: ...
|
22
|
+
async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
23
|
+
async def async_step_zeroconf(self, discovery_info: zeroconf.ZeroconfServiceInfo) -> ConfigFlowResult: ...
|
24
|
+
async def async_step_discovery_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
@@ -0,0 +1,12 @@
|
|
1
|
+
from _typeshed import Incomplete
|
2
|
+
|
3
|
+
DOMAIN: str
|
4
|
+
DOMAIN_EVENT: Incomplete
|
5
|
+
DEFAULT_NAME: str
|
6
|
+
ATTR_IS_GROUP: str
|
7
|
+
ATTR_GROUP_MEMBERS: str
|
8
|
+
ATTR_GROUP_PARENTS: str
|
9
|
+
ATTR_MASS_PLAYER_TYPE: str
|
10
|
+
ATTR_ACTIVE_QUEUE: str
|
11
|
+
ATTR_STREAM_TITLE: str
|
12
|
+
LOGGER: Incomplete
|
@@ -0,0 +1,24 @@
|
|
1
|
+
from .const import DOMAIN as DOMAIN
|
2
|
+
from _typeshed import Incomplete
|
3
|
+
from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
|
4
|
+
from homeassistant.helpers.entity import Entity as Entity
|
5
|
+
from music_assistant_client import MusicAssistantClient as MusicAssistantClient
|
6
|
+
from music_assistant_models.event import MassEvent as MassEvent
|
7
|
+
from music_assistant_models.player import Player as Player
|
8
|
+
|
9
|
+
class MusicAssistantEntity(Entity):
|
10
|
+
_attr_has_entity_name: bool
|
11
|
+
_attr_should_poll: bool
|
12
|
+
mass: Incomplete
|
13
|
+
player_id: Incomplete
|
14
|
+
_attr_device_info: Incomplete
|
15
|
+
def __init__(self, mass: MusicAssistantClient, player_id: str) -> None: ...
|
16
|
+
async def async_added_to_hass(self) -> None: ...
|
17
|
+
@property
|
18
|
+
def player(self) -> Player: ...
|
19
|
+
@property
|
20
|
+
def unique_id(self) -> str | None: ...
|
21
|
+
@property
|
22
|
+
def available(self) -> bool: ...
|
23
|
+
async def __on_mass_update(self, event: MassEvent) -> None: ...
|
24
|
+
async def async_on_update(self) -> None: ...
|
@@ -0,0 +1,91 @@
|
|
1
|
+
from . import MusicAssistantConfigEntry as MusicAssistantConfigEntry
|
2
|
+
from .const import ATTR_ACTIVE_QUEUE as ATTR_ACTIVE_QUEUE, ATTR_MASS_PLAYER_TYPE as ATTR_MASS_PLAYER_TYPE, DOMAIN as DOMAIN
|
3
|
+
from .entity import MusicAssistantEntity as MusicAssistantEntity
|
4
|
+
from _typeshed import Incomplete
|
5
|
+
from collections.abc import Awaitable, Callable as Callable, Coroutine, Mapping
|
6
|
+
from homeassistant.components import media_source as media_source
|
7
|
+
from homeassistant.components.media_player import ATTR_MEDIA_EXTRA as ATTR_MEDIA_EXTRA, BrowseMedia as BrowseMedia, MediaPlayerDeviceClass as MediaPlayerDeviceClass, MediaPlayerEnqueue as MediaPlayerEnqueue, MediaPlayerEntity as MediaPlayerEntity, MediaPlayerEntityFeature as MediaPlayerEntityFeature, MediaPlayerState as MediaPlayerState, RepeatMode as RepeatMode, async_process_play_media_url as async_process_play_media_url
|
8
|
+
from homeassistant.const import STATE_OFF as STATE_OFF
|
9
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
10
|
+
from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
|
11
|
+
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
|
12
|
+
from homeassistant.util.dt import utc_from_timestamp as utc_from_timestamp
|
13
|
+
from music_assistant_client import MusicAssistantClient as MusicAssistantClient
|
14
|
+
from music_assistant_models.enums import MediaType, QueueOption
|
15
|
+
from music_assistant_models.event import MassEvent as MassEvent
|
16
|
+
from music_assistant_models.player import Player as Player
|
17
|
+
from music_assistant_models.player_queue import PlayerQueue as PlayerQueue
|
18
|
+
from typing import Any
|
19
|
+
|
20
|
+
SUPPORTED_FEATURES: Incomplete
|
21
|
+
QUEUE_OPTION_MAP: Incomplete
|
22
|
+
ATTR_RADIO_MODE: str
|
23
|
+
ATTR_MEDIA_ID: str
|
24
|
+
ATTR_MEDIA_TYPE: str
|
25
|
+
ATTR_ARTIST: str
|
26
|
+
ATTR_ALBUM: str
|
27
|
+
ATTR_URL: str
|
28
|
+
ATTR_USE_PRE_ANNOUNCE: str
|
29
|
+
ATTR_ANNOUNCE_VOLUME: str
|
30
|
+
ATTR_SOURCE_PLAYER: str
|
31
|
+
ATTR_AUTO_PLAY: str
|
32
|
+
|
33
|
+
def catch_musicassistant_error[_R, **P](func: Callable[..., Awaitable[_R]]) -> Callable[..., Coroutine[Any, Any, _R | None]]: ...
|
34
|
+
async def async_setup_entry(hass: HomeAssistant, entry: MusicAssistantConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
|
35
|
+
|
36
|
+
class MusicAssistantPlayer(MusicAssistantEntity, MediaPlayerEntity):
|
37
|
+
_attr_name: Incomplete
|
38
|
+
_attr_media_image_remotely_accessible: bool
|
39
|
+
_attr_media_content_type: Incomplete
|
40
|
+
_attr_icon: Incomplete
|
41
|
+
_attr_supported_features: Incomplete
|
42
|
+
_attr_device_class: Incomplete
|
43
|
+
_prev_time: int
|
44
|
+
def __init__(self, mass: MusicAssistantClient, player_id: str) -> None: ...
|
45
|
+
async def async_added_to_hass(self) -> None: ...
|
46
|
+
@property
|
47
|
+
def active_queue(self) -> PlayerQueue | None: ...
|
48
|
+
@property
|
49
|
+
def extra_state_attributes(self) -> Mapping[str, Any]: ...
|
50
|
+
_attr_state: Incomplete
|
51
|
+
_attr_group_members: Incomplete
|
52
|
+
_attr_volume_level: Incomplete
|
53
|
+
_attr_is_volume_muted: Incomplete
|
54
|
+
async def async_on_update(self) -> None: ...
|
55
|
+
async def async_media_play(self) -> None: ...
|
56
|
+
async def async_media_pause(self) -> None: ...
|
57
|
+
async def async_media_stop(self) -> None: ...
|
58
|
+
async def async_media_next_track(self) -> None: ...
|
59
|
+
async def async_media_previous_track(self) -> None: ...
|
60
|
+
async def async_media_seek(self, position: float) -> None: ...
|
61
|
+
async def async_mute_volume(self, mute: bool) -> None: ...
|
62
|
+
async def async_set_volume_level(self, volume: float) -> None: ...
|
63
|
+
async def async_volume_up(self) -> None: ...
|
64
|
+
async def async_volume_down(self) -> None: ...
|
65
|
+
async def async_turn_on(self) -> None: ...
|
66
|
+
async def async_turn_off(self) -> None: ...
|
67
|
+
async def async_set_shuffle(self, shuffle: bool) -> None: ...
|
68
|
+
async def async_set_repeat(self, repeat: RepeatMode) -> None: ...
|
69
|
+
async def async_clear_playlist(self) -> None: ...
|
70
|
+
async def async_play_media(self, media_type: MediaType | str, media_id: str, enqueue: MediaPlayerEnqueue | None = None, announce: bool | None = None, **kwargs: Any) -> None: ...
|
71
|
+
async def async_join_players(self, group_members: list[str]) -> None: ...
|
72
|
+
async def async_unjoin_player(self) -> None: ...
|
73
|
+
async def _async_handle_play_media(self, media_id: list[str], enqueue: MediaPlayerEnqueue | QueueOption | None = None, radio_mode: bool | None = None, media_type: str | None = None) -> None: ...
|
74
|
+
async def _async_handle_play_announcement(self, url: str, use_pre_announce: bool | None = None, announce_volume: int | None = None) -> None: ...
|
75
|
+
async def async_browse_media(self, media_content_type: MediaType | str | None = None, media_content_id: str | None = None) -> BrowseMedia: ...
|
76
|
+
_attr_media_image_url: Incomplete
|
77
|
+
def _update_media_image_url(self, player: Player, queue: PlayerQueue | None) -> None: ...
|
78
|
+
_attr_media_artist: Incomplete
|
79
|
+
_attr_media_album_artist: Incomplete
|
80
|
+
_attr_media_album_name: Incomplete
|
81
|
+
_attr_media_title: Incomplete
|
82
|
+
_attr_media_content_id: Incomplete
|
83
|
+
_attr_media_duration: Incomplete
|
84
|
+
_attr_media_position: Incomplete
|
85
|
+
_attr_media_position_updated_at: Incomplete
|
86
|
+
_attr_app_id: Incomplete
|
87
|
+
_attr_shuffle: Incomplete
|
88
|
+
_attr_repeat: Incomplete
|
89
|
+
_attr_source: Incomplete
|
90
|
+
def _update_media_attributes(self, player: Player, queue: PlayerQueue | None) -> None: ...
|
91
|
+
def _convert_queueoption_to_media_player_enqueue(self, queue_option: MediaPlayerEnqueue | QueueOption | None) -> QueueOption | None: ...
|
@@ -1,6 +1,6 @@
|
|
1
1
|
from _typeshed import Incomplete
|
2
2
|
from homeassistant.const import Platform as Platform
|
3
|
-
from typing import Final, TypedDict
|
3
|
+
from typing import Final, Literal, TypedDict
|
4
4
|
|
5
5
|
ATTR_DEVICES: Final[str]
|
6
6
|
ATTR_GATEWAY_ID: Final[str]
|
@@ -13,6 +13,7 @@ CONF_TOPIC_IN_PREFIX: Final[str]
|
|
13
13
|
CONF_TOPIC_OUT_PREFIX: Final[str]
|
14
14
|
CONF_VERSION: Final[str]
|
15
15
|
CONF_GATEWAY_TYPE: Final[str]
|
16
|
+
type ConfGatewayType = Literal['Serial', 'TCP', 'MQTT']
|
16
17
|
CONF_GATEWAY_TYPE_SERIAL: ConfGatewayType
|
17
18
|
CONF_GATEWAY_TYPE_TCP: ConfGatewayType
|
18
19
|
CONF_GATEWAY_TYPE_MQTT: ConfGatewayType
|
@@ -39,6 +40,10 @@ class NodeDiscoveryInfo(TypedDict):
|
|
39
40
|
node_id: int
|
40
41
|
|
41
42
|
SERVICE_SEND_IR_CODE: Final[str]
|
43
|
+
type SensorType = str
|
44
|
+
type ValueType = str
|
45
|
+
type GatewayId = str
|
46
|
+
type DevId = tuple[GatewayId, int, int, int]
|
42
47
|
BINARY_SENSOR_TYPES: dict[SensorType, set[ValueType]]
|
43
48
|
CLIMATE_TYPES: dict[SensorType, set[ValueType]]
|
44
49
|
COVER_TYPES: dict[SensorType, set[ValueType]]
|
@@ -9,6 +9,7 @@ from homeassistant.helpers import aiohttp_client as aiohttp_client, config_entry
|
|
9
9
|
from homeassistant.helpers.device_registry import DeviceEntry as DeviceEntry
|
10
10
|
|
11
11
|
PLATFORMS: list[Platform]
|
12
|
+
type MyUplinkConfigEntry = ConfigEntry[MyUplinkDataCoordinator]
|
12
13
|
|
13
14
|
async def async_setup_entry(hass: HomeAssistant, config_entry: MyUplinkConfigEntry) -> bool: ...
|
14
15
|
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
|
@@ -1,13 +1,12 @@
|
|
1
1
|
import logging
|
2
2
|
from .const import DOMAIN as DOMAIN, OAUTH2_SCOPES as OAUTH2_SCOPES
|
3
3
|
from collections.abc import Mapping
|
4
|
-
from homeassistant.config_entries import
|
4
|
+
from homeassistant.config_entries import ConfigFlowResult as ConfigFlowResult, SOURCE_REAUTH as SOURCE_REAUTH
|
5
5
|
from homeassistant.helpers import config_entry_oauth2_flow as config_entry_oauth2_flow
|
6
6
|
from typing import Any
|
7
7
|
|
8
8
|
class OAuth2FlowHandler(config_entry_oauth2_flow.AbstractOAuth2FlowHandler, domain=DOMAIN):
|
9
9
|
DOMAIN = DOMAIN
|
10
|
-
config_entry_reauth: ConfigEntry | None
|
11
10
|
@property
|
12
11
|
def logger(self) -> logging.Logger: ...
|
13
12
|
@property
|
@@ -1,7 +1,13 @@
|
|
1
|
+
from _typeshed import Incomplete
|
1
2
|
from homeassistant.components.number import NumberEntityDescription as NumberEntityDescription
|
2
3
|
from homeassistant.components.sensor import SensorEntityDescription as SensorEntityDescription
|
3
4
|
from homeassistant.const import Platform as Platform
|
4
5
|
from myuplink import DevicePoint as DevicePoint
|
5
6
|
|
6
7
|
def find_matching_platform(device_point: DevicePoint, description: SensorEntityDescription | NumberEntityDescription | None = None) -> Platform: ...
|
8
|
+
|
9
|
+
WEEKDAYS: Incomplete
|
10
|
+
PARAMETER_ID_TO_EXCLUDE_F730: Incomplete
|
11
|
+
PARAMETER_ID_TO_INCLUDE_SMO20: Incomplete
|
12
|
+
|
7
13
|
def skip_entity(model: str, device_point: DevicePoint) -> bool: ...
|
@@ -9,6 +9,7 @@ from homeassistant.helpers.aiohttp_client import async_get_clientsession as asyn
|
|
9
9
|
|
10
10
|
_LOGGER: Incomplete
|
11
11
|
PLATFORMS: Incomplete
|
12
|
+
type NAMConfigEntry = ConfigEntry[NAMDataUpdateCoordinator]
|
12
13
|
|
13
14
|
async def async_setup_entry(hass: HomeAssistant, entry: NAMConfigEntry) -> bool: ...
|
14
15
|
async def async_unload_entry(hass: HomeAssistant, entry: NAMConfigEntry) -> bool: ...
|
@@ -3,7 +3,7 @@ from _typeshed import Incomplete
|
|
3
3
|
from collections.abc import Mapping
|
4
4
|
from dataclasses import dataclass
|
5
5
|
from homeassistant.components import zeroconf as zeroconf
|
6
|
-
from homeassistant.config_entries import
|
6
|
+
from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
|
7
7
|
from homeassistant.const import CONF_HOST as CONF_HOST, CONF_PASSWORD as CONF_PASSWORD, CONF_USERNAME as CONF_USERNAME
|
8
8
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
9
9
|
from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
|
@@ -24,15 +24,12 @@ async def async_check_credentials(hass: HomeAssistant, host: str, data: dict[str
|
|
24
24
|
|
25
25
|
class NAMFlowHandler(ConfigFlow, domain=DOMAIN):
|
26
26
|
VERSION: int
|
27
|
-
|
28
|
-
|
29
|
-
_config: Incomplete
|
30
|
-
def __init__(self) -> None: ...
|
27
|
+
_config: NamConfig
|
28
|
+
host: str
|
31
29
|
async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
32
30
|
async def async_step_credentials(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
33
31
|
async def async_step_zeroconf(self, discovery_info: zeroconf.ZeroconfServiceInfo) -> ConfigFlowResult: ...
|
34
32
|
async def async_step_confirm_discovery(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
35
33
|
async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> ConfigFlowResult: ...
|
36
34
|
async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
37
|
-
async def async_step_reconfigure(self,
|
38
|
-
async def async_step_reconfigure_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
35
|
+
async def async_step_reconfigure(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
@@ -10,6 +10,7 @@ from homeassistant.helpers.dispatcher import async_dispatcher_send as async_disp
|
|
10
10
|
|
11
11
|
_LOGGER: Incomplete
|
12
12
|
PLATFORMS: Incomplete
|
13
|
+
type NanoleafConfigEntry = ConfigEntry[NanoleafCoordinator]
|
13
14
|
|
14
15
|
async def async_setup_entry(hass: HomeAssistant, entry: NanoleafConfigEntry) -> bool: ...
|
15
16
|
async def async_unload_entry(hass: HomeAssistant, entry: NanoleafConfigEntry) -> bool: ...
|
@@ -3,7 +3,7 @@ from _typeshed import Incomplete
|
|
3
3
|
from aionanoleaf import Nanoleaf
|
4
4
|
from collections.abc import Mapping
|
5
5
|
from homeassistant.components import ssdp as ssdp, zeroconf as zeroconf
|
6
|
-
from homeassistant.config_entries import
|
6
|
+
from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, SOURCE_REAUTH as SOURCE_REAUTH
|
7
7
|
from homeassistant.const import CONF_HOST as CONF_HOST, CONF_TOKEN as CONF_TOKEN
|
8
8
|
from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
|
9
9
|
from homeassistant.helpers.json import save_json as save_json
|
@@ -15,7 +15,6 @@ CONFIG_FILE: Final[str]
|
|
15
15
|
USER_SCHEMA: Final[Incomplete]
|
16
16
|
|
17
17
|
class NanoleafConfigFlow(ConfigFlow, domain=DOMAIN):
|
18
|
-
reauth_entry: ConfigEntry | None
|
19
18
|
nanoleaf: Nanoleaf
|
20
19
|
discovery_conf: JsonObjectType
|
21
20
|
device_id: str
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import abc
|
2
2
|
from . import api as api
|
3
|
-
from .const import CONF_PROJECT_ID as CONF_PROJECT_ID, CONF_SUBSCRIBER_ID as CONF_SUBSCRIBER_ID, CONF_SUBSCRIBER_ID_IMPORTED as CONF_SUBSCRIBER_ID_IMPORTED, DATA_DEVICE_MANAGER as DATA_DEVICE_MANAGER, DATA_SDM as DATA_SDM, DATA_SUBSCRIBER as DATA_SUBSCRIBER, DOMAIN as DOMAIN
|
3
|
+
from .const import CONF_PROJECT_ID as CONF_PROJECT_ID, CONF_SUBSCRIBER_ID as CONF_SUBSCRIBER_ID, CONF_SUBSCRIBER_ID_IMPORTED as CONF_SUBSCRIBER_ID_IMPORTED, CONF_SUBSCRIPTION_NAME as CONF_SUBSCRIPTION_NAME, DATA_DEVICE_MANAGER as DATA_DEVICE_MANAGER, DATA_SDM as DATA_SDM, DATA_SUBSCRIBER as DATA_SUBSCRIBER, DOMAIN as DOMAIN
|
4
4
|
from .events import EVENT_NAME_MAP as EVENT_NAME_MAP, NEST_EVENT as NEST_EVENT
|
5
5
|
from .media_source import EVENT_MEDIA_API_URL_FORMAT as EVENT_MEDIA_API_URL_FORMAT, EVENT_THUMBNAIL_URL_FORMAT as EVENT_THUMBNAIL_URL_FORMAT, async_get_media_event_store as async_get_media_event_store, async_get_media_source_devices as async_get_media_source_devices, async_get_transcoder as async_get_transcoder
|
6
6
|
from _typeshed import Incomplete
|
@@ -1,7 +1,8 @@
|
|
1
|
-
from .const import API_URL as API_URL, CONF_PROJECT_ID as CONF_PROJECT_ID, CONF_SUBSCRIBER_ID as CONF_SUBSCRIBER_ID, OAUTH2_TOKEN as OAUTH2_TOKEN, SDM_SCOPES as SDM_SCOPES
|
1
|
+
from .const import API_URL as API_URL, CONF_PROJECT_ID as CONF_PROJECT_ID, CONF_SUBSCRIBER_ID as CONF_SUBSCRIBER_ID, CONF_SUBSCRIPTION_NAME as CONF_SUBSCRIPTION_NAME, OAUTH2_TOKEN as OAUTH2_TOKEN, SDM_SCOPES as SDM_SCOPES
|
2
2
|
from _typeshed import Incomplete
|
3
3
|
from aiohttp import ClientSession as ClientSession
|
4
4
|
from google.oauth2.credentials import Credentials
|
5
|
+
from google_nest_sdm.admin_client import AdminClient
|
5
6
|
from google_nest_sdm.auth import AbstractAuth
|
6
7
|
from google_nest_sdm.google_nest_subscriber import GoogleNestSubscriber
|
7
8
|
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
@@ -20,9 +21,10 @@ class AsyncConfigEntryAuth(AbstractAuth):
|
|
20
21
|
|
21
22
|
class AccessTokenAuthImpl(AbstractAuth):
|
22
23
|
_access_token: Incomplete
|
23
|
-
def __init__(self, websession: ClientSession, access_token: str) -> None: ...
|
24
|
+
def __init__(self, websession: ClientSession, access_token: str, host: str) -> None: ...
|
24
25
|
async def async_get_access_token(self) -> str: ...
|
25
26
|
async def async_get_creds(self) -> Credentials: ...
|
26
27
|
|
27
28
|
async def new_subscriber(hass: HomeAssistant, entry: ConfigEntry) -> GoogleNestSubscriber | None: ...
|
28
|
-
def new_subscriber_with_token(hass: HomeAssistant, access_token: str, project_id: str,
|
29
|
+
def new_subscriber_with_token(hass: HomeAssistant, access_token: str, project_id: str, subscription_name: str) -> GoogleNestSubscriber: ...
|
30
|
+
def new_pubsub_admin_client(hass: HomeAssistant, access_token: str, cloud_project_id: str) -> AdminClient: ...
|
@@ -3,13 +3,13 @@ from .const import DATA_DEVICE_MANAGER as DATA_DEVICE_MANAGER, DOMAIN as DOMAIN
|
|
3
3
|
from .device_info import NestDeviceInfo as NestDeviceInfo
|
4
4
|
from _typeshed import Incomplete
|
5
5
|
from collections.abc import Callable as Callable
|
6
|
-
from google_nest_sdm.camera_traits import RtspStream as RtspStream
|
6
|
+
from google_nest_sdm.camera_traits import RtspStream as RtspStream, Stream as Stream, WebRtcStream as WebRtcStream
|
7
7
|
from google_nest_sdm.device import Device as Device
|
8
8
|
from google_nest_sdm.device_manager import DeviceManager as DeviceManager
|
9
|
-
from homeassistant.components.camera import Camera as Camera, CameraEntityFeature as CameraEntityFeature, StreamType as StreamType
|
9
|
+
from homeassistant.components.camera import Camera as Camera, CameraEntityFeature as CameraEntityFeature, StreamType as StreamType, WebRTCAnswer as WebRTCAnswer, WebRTCClientConfiguration as WebRTCClientConfiguration, WebRTCSendMessage as WebRTCSendMessage
|
10
10
|
from homeassistant.components.stream import CONF_EXTRA_PART_WAIT_TIME as CONF_EXTRA_PART_WAIT_TIME
|
11
11
|
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
12
|
-
from homeassistant.core import HomeAssistant as HomeAssistant
|
12
|
+
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
13
13
|
from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
|
14
14
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
|
15
15
|
from homeassistant.helpers.event import async_track_point_in_utc_time as async_track_point_in_utc_time
|
@@ -28,7 +28,8 @@ class NestCamera(Camera):
|
|
28
28
|
_attr_device_info: Incomplete
|
29
29
|
_attr_brand: Incomplete
|
30
30
|
_attr_model: Incomplete
|
31
|
-
|
31
|
+
_rtsp_stream: Incomplete
|
32
|
+
_webrtc_sessions: Incomplete
|
32
33
|
_create_stream_url_lock: Incomplete
|
33
34
|
_stream_refresh_unsub: Incomplete
|
34
35
|
_attr_is_streaming: bool
|
@@ -43,12 +44,17 @@ class NestCamera(Camera):
|
|
43
44
|
@property
|
44
45
|
def available(self) -> bool: ...
|
45
46
|
async def stream_source(self) -> str | None: ...
|
47
|
+
def _all_streams(self) -> list[Stream]: ...
|
46
48
|
def _schedule_stream_refresh(self) -> None: ...
|
49
|
+
async def _handle_stream_refresh(self, _: datetime.datetime) -> None: ...
|
47
50
|
stream: Incomplete
|
48
|
-
async def
|
51
|
+
async def _handle_rtsp_stream_refresh(self) -> None: ...
|
52
|
+
async def _handle_webrtc_stream_refresh(self) -> None: ...
|
49
53
|
async def async_will_remove_from_hass(self) -> None: ...
|
50
54
|
async def async_added_to_hass(self) -> None: ...
|
51
55
|
async def async_camera_image(self, width: int | None = None, height: int | None = None) -> bytes | None: ...
|
52
56
|
@classmethod
|
53
57
|
def placeholder_image(cls) -> bytes: ...
|
54
|
-
async def
|
58
|
+
async def async_handle_async_webrtc_offer(self, offer_sdp: str, session_id: str, send_message: WebRTCSendMessage) -> None: ...
|
59
|
+
def close_webrtc_session(self, session_id: str) -> None: ...
|
60
|
+
def _async_get_webrtc_client_configuration(self) -> WebRTCClientConfiguration: ...
|