homeassistant-stubs 2024.10.3__py3-none-any.whl → 2024.11.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- homeassistant-stubs/auth/__init__.pyi +8 -5
- homeassistant-stubs/auth/mfa_modules/notify.pyi +1 -0
- homeassistant-stubs/auth/models.pyi +8 -5
- homeassistant-stubs/auth/permissions/types.pyi +7 -0
- homeassistant-stubs/auth/permissions/util.pyi +2 -0
- homeassistant-stubs/auth/providers/__init__.pyi +5 -4
- homeassistant-stubs/auth/providers/command_line.pyi +2 -2
- homeassistant-stubs/auth/providers/homeassistant.pyi +2 -2
- homeassistant-stubs/auth/providers/insecure_example.pyi +2 -3
- homeassistant-stubs/auth/providers/trusted_networks.pyi +5 -2
- homeassistant-stubs/bootstrap.pyi +1 -0
- homeassistant-stubs/components/abode/alarm_control_panel.pyi +2 -3
- homeassistant-stubs/components/accuweather/__init__.pyi +1 -9
- homeassistant-stubs/components/accuweather/coordinator.pyi +11 -2
- homeassistant-stubs/components/accuweather/diagnostics.pyi +1 -1
- homeassistant-stubs/components/accuweather/sensor.pyi +1 -2
- homeassistant-stubs/components/accuweather/system_health.pyi +1 -1
- homeassistant-stubs/components/accuweather/weather.pyi +1 -2
- homeassistant-stubs/components/acmeda/__init__.pyi +1 -0
- homeassistant-stubs/components/adguard/__init__.pyi +1 -0
- homeassistant-stubs/components/adguard/config_flow.pyi +1 -1
- homeassistant-stubs/components/aftership/__init__.pyi +2 -0
- homeassistant-stubs/components/airgradient/__init__.pyi +1 -0
- homeassistant-stubs/components/airgradient/update.pyi +0 -2
- homeassistant-stubs/components/airly/__init__.pyi +1 -0
- homeassistant-stubs/components/airnow/__init__.pyi +1 -0
- homeassistant-stubs/components/airthings/__init__.pyi +3 -0
- homeassistant-stubs/components/airthings_ble/__init__.pyi +2 -11
- homeassistant-stubs/components/airthings_ble/coordinator.pyi +21 -0
- homeassistant-stubs/components/airthings_ble/sensor.pyi +1 -1
- homeassistant-stubs/components/airtouch5/__init__.pyi +2 -1
- homeassistant-stubs/components/airvisual/__init__.pyi +1 -0
- homeassistant-stubs/components/airvisual/config_flow.pyi +1 -1
- homeassistant-stubs/components/airvisual_pro/__init__.pyi +1 -0
- homeassistant-stubs/components/airvisual_pro/config_flow.pyi +2 -3
- homeassistant-stubs/components/airzone/__init__.pyi +1 -0
- homeassistant-stubs/components/airzone/switch.pyi +33 -0
- homeassistant-stubs/components/airzone_cloud/__init__.pyi +1 -0
- homeassistant-stubs/components/airzone_cloud/select.pyi +10 -2
- homeassistant-stubs/components/airzone_cloud/switch.pyi +33 -0
- homeassistant-stubs/components/alarm_control_panel/__init__.pyi +13 -6
- homeassistant-stubs/components/alarm_control_panel/const.pyi +12 -0
- homeassistant-stubs/components/alarm_control_panel/device_condition.pyi +2 -2
- homeassistant-stubs/components/alarm_control_panel/device_trigger.pyi +2 -2
- homeassistant-stubs/components/alarm_control_panel/reproduce_state.pyi +2 -2
- homeassistant-stubs/components/alexa/capabilities.pyi +2 -2
- homeassistant-stubs/components/alexa/handlers.pyi +2 -2
- homeassistant-stubs/components/amberelectric/__init__.pyi +1 -0
- homeassistant-stubs/components/ambient_network/__init__.pyi +1 -0
- homeassistant-stubs/components/ambient_station/__init__.pyi +1 -0
- homeassistant-stubs/components/analytics/__init__.pyi +2 -0
- homeassistant-stubs/components/analytics/analytics.pyi +1 -0
- homeassistant-stubs/components/analytics_insights/__init__.pyi +1 -0
- homeassistant-stubs/components/analytics_insights/config_flow.pyi +1 -1
- homeassistant-stubs/components/analytics_insights/const.pyi +1 -0
- homeassistant-stubs/components/analytics_insights/coordinator.pyi +8 -2
- homeassistant-stubs/components/analytics_insights/sensor.pyi +4 -0
- homeassistant-stubs/components/android_ip_webcam/__init__.pyi +3 -5
- homeassistant-stubs/components/android_ip_webcam/binary_sensor.pyi +3 -4
- homeassistant-stubs/components/android_ip_webcam/camera.pyi +2 -3
- homeassistant-stubs/components/android_ip_webcam/coordinator.pyi +3 -2
- homeassistant-stubs/components/android_ip_webcam/sensor.pyi +2 -4
- homeassistant-stubs/components/android_ip_webcam/switch.pyi +2 -4
- homeassistant-stubs/components/androidtv/__init__.pyi +3 -1
- homeassistant-stubs/components/androidtv/config_flow.pyi +2 -1
- homeassistant-stubs/components/androidtv/const.pyi +2 -1
- homeassistant-stubs/components/androidtv/entity.pyi +5 -2
- homeassistant-stubs/components/androidtv/media_player.pyi +5 -6
- homeassistant-stubs/components/androidtv_remote/config_flow.pyi +5 -7
- homeassistant-stubs/components/anova/__init__.pyi +2 -1
- homeassistant-stubs/components/anova/config_flow.pyi +2 -1
- homeassistant-stubs/components/anova/models.pyi +1 -0
- homeassistant-stubs/components/anthemav/__init__.pyi +2 -0
- homeassistant-stubs/components/apache_kafka/__init__.pyi +1 -1
- homeassistant-stubs/components/apcupsd/__init__.pyi +1 -0
- homeassistant-stubs/components/apple_tv/__init__.pyi +1 -0
- homeassistant-stubs/components/apple_tv/config_flow.pyi +5 -1
- homeassistant-stubs/components/apsystems/__init__.pyi +1 -0
- homeassistant-stubs/components/apsystems/sensor.pyi +2 -2
- homeassistant-stubs/components/aquostv/media_player.pyi +1 -1
- homeassistant-stubs/components/aranet/__init__.pyi +3 -3
- homeassistant-stubs/components/aranet/sensor.pyi +4 -4
- homeassistant-stubs/components/arcam_fmj/__init__.pyi +1 -0
- homeassistant-stubs/components/arcam_fmj/config_flow.pyi +2 -0
- homeassistant-stubs/components/arcam_fmj/media_player.pyi +1 -1
- homeassistant-stubs/components/aseko_pool_live/__init__.pyi +4 -6
- homeassistant-stubs/components/aseko_pool_live/binary_sensor.pyi +2 -4
- homeassistant-stubs/components/aseko_pool_live/config_flow.pyi +2 -3
- homeassistant-stubs/components/aseko_pool_live/coordinator.pyi +2 -0
- homeassistant-stubs/components/aseko_pool_live/sensor.pyi +2 -4
- homeassistant-stubs/components/assist_pipeline/pipeline.pyi +2 -1
- homeassistant-stubs/components/asuswrt/__init__.pyi +1 -0
- homeassistant-stubs/components/asuswrt/bridge.pyi +4 -2
- homeassistant-stubs/components/autarco/__init__.pyi +1 -0
- homeassistant-stubs/components/auth/__init__.pyi +5 -0
- homeassistant-stubs/components/auth/login_flow.pyi +1 -1
- homeassistant-stubs/components/auth/mfa_setup_flow.pyi +4 -2
- homeassistant-stubs/components/automation/__init__.pyi +0 -14
- homeassistant-stubs/components/awair/__init__.pyi +4 -6
- homeassistant-stubs/components/awair/config_flow.pyi +1 -0
- homeassistant-stubs/components/awair/coordinator.pyi +1 -0
- homeassistant-stubs/components/awair/sensor.pyi +2 -2
- homeassistant-stubs/components/axis/__init__.pyi +1 -0
- homeassistant-stubs/components/axis/config_flow.pyi +2 -2
- homeassistant-stubs/components/backup/__init__.pyi +2 -2
- homeassistant-stubs/components/backup/const.pyi +3 -0
- homeassistant-stubs/components/backup/http.pyi +1 -1
- homeassistant-stubs/components/backup/manager.pyi +25 -11
- homeassistant-stubs/components/backup/websocket.pyi +2 -2
- homeassistant-stubs/components/baf/__init__.pyi +2 -0
- homeassistant-stubs/components/bang_olufsen/__init__.pyi +3 -2
- homeassistant-stubs/components/bang_olufsen/const.pyi +3 -2
- homeassistant-stubs/components/bang_olufsen/media_player.pyi +14 -6
- homeassistant-stubs/components/bang_olufsen/websocket.pyi +1 -0
- homeassistant-stubs/components/binary_sensor/__init__.pyi +0 -3
- homeassistant-stubs/components/blue_current/__init__.pyi +4 -3
- homeassistant-stubs/components/blue_current/config_flow.pyi +1 -2
- homeassistant-stubs/components/blue_current/sensor.pyi +2 -3
- homeassistant-stubs/components/blueprint/__init__.pyi +2 -2
- homeassistant-stubs/components/bluesound/__init__.pyi +2 -1
- homeassistant-stubs/components/bluesound/const.pyi +0 -4
- homeassistant-stubs/components/bluesound/media_player.pyi +6 -14
- homeassistant-stubs/components/bluesound/services.pyi +21 -0
- homeassistant-stubs/components/bluetooth/active_update_coordinator.pyi +1 -1
- homeassistant-stubs/components/bluetooth/active_update_processor.pyi +1 -1
- homeassistant-stubs/components/bluetooth/match.pyi +1 -1
- homeassistant-stubs/components/bluetooth/models.pyi +4 -0
- homeassistant-stubs/components/bluetooth/passive_update_processor.pyi +4 -4
- homeassistant-stubs/components/bmw_connected_drive/__init__.pyi +1 -0
- homeassistant-stubs/components/bmw_connected_drive/config_flow.pyi +4 -2
- homeassistant-stubs/components/bond/__init__.pyi +1 -0
- homeassistant-stubs/components/braviatv/config_flow.pyi +1 -2
- homeassistant-stubs/components/braviatv/coordinator.pyi +1 -1
- homeassistant-stubs/components/brother/__init__.pyi +1 -0
- homeassistant-stubs/components/brother/config_flow.pyi +2 -4
- homeassistant-stubs/components/bryant_evolution/__init__.pyi +2 -0
- homeassistant-stubs/components/bryant_evolution/config_flow.pyi +1 -4
- homeassistant-stubs/components/bthome/config_flow.pyi +1 -1
- homeassistant-stubs/components/bthome/coordinator.pyi +1 -1
- homeassistant-stubs/components/bthome/types.pyi +2 -0
- homeassistant-stubs/components/button/__init__.pyi +0 -3
- homeassistant-stubs/components/calendar/trigger.pyi +3 -1
- homeassistant-stubs/components/cambridge_audio/__init__.pyi +14 -0
- homeassistant-stubs/components/cambridge_audio/config_flow.pyi +14 -0
- homeassistant-stubs/components/cambridge_audio/const.pyi +9 -0
- homeassistant-stubs/components/cambridge_audio/diagnostics.pyi +5 -0
- homeassistant-stubs/components/cambridge_audio/entity.pyi +21 -0
- homeassistant-stubs/components/cambridge_audio/media_player.pyi +71 -0
- homeassistant-stubs/components/cambridge_audio/select.pyi +34 -0
- homeassistant-stubs/components/cambridge_audio/switch.pyi +30 -0
- homeassistant-stubs/components/camera/__init__.pyi +39 -22
- homeassistant-stubs/components/camera/const.pyi +1 -2
- homeassistant-stubs/components/camera/diagnostics.pyi +1 -1
- homeassistant-stubs/components/camera/helper.pyi +6 -0
- homeassistant-stubs/components/camera/webrtc.pyi +96 -0
- homeassistant-stubs/components/canary/alarm_control_panel.pyi +2 -3
- homeassistant-stubs/components/canary/sensor.pyi +1 -0
- homeassistant-stubs/components/cert_expiry/__init__.pyi +1 -0
- homeassistant-stubs/components/climate/__init__.pyi +0 -24
- homeassistant-stubs/components/cloud/client.pyi +5 -1
- homeassistant-stubs/components/cloud/const.pyi +1 -0
- homeassistant-stubs/components/cloud/http_api.pyi +2 -2
- homeassistant-stubs/components/cloud/prefs.pyi +4 -2
- homeassistant-stubs/components/co2signal/__init__.pyi +1 -0
- homeassistant-stubs/components/co2signal/config_flow.pyi +1 -2
- homeassistant-stubs/components/config/automation.pyi +1 -1
- homeassistant-stubs/components/config/script.pyi +1 -1
- homeassistant-stubs/components/config/view.pyi +2 -2
- homeassistant-stubs/components/configurator/__init__.pyi +2 -0
- homeassistant-stubs/components/counter/__init__.pyi +1 -1
- homeassistant-stubs/components/cover/__init__.pyi +12 -8
- homeassistant-stubs/components/cover/device_condition.pyi +2 -2
- homeassistant-stubs/components/cover/device_trigger.pyi +2 -2
- homeassistant-stubs/components/cover/reproduce_state.pyi +2 -2
- homeassistant-stubs/components/date/__init__.pyi +0 -4
- homeassistant-stubs/components/datetime/__init__.pyi +0 -4
- homeassistant-stubs/components/deako/__init__.pyi +2 -0
- homeassistant-stubs/components/deconz/alarm_control_panel.pyi +2 -3
- homeassistant-stubs/components/deconz/binary_sensor.pyi +10 -1
- homeassistant-stubs/components/deconz/config_flow.pyi +1 -1
- homeassistant-stubs/components/deconz/device_trigger.pyi +4 -0
- homeassistant-stubs/components/deconz/entity.pyi +6 -2
- homeassistant-stubs/components/deconz/light.pyi +1 -1
- homeassistant-stubs/components/deconz/number.pyi +3 -1
- homeassistant-stubs/components/demo/alarm_control_panel.pyi +2 -1
- homeassistant-stubs/components/demo/update.pyi +5 -2
- homeassistant-stubs/components/derivative/sensor.pyi +1 -4
- homeassistant-stubs/components/device_automation/__init__.pyi +2 -0
- homeassistant-stubs/components/device_tracker/config_entry.pyi +0 -10
- homeassistant-stubs/components/device_tracker/legacy.pyi +0 -2
- homeassistant-stubs/components/devolo_home_control/__init__.pyi +2 -0
- homeassistant-stubs/components/devolo_home_control/config_flow.pyi +2 -2
- homeassistant-stubs/components/devolo_home_network/__init__.pyi +4 -2
- homeassistant-stubs/components/devolo_home_network/binary_sensor.pyi +2 -2
- homeassistant-stubs/components/devolo_home_network/config_flow.pyi +4 -1
- homeassistant-stubs/components/devolo_home_network/coordinator.pyi +13 -0
- homeassistant-stubs/components/devolo_home_network/device_tracker.pyi +4 -3
- homeassistant-stubs/components/devolo_home_network/entity.pyi +8 -3
- homeassistant-stubs/components/devolo_home_network/image.pyi +2 -2
- homeassistant-stubs/components/devolo_home_network/sensor.pyi +9 -10
- homeassistant-stubs/components/devolo_home_network/switch.pyi +6 -6
- homeassistant-stubs/components/devolo_home_network/update.pyi +3 -3
- homeassistant-stubs/components/diagnostics/util.pyi +1 -1
- homeassistant-stubs/components/discovergy/__init__.pyi +1 -0
- homeassistant-stubs/components/discovergy/config_flow.pyi +2 -2
- homeassistant-stubs/components/dlna_dmr/config_flow.pyi +1 -0
- homeassistant-stubs/components/dlna_dmr/media_player.pyi +1 -1
- homeassistant-stubs/components/dlna_dms/dms.pyi +1 -3
- homeassistant-stubs/components/doorbird/config_flow.pyi +1 -1
- homeassistant-stubs/components/doorbird/device.pyi +0 -6
- homeassistant-stubs/components/doorbird/models.pyi +1 -0
- homeassistant-stubs/components/dormakaba_dkey/config_flow.pyi +1 -2
- homeassistant-stubs/components/dsmr/__init__.pyi +1 -0
- homeassistant-stubs/components/duotecno/entity.pyi +1 -1
- homeassistant-stubs/components/ecovacs/__init__.pyi +1 -0
- homeassistant-stubs/components/ecowitt/__init__.pyi +2 -0
- homeassistant-stubs/components/efergy/__init__.pyi +2 -0
- homeassistant-stubs/components/electric_kiwi/config_flow.pyi +1 -4
- homeassistant-stubs/components/elevenlabs/__init__.pyi +1 -0
- homeassistant-stubs/components/elgato/__init__.pyi +1 -0
- homeassistant-stubs/components/elkm1/__init__.pyi +1 -0
- homeassistant-stubs/components/elkm1/alarm_control_panel.pyi +2 -3
- homeassistant-stubs/components/elkm1/config_flow.pyi +3 -1
- homeassistant-stubs/components/energy/data.pyi +1 -0
- homeassistant-stubs/components/energy/types.pyi +2 -0
- homeassistant-stubs/components/energy/websocket_api.pyi +3 -0
- homeassistant-stubs/components/enigma2/__init__.pyi +1 -0
- homeassistant-stubs/components/enigma2/config_flow.pyi +0 -2
- homeassistant-stubs/components/enigma2/media_player.pyi +1 -6
- homeassistant-stubs/components/enphase_envoy/__init__.pyi +3 -1
- homeassistant-stubs/components/enphase_envoy/config_flow.pyi +4 -6
- homeassistant-stubs/components/enphase_envoy/const.pyi +2 -0
- homeassistant-stubs/components/enphase_envoy/coordinator.pyi +1 -0
- homeassistant-stubs/components/esphome/alarm_control_panel.pyi +5 -6
- homeassistant-stubs/components/esphome/assist_satellite.pyi +1 -1
- homeassistant-stubs/components/esphome/config_flow.pyi +6 -5
- homeassistant-stubs/components/esphome/entity.pyi +3 -3
- homeassistant-stubs/components/esphome/entry_data.pyi +1 -0
- homeassistant-stubs/components/esphome/enum_mapper.pyi +1 -1
- homeassistant-stubs/components/esphome/ffmpeg_proxy.pyi +7 -3
- homeassistant-stubs/components/esphome/update.pyi +3 -1
- homeassistant-stubs/components/event/__init__.pyi +0 -3
- homeassistant-stubs/components/evil_genius_labs/util.pyi +1 -1
- homeassistant-stubs/components/evohome/climate.pyi +2 -3
- homeassistant-stubs/components/evohome/entity.pyi +1 -1
- homeassistant-stubs/components/fan/__init__.pyi +0 -8
- homeassistant-stubs/components/fastdotcom/__init__.pyi +1 -1
- homeassistant-stubs/components/feedreader/__init__.pyi +1 -0
- homeassistant-stubs/components/feedreader/config_flow.pyi +1 -3
- homeassistant-stubs/components/feedreader/event.pyi +1 -0
- homeassistant-stubs/components/filesize/__init__.pyi +1 -0
- homeassistant-stubs/components/fitbit/api.pyi +1 -1
- homeassistant-stubs/components/fitbit/config_flow.pyi +1 -2
- homeassistant-stubs/components/flexit_bacnet/sensor.pyi +2 -1
- homeassistant-stubs/components/flux_led/config_flow.pyi +3 -1
- homeassistant-stubs/components/forecast_solar/__init__.pyi +1 -0
- homeassistant-stubs/components/fritz/config_flow.pyi +5 -5
- homeassistant-stubs/components/fritz/update.pyi +1 -1
- homeassistant-stubs/components/fritzbox/climate.pyi +1 -0
- homeassistant-stubs/components/fritzbox/config_flow.pyi +5 -6
- homeassistant-stubs/components/fritzbox/coordinator.pyi +1 -0
- homeassistant-stubs/components/fritzbox_callmonitor/__init__.pyi +2 -1
- homeassistant-stubs/components/fritzbox_callmonitor/config_flow.pyi +5 -0
- homeassistant-stubs/components/fronius/__init__.pyi +2 -1
- homeassistant-stubs/components/fronius/config_flow.pyi +1 -2
- homeassistant-stubs/components/fronius/const.pyi +1 -0
- homeassistant-stubs/components/fronius/coordinator.pyi +1 -1
- homeassistant-stubs/components/frontend/__init__.pyi +0 -3
- homeassistant-stubs/components/fujitsu_fglair/__init__.pyi +1 -0
- homeassistant-stubs/components/fujitsu_fglair/config_flow.pyi +1 -2
- homeassistant-stubs/components/fully_kiosk/config_flow.pyi +1 -0
- homeassistant-stubs/components/fyta/__init__.pyi +1 -0
- homeassistant-stubs/components/fyta/config_flow.pyi +0 -2
- homeassistant-stubs/components/fyta/coordinator.pyi +6 -1
- homeassistant-stubs/components/geo_location/__init__.pyi +0 -5
- homeassistant-stubs/components/gios/__init__.pyi +1 -0
- homeassistant-stubs/components/glances/__init__.pyi +1 -0
- homeassistant-stubs/components/glances/config_flow.pyi +1 -2
- homeassistant-stubs/components/go2rtc/__init__.pyi +41 -0
- homeassistant-stubs/components/go2rtc/config_flow.pyi +7 -0
- homeassistant-stubs/components/go2rtc/const.pyi +7 -0
- homeassistant-stubs/components/go2rtc/server.pyi +44 -0
- homeassistant-stubs/components/goalzero/config_flow.pyi +1 -2
- homeassistant-stubs/components/goalzero/coordinator.pyi +1 -0
- homeassistant-stubs/components/google/__init__.pyi +1 -1
- homeassistant-stubs/components/google/api.pyi +2 -2
- homeassistant-stubs/components/google/calendar.pyi +6 -5
- homeassistant-stubs/components/google/config_flow.pyi +2 -3
- homeassistant-stubs/components/google_assistant_sdk/config_flow.pyi +1 -2
- homeassistant-stubs/components/google_photos/config_flow.pyi +2 -3
- homeassistant-stubs/components/google_photos/types.pyi +2 -0
- homeassistant-stubs/components/google_sheets/__init__.pyi +1 -0
- homeassistant-stubs/components/google_sheets/config_flow.pyi +1 -3
- homeassistant-stubs/components/govee_ble/__init__.pyi +11 -0
- homeassistant-stubs/components/govee_ble/binary_sensor.pyi +22 -0
- homeassistant-stubs/components/govee_ble/config_flow.pyi +16 -0
- homeassistant-stubs/components/govee_ble/const.pyi +2 -0
- homeassistant-stubs/components/govee_ble/coordinator.pyi +24 -0
- homeassistant-stubs/components/govee_ble/device.pyi +4 -0
- homeassistant-stubs/components/govee_ble/event.pyi +27 -0
- homeassistant-stubs/components/govee_ble/sensor.pyi +25 -0
- homeassistant-stubs/components/gpsd/__init__.pyi +2 -0
- homeassistant-stubs/components/greeneye_monitor/sensor.pyi +1 -0
- homeassistant-stubs/components/group/cover.pyi +2 -2
- homeassistant-stubs/components/group/registry.pyi +2 -1
- homeassistant-stubs/components/group/sensor.pyi +10 -11
- homeassistant-stubs/components/guardian/config_flow.pyi +0 -1
- homeassistant-stubs/components/guardian/util.pyi +1 -1
- homeassistant-stubs/components/hardkernel/__init__.pyi +2 -1
- homeassistant-stubs/components/here_travel_time/config_flow.pyi +4 -5
- homeassistant-stubs/components/history_stats/__init__.pyi +1 -0
- homeassistant-stubs/components/history_stats/coordinator.pyi +2 -1
- homeassistant-stubs/components/history_stats/sensor.pyi +2 -1
- homeassistant-stubs/components/holiday/config_flow.pyi +1 -3
- homeassistant-stubs/components/homeassistant/__init__.pyi +1 -0
- homeassistant-stubs/components/homeassistant/triggers/numeric_state.pyi +2 -1
- homeassistant-stubs/components/homeassistant/triggers/time.pyi +7 -1
- homeassistant-stubs/components/homeassistant_alerts/coordinator.pyi +2 -1
- homeassistant-stubs/components/homeassistant_green/__init__.pyi +2 -1
- homeassistant-stubs/components/homeassistant_green/config_flow.pyi +2 -1
- homeassistant-stubs/components/homeassistant_hardware/firmware_config_flow.pyi +2 -1
- homeassistant-stubs/components/homeassistant_hardware/silabs_multiprotocol_addon.pyi +2 -1
- homeassistant-stubs/components/homeassistant_hardware/util.pyi +2 -1
- homeassistant-stubs/components/homeassistant_sky_connect/config_flow.pyi +3 -3
- homeassistant-stubs/components/homeassistant_yellow/__init__.pyi +2 -1
- homeassistant-stubs/components/homekit/__init__.pyi +0 -1
- homeassistant-stubs/components/homekit/models.pyi +1 -0
- homeassistant-stubs/components/homekit/type_covers.pyi +2 -2
- homeassistant-stubs/components/homekit/type_security_systems.pyi +2 -2
- homeassistant-stubs/components/homekit_controller/alarm_control_panel.pyi +4 -4
- homeassistant-stubs/components/homekit_controller/config_flow.pyi +4 -1
- homeassistant-stubs/components/homekit_controller/utils.pyi +1 -0
- homeassistant-stubs/components/homewizard/__init__.pyi +1 -0
- homeassistant-stubs/components/homewizard/config_flow.pyi +1 -2
- homeassistant-stubs/components/homewizard/helpers.pyi +1 -1
- homeassistant-stubs/components/homewizard/sensor.pyi +1 -1
- homeassistant-stubs/components/homeworks/config_flow.pyi +2 -5
- homeassistant-stubs/components/http/ban.pyi +2 -1
- homeassistant-stubs/components/http/data_validator.pyi +1 -1
- homeassistant-stubs/components/http/decorators.pyi +7 -4
- homeassistant-stubs/components/huawei_lte/config_flow.pyi +2 -0
- homeassistant-stubs/components/huawei_lte/device_tracker.pyi +1 -0
- homeassistant-stubs/components/humidifier/__init__.pyi +0 -10
- homeassistant-stubs/components/husqvarna_automower/__init__.pyi +2 -0
- homeassistant-stubs/components/husqvarna_automower/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/husqvarna_automower/button.pyi +1 -3
- homeassistant-stubs/components/husqvarna_automower/config_flow.pyi +2 -3
- homeassistant-stubs/components/husqvarna_automower/entity.pyi +5 -4
- homeassistant-stubs/components/husqvarna_automower/number.pyi +8 -8
- homeassistant-stubs/components/husqvarna_automower/sensor.pyi +24 -3
- homeassistant-stubs/components/husqvarna_automower/switch.pyi +2 -5
- homeassistant-stubs/components/hydrawise/config_flow.pyi +1 -4
- homeassistant-stubs/components/hyperion/config_flow.pyi +1 -0
- homeassistant-stubs/components/ibeacon/__init__.pyi +1 -0
- homeassistant-stubs/components/image/__init__.pyi +7 -6
- homeassistant-stubs/components/imap/__init__.pyi +1 -0
- homeassistant-stubs/components/imap/config_flow.pyi +1 -2
- homeassistant-stubs/components/imgw_pib/__init__.pyi +1 -0
- homeassistant-stubs/components/intent/__init__.pyi +5 -0
- homeassistant-stubs/components/intent/timers.pyi +1 -2
- homeassistant-stubs/components/iotty/__init__.pyi +1 -0
- homeassistant-stubs/components/iotty/coordinator.pyi +1 -1
- homeassistant-stubs/components/ipp/__init__.pyi +1 -0
- homeassistant-stubs/components/islamic_prayer_times/__init__.pyi +1 -0
- homeassistant-stubs/components/jellyfin/__init__.pyi +2 -2
- homeassistant-stubs/components/jellyfin/config_flow.pyi +0 -1
- homeassistant-stubs/components/jellyfin/coordinator.pyi +8 -15
- homeassistant-stubs/components/jellyfin/entity.pyi +22 -7
- homeassistant-stubs/components/jellyfin/media_player.pyi +6 -18
- homeassistant-stubs/components/jellyfin/remote.pyi +19 -0
- homeassistant-stubs/components/jellyfin/sensor.pyi +10 -8
- homeassistant-stubs/components/jewish_calendar/config_flow.pyi +1 -0
- homeassistant-stubs/components/jvc_projector/__init__.pyi +1 -0
- homeassistant-stubs/components/jvc_projector/config_flow.pyi +1 -2
- homeassistant-stubs/components/knocki/__init__.pyi +1 -0
- homeassistant-stubs/components/knx/__init__.pyi +0 -1
- homeassistant-stubs/components/knx/climate.pyi +2 -0
- homeassistant-stubs/components/knx/const.pyi +4 -0
- homeassistant-stubs/components/knx/notify.pyi +3 -15
- homeassistant-stubs/components/knx/schema.pyi +1 -0
- homeassistant-stubs/components/knx/storage/config_store.pyi +2 -2
- homeassistant-stubs/components/knx/websocket.pyi +4 -1
- homeassistant-stubs/components/kraken/const.pyi +1 -0
- homeassistant-stubs/components/lacrosse_view/config_flow.pyi +1 -2
- homeassistant-stubs/components/lamarzocco/__init__.pyi +1 -1
- homeassistant-stubs/components/lamarzocco/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/lamarzocco/button.pyi +3 -1
- homeassistant-stubs/components/lamarzocco/calendar.pyi +1 -2
- homeassistant-stubs/components/lamarzocco/config_flow.pyi +2 -5
- homeassistant-stubs/components/lamarzocco/coordinator.pyi +5 -4
- homeassistant-stubs/components/lamarzocco/diagnostics.pyi +1 -1
- homeassistant-stubs/components/lamarzocco/number.pyi +3 -2
- homeassistant-stubs/components/lamarzocco/select.pyi +5 -1
- homeassistant-stubs/components/lamarzocco/sensor.pyi +1 -1
- homeassistant-stubs/components/lamarzocco/switch.pyi +3 -2
- homeassistant-stubs/components/lamarzocco/update.pyi +3 -2
- homeassistant-stubs/components/lametric/config_flow.pyi +1 -2
- homeassistant-stubs/components/lametric/helpers.pyi +1 -1
- homeassistant-stubs/components/lawn_mower/__init__.pyi +0 -3
- homeassistant-stubs/components/lcn/__init__.pyi +2 -2
- homeassistant-stubs/components/lcn/binary_sensor.pyi +3 -0
- homeassistant-stubs/components/lcn/config_flow.pyi +2 -5
- homeassistant-stubs/components/lcn/const.pyi +1 -0
- homeassistant-stubs/components/lcn/helpers.pyi +4 -0
- homeassistant-stubs/components/lcn/sensor.pyi +4 -1
- homeassistant-stubs/components/lcn/switch.pyi +24 -1
- homeassistant-stubs/components/lcn/websocket.pyi +3 -1
- homeassistant-stubs/components/lektrico/__init__.pyi +1 -0
- homeassistant-stubs/components/lektrico/switch.pyi +31 -0
- homeassistant-stubs/components/lidarr/__init__.pyi +4 -2
- homeassistant-stubs/components/lidarr/config_flow.pyi +1 -5
- homeassistant-stubs/components/lidarr/coordinator.pyi +4 -1
- homeassistant-stubs/components/lifx/config_flow.pyi +3 -1
- homeassistant-stubs/components/lifx/coordinator.pyi +0 -6
- homeassistant-stubs/components/light/__init__.pyi +0 -15
- homeassistant-stubs/components/linear_garage_door/config_flow.pyi +1 -2
- homeassistant-stubs/components/linear_garage_door/coordinator.pyi +1 -1
- homeassistant-stubs/components/linkplay/__init__.pyi +2 -1
- homeassistant-stubs/components/linkplay/const.pyi +4 -0
- homeassistant-stubs/components/linkplay/media_player.pyi +12 -4
- homeassistant-stubs/components/litterrobot/__init__.pyi +1 -0
- homeassistant-stubs/components/litterrobot/vacuum.pyi +0 -1
- homeassistant-stubs/components/local_todo/__init__.pyi +1 -0
- homeassistant-stubs/components/lock/__init__.pyi +0 -10
- homeassistant-stubs/components/logbook/models.pyi +0 -7
- homeassistant-stubs/components/lookin/coordinator.pyi +1 -1
- homeassistant-stubs/components/madvr/__init__.pyi +1 -0
- homeassistant-stubs/components/madvr/config_flow.pyi +2 -5
- homeassistant-stubs/components/manual/alarm_control_panel.pyi +19 -10
- homeassistant-stubs/components/mastodon/__init__.pyi +1 -0
- homeassistant-stubs/components/mastodon/config_flow.pyi +2 -0
- homeassistant-stubs/components/matter/api.pyi +1 -1
- homeassistant-stubs/components/matter/climate.pyi +1 -0
- homeassistant-stubs/components/matter/config_flow.pyi +3 -1
- homeassistant-stubs/components/matter/entity.pyi +2 -2
- homeassistant-stubs/components/matter/fan.pyi +1 -0
- homeassistant-stubs/components/matter/light.pyi +1 -0
- homeassistant-stubs/components/matter/lock.pyi +1 -0
- homeassistant-stubs/components/matter/models.pyi +2 -0
- homeassistant-stubs/components/matter/select.pyi +2 -0
- homeassistant-stubs/components/matter/switch.pyi +1 -0
- homeassistant-stubs/components/matter/update.pyi +1 -0
- homeassistant-stubs/components/matter/vacuum.pyi +47 -0
- homeassistant-stubs/components/matter/valve.pyi +1 -0
- homeassistant-stubs/components/media_player/__init__.pyi +0 -33
- homeassistant-stubs/components/mikrotik/__init__.pyi +1 -0
- homeassistant-stubs/components/mikrotik/config_flow.pyi +0 -1
- homeassistant-stubs/components/modbus/__init__.pyi +1 -1
- homeassistant-stubs/components/modbus/const.pyi +0 -2
- homeassistant-stubs/components/modbus/cover.pyi +2 -2
- homeassistant-stubs/components/modbus/modbus.pyi +1 -2
- homeassistant-stubs/components/modbus/validators.pyi +1 -1
- homeassistant-stubs/components/mold_indicator/config_flow.pyi +9 -0
- homeassistant-stubs/components/mold_indicator/sensor.pyi +6 -2
- homeassistant-stubs/components/monzo/config_flow.pyi +1 -2
- homeassistant-stubs/components/mopeka/__init__.pyi +1 -0
- homeassistant-stubs/components/mqtt/__init__.pyi +2 -1
- homeassistant-stubs/components/mqtt/alarm_control_panel.pyi +3 -3
- homeassistant-stubs/components/mqtt/client.pyi +4 -0
- homeassistant-stubs/components/mqtt/config_flow.pyi +3 -2
- homeassistant-stubs/components/mqtt/const.pyi +3 -1
- homeassistant-stubs/components/mqtt/cover.pyi +1 -1
- homeassistant-stubs/components/mqtt/discovery.pyi +26 -9
- homeassistant-stubs/components/mqtt/entity.pyi +5 -2
- homeassistant-stubs/components/mqtt/models.pyi +11 -0
- homeassistant-stubs/components/mqtt/schemas.pyi +15 -7
- homeassistant-stubs/components/mqtt/update.pyi +7 -11
- homeassistant-stubs/components/mysensors/const.pyi +6 -1
- homeassistant-stubs/components/myuplink/__init__.pyi +1 -0
- homeassistant-stubs/components/myuplink/config_flow.pyi +1 -2
- homeassistant-stubs/components/myuplink/helpers.pyi +6 -0
- homeassistant-stubs/components/nam/__init__.pyi +1 -0
- homeassistant-stubs/components/nam/config_flow.pyi +4 -7
- homeassistant-stubs/components/nanoleaf/__init__.pyi +1 -0
- homeassistant-stubs/components/nanoleaf/config_flow.pyi +1 -2
- homeassistant-stubs/components/nest/__init__.pyi +1 -1
- homeassistant-stubs/components/nest/api.pyi +5 -3
- homeassistant-stubs/components/nest/camera.pyi +37 -16
- homeassistant-stubs/components/nest/config_flow.pyi +10 -4
- homeassistant-stubs/components/nest/const.pyi +2 -1
- homeassistant-stubs/components/netatmo/climate.pyi +1 -0
- homeassistant-stubs/components/network/websocket.pyi +2 -0
- homeassistant-stubs/components/nextdns/__init__.pyi +1 -0
- homeassistant-stubs/components/nextdns/config_flow.pyi +1 -2
- homeassistant-stubs/components/notify/__init__.pyi +0 -2
- homeassistant-stubs/components/notion/config_flow.pyi +1 -3
- homeassistant-stubs/components/number/__init__.pyi +0 -8
- homeassistant-stubs/components/nut/__init__.pyi +1 -0
- homeassistant-stubs/components/onboarding/views.pyi +1 -0
- homeassistant-stubs/components/oncue/config_flow.pyi +1 -3
- homeassistant-stubs/components/oncue/types.pyi +3 -0
- homeassistant-stubs/components/onewire/__init__.pyi +1 -0
- homeassistant-stubs/components/onkyo/__init__.pyi +25 -0
- homeassistant-stubs/components/onkyo/config_flow.pyi +30 -0
- homeassistant-stubs/components/onkyo/const.pyi +68 -0
- homeassistant-stubs/components/onkyo/media_player.pyi +24 -26
- homeassistant-stubs/components/onkyo/receiver.pyi +23 -3
- homeassistant-stubs/components/onkyo/services.pyi +14 -0
- homeassistant-stubs/components/openai_conversation/__init__.pyi +19 -0
- homeassistant-stubs/components/openai_conversation/config_flow.pyi +30 -0
- homeassistant-stubs/components/openai_conversation/const.pyi +14 -0
- homeassistant-stubs/components/openai_conversation/conversation.pyi +36 -0
- homeassistant-stubs/components/openexchangerates/config_flow.pyi +1 -2
- homeassistant-stubs/components/oralb/__init__.pyi +1 -0
- homeassistant-stubs/components/otbr/__init__.pyi +1 -0
- homeassistant-stubs/components/otbr/config_flow.pyi +2 -1
- homeassistant-stubs/components/otbr/silabs_multiprotocol.pyi +1 -1
- homeassistant-stubs/components/otbr/util.pyi +1 -1
- homeassistant-stubs/components/overkiz/alarm_control_panel.pyi +12 -12
- homeassistant-stubs/components/overkiz/climate/atlantic_pass_apc_zone_control_zone.pyi +0 -3
- homeassistant-stubs/components/overkiz/config_flow.pyi +1 -2
- homeassistant-stubs/components/p1_monitor/__init__.pyi +3 -2
- homeassistant-stubs/components/p1_monitor/config_flow.pyi +2 -2
- homeassistant-stubs/components/p1_monitor/coordinator.pyi +1 -1
- homeassistant-stubs/components/p1_monitor/diagnostics.pyi +1 -1
- homeassistant-stubs/components/panel_custom/__init__.pyi +28 -0
- homeassistant-stubs/components/pi_hole/__init__.pyi +1 -0
- homeassistant-stubs/components/pi_hole/update.pyi +1 -1
- homeassistant-stubs/components/ping/__init__.pyi +1 -0
- homeassistant-stubs/components/plugwise/__init__.pyi +1 -0
- homeassistant-stubs/components/plugwise/config_flow.pyi +8 -6
- homeassistant-stubs/components/plugwise/const.pyi +4 -1
- homeassistant-stubs/components/plugwise/util.pyi +1 -1
- homeassistant-stubs/components/powerwall/config_flow.pyi +0 -1
- homeassistant-stubs/components/powerwall/models.pyi +1 -0
- homeassistant-stubs/components/private_ble_device/coordinator.pyi +3 -0
- homeassistant-stubs/components/prometheus/__init__.pyi +7 -4
- homeassistant-stubs/components/proximity/coordinator.pyi +1 -0
- homeassistant-stubs/components/purpleair/config_flow.pyi +0 -1
- homeassistant-stubs/components/pvoutput/config_flow.pyi +1 -2
- homeassistant-stubs/components/qnap_qsw/sensor.pyi +8 -2
- homeassistant-stubs/components/radarr/__init__.pyi +1 -0
- homeassistant-stubs/components/radarr/config_flow.pyi +1 -3
- homeassistant-stubs/components/radio_browser/__init__.pyi +10 -0
- homeassistant-stubs/components/radio_browser/config_flow.pyi +8 -0
- homeassistant-stubs/components/radio_browser/const.pyi +5 -0
- homeassistant-stubs/components/radio_browser/media_source.pyi +28 -0
- homeassistant-stubs/components/rainforest_raven/__init__.pyi +3 -5
- homeassistant-stubs/components/rainforest_raven/coordinator.pyi +3 -12
- homeassistant-stubs/components/rainforest_raven/diagnostics.pyi +2 -4
- homeassistant-stubs/components/rainforest_raven/sensor.pyi +4 -5
- homeassistant-stubs/components/rainmachine/__init__.pyi +1 -0
- homeassistant-stubs/components/rainmachine/switch.pyi +1 -1
- homeassistant-stubs/components/rainmachine/update.pyi +7 -1
- homeassistant-stubs/components/raspberry_pi/__init__.pyi +2 -1
- homeassistant-stubs/components/recorder/core.pyi +2 -6
- homeassistant-stubs/components/recorder/migration.pyi +36 -16
- homeassistant-stubs/components/recorder/models/state.pyi +0 -7
- homeassistant-stubs/components/recorder/queries.pyi +1 -0
- homeassistant-stubs/components/recorder/table_managers/__init__.pyi +2 -2
- homeassistant-stubs/components/recorder/util.pyi +10 -5
- homeassistant-stubs/components/remote/__init__.pyi +0 -4
- homeassistant-stubs/components/renault/__init__.pyi +1 -0
- homeassistant-stubs/components/renault/renault_vehicle.pyi +1 -1
- homeassistant-stubs/components/repairs/issue_handler.pyi +1 -1
- homeassistant-stubs/components/rfxtrx/cover.pyi +1 -2
- homeassistant-stubs/components/rfxtrx/entity.pyi +1 -1
- homeassistant-stubs/components/ring/__init__.pyi +1 -0
- homeassistant-stubs/components/ring/config_flow.pyi +5 -2
- homeassistant-stubs/components/ring/coordinator.pyi +1 -1
- homeassistant-stubs/components/ring/entity.pyi +2 -2
- homeassistant-stubs/components/roborock/__init__.pyi +1 -0
- homeassistant-stubs/components/roborock/config_flow.pyi +1 -2
- homeassistant-stubs/components/roborock/coordinator.pyi +0 -5
- homeassistant-stubs/components/roku/browse_media.pyi +2 -0
- homeassistant-stubs/components/roku/helpers.pyi +5 -2
- homeassistant-stubs/components/rtsp_to_webrtc/__init__.pyi +1 -3
- homeassistant-stubs/components/rtsp_to_webrtc/config_flow.pyi +1 -1
- homeassistant-stubs/components/samsungtv/__init__.pyi +2 -2
- homeassistant-stubs/components/samsungtv/bridge.pyi +1 -1
- homeassistant-stubs/components/samsungtv/config_flow.pyi +2 -2
- homeassistant-stubs/components/scrape/__init__.pyi +1 -0
- homeassistant-stubs/components/scrape/coordinator.pyi +2 -1
- homeassistant-stubs/components/script/__init__.pyi +0 -16
- homeassistant-stubs/components/select/__init__.pyi +0 -3
- homeassistant-stubs/components/sensibo/__init__.pyi +1 -0
- homeassistant-stubs/components/sensibo/config_flow.pyi +5 -2
- homeassistant-stubs/components/sensibo/entity.pyi +1 -1
- homeassistant-stubs/components/sensibo/update.pyi +1 -1
- homeassistant-stubs/components/sensor/__init__.pyi +0 -9
- homeassistant-stubs/components/sensor/websocket_api.pyi +3 -0
- homeassistant-stubs/components/sensoterra/__init__.pyi +1 -0
- homeassistant-stubs/components/senz/__init__.pyi +2 -0
- homeassistant-stubs/components/sfr_box/binary_sensor.pyi +2 -2
- homeassistant-stubs/components/sfr_box/button.pyi +1 -1
- homeassistant-stubs/components/sfr_box/config_flow.pyi +1 -2
- homeassistant-stubs/components/sfr_box/coordinator.pyi +1 -1
- homeassistant-stubs/components/sfr_box/sensor.pyi +2 -2
- homeassistant-stubs/components/shell_command/__init__.pyi +13 -0
- homeassistant-stubs/components/shelly/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/shelly/button.pyi +1 -1
- homeassistant-stubs/components/shelly/config_flow.pyi +1 -3
- homeassistant-stubs/components/shelly/const.pyi +1 -1
- homeassistant-stubs/components/shelly/coordinator.pyi +2 -4
- homeassistant-stubs/components/shelly/light.pyi +13 -2
- homeassistant-stubs/components/shelly/number.pyi +1 -1
- homeassistant-stubs/components/shelly/select.pyi +1 -1
- homeassistant-stubs/components/shelly/sensor.pyi +1 -1
- homeassistant-stubs/components/shelly/switch.pyi +10 -1
- homeassistant-stubs/components/shelly/text.pyi +1 -1
- homeassistant-stubs/components/shelly/update.pyi +2 -2
- homeassistant-stubs/components/shelly/utils.pyi +3 -2
- homeassistant-stubs/components/simplisafe/alarm_control_panel.pyi +2 -3
- homeassistant-stubs/components/simplisafe/typing.pyi +4 -0
- homeassistant-stubs/components/siren/__init__.pyi +0 -3
- homeassistant-stubs/components/sleepiq/config_flow.pyi +1 -3
- homeassistant-stubs/components/sleepiq/entity.pyi +3 -2
- homeassistant-stubs/components/smhi/config_flow.pyi +1 -3
- homeassistant-stubs/components/smlight/__init__.pyi +1 -0
- homeassistant-stubs/components/smlight/config_flow.pyi +0 -2
- homeassistant-stubs/components/smlight/coordinator.pyi +1 -1
- homeassistant-stubs/components/smlight/update.pyi +4 -2
- homeassistant-stubs/components/solarlog/__init__.pyi +1 -0
- homeassistant-stubs/components/solarlog/config_flow.pyi +1 -4
- homeassistant-stubs/components/solarlog/coordinator.pyi +6 -0
- homeassistant-stubs/components/sonarr/config_flow.pyi +1 -4
- homeassistant-stubs/components/speedtestdotnet/__init__.pyi +2 -1
- homeassistant-stubs/components/spotify/__init__.pyi +5 -0
- homeassistant-stubs/components/spotify/application_credentials.pyi +4 -0
- homeassistant-stubs/components/spotify/browse_media.pyi +49 -0
- homeassistant-stubs/components/spotify/config_flow.pyi +19 -0
- homeassistant-stubs/components/spotify/const.pyi +9 -0
- homeassistant-stubs/components/spotify/coordinator.pyi +34 -0
- homeassistant-stubs/components/spotify/diagnostics.pyi +5 -0
- homeassistant-stubs/components/spotify/entity.pyi +10 -0
- homeassistant-stubs/components/spotify/media_player.pyi +82 -0
- homeassistant-stubs/components/spotify/models.pyi +12 -0
- homeassistant-stubs/components/spotify/sensor.pyi +31 -0
- homeassistant-stubs/components/spotify/system_health.pyi +6 -0
- homeassistant-stubs/components/spotify/util.pyi +7 -0
- homeassistant-stubs/components/squeezebox/__init__.pyi +6 -3
- homeassistant-stubs/components/squeezebox/const.pyi +5 -0
- homeassistant-stubs/components/squeezebox/coordinator.pyi +15 -3
- homeassistant-stubs/components/squeezebox/media_player.pyi +12 -13
- homeassistant-stubs/components/ssdp/__init__.pyi +1 -0
- homeassistant-stubs/components/statistics/config_flow.pyi +8 -2
- homeassistant-stubs/components/statistics/sensor.pyi +20 -22
- homeassistant-stubs/components/steamist/config_flow.pyi +3 -1
- homeassistant-stubs/components/sun/entity.pyi +1 -0
- homeassistant-stubs/components/surepetcare/config_flow.pyi +1 -2
- homeassistant-stubs/components/switch/__init__.pyi +0 -2
- homeassistant-stubs/components/switch_as_x/__init__.pyi +3 -0
- homeassistant-stubs/components/switch_as_x/config_flow.pyi +18 -0
- homeassistant-stubs/components/switch_as_x/const.pyi +5 -0
- homeassistant-stubs/components/switch_as_x/cover.pyi +18 -0
- homeassistant-stubs/components/switch_as_x/entity.pyi +35 -0
- homeassistant-stubs/components/switch_as_x/fan.pyi +17 -0
- homeassistant-stubs/components/switch_as_x/light.pyi +13 -0
- homeassistant-stubs/components/switch_as_x/lock.pyi +17 -0
- homeassistant-stubs/components/switch_as_x/siren.pyi +12 -0
- homeassistant-stubs/components/switch_as_x/valve.pyi +19 -0
- homeassistant-stubs/components/switchbee/entity.pyi +2 -2
- homeassistant-stubs/components/switchbee/switch.pyi +2 -1
- homeassistant-stubs/components/switchbot_cloud/__init__.pyi +2 -1
- homeassistant-stubs/components/switchbot_cloud/coordinator.pyi +2 -0
- homeassistant-stubs/components/switchbot_cloud/lock.pyi +18 -0
- homeassistant-stubs/components/switcher_kis/__init__.pyi +1 -0
- homeassistant-stubs/components/switcher_kis/button.pyi +2 -5
- homeassistant-stubs/components/switcher_kis/climate.pyi +2 -5
- homeassistant-stubs/components/switcher_kis/config_flow.pyi +1 -2
- homeassistant-stubs/components/switcher_kis/coordinator.pyi +1 -1
- homeassistant-stubs/components/switcher_kis/cover.pyi +16 -9
- homeassistant-stubs/components/switcher_kis/entity.pyi +9 -0
- homeassistant-stubs/components/switcher_kis/light.pyi +44 -0
- homeassistant-stubs/components/switcher_kis/sensor.pyi +2 -5
- homeassistant-stubs/components/switcher_kis/switch.pyi +2 -5
- homeassistant-stubs/components/synology_dsm/coordinator.pyi +2 -2
- homeassistant-stubs/components/synology_dsm/entity.pyi +2 -1
- homeassistant-stubs/components/synology_dsm/update.pyi +1 -1
- homeassistant-stubs/components/system_log/__init__.pyi +1 -0
- homeassistant-stubs/components/systemmonitor/__init__.pyi +1 -0
- homeassistant-stubs/components/tailscale/config_flow.pyi +1 -2
- homeassistant-stubs/components/tailwind/config_flow.pyi +1 -2
- homeassistant-stubs/components/tailwind/typing.pyi +2 -0
- homeassistant-stubs/components/tautulli/__init__.pyi +1 -0
- homeassistant-stubs/components/technove/helpers.pyi +1 -1
- homeassistant-stubs/components/tedee/__init__.pyi +1 -1
- homeassistant-stubs/components/tedee/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/tedee/config_flow.pyi +2 -5
- homeassistant-stubs/components/tedee/coordinator.pyi +5 -5
- homeassistant-stubs/components/tedee/lock.pyi +2 -2
- homeassistant-stubs/components/tedee/sensor.pyi +1 -1
- homeassistant-stubs/components/text/__init__.pyi +0 -6
- homeassistant-stubs/components/thethingsnetwork/config_flow.pyi +1 -2
- homeassistant-stubs/components/thethingsnetwork/sensor.pyi +2 -1
- homeassistant-stubs/components/threshold/binary_sensor.pyi +1 -3
- homeassistant-stubs/components/tibber/sensor.pyi +1 -0
- homeassistant-stubs/components/tile/device_tracker.pyi +3 -6
- homeassistant-stubs/components/time/__init__.pyi +0 -4
- homeassistant-stubs/components/timer/__init__.pyi +1 -1
- homeassistant-stubs/components/tod/binary_sensor.pyi +2 -1
- homeassistant-stubs/components/todo/__init__.pyi +0 -2
- homeassistant-stubs/components/tplink/__init__.pyi +1 -0
- homeassistant-stubs/components/tplink/button.pyi +1 -1
- homeassistant-stubs/components/tplink/config_flow.pyi +5 -3
- homeassistant-stubs/components/tplink/entity.pyi +4 -4
- homeassistant-stubs/components/tplink_omada/__init__.pyi +4 -3
- homeassistant-stubs/components/tplink_omada/binary_sensor.pyi +3 -5
- homeassistant-stubs/components/tplink_omada/const.pyi +11 -0
- homeassistant-stubs/components/tplink_omada/coordinator.pyi +1 -1
- homeassistant-stubs/components/tplink_omada/device_tracker.pyi +3 -4
- homeassistant-stubs/components/tplink_omada/entity.pyi +3 -1
- homeassistant-stubs/components/tplink_omada/sensor.pyi +34 -0
- homeassistant-stubs/components/tplink_omada/switch.pyi +3 -5
- homeassistant-stubs/components/tplink_omada/update.pyi +3 -6
- homeassistant-stubs/components/trace/__init__.pyi +5 -25
- homeassistant-stubs/components/trace/const.pyi +1 -1
- homeassistant-stubs/components/trace/models.pyi +2 -0
- homeassistant-stubs/components/trace/util.pyi +17 -0
- homeassistant-stubs/components/trace/websocket_api.pyi +1 -1
- homeassistant-stubs/components/tractive/__init__.pyi +1 -0
- homeassistant-stubs/components/trafikverket_camera/config_flow.pyi +2 -2
- homeassistant-stubs/components/trafikverket_ferry/config_flow.pyi +1 -2
- homeassistant-stubs/components/trafikverket_train/config_flow.pyi +0 -1
- homeassistant-stubs/components/trafikverket_weatherstation/config_flow.pyi +3 -2
- homeassistant-stubs/components/transmission/__init__.pyi +1 -0
- homeassistant-stubs/components/transmission/config_flow.pyi +1 -2
- homeassistant-stubs/components/trend/binary_sensor.pyi +1 -2
- homeassistant-stubs/components/tts/__init__.pyi +0 -5
- homeassistant-stubs/components/tts/const.pyi +1 -0
- homeassistant-stubs/components/twentemilieu/__init__.pyi +4 -0
- homeassistant-stubs/components/unifi/__init__.pyi +1 -0
- homeassistant-stubs/components/unifi/config_flow.pyi +1 -2
- homeassistant-stubs/components/unifi/device_tracker.pyi +0 -3
- homeassistant-stubs/components/unifi/update.pyi +1 -1
- homeassistant-stubs/components/unifiprotect/camera.pyi +3 -2
- homeassistant-stubs/components/unifiprotect/config_flow.pyi +0 -1
- homeassistant-stubs/components/unifiprotect/data.pyi +2 -0
- homeassistant-stubs/components/update/__init__.pyi +7 -12
- homeassistant-stubs/components/update/const.pyi +2 -0
- homeassistant-stubs/components/vacuum/__init__.pyi +0 -6
- homeassistant-stubs/components/vallox/config_flow.pyi +2 -5
- homeassistant-stubs/components/velbus/entity.pyi +1 -1
- homeassistant-stubs/components/vlc_telnet/__init__.pyi +1 -0
- homeassistant-stubs/components/vlc_telnet/config_flow.pyi +2 -3
- homeassistant-stubs/components/vlc_telnet/media_player.pyi +1 -1
- homeassistant-stubs/components/wallbox/__init__.pyi +1 -1
- homeassistant-stubs/components/wallbox/config_flow.pyi +2 -4
- homeassistant-stubs/components/wallbox/coordinator.pyi +3 -3
- homeassistant-stubs/components/water_heater/__init__.pyi +0 -9
- homeassistant-stubs/components/weather/__init__.pyi +0 -19
- homeassistant-stubs/components/webostv/config_flow.pyi +2 -2
- homeassistant-stubs/components/webostv/media_player.pyi +1 -1
- homeassistant-stubs/components/websocket_api/connection.pyi +3 -0
- homeassistant-stubs/components/websocket_api/const.pyi +4 -1
- homeassistant-stubs/components/wemo/__init__.pyi +4 -1
- homeassistant-stubs/components/wemo/coordinator.pyi +3 -0
- homeassistant-stubs/components/withings/__init__.pyi +4 -2
- homeassistant-stubs/components/withings/config_flow.pyi +1 -2
- homeassistant-stubs/components/withings/coordinator.pyi +7 -2
- homeassistant-stubs/components/withings/entity.pyi +14 -2
- homeassistant-stubs/components/withings/sensor.pyi +19 -4
- homeassistant-stubs/components/wiz/__init__.pyi +1 -0
- homeassistant-stubs/components/wled/__init__.pyi +1 -0
- homeassistant-stubs/components/wled/helpers.pyi +1 -1
- homeassistant-stubs/components/workday/__init__.pyi +13 -0
- homeassistant-stubs/components/workday/binary_sensor.pyi +46 -0
- homeassistant-stubs/components/workday/config_flow.pyi +33 -0
- homeassistant-stubs/components/workday/const.pyi +18 -0
- homeassistant-stubs/components/workday/diagnostics.pyi +5 -0
- homeassistant-stubs/components/workday/repairs.pyi +28 -0
- homeassistant-stubs/components/xiaomi_ble/config_flow.pyi +7 -2
- homeassistant-stubs/components/xiaomi_ble/coordinator.pyi +1 -1
- homeassistant-stubs/components/xiaomi_ble/types.pyi +2 -0
- homeassistant-stubs/components/yale_smart_alarm/__init__.pyi +1 -0
- homeassistant-stubs/components/yale_smart_alarm/alarm_control_panel.pyi +2 -3
- homeassistant-stubs/components/yale_smart_alarm/binary_sensor.pyi +7 -0
- homeassistant-stubs/components/yale_smart_alarm/config_flow.pyi +0 -1
- homeassistant-stubs/components/yale_smart_alarm/const.pyi +2 -1
- homeassistant-stubs/components/yale_smart_alarm/select.pyi +21 -0
- homeassistant-stubs/components/yalexs_ble/__init__.pyi +1 -0
- homeassistant-stubs/components/yalexs_ble/config_flow.pyi +6 -2
- homeassistant-stubs/components/youtube/config_flow.pyi +1 -2
- homeassistant-stubs/components/zwave_js/api.pyi +1 -1
- homeassistant-stubs/components/zwave_js/config_flow.pyi +6 -4
- homeassistant-stubs/components/zwave_js/discovery.pyi +2 -1
- homeassistant-stubs/components/zwave_js/discovery_data_template.pyi +1 -1
- homeassistant-stubs/components/zwave_js/light.pyi +8 -6
- homeassistant-stubs/components/zwave_js/services.pyi +4 -1
- homeassistant-stubs/components/zwave_js/update.pyi +2 -1
- homeassistant-stubs/config.pyi +3 -24
- homeassistant-stubs/config_entries.pyi +52 -27
- homeassistant-stubs/const.pyi +16 -12
- homeassistant-stubs/core.pyi +40 -109
- homeassistant-stubs/core_config.pyi +108 -0
- homeassistant-stubs/data_entry_flow.pyi +22 -18
- homeassistant-stubs/helpers/area_registry.pyi +6 -8
- homeassistant-stubs/helpers/category_registry.pyi +1 -0
- homeassistant-stubs/helpers/check_config.pyi +2 -1
- homeassistant-stubs/helpers/collection.pyi +6 -4
- homeassistant-stubs/helpers/condition.pyi +1 -0
- homeassistant-stubs/helpers/config_entry_flow.pyi +3 -2
- homeassistant-stubs/helpers/config_validation.pyi +6 -6
- homeassistant-stubs/helpers/data_entry_flow.pyi +1 -1
- homeassistant-stubs/helpers/debounce.pyi +1 -1
- homeassistant-stubs/helpers/deprecation.pyi +9 -4
- homeassistant-stubs/helpers/device_registry.pyi +7 -8
- homeassistant-stubs/helpers/discovery_flow.pyi +5 -5
- homeassistant-stubs/helpers/dispatcher.pyi +9 -8
- homeassistant-stubs/helpers/entity.pyi +2 -31
- homeassistant-stubs/helpers/entity_registry.pyi +7 -9
- homeassistant-stubs/helpers/event.pyi +2 -1
- homeassistant-stubs/helpers/floor_registry.pyi +3 -3
- homeassistant-stubs/helpers/frame.pyi +1 -5
- homeassistant-stubs/helpers/hassio.pyi +4 -0
- homeassistant-stubs/helpers/http.pyi +2 -0
- homeassistant-stubs/helpers/intent.pyi +6 -5
- homeassistant-stubs/helpers/json.pyi +3 -0
- homeassistant-stubs/helpers/label_registry.pyi +3 -3
- homeassistant-stubs/helpers/llm.pyi +1 -2
- homeassistant-stubs/helpers/network.pyi +1 -0
- homeassistant-stubs/helpers/normalized_name_base_registry.pyi +6 -3
- homeassistant-stubs/helpers/ratelimit.pyi +1 -1
- homeassistant-stubs/helpers/redact.pyi +2 -2
- homeassistant-stubs/helpers/registry.pyi +5 -3
- homeassistant-stubs/helpers/script.pyi +3 -7
- homeassistant-stubs/helpers/selector.pyi +1 -1
- homeassistant-stubs/helpers/service.pyi +2 -2
- homeassistant-stubs/helpers/service_info/hassio.pyi +11 -0
- homeassistant-stubs/helpers/service_info/mqtt.pyi +1 -0
- homeassistant-stubs/helpers/significant_change.pyi +3 -0
- homeassistant-stubs/helpers/singleton.pyi +3 -2
- homeassistant-stubs/helpers/storage.pyi +4 -5
- homeassistant-stubs/helpers/sun.pyi +2 -0
- homeassistant-stubs/helpers/system_info.pyi +1 -0
- homeassistant-stubs/helpers/template.pyi +4 -3
- homeassistant-stubs/helpers/trace.pyi +3 -3
- homeassistant-stubs/helpers/typing.pyi +13 -0
- homeassistant-stubs/helpers/update_coordinator.pyi +4 -4
- homeassistant-stubs/loader.pyi +5 -21
- homeassistant-stubs/scripts/benchmark/__init__.pyi +1 -1
- homeassistant-stubs/util/__init__.pyi +1 -1
- homeassistant-stubs/util/async_.pyi +2 -2
- homeassistant-stubs/util/decorator.pyi +2 -1
- homeassistant-stubs/util/dt.pyi +3 -2
- homeassistant-stubs/util/enum.pyi +2 -2
- homeassistant-stubs/util/hass_dict.pyi +17 -17
- homeassistant-stubs/util/json.pyi +3 -0
- homeassistant-stubs/util/limited_size_dict.pyi +1 -1
- homeassistant-stubs/util/logging.pyi +8 -8
- homeassistant-stubs/util/loop.pyi +1 -1
- homeassistant-stubs/util/percentage.pyi +2 -2
- homeassistant-stubs/util/read_only_dict.pyi +1 -1
- homeassistant-stubs/util/signal_type.pyi +3 -3
- homeassistant-stubs/util/timeout.pyi +3 -1
- homeassistant-stubs/util/variance.pyi +3 -3
- homeassistant-stubs/util/yaml/loader.pyi +2 -4
- {homeassistant_stubs-2024.10.3.dist-info → homeassistant_stubs-2024.11.0.dist-info}/METADATA +2 -2
- {homeassistant_stubs-2024.10.3.dist-info → homeassistant_stubs-2024.11.0.dist-info}/RECORD +851 -772
- homeassistant-stubs/components/jellyfin/models.pyi +0 -10
- homeassistant-stubs/components/map/__init__.pyi +0 -14
- {homeassistant_stubs-2024.10.3.dist-info → homeassistant_stubs-2024.11.0.dist-info}/WHEEL +0 -0
- {homeassistant_stubs-2024.10.3.dist-info → homeassistant_stubs-2024.11.0.dist-info}/licenses/LICENSE +0 -0
@@ -9,6 +9,7 @@ from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
|
|
9
9
|
from homeassistant.helpers.entity import Entity as Entity
|
10
10
|
from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
|
11
11
|
|
12
|
+
type _DataCoordinatorType = SleepIQDataUpdateCoordinator | SleepIQPauseUpdateCoordinator
|
12
13
|
def device_from_bed(bed: SleepIQBed) -> DeviceInfo: ...
|
13
14
|
def sleeper_for_side(bed: SleepIQBed, side: str) -> SleepIQSleeper: ...
|
14
15
|
|
@@ -17,7 +18,7 @@ class SleepIQEntity(Entity):
|
|
17
18
|
_attr_device_info: Incomplete
|
18
19
|
def __init__(self, bed: SleepIQBed) -> None: ...
|
19
20
|
|
20
|
-
class SleepIQBedEntity(CoordinatorEntity[_SleepIQCoordinatorT], metaclass=abc.ABCMeta):
|
21
|
+
class SleepIQBedEntity[_SleepIQCoordinatorT: _DataCoordinatorType](CoordinatorEntity[_SleepIQCoordinatorT], metaclass=abc.ABCMeta):
|
21
22
|
_attr_icon = ICON_OCCUPIED
|
22
23
|
bed: Incomplete
|
23
24
|
_attr_device_info: Incomplete
|
@@ -26,7 +27,7 @@ class SleepIQBedEntity(CoordinatorEntity[_SleepIQCoordinatorT], metaclass=abc.AB
|
|
26
27
|
@abstractmethod
|
27
28
|
def _async_update_attrs(self) -> None: ...
|
28
29
|
|
29
|
-
class SleepIQSleeperEntity(SleepIQBedEntity[_SleepIQCoordinatorT], metaclass=abc.ABCMeta):
|
30
|
+
class SleepIQSleeperEntity[_SleepIQCoordinatorT: _DataCoordinatorType](SleepIQBedEntity[_SleepIQCoordinatorT], metaclass=abc.ABCMeta):
|
30
31
|
_attr_icon = ICON_OCCUPIED
|
31
32
|
sleeper: Incomplete
|
32
33
|
_attr_name: Incomplete
|
@@ -1,5 +1,5 @@
|
|
1
1
|
from .const import DEFAULT_NAME as DEFAULT_NAME, DOMAIN as DOMAIN, HOME_LOCATION_NAME as HOME_LOCATION_NAME
|
2
|
-
from homeassistant.config_entries import
|
2
|
+
from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
|
3
3
|
from homeassistant.const import CONF_LATITUDE as CONF_LATITUDE, CONF_LOCATION as CONF_LOCATION, CONF_LONGITUDE as CONF_LONGITUDE, CONF_NAME as CONF_NAME
|
4
4
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
5
5
|
from homeassistant.helpers import aiohttp_client as aiohttp_client
|
@@ -10,7 +10,5 @@ async def async_check_location(hass: HomeAssistant, longitude: float, latitude:
|
|
10
10
|
|
11
11
|
class SmhiFlowHandler(ConfigFlow, domain=DOMAIN):
|
12
12
|
VERSION: int
|
13
|
-
config_entry: ConfigEntry | None
|
14
13
|
async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
15
14
|
async def async_step_reconfigure(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
16
|
-
async def async_step_reconfigure_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
@@ -12,6 +12,7 @@ class SmlightData:
|
|
12
12
|
data: SmDataUpdateCoordinator
|
13
13
|
firmware: SmFirmwareUpdateCoordinator
|
14
14
|
def __init__(self, *, data, firmware) -> None: ...
|
15
|
+
type SmConfigEntry = ConfigEntry[SmlightData]
|
15
16
|
|
16
17
|
async def async_setup_entry(hass: HomeAssistant, entry: SmConfigEntry) -> bool: ...
|
17
18
|
async def async_unload_entry(hass: HomeAssistant, entry: SmConfigEntry) -> bool: ...
|
@@ -1,4 +1,3 @@
|
|
1
|
-
from . import SmConfigEntry as SmConfigEntry
|
2
1
|
from .const import DOMAIN as DOMAIN
|
3
2
|
from _typeshed import Incomplete
|
4
3
|
from collections.abc import Mapping
|
@@ -15,7 +14,6 @@ STEP_AUTH_DATA_SCHEMA: Incomplete
|
|
15
14
|
class SmlightConfigFlow(ConfigFlow, domain=DOMAIN):
|
16
15
|
client: Incomplete
|
17
16
|
host: Incomplete
|
18
|
-
_reauth_entry: Incomplete
|
19
17
|
def __init__(self) -> None: ...
|
20
18
|
async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
21
19
|
async def async_step_auth(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
@@ -27,7 +27,7 @@ class SmFwData:
|
|
27
27
|
zb_firmware: list[Firmware] | None
|
28
28
|
def __init__(self, info, esp_firmware, zb_firmware) -> None: ...
|
29
29
|
|
30
|
-
class SmBaseDataUpdateCoordinator(DataUpdateCoordinator[_DataT], metaclass=abc.ABCMeta):
|
30
|
+
class SmBaseDataUpdateCoordinator[_DataT](DataUpdateCoordinator[_DataT], metaclass=abc.ABCMeta):
|
31
31
|
config_entry: SmConfigEntry
|
32
32
|
client: Incomplete
|
33
33
|
unique_id: Incomplete
|
@@ -1,4 +1,5 @@
|
|
1
1
|
from . import SmConfigEntry as SmConfigEntry
|
2
|
+
from .const import LOGGER as LOGGER
|
2
3
|
from .coordinator import SmFirmwareUpdateCoordinator as SmFirmwareUpdateCoordinator, SmFwData as SmFwData
|
3
4
|
from .entity import SmEntity as SmEntity
|
4
5
|
from _typeshed import Incomplete
|
@@ -17,7 +18,7 @@ from typing import Any, Final
|
|
17
18
|
class SmUpdateEntityDescription(UpdateEntityDescription):
|
18
19
|
installed_version: Callable[[Info], str | None]
|
19
20
|
fw_list: Callable[[SmFwData], list[Firmware] | None]
|
20
|
-
def __init__(self, *, key, device_class=..., entity_category=..., entity_registry_enabled_default=..., entity_registry_visible_default=..., force_update=..., icon=..., has_entity_name=..., name=..., translation_key=..., translation_placeholders=..., unit_of_measurement=..., installed_version, fw_list) -> None: ...
|
21
|
+
def __init__(self, *, key, device_class=..., entity_category=..., entity_registry_enabled_default=..., entity_registry_visible_default=..., force_update=..., icon=..., has_entity_name=..., name=..., translation_key=..., translation_placeholders=..., unit_of_measurement=..., display_precision=..., installed_version, fw_list) -> None: ...
|
21
22
|
|
22
23
|
UPDATE_ENTITIES: Final[Incomplete]
|
23
24
|
|
@@ -40,8 +41,9 @@ class SmUpdateEntity(SmEntity, UpdateEntity):
|
|
40
41
|
def latest_version(self) -> str | None: ...
|
41
42
|
def register_callbacks(self) -> None: ...
|
42
43
|
def release_notes(self) -> str | None: ...
|
43
|
-
|
44
|
+
_attr_update_percentage: Incomplete
|
44
45
|
def _update_progress(self, progress: MessageEvent) -> None: ...
|
46
|
+
_attr_in_progress: bool
|
45
47
|
def _update_done(self) -> None: ...
|
46
48
|
def _update_finished(self, event: MessageEvent) -> None: ...
|
47
49
|
def _update_failed(self, event: MessageEvent) -> None: ...
|
@@ -7,6 +7,7 @@ from homeassistant.core import HomeAssistant as HomeAssistant
|
|
7
7
|
|
8
8
|
_LOGGER: Incomplete
|
9
9
|
PLATFORMS: Incomplete
|
10
|
+
type SolarlogConfigEntry = ConfigEntry[SolarLogCoordinator]
|
10
11
|
|
11
12
|
async def async_setup_entry(hass: HomeAssistant, entry: SolarlogConfigEntry) -> bool: ...
|
12
13
|
async def async_unload_entry(hass: HomeAssistant, entry: SolarlogConfigEntry) -> bool: ...
|
@@ -1,4 +1,3 @@
|
|
1
|
-
from . import SolarlogConfigEntry as SolarlogConfigEntry
|
2
1
|
from .const import CONF_HAS_PWD as CONF_HAS_PWD, DEFAULT_HOST as DEFAULT_HOST, DEFAULT_NAME as DEFAULT_NAME, DOMAIN as DOMAIN
|
3
2
|
from _typeshed import Incomplete
|
4
3
|
from collections.abc import Mapping
|
@@ -10,7 +9,6 @@ from typing import Any
|
|
10
9
|
_LOGGER: Incomplete
|
11
10
|
|
12
11
|
class SolarLogConfigFlow(ConfigFlow, domain=DOMAIN):
|
13
|
-
_entry: SolarlogConfigEntry | None
|
14
12
|
VERSION: int
|
15
13
|
MINOR_VERSION: int
|
16
14
|
_errors: Incomplete
|
@@ -21,7 +19,6 @@ class SolarLogConfigFlow(ConfigFlow, domain=DOMAIN):
|
|
21
19
|
async def _test_extended_data(self, host: str, pwd: str = '') -> bool: ...
|
22
20
|
async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
23
21
|
async def async_step_password(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
24
|
-
async def async_step_reconfigure(self,
|
25
|
-
async def async_step_reconfigure_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
22
|
+
async def async_step_reconfigure(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
26
23
|
async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> ConfigFlowResult: ...
|
27
24
|
async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
@@ -1,14 +1,19 @@
|
|
1
1
|
from . import SolarlogConfigEntry as SolarlogConfigEntry
|
2
|
+
from .const import DOMAIN as DOMAIN
|
2
3
|
from _typeshed import Incomplete
|
4
|
+
from collections.abc import Callable as Callable
|
3
5
|
from homeassistant.const import CONF_HOST as CONF_HOST
|
4
6
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
5
7
|
from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryNotReady as ConfigEntryNotReady
|
6
8
|
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
|
9
|
+
from homeassistant.util import slugify as slugify
|
7
10
|
from solarlog_cli.solarlog_models import SolarlogData
|
8
11
|
|
9
12
|
_LOGGER: Incomplete
|
10
13
|
|
11
14
|
class SolarLogCoordinator(DataUpdateCoordinator[SolarlogData]):
|
15
|
+
new_device_callbacks: Incomplete
|
16
|
+
_devices_last_update: Incomplete
|
12
17
|
unique_id: Incomplete
|
13
18
|
name: Incomplete
|
14
19
|
host: Incomplete
|
@@ -16,4 +21,5 @@ class SolarLogCoordinator(DataUpdateCoordinator[SolarlogData]):
|
|
16
21
|
def __init__(self, hass: HomeAssistant, entry: SolarlogConfigEntry) -> None: ...
|
17
22
|
async def _async_setup(self) -> None: ...
|
18
23
|
async def _async_update_data(self) -> SolarlogData: ...
|
24
|
+
def _async_add_remove_devices(self, data: SolarlogData) -> None: ...
|
19
25
|
async def renew_authentication(self) -> bool: ...
|
@@ -2,7 +2,7 @@ import voluptuous as vol
|
|
2
2
|
from .const import CONF_UPCOMING_DAYS as CONF_UPCOMING_DAYS, CONF_WANTED_MAX_ITEMS as CONF_WANTED_MAX_ITEMS, DEFAULT_UPCOMING_DAYS as DEFAULT_UPCOMING_DAYS, DEFAULT_VERIFY_SSL as DEFAULT_VERIFY_SSL, DEFAULT_WANTED_MAX_ITEMS as DEFAULT_WANTED_MAX_ITEMS, DOMAIN as DOMAIN
|
3
3
|
from _typeshed import Incomplete
|
4
4
|
from collections.abc import Mapping
|
5
|
-
from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow
|
5
|
+
from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow, SOURCE_REAUTH as SOURCE_REAUTH
|
6
6
|
from homeassistant.const import CONF_API_KEY as CONF_API_KEY, CONF_URL as CONF_URL, CONF_VERIFY_SSL as CONF_VERIFY_SSL
|
7
7
|
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
8
8
|
from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
|
@@ -14,14 +14,11 @@ async def _validate_input(hass: HomeAssistant, data: dict[str, Any]) -> None: ..
|
|
14
14
|
|
15
15
|
class SonarrConfigFlow(ConfigFlow, domain=DOMAIN):
|
16
16
|
VERSION: int
|
17
|
-
entry: Incomplete
|
18
|
-
def __init__(self) -> None: ...
|
19
17
|
@staticmethod
|
20
18
|
def async_get_options_flow(config_entry: ConfigEntry) -> SonarrOptionsFlowHandler: ...
|
21
19
|
async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> ConfigFlowResult: ...
|
22
20
|
async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
23
21
|
async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
24
|
-
async def _async_reauth_update_entry(self, data: dict[str, Any]) -> ConfigFlowResult: ...
|
25
22
|
def _get_user_data_schema(self) -> dict[vol.Marker, type]: ...
|
26
23
|
|
27
24
|
class SonarrOptionsFlowHandler(OptionsFlow):
|
@@ -1,12 +1,13 @@
|
|
1
1
|
from .coordinator import SpeedTestDataCoordinator as SpeedTestDataCoordinator
|
2
2
|
from _typeshed import Incomplete
|
3
|
-
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
3
|
+
from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigEntryState as ConfigEntryState
|
4
4
|
from homeassistant.const import Platform as Platform
|
5
5
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
6
6
|
from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady
|
7
7
|
from homeassistant.helpers.start import async_at_started as async_at_started
|
8
8
|
|
9
9
|
PLATFORMS: Incomplete
|
10
|
+
type SpeedTestConfigEntry = ConfigEntry[SpeedTestDataCoordinator]
|
10
11
|
|
11
12
|
async def async_setup_entry(hass: HomeAssistant, config_entry: SpeedTestConfigEntry) -> bool: ...
|
12
13
|
async def async_unload_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> bool: ...
|
@@ -0,0 +1,5 @@
|
|
1
|
+
from .browse_media import async_browse_media as async_browse_media
|
2
|
+
from .const import DOMAIN as DOMAIN
|
3
|
+
from .util import is_spotify_media_type as is_spotify_media_type, resolve_spotify_media_type as resolve_spotify_media_type, spotify_uri_from_media_browser_url as spotify_uri_from_media_browser_url
|
4
|
+
|
5
|
+
__all__ = ['async_browse_media', 'DOMAIN', 'spotify_uri_from_media_browser_url', 'is_spotify_media_type', 'resolve_spotify_media_type']
|
@@ -0,0 +1,49 @@
|
|
1
|
+
from .const import DOMAIN as DOMAIN, MEDIA_PLAYER_PREFIX as MEDIA_PLAYER_PREFIX, MEDIA_TYPE_SHOW as MEDIA_TYPE_SHOW, PLAYABLE_MEDIA_TYPES as PLAYABLE_MEDIA_TYPES
|
2
|
+
from .util import fetch_image_url as fetch_image_url
|
3
|
+
from _typeshed import Incomplete
|
4
|
+
from enum import StrEnum
|
5
|
+
from homeassistant.components.media_player import BrowseError as BrowseError, BrowseMedia as BrowseMedia, MediaClass as MediaClass, MediaType as MediaType
|
6
|
+
from homeassistant.config_entries import ConfigEntryState as ConfigEntryState
|
7
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
8
|
+
from spotifyaio import Artist as Artist, BasePlaylist as BasePlaylist, SimplifiedAlbum as SimplifiedAlbum, SimplifiedTrack as SimplifiedTrack, SpotifyClient as SpotifyClient
|
9
|
+
from typing import Any, TypedDict
|
10
|
+
|
11
|
+
BROWSE_LIMIT: int
|
12
|
+
_LOGGER: Incomplete
|
13
|
+
|
14
|
+
class ItemPayload(TypedDict):
|
15
|
+
name: str
|
16
|
+
type: str
|
17
|
+
uri: str
|
18
|
+
id: str | None
|
19
|
+
thumbnail: str | None
|
20
|
+
|
21
|
+
def _get_artist_item_payload(artist: Artist) -> ItemPayload: ...
|
22
|
+
def _get_album_item_payload(album: SimplifiedAlbum) -> ItemPayload: ...
|
23
|
+
def _get_playlist_item_payload(playlist: BasePlaylist) -> ItemPayload: ...
|
24
|
+
def _get_track_item_payload(track: SimplifiedTrack, show_thumbnails: bool = True) -> ItemPayload: ...
|
25
|
+
|
26
|
+
class BrowsableMedia(StrEnum):
|
27
|
+
CURRENT_USER_PLAYLISTS = 'current_user_playlists'
|
28
|
+
CURRENT_USER_FOLLOWED_ARTISTS = 'current_user_followed_artists'
|
29
|
+
CURRENT_USER_SAVED_ALBUMS = 'current_user_saved_albums'
|
30
|
+
CURRENT_USER_SAVED_TRACKS = 'current_user_saved_tracks'
|
31
|
+
CURRENT_USER_SAVED_SHOWS = 'current_user_saved_shows'
|
32
|
+
CURRENT_USER_RECENTLY_PLAYED = 'current_user_recently_played'
|
33
|
+
CURRENT_USER_TOP_ARTISTS = 'current_user_top_artists'
|
34
|
+
CURRENT_USER_TOP_TRACKS = 'current_user_top_tracks'
|
35
|
+
CATEGORIES = 'categories'
|
36
|
+
FEATURED_PLAYLISTS = 'featured_playlists'
|
37
|
+
NEW_RELEASES = 'new_releases'
|
38
|
+
|
39
|
+
LIBRARY_MAP: Incomplete
|
40
|
+
CONTENT_TYPE_MEDIA_CLASS: dict[str, Any]
|
41
|
+
|
42
|
+
class MissingMediaInformation(BrowseError): ...
|
43
|
+
class UnknownMediaType(BrowseError): ...
|
44
|
+
|
45
|
+
async def async_browse_media(hass: HomeAssistant, media_content_type: str | None, media_content_id: str | None, *, can_play_artist: bool = True) -> BrowseMedia: ...
|
46
|
+
async def async_browse_media_internal(hass: HomeAssistant, spotify: SpotifyClient, media_content_type: str | None, media_content_id: str | None, *, can_play_artist: bool = True) -> BrowseMedia: ...
|
47
|
+
async def build_item_response(spotify: SpotifyClient, payload: dict[str, str | None], *, can_play_artist: bool) -> BrowseMedia | None: ...
|
48
|
+
def item_payload(item: ItemPayload, *, can_play_artist: bool) -> BrowseMedia: ...
|
49
|
+
async def library_payload(*, can_play_artist: bool) -> BrowseMedia: ...
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import logging
|
2
|
+
from .const import DOMAIN as DOMAIN, SPOTIFY_SCOPES as SPOTIFY_SCOPES
|
3
|
+
from collections.abc import Mapping
|
4
|
+
from homeassistant.config_entries import ConfigFlowResult as ConfigFlowResult, SOURCE_REAUTH as SOURCE_REAUTH
|
5
|
+
from homeassistant.const import CONF_ACCESS_TOKEN as CONF_ACCESS_TOKEN, CONF_NAME as CONF_NAME, CONF_TOKEN as CONF_TOKEN
|
6
|
+
from homeassistant.helpers import config_entry_oauth2_flow as config_entry_oauth2_flow
|
7
|
+
from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
|
8
|
+
from typing import Any
|
9
|
+
|
10
|
+
class SpotifyFlowHandler(config_entry_oauth2_flow.AbstractOAuth2FlowHandler, domain=DOMAIN):
|
11
|
+
DOMAIN = DOMAIN
|
12
|
+
VERSION: int
|
13
|
+
@property
|
14
|
+
def logger(self) -> logging.Logger: ...
|
15
|
+
@property
|
16
|
+
def extra_authorize_data(self) -> dict[str, Any]: ...
|
17
|
+
async def async_oauth_create_entry(self, data: dict[str, Any]) -> ConfigFlowResult: ...
|
18
|
+
async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> ConfigFlowResult: ...
|
19
|
+
async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
@@ -0,0 +1,34 @@
|
|
1
|
+
from .const import DOMAIN as DOMAIN
|
2
|
+
from .models import SpotifyData as SpotifyData
|
3
|
+
from _typeshed import Incomplete
|
4
|
+
from dataclasses import dataclass
|
5
|
+
from datetime import datetime
|
6
|
+
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
7
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
8
|
+
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
|
9
|
+
from spotifyaio import PlaybackState as PlaybackState, Playlist as Playlist, SpotifyClient as SpotifyClient, UserProfile as UserProfile
|
10
|
+
from spotifyaio.models import AudioFeatures as AudioFeatures
|
11
|
+
|
12
|
+
_LOGGER: Incomplete
|
13
|
+
type SpotifyConfigEntry = ConfigEntry[SpotifyData]
|
14
|
+
|
15
|
+
@dataclass
|
16
|
+
class SpotifyCoordinatorData:
|
17
|
+
current_playback: PlaybackState | None
|
18
|
+
position_updated_at: datetime | None
|
19
|
+
playlist: Playlist | None
|
20
|
+
audio_features: AudioFeatures | None
|
21
|
+
dj_playlist: bool = ...
|
22
|
+
def __init__(self, current_playback, position_updated_at, playlist, audio_features, dj_playlist=...) -> None: ...
|
23
|
+
|
24
|
+
SPOTIFY_DJ_PLAYLIST_URI: str
|
25
|
+
|
26
|
+
class SpotifyCoordinator(DataUpdateCoordinator[SpotifyCoordinatorData]):
|
27
|
+
current_user: UserProfile
|
28
|
+
config_entry: SpotifyConfigEntry
|
29
|
+
client: Incomplete
|
30
|
+
_playlist: Incomplete
|
31
|
+
_currently_loaded_track: Incomplete
|
32
|
+
def __init__(self, hass: HomeAssistant, client: SpotifyClient) -> None: ...
|
33
|
+
async def _async_setup(self) -> None: ...
|
34
|
+
async def _async_update_data(self) -> SpotifyCoordinatorData: ...
|
@@ -0,0 +1,5 @@
|
|
1
|
+
from .coordinator import SpotifyConfigEntry as SpotifyConfigEntry
|
2
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
3
|
+
from typing import Any
|
4
|
+
|
5
|
+
async def async_get_config_entry_diagnostics(hass: HomeAssistant, entry: SpotifyConfigEntry) -> dict[str, Any]: ...
|
@@ -0,0 +1,10 @@
|
|
1
|
+
from .const import DOMAIN as DOMAIN
|
2
|
+
from .coordinator import SpotifyCoordinator as SpotifyCoordinator
|
3
|
+
from _typeshed import Incomplete
|
4
|
+
from homeassistant.helpers.device_registry import DeviceEntryType as DeviceEntryType, DeviceInfo as DeviceInfo
|
5
|
+
from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
|
6
|
+
|
7
|
+
class SpotifyEntity(CoordinatorEntity[SpotifyCoordinator]):
|
8
|
+
_attr_has_entity_name: bool
|
9
|
+
_attr_device_info: Incomplete
|
10
|
+
def __init__(self, coordinator: SpotifyCoordinator) -> None: ...
|
@@ -0,0 +1,82 @@
|
|
1
|
+
import datetime as dt
|
2
|
+
from .browse_media import async_browse_media_internal as async_browse_media_internal
|
3
|
+
from .const import MEDIA_PLAYER_PREFIX as MEDIA_PLAYER_PREFIX, PLAYABLE_MEDIA_TYPES as PLAYABLE_MEDIA_TYPES
|
4
|
+
from .coordinator import SpotifyConfigEntry as SpotifyConfigEntry, SpotifyCoordinator as SpotifyCoordinator
|
5
|
+
from .entity import SpotifyEntity as SpotifyEntity
|
6
|
+
from _typeshed import Incomplete
|
7
|
+
from collections.abc import Awaitable, Callable as Callable, Coroutine
|
8
|
+
from homeassistant.components.media_player import ATTR_MEDIA_ENQUEUE as ATTR_MEDIA_ENQUEUE, BrowseMedia as BrowseMedia, MediaPlayerEnqueue as MediaPlayerEnqueue, MediaPlayerEntity as MediaPlayerEntity, MediaPlayerEntityFeature as MediaPlayerEntityFeature, MediaPlayerState as MediaPlayerState, MediaType as MediaType, RepeatMode as RepeatMode
|
9
|
+
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
10
|
+
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
|
11
|
+
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator
|
12
|
+
from spotifyaio import Device as Device, Item as Item, PlaybackState as PlaybackState
|
13
|
+
from typing import Any, Concatenate
|
14
|
+
|
15
|
+
_LOGGER: Incomplete
|
16
|
+
SUPPORT_SPOTIFY: Incomplete
|
17
|
+
REPEAT_MODE_MAPPING_TO_HA: Incomplete
|
18
|
+
REPEAT_MODE_MAPPING_TO_SPOTIFY: Incomplete
|
19
|
+
AFTER_REQUEST_SLEEP: int
|
20
|
+
|
21
|
+
async def async_setup_entry(hass: HomeAssistant, entry: SpotifyConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
|
22
|
+
def ensure_item[_R](func: Callable[[SpotifyMediaPlayer, Item], _R]) -> Callable[[SpotifyMediaPlayer], _R | None]: ...
|
23
|
+
def async_refresh_after[_T: SpotifyEntity, **_P](func: Callable[Concatenate[_T, _P], Awaitable[None]]) -> Callable[Concatenate[_T, _P], Coroutine[Any, Any, None]]: ...
|
24
|
+
|
25
|
+
class SpotifyMediaPlayer(SpotifyEntity, MediaPlayerEntity):
|
26
|
+
_attr_media_image_remotely_accessible: bool
|
27
|
+
_attr_name: Incomplete
|
28
|
+
_attr_translation_key: str
|
29
|
+
devices: Incomplete
|
30
|
+
_attr_unique_id: Incomplete
|
31
|
+
def __init__(self, coordinator: SpotifyCoordinator, device_coordinator: DataUpdateCoordinator[list[Device]]) -> None: ...
|
32
|
+
@property
|
33
|
+
def currently_playing(self) -> PlaybackState | None: ...
|
34
|
+
@property
|
35
|
+
def supported_features(self) -> MediaPlayerEntityFeature: ...
|
36
|
+
@property
|
37
|
+
def state(self) -> MediaPlayerState: ...
|
38
|
+
@property
|
39
|
+
def volume_level(self) -> float | None: ...
|
40
|
+
@property
|
41
|
+
def media_content_id(self, item: Item) -> str: ...
|
42
|
+
@property
|
43
|
+
def media_content_type(self, item: Item) -> str: ...
|
44
|
+
@property
|
45
|
+
def media_duration(self, item: Item) -> int: ...
|
46
|
+
@property
|
47
|
+
def media_position(self) -> int | None: ...
|
48
|
+
@property
|
49
|
+
def media_position_updated_at(self) -> dt.datetime | None: ...
|
50
|
+
@property
|
51
|
+
def media_image_url(self, item: Item) -> str | None: ...
|
52
|
+
@property
|
53
|
+
def media_title(self, item: Item) -> str: ...
|
54
|
+
@property
|
55
|
+
def media_artist(self, item: Item) -> str: ...
|
56
|
+
@property
|
57
|
+
def media_album_name(self, item: Item) -> str: ...
|
58
|
+
@property
|
59
|
+
def media_track(self, item: Item) -> int | None: ...
|
60
|
+
@property
|
61
|
+
def media_playlist(self) -> str | None: ...
|
62
|
+
@property
|
63
|
+
def source(self) -> str | None: ...
|
64
|
+
@property
|
65
|
+
def source_list(self) -> list[str] | None: ...
|
66
|
+
@property
|
67
|
+
def shuffle(self) -> bool | None: ...
|
68
|
+
@property
|
69
|
+
def repeat(self) -> RepeatMode | None: ...
|
70
|
+
async def async_set_volume_level(self, volume: float) -> None: ...
|
71
|
+
async def async_media_play(self) -> None: ...
|
72
|
+
async def async_media_pause(self) -> None: ...
|
73
|
+
async def async_media_previous_track(self) -> None: ...
|
74
|
+
async def async_media_next_track(self) -> None: ...
|
75
|
+
async def async_media_seek(self, position: float) -> None: ...
|
76
|
+
async def async_play_media(self, media_type: MediaType | str, media_id: str, **kwargs: Any) -> None: ...
|
77
|
+
async def async_select_source(self, source: str) -> None: ...
|
78
|
+
async def async_set_shuffle(self, shuffle: bool) -> None: ...
|
79
|
+
async def async_set_repeat(self, repeat: RepeatMode) -> None: ...
|
80
|
+
async def async_browse_media(self, media_content_type: MediaType | str | None = None, media_content_id: str | None = None) -> BrowseMedia: ...
|
81
|
+
def _handle_devices_update(self) -> None: ...
|
82
|
+
async def async_added_to_hass(self) -> None: ...
|
@@ -0,0 +1,12 @@
|
|
1
|
+
from .coordinator import SpotifyCoordinator as SpotifyCoordinator
|
2
|
+
from dataclasses import dataclass
|
3
|
+
from homeassistant.helpers.config_entry_oauth2_flow import OAuth2Session as OAuth2Session
|
4
|
+
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator
|
5
|
+
from spotifyaio import Device as Device
|
6
|
+
|
7
|
+
@dataclass
|
8
|
+
class SpotifyData:
|
9
|
+
coordinator: SpotifyCoordinator
|
10
|
+
session: OAuth2Session
|
11
|
+
devices: DataUpdateCoordinator[list[Device]]
|
12
|
+
def __init__(self, coordinator, session, devices) -> None: ...
|
@@ -0,0 +1,31 @@
|
|
1
|
+
from .coordinator import SpotifyConfigEntry as SpotifyConfigEntry, SpotifyCoordinator as SpotifyCoordinator
|
2
|
+
from .entity import SpotifyEntity as SpotifyEntity
|
3
|
+
from _typeshed import Incomplete
|
4
|
+
from collections.abc import Callable as Callable
|
5
|
+
from dataclasses import dataclass
|
6
|
+
from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription
|
7
|
+
from homeassistant.const import PERCENTAGE as PERCENTAGE
|
8
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
9
|
+
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
|
10
|
+
from spotifyaio.models import AudioFeatures as AudioFeatures, Key
|
11
|
+
|
12
|
+
@dataclass(frozen=True, kw_only=True)
|
13
|
+
class SpotifyAudioFeaturesSensorEntityDescription(SensorEntityDescription):
|
14
|
+
value_fn: Callable[[AudioFeatures], float | str | None]
|
15
|
+
def __init__(self, *, key, device_class=..., entity_category=..., entity_registry_enabled_default=..., entity_registry_visible_default=..., force_update=..., icon=..., has_entity_name=..., name=..., translation_key=..., translation_placeholders=..., unit_of_measurement=..., last_reset=..., native_unit_of_measurement=..., options=..., state_class=..., suggested_display_precision=..., suggested_unit_of_measurement=..., value_fn) -> None: ...
|
16
|
+
|
17
|
+
KEYS: dict[Key, str]
|
18
|
+
KEY_OPTIONS: Incomplete
|
19
|
+
|
20
|
+
def _get_key(audio_features: AudioFeatures) -> str | None: ...
|
21
|
+
|
22
|
+
AUDIO_FEATURE_SENSORS: tuple[SpotifyAudioFeaturesSensorEntityDescription, ...]
|
23
|
+
|
24
|
+
async def async_setup_entry(hass: HomeAssistant, entry: SpotifyConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
|
25
|
+
|
26
|
+
class SpotifyAudioFeatureSensor(SpotifyEntity, SensorEntity):
|
27
|
+
entity_description: SpotifyAudioFeaturesSensorEntityDescription
|
28
|
+
_attr_unique_id: Incomplete
|
29
|
+
def __init__(self, coordinator: SpotifyCoordinator, entity_description: SpotifyAudioFeaturesSensorEntityDescription) -> None: ...
|
30
|
+
@property
|
31
|
+
def native_value(self) -> float | str | None: ...
|
@@ -0,0 +1,6 @@
|
|
1
|
+
from homeassistant.components import system_health as system_health
|
2
|
+
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
3
|
+
from typing import Any
|
4
|
+
|
5
|
+
def async_register(hass: HomeAssistant, register: system_health.SystemHealthRegistration) -> None: ...
|
6
|
+
async def system_health_info(hass: HomeAssistant) -> dict[str, Any]: ...
|
@@ -0,0 +1,7 @@
|
|
1
|
+
from .const import MEDIA_PLAYER_PREFIX as MEDIA_PLAYER_PREFIX
|
2
|
+
from spotifyaio import Image as Image
|
3
|
+
|
4
|
+
def is_spotify_media_type(media_content_type: str) -> bool: ...
|
5
|
+
def resolve_spotify_media_type(media_content_type: str) -> str: ...
|
6
|
+
def fetch_image_url(images: list[Image]) -> str | None: ...
|
7
|
+
def spotify_uri_from_media_browser_url(media_content_id: str) -> str: ...
|
@@ -1,5 +1,5 @@
|
|
1
|
-
from .const import CONF_HTTPS as CONF_HTTPS, DISCOVERY_TASK as DISCOVERY_TASK, DOMAIN as DOMAIN, MANUFACTURER as MANUFACTURER, SERVER_MODEL as SERVER_MODEL, STATUS_API_TIMEOUT as STATUS_API_TIMEOUT, STATUS_QUERY_LIBRARYNAME as STATUS_QUERY_LIBRARYNAME, STATUS_QUERY_MAC as STATUS_QUERY_MAC, STATUS_QUERY_UUID as STATUS_QUERY_UUID, STATUS_QUERY_VERSION as STATUS_QUERY_VERSION
|
2
|
-
from .coordinator import LMSStatusDataUpdateCoordinator as LMSStatusDataUpdateCoordinator
|
1
|
+
from .const import CONF_HTTPS as CONF_HTTPS, DISCOVERY_INTERVAL as DISCOVERY_INTERVAL, DISCOVERY_TASK as DISCOVERY_TASK, DOMAIN as DOMAIN, KNOWN_PLAYERS as KNOWN_PLAYERS, KNOWN_SERVERS as KNOWN_SERVERS, MANUFACTURER as MANUFACTURER, SERVER_MODEL as SERVER_MODEL, SIGNAL_PLAYER_DISCOVERED as SIGNAL_PLAYER_DISCOVERED, SIGNAL_PLAYER_REDISCOVERED as SIGNAL_PLAYER_REDISCOVERED, STATUS_API_TIMEOUT as STATUS_API_TIMEOUT, STATUS_QUERY_LIBRARYNAME as STATUS_QUERY_LIBRARYNAME, STATUS_QUERY_MAC as STATUS_QUERY_MAC, STATUS_QUERY_UUID as STATUS_QUERY_UUID, STATUS_QUERY_VERSION as STATUS_QUERY_VERSION
|
2
|
+
from .coordinator import LMSStatusDataUpdateCoordinator as LMSStatusDataUpdateCoordinator, SqueezeBoxPlayerUpdateCoordinator as SqueezeBoxPlayerUpdateCoordinator
|
3
3
|
from _typeshed import Incomplete
|
4
4
|
from dataclasses import dataclass
|
5
5
|
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
@@ -8,7 +8,9 @@ from homeassistant.core import HomeAssistant as HomeAssistant
|
|
8
8
|
from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady
|
9
9
|
from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
|
10
10
|
from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC as CONNECTION_NETWORK_MAC, DeviceEntryType as DeviceEntryType, format_mac as format_mac
|
11
|
-
from
|
11
|
+
from homeassistant.helpers.dispatcher import async_dispatcher_send as async_dispatcher_send
|
12
|
+
from homeassistant.helpers.event import async_call_later as async_call_later
|
13
|
+
from pysqueezebox import Player as Player, Server
|
12
14
|
|
13
15
|
_LOGGER: Incomplete
|
14
16
|
PLATFORMS: Incomplete
|
@@ -18,6 +20,7 @@ class SqueezeboxData:
|
|
18
20
|
coordinator: LMSStatusDataUpdateCoordinator
|
19
21
|
server: Server
|
20
22
|
def __init__(self, coordinator, server) -> None: ...
|
23
|
+
type SqueezeboxConfigEntry = ConfigEntry[SqueezeboxData]
|
21
24
|
|
22
25
|
async def async_setup_entry(hass: HomeAssistant, entry: SqueezeboxConfigEntry) -> bool: ...
|
23
26
|
async def async_unload_entry(hass: HomeAssistant, entry: SqueezeboxConfigEntry) -> bool: ...
|
@@ -5,6 +5,7 @@ DISCOVERY_TASK: str
|
|
5
5
|
DOMAIN: str
|
6
6
|
DEFAULT_PORT: int
|
7
7
|
KNOWN_PLAYERS: str
|
8
|
+
KNOWN_SERVERS: str
|
8
9
|
MANUFACTURER: str
|
9
10
|
PLAYER_DISCOVERY_UNSUB: str
|
10
11
|
SENSOR_UPDATE_INTERVAL: int
|
@@ -27,3 +28,7 @@ STATUS_QUERY_MAC: str
|
|
27
28
|
STATUS_QUERY_UUID: str
|
28
29
|
STATUS_QUERY_VERSION: str
|
29
30
|
SQUEEZEBOX_SOURCE_STRINGS: Incomplete
|
31
|
+
SIGNAL_PLAYER_DISCOVERED: str
|
32
|
+
SIGNAL_PLAYER_REDISCOVERED: str
|
33
|
+
DISCOVERY_INTERVAL: int
|
34
|
+
PLAYER_UPDATE_INTERVAL: int
|
@@ -1,8 +1,11 @@
|
|
1
|
-
from .const import SENSOR_UPDATE_INTERVAL as SENSOR_UPDATE_INTERVAL, STATUS_API_TIMEOUT as STATUS_API_TIMEOUT, STATUS_SENSOR_LASTSCAN as STATUS_SENSOR_LASTSCAN, STATUS_SENSOR_NEEDSRESTART as STATUS_SENSOR_NEEDSRESTART, STATUS_SENSOR_RESCAN as STATUS_SENSOR_RESCAN
|
1
|
+
from .const import PLAYER_UPDATE_INTERVAL as PLAYER_UPDATE_INTERVAL, SENSOR_UPDATE_INTERVAL as SENSOR_UPDATE_INTERVAL, SIGNAL_PLAYER_REDISCOVERED as SIGNAL_PLAYER_REDISCOVERED, STATUS_API_TIMEOUT as STATUS_API_TIMEOUT, STATUS_SENSOR_LASTSCAN as STATUS_SENSOR_LASTSCAN, STATUS_SENSOR_NEEDSRESTART as STATUS_SENSOR_NEEDSRESTART, STATUS_SENSOR_RESCAN as STATUS_SENSOR_RESCAN
|
2
2
|
from _typeshed import Incomplete
|
3
|
-
from
|
3
|
+
from collections.abc import Callable as Callable
|
4
|
+
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
5
|
+
from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
|
4
6
|
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
|
5
|
-
from pysqueezebox import Server as Server
|
7
|
+
from pysqueezebox import Player as Player, Server as Server
|
8
|
+
from typing import Any
|
6
9
|
|
7
10
|
_LOGGER: Incomplete
|
8
11
|
|
@@ -12,3 +15,12 @@ class LMSStatusDataUpdateCoordinator(DataUpdateCoordinator):
|
|
12
15
|
def __init__(self, hass: HomeAssistant, lms: Server) -> None: ...
|
13
16
|
async def _async_update_data(self) -> dict: ...
|
14
17
|
def _prepare_status_data(self, data: dict) -> dict: ...
|
18
|
+
|
19
|
+
class SqueezeBoxPlayerUpdateCoordinator(DataUpdateCoordinator[dict[str, Any]]):
|
20
|
+
player: Incomplete
|
21
|
+
available: bool
|
22
|
+
_remove_dispatcher: Incomplete
|
23
|
+
server_uuid: Incomplete
|
24
|
+
def __init__(self, hass: HomeAssistant, player: Player, server_uuid: str) -> None: ...
|
25
|
+
async def _async_update_data(self) -> dict[str, Any]: ...
|
26
|
+
def rediscovered(self, unique_id: str, connected: bool) -> None: ...
|
@@ -1,32 +1,30 @@
|
|
1
1
|
from . import SqueezeboxConfigEntry as SqueezeboxConfigEntry
|
2
2
|
from .browse_media import build_item_response as build_item_response, generate_playlist as generate_playlist, library_payload as library_payload, media_source_content_filter as media_source_content_filter
|
3
|
-
from .const import DISCOVERY_TASK as DISCOVERY_TASK, DOMAIN as DOMAIN, KNOWN_PLAYERS as KNOWN_PLAYERS, SQUEEZEBOX_SOURCE_STRINGS as SQUEEZEBOX_SOURCE_STRINGS
|
3
|
+
from .const import DISCOVERY_TASK as DISCOVERY_TASK, DOMAIN as DOMAIN, KNOWN_PLAYERS as KNOWN_PLAYERS, KNOWN_SERVERS as KNOWN_SERVERS, SIGNAL_PLAYER_DISCOVERED as SIGNAL_PLAYER_DISCOVERED, SQUEEZEBOX_SOURCE_STRINGS as SQUEEZEBOX_SOURCE_STRINGS
|
4
|
+
from .coordinator import SqueezeBoxPlayerUpdateCoordinator as SqueezeBoxPlayerUpdateCoordinator
|
4
5
|
from _typeshed import Incomplete
|
5
6
|
from collections.abc import Callable as Callable
|
6
7
|
from datetime import datetime
|
7
8
|
from homeassistant.components import media_source as media_source
|
8
9
|
from homeassistant.components.media_player import ATTR_MEDIA_ENQUEUE as ATTR_MEDIA_ENQUEUE, BrowseError as BrowseError, BrowseMedia as BrowseMedia, MediaPlayerEnqueue as MediaPlayerEnqueue, MediaPlayerEntity as MediaPlayerEntity, MediaPlayerEntityFeature as MediaPlayerEntityFeature, MediaPlayerState as MediaPlayerState, MediaType as MediaType, RepeatMode as RepeatMode, async_process_play_media_url as async_process_play_media_url
|
9
10
|
from homeassistant.config_entries import SOURCE_INTEGRATION_DISCOVERY as SOURCE_INTEGRATION_DISCOVERY
|
10
|
-
from homeassistant.const import ATTR_COMMAND as ATTR_COMMAND, CONF_HOST as CONF_HOST, CONF_PORT as CONF_PORT
|
11
|
+
from homeassistant.const import ATTR_COMMAND as ATTR_COMMAND, CONF_HOST as CONF_HOST, CONF_PORT as CONF_PORT, Platform as Platform
|
11
12
|
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
12
13
|
from homeassistant.exceptions import ServiceValidationError as ServiceValidationError
|
13
14
|
from homeassistant.helpers import discovery_flow as discovery_flow, entity_platform as entity_platform
|
14
15
|
from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC as CONNECTION_NETWORK_MAC, DeviceInfo as DeviceInfo, format_mac as format_mac
|
15
|
-
from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
|
16
|
+
from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
|
16
17
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
|
17
|
-
from homeassistant.helpers.event import async_call_later as async_call_later
|
18
18
|
from homeassistant.helpers.start import async_at_start as async_at_start
|
19
|
+
from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
|
19
20
|
from homeassistant.util.dt import utcnow as utcnow
|
20
|
-
from pysqueezebox import
|
21
|
+
from pysqueezebox import Server as Server
|
21
22
|
from typing import Any
|
22
23
|
|
23
24
|
SERVICE_CALL_METHOD: str
|
24
25
|
SERVICE_CALL_QUERY: str
|
25
26
|
ATTR_QUERY_RESULT: str
|
26
|
-
SIGNAL_PLAYER_REDISCOVERED: str
|
27
27
|
_LOGGER: Incomplete
|
28
|
-
DISCOVERY_INTERVAL: int
|
29
|
-
KNOWN_SERVERS: str
|
30
28
|
ATTR_PARAMETERS: str
|
31
29
|
ATTR_OTHER_PLAYER: str
|
32
30
|
ATTR_TO_PROPERTY: Incomplete
|
@@ -35,24 +33,25 @@ SQUEEZEBOX_MODE: Incomplete
|
|
35
33
|
async def start_server_discovery(hass: HomeAssistant) -> None: ...
|
36
34
|
async def async_setup_entry(hass: HomeAssistant, entry: SqueezeboxConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
|
37
35
|
|
38
|
-
class
|
36
|
+
class SqueezeBoxMediaPlayerEntity(CoordinatorEntity[SqueezeBoxPlayerUpdateCoordinator], MediaPlayerEntity):
|
39
37
|
_attr_supported_features: Incomplete
|
40
38
|
_attr_has_entity_name: bool
|
41
39
|
_attr_name: Incomplete
|
42
40
|
_last_update: datetime | None
|
43
|
-
_attr_available: bool
|
44
41
|
_player: Incomplete
|
45
42
|
_query_result: Incomplete
|
46
43
|
_remove_dispatcher: Incomplete
|
44
|
+
_previous_media_position: int
|
47
45
|
_attr_unique_id: Incomplete
|
48
46
|
_attr_device_info: Incomplete
|
49
|
-
def __init__(self,
|
47
|
+
def __init__(self, coordinator: SqueezeBoxPlayerUpdateCoordinator) -> None: ...
|
48
|
+
def _handle_coordinator_update(self) -> None: ...
|
49
|
+
@property
|
50
|
+
def available(self) -> bool: ...
|
50
51
|
@property
|
51
52
|
def extra_state_attributes(self) -> dict[str, Any]: ...
|
52
|
-
def rediscovered(self, unique_id: str, connected: bool) -> None: ...
|
53
53
|
@property
|
54
54
|
def state(self) -> MediaPlayerState | None: ...
|
55
|
-
async def async_update(self) -> None: ...
|
56
55
|
async def async_will_remove_from_hass(self) -> None: ...
|
57
56
|
@property
|
58
57
|
def volume_level(self) -> float | None: ...
|