homeassistant-stubs 2024.6.3__py3-none-any.whl → 2024.7.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 +2 -0
- homeassistant-stubs/auth/auth_store.pyi +1 -0
- homeassistant-stubs/auth/providers/homeassistant.pyi +10 -2
- homeassistant-stubs/block_async_io.pyi +23 -0
- homeassistant-stubs/bootstrap.pyi +4 -3
- homeassistant-stubs/components/accuweather/sensor.pyi +5 -9
- homeassistant-stubs/components/accuweather/weather.pyi +1 -1
- homeassistant-stubs/components/acer_projector/switch.pyi +2 -1
- homeassistant-stubs/components/air_quality/__init__.pyi +4 -3
- homeassistant-stubs/components/airgradient/__init__.pyi +8 -0
- homeassistant-stubs/components/airgradient/button.pyi +28 -0
- homeassistant-stubs/components/airgradient/const.pyi +2 -0
- homeassistant-stubs/components/airgradient/coordinator.pyi +2 -2
- homeassistant-stubs/components/airgradient/number.pyi +32 -0
- homeassistant-stubs/components/airgradient/select.pyi +14 -12
- homeassistant-stubs/components/airgradient/sensor.pyi +28 -10
- homeassistant-stubs/components/airgradient/switch.pyi +33 -0
- homeassistant-stubs/components/airnow/const.pyi +1 -0
- homeassistant-stubs/components/airnow/coordinator.pyi +1 -1
- homeassistant-stubs/components/airnow/sensor.pyi +1 -2
- homeassistant-stubs/components/airzone/__init__.pyi +4 -4
- homeassistant-stubs/components/airzone/binary_sensor.pyi +2 -2
- homeassistant-stubs/components/airzone/climate.pyi +3 -2
- homeassistant-stubs/components/airzone/diagnostics.pyi +2 -4
- homeassistant-stubs/components/airzone/entity.pyi +2 -1
- homeassistant-stubs/components/airzone/select.pyi +2 -2
- homeassistant-stubs/components/airzone/sensor.pyi +3 -2
- homeassistant-stubs/components/airzone/water_heater.pyi +3 -2
- homeassistant-stubs/components/airzone_cloud/__init__.pyi +3 -3
- homeassistant-stubs/components/airzone_cloud/binary_sensor.pyi +2 -3
- homeassistant-stubs/components/airzone_cloud/climate.pyi +8 -10
- homeassistant-stubs/components/airzone_cloud/diagnostics.pyi +2 -4
- homeassistant-stubs/components/airzone_cloud/select.pyi +2 -3
- homeassistant-stubs/components/airzone_cloud/sensor.pyi +2 -3
- homeassistant-stubs/components/airzone_cloud/water_heater.pyi +2 -3
- homeassistant-stubs/components/aladdin_connect/__init__.pyi +4 -13
- homeassistant-stubs/components/aladdin_connect/config_flow.pyi +3 -16
- homeassistant-stubs/components/alarm_control_panel/__init__.pyi +3 -3
- homeassistant-stubs/components/alexa/capabilities.pyi +2 -2
- homeassistant-stubs/components/alexa/entities.pyi +25 -24
- homeassistant-stubs/components/alpha_vantage/sensor.pyi +2 -1
- homeassistant-stubs/components/ambient_network/coordinator.pyi +2 -0
- homeassistant-stubs/components/ambient_network/sensor.pyi +1 -0
- homeassistant-stubs/components/androidtv/entity.pyi +1 -0
- homeassistant-stubs/components/androidtv/remote.pyi +21 -0
- homeassistant-stubs/components/androidtv_remote/config_flow.pyi +11 -1
- homeassistant-stubs/components/androidtv_remote/const.pyi +3 -0
- homeassistant-stubs/components/androidtv_remote/entity.pyi +2 -1
- homeassistant-stubs/components/androidtv_remote/media_player.pyi +4 -1
- homeassistant-stubs/components/androidtv_remote/remote.pyi +3 -0
- homeassistant-stubs/components/anel_pwrctrl/switch.pyi +2 -1
- homeassistant-stubs/components/apprise/notify.pyi +2 -1
- homeassistant-stubs/components/apsystems/__init__.pyi +9 -2
- homeassistant-stubs/components/apsystems/entity.pyi +10 -0
- homeassistant-stubs/components/apsystems/number.pyi +25 -0
- homeassistant-stubs/components/apsystems/sensor.pyi +6 -7
- homeassistant-stubs/components/aqualogic/sensor.pyi +2 -1
- homeassistant-stubs/components/aqualogic/switch.pyi +2 -1
- homeassistant-stubs/components/aquostv/media_player.pyi +2 -1
- homeassistant-stubs/components/assist_pipeline/pipeline.pyi +8 -7
- homeassistant-stubs/components/assist_pipeline/select.pyi +1 -1
- homeassistant-stubs/components/asuswrt/config_flow.pyi +1 -0
- homeassistant-stubs/components/automation/__init__.pyi +10 -5
- homeassistant-stubs/components/automation/config.pyi +11 -1
- homeassistant-stubs/components/automation/trace.pyi +2 -2
- homeassistant-stubs/components/axis/config_flow.pyi +1 -0
- homeassistant-stubs/components/baf/binary_sensor.pyi +2 -4
- homeassistant-stubs/components/baf/entity.pyi +6 -1
- homeassistant-stubs/components/baf/number.pyi +2 -4
- homeassistant-stubs/components/baf/sensor.pyi +2 -4
- homeassistant-stubs/components/baf/switch.pyi +2 -4
- homeassistant-stubs/components/bang_olufsen/const.pyi +2 -0
- homeassistant-stubs/components/bang_olufsen/media_player.pyi +3 -2
- homeassistant-stubs/components/bayesian/binary_sensor.pyi +2 -1
- homeassistant-stubs/components/binary_sensor/__init__.pyi +3 -2
- homeassistant-stubs/components/bitcoin/sensor.pyi +2 -1
- homeassistant-stubs/components/blockchain/sensor.pyi +2 -1
- homeassistant-stubs/components/blueprint/errors.pyi +1 -1
- homeassistant-stubs/components/blueprint/websocket_api.pyi +6 -3
- homeassistant-stubs/components/bluetooth/passive_update_coordinator.pyi +3 -3
- homeassistant-stubs/components/bmw_connected_drive/const.pyi +0 -1
- homeassistant-stubs/components/bmw_connected_drive/select.pyi +1 -1
- homeassistant-stubs/components/bmw_connected_drive/sensor.pyi +1 -1
- homeassistant-stubs/components/brother/config_flow.pyi +9 -1
- homeassistant-stubs/components/button/__init__.pyi +4 -3
- homeassistant-stubs/components/calendar/__init__.pyi +2 -4
- homeassistant-stubs/components/camera/__init__.pyi +8 -7
- homeassistant-stubs/components/cert_expiry/sensor.pyi +2 -1
- homeassistant-stubs/components/clickatell/notify.pyi +2 -1
- homeassistant-stubs/components/clicksend/notify.pyi +2 -1
- homeassistant-stubs/components/climate/__init__.pyi +5 -4
- homeassistant-stubs/components/cloud/__init__.pyi +1 -1
- homeassistant-stubs/components/cloud/account_link.pyi +1 -1
- homeassistant-stubs/components/cloud/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/cloud/const.pyi +6 -1
- homeassistant-stubs/components/cloud/http_api.pyi +1 -1
- homeassistant-stubs/components/cloud/repairs.pyi +1 -3
- homeassistant-stubs/components/cloud/stt.pyi +1 -1
- homeassistant-stubs/components/cloud/system_health.pyi +1 -3
- homeassistant-stubs/components/cloud/tts.pyi +1 -1
- homeassistant-stubs/components/config/auth_provider_homeassistant.pyi +1 -0
- homeassistant-stubs/components/config/scene.pyi +3 -1
- homeassistant-stubs/components/counter/__init__.pyi +2 -2
- homeassistant-stubs/components/cover/__init__.pyi +3 -2
- homeassistant-stubs/components/demo/tts.pyi +2 -1
- homeassistant-stubs/components/derivative/__init__.pyi +2 -1
- homeassistant-stubs/components/derivative/config_flow.pyi +11 -4
- homeassistant-stubs/components/derivative/sensor.pyi +3 -1
- homeassistant-stubs/components/device_automation/__init__.pyi +2 -2
- homeassistant-stubs/components/dlna_dmr/config_flow.pyi +1 -0
- homeassistant-stubs/components/dnsip/__init__.pyi +4 -2
- homeassistant-stubs/components/dnsip/config_flow.pyi +4 -3
- homeassistant-stubs/components/dnsip/const.pyi +2 -0
- homeassistant-stubs/components/dnsip/sensor.pyi +4 -3
- homeassistant-stubs/components/ecovacs/binary_sensor.pyi +3 -3
- homeassistant-stubs/components/ecovacs/button.pyi +5 -5
- homeassistant-stubs/components/ecovacs/config_flow.pyi +1 -0
- homeassistant-stubs/components/ecovacs/controller.pyi +4 -4
- homeassistant-stubs/components/ecovacs/entity.pyi +8 -10
- homeassistant-stubs/components/ecovacs/event.pyi +3 -3
- homeassistant-stubs/components/ecovacs/image.pyi +2 -2
- homeassistant-stubs/components/ecovacs/lawn_mower.pyi +3 -3
- homeassistant-stubs/components/ecovacs/number.pyi +3 -3
- homeassistant-stubs/components/ecovacs/select.pyi +3 -3
- homeassistant-stubs/components/ecovacs/sensor.pyi +6 -6
- homeassistant-stubs/components/ecovacs/switch.pyi +4 -4
- homeassistant-stubs/components/ecovacs/vacuum.pyi +9 -5
- homeassistant-stubs/components/ecowitt/binary_sensor.pyi +1 -0
- homeassistant-stubs/components/efergy/__init__.pyi +3 -2
- homeassistant-stubs/components/efergy/sensor.pyi +3 -4
- homeassistant-stubs/components/electrasmart/__init__.pyi +12 -0
- homeassistant-stubs/components/electrasmart/climate.pyi +64 -0
- homeassistant-stubs/components/electrasmart/config_flow.pyi +24 -0
- homeassistant-stubs/components/electrasmart/const.pyi +10 -0
- homeassistant-stubs/components/elkm1/alarm_control_panel.pyi +2 -1
- homeassistant-stubs/components/elkm1/const.pyi +2 -1
- homeassistant-stubs/components/elkm1/sensor.pyi +2 -1
- homeassistant-stubs/components/energy/websocket_api.pyi +5 -5
- homeassistant-stubs/components/enigma2/__init__.pyi +3 -2
- homeassistant-stubs/components/enigma2/config_flow.pyi +10 -1
- homeassistant-stubs/components/enigma2/media_player.pyi +3 -2
- homeassistant-stubs/components/enphase_envoy/config_flow.pyi +8 -2
- homeassistant-stubs/components/enphase_envoy/const.pyi +2 -0
- homeassistant-stubs/components/enphase_envoy/diagnostics.pyi +3 -1
- homeassistant-stubs/components/esphome/__init__.pyi +5 -5
- homeassistant-stubs/components/esphome/alarm_control_panel.pyi +3 -5
- homeassistant-stubs/components/esphome/binary_sensor.pyi +2 -3
- homeassistant-stubs/components/esphome/button.pyi +3 -5
- homeassistant-stubs/components/esphome/camera.pyi +3 -5
- homeassistant-stubs/components/esphome/climate.pyi +3 -6
- homeassistant-stubs/components/esphome/cover.pyi +3 -5
- homeassistant-stubs/components/esphome/date.pyi +3 -5
- homeassistant-stubs/components/esphome/datetime.pyi +3 -5
- homeassistant-stubs/components/esphome/diagnostics.pyi +3 -3
- homeassistant-stubs/components/esphome/domain_data.pyi +4 -8
- homeassistant-stubs/components/esphome/entity.pyi +2 -4
- homeassistant-stubs/components/esphome/entry_data.pyi +4 -3
- homeassistant-stubs/components/esphome/event.pyi +3 -5
- homeassistant-stubs/components/esphome/fan.pyi +3 -6
- homeassistant-stubs/components/esphome/light.pyi +3 -6
- homeassistant-stubs/components/esphome/lock.pyi +3 -5
- homeassistant-stubs/components/esphome/manager.pyi +4 -5
- homeassistant-stubs/components/esphome/media_player.pyi +3 -5
- homeassistant-stubs/components/esphome/number.pyi +3 -5
- homeassistant-stubs/components/esphome/select.pyi +2 -4
- homeassistant-stubs/components/esphome/switch.pyi +3 -5
- homeassistant-stubs/components/esphome/text.pyi +3 -5
- homeassistant-stubs/components/esphome/time.pyi +3 -5
- homeassistant-stubs/components/esphome/update.pyi +23 -2
- homeassistant-stubs/components/esphome/valve.pyi +3 -5
- homeassistant-stubs/components/event/__init__.pyi +3 -1
- homeassistant-stubs/components/evohome/__init__.pyi +8 -49
- homeassistant-stubs/components/evohome/climate.pyi +2 -2
- homeassistant-stubs/components/evohome/const.pyi +39 -16
- homeassistant-stubs/components/evohome/coordinator.pyi +33 -0
- homeassistant-stubs/components/evohome/helpers.pyi +13 -0
- homeassistant-stubs/components/fan/__init__.pyi +3 -2
- homeassistant-stubs/components/fastdotcom/__init__.pyi +2 -7
- homeassistant-stubs/components/fastdotcom/config_flow.pyi +0 -2
- homeassistant-stubs/components/feedreader/__init__.pyi +10 -5
- homeassistant-stubs/components/feedreader/config_flow.pyi +30 -0
- homeassistant-stubs/components/feedreader/const.pyi +5 -0
- homeassistant-stubs/components/feedreader/coordinator.pyi +4 -4
- homeassistant-stubs/components/filter/sensor.pyi +2 -1
- homeassistant-stubs/components/flux_led/light.pyi +4 -3
- homeassistant-stubs/components/fritz/switch.pyi +1 -1
- homeassistant-stubs/components/fritzbox/climate.pyi +14 -9
- homeassistant-stubs/components/fritzbox/switch.pyi +3 -0
- homeassistant-stubs/components/fronius/config_flow.pyi +3 -2
- homeassistant-stubs/components/frontend/__init__.pyi +9 -4
- homeassistant-stubs/components/fully_kiosk/camera.pyi +21 -0
- homeassistant-stubs/components/fully_kiosk/image.pyi +30 -0
- homeassistant-stubs/components/fully_kiosk/media_player.pyi +2 -0
- homeassistant-stubs/components/fully_kiosk/notify.pyi +25 -0
- homeassistant-stubs/components/generic_hygrostat/__init__.pyi +4 -0
- homeassistant-stubs/components/generic_hygrostat/config_flow.pyi +19 -0
- homeassistant-stubs/components/generic_hygrostat/humidifier.pyi +7 -2
- homeassistant-stubs/components/generic_thermostat/__init__.pyi +6 -0
- homeassistant-stubs/components/generic_thermostat/climate.pyi +7 -1
- homeassistant-stubs/components/generic_thermostat/config_flow.pyi +19 -0
- homeassistant-stubs/components/geo_location/__init__.pyi +4 -3
- homeassistant-stubs/components/glances/__init__.pyi +3 -2
- homeassistant-stubs/components/glances/sensor.pyi +2 -3
- homeassistant-stubs/components/goalzero/__init__.pyi +3 -5
- homeassistant-stubs/components/goalzero/binary_sensor.pyi +2 -3
- homeassistant-stubs/components/goalzero/coordinator.pyi +3 -1
- homeassistant-stubs/components/goalzero/sensor.pyi +2 -3
- homeassistant-stubs/components/goalzero/switch.pyi +2 -3
- homeassistant-stubs/components/google_assistant_sdk/__init__.pyi +2 -2
- homeassistant-stubs/components/google_assistant_sdk/diagnostics.pyi +9 -0
- homeassistant-stubs/components/google_assistant_sdk/helpers.pyi +1 -0
- homeassistant-stubs/components/google_sheets/__init__.pyi +4 -3
- homeassistant-stubs/components/google_sheets/config_flow.pyi +3 -2
- homeassistant-stubs/components/gpsd/sensor.pyi +2 -1
- homeassistant-stubs/components/group/binary_sensor.pyi +2 -1
- homeassistant-stubs/components/group/cover.pyi +2 -1
- homeassistant-stubs/components/group/entity.pyi +2 -2
- homeassistant-stubs/components/group/event.pyi +2 -1
- homeassistant-stubs/components/group/fan.pyi +2 -1
- homeassistant-stubs/components/group/light.pyi +2 -1
- homeassistant-stubs/components/group/lock.pyi +2 -1
- homeassistant-stubs/components/group/media_player.pyi +2 -1
- homeassistant-stubs/components/group/notify.pyi +2 -1
- homeassistant-stubs/components/group/registry.pyi +8 -2
- homeassistant-stubs/components/group/switch.pyi +2 -1
- homeassistant-stubs/components/history_stats/sensor.pyi +4 -1
- homeassistant-stubs/components/homeassistant/const.pyi +3 -1
- homeassistant-stubs/components/homekit/aidmanager.pyi +2 -2
- homeassistant-stubs/components/homekit_controller/config_flow.pyi +1 -0
- homeassistant-stubs/components/homeworks/__init__.pyi +2 -5
- homeassistant-stubs/components/homeworks/config_flow.pyi +1 -6
- homeassistant-stubs/components/http/__init__.pyi +20 -3
- homeassistant-stubs/components/http/cors.pyi +1 -1
- homeassistant-stubs/components/http/data_validator.pyi +2 -1
- homeassistant-stubs/components/humidifier/__init__.pyi +3 -2
- homeassistant-stubs/components/humidifier/device_action.pyi +1 -1
- homeassistant-stubs/components/husqvarna_automower/__init__.pyi +3 -3
- homeassistant-stubs/components/husqvarna_automower/binary_sensor.pyi +2 -3
- homeassistant-stubs/components/husqvarna_automower/button.pyi +22 -0
- homeassistant-stubs/components/husqvarna_automower/device_tracker.pyi +2 -3
- homeassistant-stubs/components/husqvarna_automower/diagnostics.pyi +2 -2
- homeassistant-stubs/components/husqvarna_automower/entity.pyi +7 -1
- homeassistant-stubs/components/husqvarna_automower/lawn_mower.pyi +14 -5
- homeassistant-stubs/components/husqvarna_automower/number.pyi +4 -5
- homeassistant-stubs/components/husqvarna_automower/select.pyi +2 -3
- homeassistant-stubs/components/husqvarna_automower/sensor.pyi +10 -5
- homeassistant-stubs/components/husqvarna_automower/switch.pyi +4 -8
- homeassistant-stubs/components/hydrawise/coordinator.pyi +3 -3
- homeassistant-stubs/components/hydrawise/sensor.pyi +6 -1
- homeassistant-stubs/components/ibeacon/config_flow.pyi +1 -0
- homeassistant-stubs/components/idasen_desk/coordinator.pyi +2 -5
- homeassistant-stubs/components/idasen_desk/sensor.pyi +3 -0
- homeassistant-stubs/components/image/__init__.pyi +3 -2
- homeassistant-stubs/components/image_upload/__init__.pyi +7 -3
- homeassistant-stubs/components/imap/__init__.pyi +5 -4
- homeassistant-stubs/components/imap/diagnostics.pyi +3 -5
- homeassistant-stubs/components/imap/sensor.pyi +5 -5
- homeassistant-stubs/components/input_button/__init__.pyi +3 -4
- homeassistant-stubs/components/input_select/__init__.pyi +2 -2
- homeassistant-stubs/components/input_text/__init__.pyi +3 -4
- homeassistant-stubs/components/integration/__init__.pyi +2 -0
- homeassistant-stubs/components/integration/config_flow.pyi +1 -1
- homeassistant-stubs/components/integration/const.pyi +1 -0
- homeassistant-stubs/components/integration/sensor.pyi +33 -12
- homeassistant-stubs/components/intent/timers.pyi +7 -3
- homeassistant-stubs/components/islamic_prayer_times/__init__.pyi +4 -3
- homeassistant-stubs/components/islamic_prayer_times/sensor.pyi +3 -3
- homeassistant-stubs/components/isy994/services.pyi +3 -2
- homeassistant-stubs/components/jewish_calendar/binary_sensor.pyi +6 -12
- homeassistant-stubs/components/jewish_calendar/entity.pyi +19 -0
- homeassistant-stubs/components/jewish_calendar/sensor.pyi +8 -13
- homeassistant-stubs/components/knocki/__init__.pyi +12 -0
- homeassistant-stubs/components/knocki/config_flow.pyi +12 -0
- homeassistant-stubs/components/knocki/const.pyi +4 -0
- homeassistant-stubs/components/knocki/coordinator.pyi +13 -0
- homeassistant-stubs/components/knocki/event.pyi +26 -0
- homeassistant-stubs/components/knx/config_flow.pyi +1 -1
- homeassistant-stubs/components/knx/device_trigger.pyi +1 -1
- homeassistant-stubs/components/knx/trigger.pyi +2 -3
- homeassistant-stubs/components/knx/websocket.pyi +1 -0
- homeassistant-stubs/components/lacrosse/sensor.pyi +2 -1
- homeassistant-stubs/components/lamarzocco/__init__.pyi +8 -3
- homeassistant-stubs/components/lamarzocco/binary_sensor.pyi +4 -5
- homeassistant-stubs/components/lamarzocco/button.pyi +4 -5
- homeassistant-stubs/components/lamarzocco/calendar.pyi +9 -3
- homeassistant-stubs/components/lamarzocco/config_flow.pyi +7 -3
- homeassistant-stubs/components/lamarzocco/const.pyi +1 -2
- homeassistant-stubs/components/lamarzocco/coordinator.pyi +13 -11
- homeassistant-stubs/components/lamarzocco/diagnostics.pyi +10 -5
- homeassistant-stubs/components/lamarzocco/entity.pyi +3 -3
- homeassistant-stubs/components/lamarzocco/number.pyi +9 -13
- homeassistant-stubs/components/lamarzocco/select.pyi +13 -7
- homeassistant-stubs/components/lamarzocco/sensor.pyi +4 -5
- homeassistant-stubs/components/lamarzocco/switch.pyi +21 -6
- homeassistant-stubs/components/lamarzocco/update.pyi +5 -10
- homeassistant-stubs/components/lawn_mower/__init__.pyi +3 -2
- homeassistant-stubs/components/lidarr/__init__.pyi +12 -2
- homeassistant-stubs/components/lidarr/config_flow.pyi +2 -1
- homeassistant-stubs/components/lidarr/coordinator.pyi +0 -1
- homeassistant-stubs/components/lidarr/sensor.pyi +3 -4
- homeassistant-stubs/components/lifx/light.pyi +3 -2
- homeassistant-stubs/components/light/__init__.pyi +8 -6
- homeassistant-stubs/components/light/device_action.pyi +1 -1
- homeassistant-stubs/components/litterrobot/__init__.pyi +4 -3
- homeassistant-stubs/components/litterrobot/binary_sensor.pyi +2 -4
- homeassistant-stubs/components/litterrobot/button.pyi +2 -4
- homeassistant-stubs/components/litterrobot/select.pyi +2 -3
- homeassistant-stubs/components/litterrobot/sensor.pyi +2 -4
- homeassistant-stubs/components/litterrobot/switch.pyi +2 -4
- homeassistant-stubs/components/litterrobot/time.pyi +2 -4
- homeassistant-stubs/components/litterrobot/update.pyi +3 -4
- homeassistant-stubs/components/litterrobot/vacuum.pyi +2 -4
- homeassistant-stubs/components/lock/__init__.pyi +4 -3
- homeassistant-stubs/components/logbook/processor.pyi +4 -3
- homeassistant-stubs/components/london_underground/sensor.pyi +2 -1
- homeassistant-stubs/components/mastodon/notify.pyi +2 -1
- homeassistant-stubs/components/matrix/notify.pyi +2 -1
- homeassistant-stubs/components/matter/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/matter/discovery.pyi +3 -3
- homeassistant-stubs/components/matter/entity.pyi +8 -1
- homeassistant-stubs/components/matter/event.pyi +0 -2
- homeassistant-stubs/components/matter/fan.pyi +2 -2
- homeassistant-stubs/components/matter/lock.pyi +1 -0
- homeassistant-stubs/components/matter/models.pyi +1 -2
- homeassistant-stubs/components/matter/number.pyi +24 -0
- homeassistant-stubs/components/matter/sensor.pyi +1 -1
- homeassistant-stubs/components/media_player/__init__.pyi +3 -2
- homeassistant-stubs/components/media_player/intent.pyi +2 -1
- homeassistant-stubs/components/mikrotik/__init__.pyi +2 -1
- homeassistant-stubs/components/mikrotik/device_tracker.pyi +2 -3
- homeassistant-stubs/components/min_max/sensor.pyi +2 -1
- homeassistant-stubs/components/modbus/sensor.pyi +2 -2
- homeassistant-stubs/components/monzo/config_flow.pyi +5 -1
- homeassistant-stubs/components/monzo/coordinator.pyi +1 -0
- homeassistant-stubs/components/motionmount/select.pyi +5 -2
- homeassistant-stubs/components/mqtt/async_client.pyi +22 -0
- homeassistant-stubs/components/mqtt/client.pyi +13 -28
- homeassistant-stubs/components/mqtt/climate.pyi +2 -3
- homeassistant-stubs/components/mqtt/cover.pyi +2 -3
- homeassistant-stubs/components/mqtt/device_tracker.pyi +2 -3
- homeassistant-stubs/components/mqtt/event.pyi +2 -3
- homeassistant-stubs/components/mqtt/fan.pyi +2 -3
- homeassistant-stubs/components/mqtt/humidifier.pyi +2 -3
- homeassistant-stubs/components/mqtt/image.pyi +2 -3
- homeassistant-stubs/components/mqtt/lawn_mower.pyi +2 -3
- homeassistant-stubs/components/mqtt/light/__init__.pyi +1 -1
- homeassistant-stubs/components/mqtt/light/schema_basic.pyi +2 -3
- homeassistant-stubs/components/mqtt/light/schema_json.pyi +2 -3
- homeassistant-stubs/components/mqtt/light/schema_template.pyi +2 -3
- homeassistant-stubs/components/mqtt/mixins.pyi +4 -4
- homeassistant-stubs/components/mqtt/models.pyi +2 -3
- homeassistant-stubs/components/mqtt/number.pyi +2 -3
- homeassistant-stubs/components/mqtt/select.pyi +2 -3
- homeassistant-stubs/components/mqtt/sensor.pyi +2 -3
- homeassistant-stubs/components/mqtt/siren.pyi +2 -3
- homeassistant-stubs/components/mqtt/text.pyi +2 -3
- homeassistant-stubs/components/mqtt/update.pyi +2 -3
- homeassistant-stubs/components/mqtt/util.pyi +23 -2
- homeassistant-stubs/components/mqtt/vacuum.pyi +2 -3
- homeassistant-stubs/components/mqtt/valve.pyi +2 -3
- homeassistant-stubs/components/mqtt/water_heater.pyi +2 -3
- homeassistant-stubs/components/mysensors/config_flow.pyi +1 -0
- homeassistant-stubs/components/mysensors/sensor.pyi +1 -1
- homeassistant-stubs/components/myuplink/__init__.pyi +4 -1
- homeassistant-stubs/components/myuplink/binary_sensor.pyi +2 -4
- homeassistant-stubs/components/myuplink/diagnostics.pyi +2 -4
- homeassistant-stubs/components/myuplink/number.pyi +2 -4
- homeassistant-stubs/components/myuplink/sensor.pyi +3 -5
- homeassistant-stubs/components/myuplink/switch.pyi +2 -4
- homeassistant-stubs/components/myuplink/update.pyi +2 -4
- homeassistant-stubs/components/nam/const.pyi +1 -0
- homeassistant-stubs/components/nam/sensor.pyi +1 -1
- homeassistant-stubs/components/nanoleaf/__init__.pyi +6 -14
- homeassistant-stubs/components/nanoleaf/button.pyi +4 -7
- homeassistant-stubs/components/nanoleaf/coordinator.pyi +12 -0
- homeassistant-stubs/components/nanoleaf/device_trigger.pyi +1 -0
- homeassistant-stubs/components/nanoleaf/diagnostics.pyi +2 -4
- homeassistant-stubs/components/nanoleaf/entity.pyi +4 -4
- homeassistant-stubs/components/nanoleaf/event.pyi +18 -0
- homeassistant-stubs/components/nanoleaf/light.pyi +4 -7
- homeassistant-stubs/components/number/__init__.pyi +3 -1
- homeassistant-stubs/components/number/const.pyi +2 -1
- homeassistant-stubs/components/overkiz/water_heater.pyi +2 -1
- homeassistant-stubs/components/overkiz/water_heater_entities/__init__.pyi +2 -0
- homeassistant-stubs/components/overkiz/water_heater_entities/atlantic_domestic_hot_water_production_mlb_component.pyi +32 -0
- homeassistant-stubs/components/ping/binary_sensor.pyi +2 -8
- homeassistant-stubs/components/ping/config_flow.pyi +2 -4
- homeassistant-stubs/components/ping/device_tracker.pyi +4 -14
- homeassistant-stubs/components/plugwise/button.pyi +20 -0
- homeassistant-stubs/components/plugwise/const.pyi +3 -0
- homeassistant-stubs/components/plugwise/coordinator.pyi +5 -3
- homeassistant-stubs/components/plugwise/number.pyi +2 -4
- homeassistant-stubs/components/plugwise/select.pyi +3 -5
- homeassistant-stubs/components/prometheus/__init__.pyi +1 -1
- homeassistant-stubs/components/proximity/config_flow.pyi +2 -1
- homeassistant-stubs/components/radarr/__init__.pyi +14 -2
- homeassistant-stubs/components/radarr/binary_sensor.pyi +3 -4
- homeassistant-stubs/components/radarr/calendar.pyi +2 -4
- homeassistant-stubs/components/radarr/config_flow.pyi +3 -4
- homeassistant-stubs/components/radarr/coordinator.pyi +2 -2
- homeassistant-stubs/components/radarr/sensor.pyi +2 -4
- homeassistant-stubs/components/rainmachine/switch.pyi +1 -0
- homeassistant-stubs/components/recorder/const.pyi +3 -1
- homeassistant-stubs/components/recorder/core.pyi +2 -2
- homeassistant-stubs/components/recorder/db_schema.pyi +3 -1
- homeassistant-stubs/components/recorder/purge.pyi +1 -1
- homeassistant-stubs/components/recorder/statistics.pyi +7 -4
- homeassistant-stubs/components/recorder/table_managers/event_data.pyi +3 -3
- homeassistant-stubs/components/recorder/table_managers/event_types.pyi +1 -1
- homeassistant-stubs/components/recorder/table_managers/state_attributes.pyi +3 -3
- homeassistant-stubs/components/recorder/table_managers/states_meta.pyi +1 -1
- homeassistant-stubs/components/recorder/util.pyi +4 -3
- homeassistant-stubs/components/remote/__init__.pyi +5 -4
- homeassistant-stubs/components/rest/binary_sensor.pyi +2 -1
- homeassistant-stubs/components/rest/notify.pyi +2 -1
- homeassistant-stubs/components/rest/sensor.pyi +2 -1
- homeassistant-stubs/components/rest/switch.pyi +2 -1
- homeassistant-stubs/components/rfxtrx/config_flow.pyi +1 -0
- homeassistant-stubs/components/roborock/__init__.pyi +30 -0
- homeassistant-stubs/components/roborock/binary_sensor.pyi +29 -0
- homeassistant-stubs/components/roborock/button.pyi +28 -0
- homeassistant-stubs/components/roborock/config_flow.pyi +30 -0
- homeassistant-stubs/components/roborock/const.pyi +13 -0
- homeassistant-stubs/components/roborock/coordinator.pyi +47 -0
- homeassistant-stubs/components/roborock/device.pyi +53 -0
- homeassistant-stubs/components/roborock/diagnostics.pyi +13 -0
- homeassistant-stubs/components/roborock/image.pyi +37 -0
- homeassistant-stubs/components/roborock/models.pyi +27 -0
- homeassistant-stubs/components/roborock/number.pyi +35 -0
- homeassistant-stubs/components/roborock/select.pyi +37 -0
- homeassistant-stubs/components/roborock/sensor.pyi +47 -0
- homeassistant-stubs/components/roborock/switch.pyi +37 -0
- homeassistant-stubs/components/roborock/time.pyi +38 -0
- homeassistant-stubs/components/roborock/vacuum.pyi +39 -0
- homeassistant-stubs/components/roku/media_player.pyi +2 -1
- homeassistant-stubs/components/schedule/__init__.pyi +5 -5
- homeassistant-stubs/components/select/__init__.pyi +3 -1
- homeassistant-stubs/components/sensor/__init__.pyi +3 -1
- homeassistant-stubs/components/sensor/const.pyi +3 -2
- homeassistant-stubs/components/sensor/device_condition.pyi +1 -0
- homeassistant-stubs/components/sensor/device_trigger.pyi +1 -0
- homeassistant-stubs/components/shelly/__init__.pyi +1 -2
- homeassistant-stubs/components/shelly/climate.pyi +3 -0
- homeassistant-stubs/components/shelly/const.pyi +0 -1
- homeassistant-stubs/components/shelly/coordinator.pyi +3 -2
- homeassistant-stubs/components/shelly/switch.pyi +2 -18
- homeassistant-stubs/components/shelly/valve.pyi +1 -1
- homeassistant-stubs/components/simplisafe/alarm_control_panel.pyi +4 -5
- homeassistant-stubs/components/siren/__init__.pyi +4 -3
- homeassistant-stubs/components/sql/sensor.pyi +2 -1
- homeassistant-stubs/components/starlink/const.pyi +1 -0
- homeassistant-stubs/components/starlink/device_tracker.pyi +6 -2
- homeassistant-stubs/components/statistics/__init__.pyi +8 -1
- homeassistant-stubs/components/statistics/config_flow.pyi +23 -0
- homeassistant-stubs/components/statistics/sensor.pyi +7 -2
- homeassistant-stubs/components/stream/fmp4utils.pyi +2 -2
- homeassistant-stubs/components/stream/worker.pyi +3 -2
- homeassistant-stubs/components/streamlabswater/__init__.pyi +1 -6
- homeassistant-stubs/components/streamlabswater/config_flow.pyi +0 -1
- homeassistant-stubs/components/suez_water/config_flow.pyi +0 -1
- homeassistant-stubs/components/suez_water/sensor.pyi +3 -8
- homeassistant-stubs/components/switch/__init__.pyi +4 -3
- homeassistant-stubs/components/switch/light.pyi +2 -1
- homeassistant-stubs/components/switcher_kis/__init__.pyi +3 -0
- homeassistant-stubs/components/switcher_kis/switch.pyi +3 -2
- homeassistant-stubs/components/synology_dsm/config_flow.pyi +2 -2
- homeassistant-stubs/components/synology_dsm/const.pyi +1 -0
- homeassistant-stubs/components/synology_dsm/media_source.pyi +2 -1
- homeassistant-stubs/components/systemmonitor/config_flow.pyi +0 -2
- homeassistant-stubs/components/systemmonitor/sensor.pyi +4 -7
- homeassistant-stubs/components/tag/__init__.pyi +4 -5
- homeassistant-stubs/components/tami4/__init__.pyi +1 -1
- homeassistant-stubs/components/tami4/coordinator.pyi +3 -5
- homeassistant-stubs/components/tami4/sensor.pyi +3 -3
- homeassistant-stubs/components/tautulli/__init__.pyi +3 -2
- homeassistant-stubs/components/tautulli/coordinator.pyi +2 -2
- homeassistant-stubs/components/tautulli/sensor.pyi +3 -3
- homeassistant-stubs/components/threshold/__init__.pyi +2 -1
- homeassistant-stubs/components/threshold/binary_sensor.pyi +11 -3
- homeassistant-stubs/components/threshold/config_flow.pyi +8 -0
- homeassistant-stubs/components/tibber/__init__.pyi +1 -0
- homeassistant-stubs/components/tibber/sensor.pyi +12 -6
- homeassistant-stubs/components/tibber/services.pyi +15 -0
- homeassistant-stubs/components/time_date/sensor.pyi +3 -3
- homeassistant-stubs/components/timer/__init__.pyi +2 -2
- homeassistant-stubs/components/todo/__init__.pyi +3 -2
- homeassistant-stubs/components/tplink/__init__.pyi +14 -8
- homeassistant-stubs/components/tplink/binary_sensor.pyi +22 -0
- homeassistant-stubs/components/tplink/button.pyi +22 -0
- homeassistant-stubs/components/tplink/climate.pyi +42 -0
- homeassistant-stubs/components/tplink/config_flow.pyi +5 -5
- homeassistant-stubs/components/tplink/const.pyi +5 -1
- homeassistant-stubs/components/tplink/coordinator.pyi +2 -2
- homeassistant-stubs/components/tplink/diagnostics.pyi +2 -4
- homeassistant-stubs/components/tplink/entity.pyi +49 -7
- homeassistant-stubs/components/tplink/fan.pyi +31 -0
- homeassistant-stubs/components/tplink/light.pyi +20 -19
- homeassistant-stubs/components/tplink/number.pyi +27 -0
- homeassistant-stubs/components/tplink/select.pyi +26 -0
- homeassistant-stubs/components/tplink/sensor.pyi +12 -23
- homeassistant-stubs/components/tplink/switch.pyi +12 -35
- homeassistant-stubs/components/tplink_omada/controller.pyi +4 -15
- homeassistant-stubs/components/tplink_omada/coordinator.pyi +20 -1
- homeassistant-stubs/components/tplink_omada/device_tracker.pyi +36 -0
- homeassistant-stubs/components/transmission/__init__.pyi +9 -3
- homeassistant-stubs/components/transmission/sensor.pyi +2 -2
- homeassistant-stubs/components/transmission/switch.pyi +2 -4
- homeassistant-stubs/components/trend/__init__.pyi +2 -1
- homeassistant-stubs/components/trend/binary_sensor.pyi +6 -2
- homeassistant-stubs/components/tts/notify.pyi +2 -1
- homeassistant-stubs/components/unifi/config_flow.pyi +1 -1
- homeassistant-stubs/components/unifi/sensor.pyi +2 -1
- homeassistant-stubs/components/unifi/services.pyi +1 -0
- homeassistant-stubs/components/unifiprotect/__init__.pyi +8 -9
- homeassistant-stubs/components/unifiprotect/binary_sensor.pyi +29 -21
- homeassistant-stubs/components/unifiprotect/button.pyi +8 -9
- homeassistant-stubs/components/unifiprotect/camera.pyi +10 -10
- homeassistant-stubs/components/unifiprotect/const.pyi +0 -1
- homeassistant-stubs/components/unifiprotect/data.pyi +27 -14
- homeassistant-stubs/components/unifiprotect/diagnostics.pyi +2 -4
- homeassistant-stubs/components/unifiprotect/entity.pyi +27 -17
- homeassistant-stubs/components/unifiprotect/light.pyi +3 -6
- homeassistant-stubs/components/unifiprotect/lock.pyi +3 -8
- homeassistant-stubs/components/unifiprotect/media_player.pyi +4 -8
- homeassistant-stubs/components/unifiprotect/media_source.pyi +2 -3
- homeassistant-stubs/components/unifiprotect/migrate.pyi +5 -5
- homeassistant-stubs/components/unifiprotect/models.pyi +16 -17
- homeassistant-stubs/components/unifiprotect/number.pyi +8 -12
- homeassistant-stubs/components/unifiprotect/repairs.pyi +5 -3
- homeassistant-stubs/components/unifiprotect/select.pyi +9 -11
- homeassistant-stubs/components/unifiprotect/sensor.pyi +25 -23
- homeassistant-stubs/components/unifiprotect/services.pyi +0 -4
- homeassistant-stubs/components/unifiprotect/switch.pyi +15 -24
- homeassistant-stubs/components/unifiprotect/text.pyi +8 -11
- homeassistant-stubs/components/unifiprotect/utils.pyi +6 -11
- homeassistant-stubs/components/unifiprotect/views.pyi +2 -4
- homeassistant-stubs/components/update/__init__.pyi +3 -1
- homeassistant-stubs/components/vacuum/__init__.pyi +2 -1
- homeassistant-stubs/components/vallox/sensor.pyi +5 -1
- homeassistant-stubs/components/valve/__init__.pyi +3 -2
- homeassistant-stubs/components/water_heater/__init__.pyi +4 -3
- homeassistant-stubs/components/weather/__init__.pyi +4 -5
- homeassistant-stubs/components/webhook/__init__.pyi +1 -1
- homeassistant-stubs/components/webostv/__init__.pyi +7 -0
- homeassistant-stubs/components/websocket_api/__init__.pyi +3 -4
- homeassistant-stubs/components/websocket_api/decorators.pyi +2 -1
- homeassistant-stubs/components/wemo/entity.pyi +2 -2
- homeassistant-stubs/components/wemo/fan.pyi +2 -1
- homeassistant-stubs/components/withings/coordinator.pyi +3 -3
- homeassistant-stubs/components/withings/sensor.pyi +6 -2
- homeassistant-stubs/components/worldclock/sensor.pyi +2 -1
- homeassistant-stubs/components/xiaomi_ble/sensor.pyi +1 -1
- homeassistant-stubs/components/zone/__init__.pyi +3 -3
- homeassistant-stubs/components/zwave_js/__init__.pyi +1 -1
- homeassistant-stubs/components/zwave_js/api.pyi +1 -5
- homeassistant-stubs/components/zwave_js/config_flow.pyi +8 -1
- homeassistant-stubs/components/zwave_js/const.pyi +5 -0
- homeassistant-stubs/components/zwave_js/discovery.pyi +4 -4
- homeassistant-stubs/components/zwave_js/helpers.pyi +2 -2
- homeassistant-stubs/components/zwave_js/sensor.pyi +2 -0
- homeassistant-stubs/components/zwave_js/services.pyi +3 -2
- homeassistant-stubs/config.pyi +4 -5
- homeassistant-stubs/config_entries.pyi +6 -3
- homeassistant-stubs/const.pyi +9 -3
- homeassistant-stubs/core.pyi +15 -10
- homeassistant-stubs/data_entry_flow.pyi +12 -2
- homeassistant-stubs/exceptions.pyi +6 -5
- homeassistant-stubs/helpers/__init__.pyi +0 -5
- homeassistant-stubs/helpers/collection.pyi +14 -11
- homeassistant-stubs/helpers/condition.pyi +3 -2
- homeassistant-stubs/helpers/config_validation.pyi +5 -4
- homeassistant-stubs/helpers/deprecation.pyi +10 -0
- homeassistant-stubs/helpers/device.pyi +8 -0
- homeassistant-stubs/helpers/device_registry.pyi +14 -2
- homeassistant-stubs/helpers/entity.pyi +3 -2
- homeassistant-stubs/helpers/entity_component.pyi +3 -4
- homeassistant-stubs/helpers/entity_platform.pyi +2 -3
- homeassistant-stubs/helpers/event.pyi +10 -4
- homeassistant-stubs/helpers/frame.pyi +1 -0
- homeassistant-stubs/helpers/http.pyi +1 -1
- homeassistant-stubs/helpers/intent.pyi +6 -4
- homeassistant-stubs/helpers/llm.pyi +17 -3
- homeassistant-stubs/helpers/schema_config_entry_flow.pyi +2 -2
- homeassistant-stubs/helpers/script.pyi +3 -2
- homeassistant-stubs/helpers/selector.pyi +10 -8
- homeassistant-stubs/helpers/service.pyi +6 -3
- homeassistant-stubs/helpers/template.pyi +8 -6
- homeassistant-stubs/helpers/trace.pyi +3 -2
- homeassistant-stubs/helpers/typing.pyi +6 -1
- homeassistant-stubs/helpers/update_coordinator.pyi +3 -3
- homeassistant-stubs/loader.pyi +1 -2
- homeassistant-stubs/requirements.pyi +0 -3
- homeassistant-stubs/setup.pyi +4 -3
- homeassistant-stubs/util/loop.pyi +5 -1
- homeassistant-stubs/util/unit_conversion.pyi +7 -1
- {homeassistant_stubs-2024.6.3.dist-info → homeassistant_stubs-2024.7.0.dist-info}/METADATA +2 -2
- {homeassistant_stubs-2024.6.3.dist-info → homeassistant_stubs-2024.7.0.dist-info}/RECORD +599 -562
- homeassistant-stubs/auth/providers/legacy_api_password.pyi +0 -30
- homeassistant-stubs/components/air_quality/group.pyi +0 -5
- homeassistant-stubs/components/aladdin_connect/api.pyi +0 -12
- homeassistant-stubs/components/aladdin_connect/application_credentials.pyi +0 -5
- homeassistant-stubs/components/aladdin_connect/const.pyi +0 -3
- homeassistant-stubs/components/aladdin_connect/coordinator.pyi +0 -15
- homeassistant-stubs/components/aladdin_connect/cover.pyi +0 -25
- homeassistant-stubs/components/aladdin_connect/entity.pyi +0 -12
- homeassistant-stubs/components/aladdin_connect/sensor.pyi +0 -27
- homeassistant-stubs/components/alarm_control_panel/group.pyi +0 -6
- homeassistant-stubs/components/climate/group.pyi +0 -6
- homeassistant-stubs/components/cover/group.pyi +0 -6
- homeassistant-stubs/components/device_tracker/group.pyi +0 -6
- homeassistant-stubs/components/fastdotcom/services.pyi +0 -7
- homeassistant-stubs/components/lock/group.pyi +0 -6
- homeassistant-stubs/components/media_player/group.pyi +0 -6
- homeassistant-stubs/components/sensor/group.pyi +0 -5
- homeassistant-stubs/components/vacuum/group.pyi +0 -6
- homeassistant-stubs/components/water_heater/group.pyi +0 -6
- homeassistant-stubs/components/weather/group.pyi +0 -5
- homeassistant-stubs/components/wled/binary_sensor.pyi +0 -20
- {homeassistant_stubs-2024.6.3.dist-info → homeassistant_stubs-2024.7.0.dist-info}/LICENSE +0 -0
- {homeassistant_stubs-2024.6.3.dist-info → homeassistant_stubs-2024.7.0.dist-info}/WHEEL +0 -0
@@ -25,8 +25,9 @@ def async_client_rx_value_fn(hub: UnifiHub, client: Client) -> float: ...
|
|
25
25
|
def async_client_tx_value_fn(hub: UnifiHub, client: Client) -> float: ...
|
26
26
|
def async_client_uptime_value_fn(hub: UnifiHub, client: Client) -> datetime: ...
|
27
27
|
def async_wlan_client_value_fn(hub: UnifiHub, wlan: Wlan) -> int: ...
|
28
|
+
def async_device_clients_value_fn(hub: UnifiHub, device: Device) -> int: ...
|
28
29
|
def async_device_uptime_value_fn(hub: UnifiHub, device: Device) -> datetime | None: ...
|
29
|
-
def
|
30
|
+
def async_uptime_value_changed_fn(old: StateType | date | datetime | Decimal, new: datetime | float | str | None) -> bool: ...
|
30
31
|
def async_device_outlet_power_supported_fn(hub: UnifiHub, obj_id: str) -> bool: ...
|
31
32
|
def async_device_outlet_supported_fn(hub: UnifiHub, obj_id: str) -> bool: ...
|
32
33
|
def device_system_stats_supported_fn(stat_index: int, hub: UnifiHub, obj_id: str) -> bool: ...
|
@@ -1,5 +1,6 @@
|
|
1
1
|
from _typeshed import Incomplete
|
2
2
|
from collections.abc import Mapping
|
3
|
+
from homeassistant.config_entries import ConfigEntryState as ConfigEntryState
|
3
4
|
from homeassistant.const import ATTR_DEVICE_ID as ATTR_DEVICE_ID
|
4
5
|
from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, callback as callback
|
5
6
|
from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC as CONNECTION_NETWORK_MAC
|
@@ -1,12 +1,11 @@
|
|
1
|
-
from .const import AUTH_RETRIES as AUTH_RETRIES, CONF_ALLOW_EA as CONF_ALLOW_EA,
|
2
|
-
from .data import ProtectData as ProtectData,
|
1
|
+
from .const import AUTH_RETRIES as AUTH_RETRIES, CONF_ALLOW_EA as CONF_ALLOW_EA, DEVICES_THAT_ADOPT as DEVICES_THAT_ADOPT, DOMAIN as DOMAIN, MIN_REQUIRED_PROTECT_V as MIN_REQUIRED_PROTECT_V, OUTDATED_LOG_MESSAGE as OUTDATED_LOG_MESSAGE, PLATFORMS as PLATFORMS
|
2
|
+
from .data import ProtectData as ProtectData, UFPConfigEntry as UFPConfigEntry
|
3
3
|
from .discovery import async_start_discovery as async_start_discovery
|
4
4
|
from .migrate import async_migrate_data as async_migrate_data
|
5
|
-
from .services import
|
5
|
+
from .services import async_setup_services as async_setup_services
|
6
6
|
from .utils import _async_unifi_mac_from_hass as _async_unifi_mac_from_hass, async_create_api_client as async_create_api_client, async_get_devices as async_get_devices
|
7
7
|
from .views import ThumbnailProxyView as ThumbnailProxyView, VideoProxyView as VideoProxyView
|
8
8
|
from _typeshed import Incomplete
|
9
|
-
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
10
9
|
from homeassistant.const import EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP
|
11
10
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
12
11
|
from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryNotReady as ConfigEntryNotReady
|
@@ -22,8 +21,8 @@ CONFIG_SCHEMA: Incomplete
|
|
22
21
|
EARLY_ACCESS_URL: str
|
23
22
|
|
24
23
|
async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
|
25
|
-
async def async_setup_entry(hass: HomeAssistant, entry:
|
26
|
-
async def _async_setup_entry(hass: HomeAssistant, entry:
|
27
|
-
async def _async_options_updated(hass: HomeAssistant, entry:
|
28
|
-
async def async_unload_entry(hass: HomeAssistant, entry:
|
29
|
-
async def async_remove_config_entry_device(hass: HomeAssistant, config_entry:
|
24
|
+
async def async_setup_entry(hass: HomeAssistant, entry: UFPConfigEntry) -> bool: ...
|
25
|
+
async def _async_setup_entry(hass: HomeAssistant, entry: UFPConfigEntry, data_service: ProtectData, bootstrap: Bootstrap) -> None: ...
|
26
|
+
async def _async_options_updated(hass: HomeAssistant, entry: UFPConfigEntry) -> None: ...
|
27
|
+
async def async_unload_entry(hass: HomeAssistant, entry: UFPConfigEntry) -> bool: ...
|
28
|
+
async def async_remove_config_entry_device(hass: HomeAssistant, config_entry: UFPConfigEntry, device_entry: dr.DeviceEntry) -> bool: ...
|
@@ -1,64 +1,72 @@
|
|
1
1
|
import dataclasses
|
2
|
-
from .
|
3
|
-
from .
|
4
|
-
from .
|
5
|
-
from .models import PermRequired as PermRequired, ProtectEventMixin as ProtectEventMixin, ProtectRequiredKeysMixin as ProtectRequiredKeysMixin
|
2
|
+
from .data import ProtectData as ProtectData, UFPConfigEntry as UFPConfigEntry
|
3
|
+
from .entity import BaseProtectEntity as BaseProtectEntity, EventEntityMixin as EventEntityMixin, ProtectDeviceEntity as ProtectDeviceEntity, ProtectNVREntity as ProtectNVREntity, async_all_device_entities as async_all_device_entities
|
4
|
+
from .models import PermRequired as PermRequired, ProtectEntityDescription as ProtectEntityDescription, ProtectEventMixin as ProtectEventMixin
|
6
5
|
from _typeshed import Incomplete
|
6
|
+
from collections.abc import Sequence
|
7
7
|
from homeassistant.components.binary_sensor import BinarySensorDeviceClass as BinarySensorDeviceClass, BinarySensorEntity as BinarySensorEntity, BinarySensorEntityDescription as BinarySensorEntityDescription
|
8
|
-
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
9
8
|
from homeassistant.const import EntityCategory as EntityCategory
|
10
9
|
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
11
|
-
from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
|
12
10
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
|
13
|
-
from
|
14
|
-
from uiprotect.data import Camera, Light as Light, NVR as NVR, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel, ProtectModelWithId as ProtectModelWithId, Sensor
|
11
|
+
from uiprotect.data import Camera, Light as Light, ModelType, NVR as NVR, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel, ProtectModelWithId as ProtectModelWithId, Sensor as Sensor
|
15
12
|
from uiprotect.data.nvr import UOSDisk as UOSDisk
|
16
13
|
|
17
|
-
_LOGGER: Incomplete
|
18
14
|
_KEY_DOOR: str
|
19
15
|
|
20
16
|
@dataclasses.dataclass(frozen=True, kw_only=True)
|
21
|
-
class ProtectBinaryEntityDescription(
|
22
|
-
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, ufp_required_field, ufp_value, ufp_value_fn, ufp_enabled, ufp_perm) -> None: ...
|
17
|
+
class ProtectBinaryEntityDescription(ProtectEntityDescription, BinarySensorEntityDescription):
|
18
|
+
def __init__(self, *, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, translation_placeholders, unit_of_measurement, ufp_required_field, ufp_value, ufp_value_fn, ufp_enabled, ufp_perm, has_required, get_ufp_enabled) -> None: ...
|
23
19
|
|
24
20
|
@dataclasses.dataclass(frozen=True, kw_only=True)
|
25
21
|
class ProtectBinaryEventEntityDescription(ProtectEventMixin, BinarySensorEntityDescription):
|
26
|
-
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, ufp_required_field, ufp_value, ufp_value_fn, ufp_enabled, ufp_perm, ufp_event_obj) -> None: ...
|
22
|
+
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, ufp_required_field, ufp_value, ufp_value_fn, ufp_enabled, ufp_perm, has_required, get_ufp_enabled, ufp_event_obj, ufp_obj_type) -> None: ...
|
27
23
|
|
28
24
|
MOUNT_DEVICE_CLASS_MAP: Incomplete
|
29
25
|
CAMERA_SENSORS: tuple[ProtectBinaryEntityDescription, ...]
|
30
26
|
LIGHT_SENSORS: tuple[ProtectBinaryEntityDescription, ...]
|
27
|
+
MOUNTABLE_SENSE_SENSORS: tuple[ProtectBinaryEntityDescription, ...]
|
31
28
|
SENSE_SENSORS: tuple[ProtectBinaryEntityDescription, ...]
|
32
29
|
EVENT_SENSORS: tuple[ProtectBinaryEventEntityDescription, ...]
|
33
30
|
DOORLOCK_SENSORS: tuple[ProtectBinaryEntityDescription, ...]
|
34
31
|
VIEWER_SENSORS: tuple[ProtectBinaryEntityDescription, ...]
|
35
32
|
DISK_SENSORS: tuple[ProtectBinaryEntityDescription, ...]
|
36
|
-
|
37
|
-
|
38
|
-
def _async_event_entities(data: ProtectData, ufp_device: ProtectAdoptableDeviceModel | None = None) -> list[ProtectDeviceEntity]: ...
|
39
|
-
def _async_nvr_entities(data: ProtectData) -> list[ProtectDeviceEntity]: ...
|
33
|
+
_MODEL_DESCRIPTIONS: dict[ModelType, Sequence[ProtectEntityDescription]]
|
34
|
+
_MOUNTABLE_MODEL_DESCRIPTIONS: dict[ModelType, Sequence[ProtectEntityDescription]]
|
40
35
|
|
41
36
|
class ProtectDeviceBinarySensor(ProtectDeviceEntity, BinarySensorEntity):
|
42
37
|
device: Camera | Light | Sensor
|
43
38
|
entity_description: ProtectBinaryEntityDescription
|
39
|
+
_state_attrs: tuple[str, ...]
|
44
40
|
_attr_is_on: Incomplete
|
41
|
+
def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None: ...
|
42
|
+
|
43
|
+
class MountableProtectDeviceBinarySensor(ProtectDeviceBinarySensor):
|
44
|
+
device: Sensor
|
45
|
+
_state_attrs: tuple[str, ...]
|
45
46
|
_attr_device_class: Incomplete
|
46
47
|
def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None: ...
|
47
|
-
def _async_get_state_attrs(self) -> tuple[Any, ...]: ...
|
48
48
|
|
49
49
|
class ProtectDiskBinarySensor(ProtectNVREntity, BinarySensorEntity):
|
50
50
|
_disk: UOSDisk
|
51
51
|
entity_description: ProtectBinaryEntityDescription
|
52
|
+
_state_attrs: Incomplete
|
52
53
|
def __init__(self, data: ProtectData, device: NVR, description: ProtectBinaryEntityDescription, disk: UOSDisk) -> None: ...
|
53
54
|
_attr_available: bool
|
54
55
|
_attr_is_on: Incomplete
|
55
56
|
def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None: ...
|
56
|
-
def _async_get_state_attrs(self) -> tuple[Any, ...]: ...
|
57
57
|
|
58
58
|
class ProtectEventBinarySensor(EventEntityMixin, BinarySensorEntity):
|
59
59
|
entity_description: ProtectBinaryEventEntityDescription
|
60
|
-
|
61
|
-
|
60
|
+
_state_attrs: Incomplete
|
61
|
+
_attr_is_on: bool
|
62
62
|
_attr_extra_state_attributes: Incomplete
|
63
|
+
def _set_event_done(self) -> None: ...
|
64
|
+
_event: Incomplete
|
65
|
+
_event_end: Incomplete
|
63
66
|
def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None: ...
|
64
|
-
|
67
|
+
|
68
|
+
MODEL_DESCRIPTIONS_WITH_CLASS: Incomplete
|
69
|
+
|
70
|
+
def _async_event_entities(data: ProtectData, ufp_device: ProtectAdoptableDeviceModel | None = None) -> list[ProtectDeviceEntity]: ...
|
71
|
+
def _async_nvr_entities(data: ProtectData) -> list[BaseProtectEntity]: ...
|
72
|
+
async def async_setup_entry(hass: HomeAssistant, entry: UFPConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
|
@@ -1,24 +1,24 @@
|
|
1
|
-
from .const import DEVICES_THAT_ADOPT as DEVICES_THAT_ADOPT,
|
2
|
-
from .data import
|
1
|
+
from .const import DEVICES_THAT_ADOPT as DEVICES_THAT_ADOPT, DOMAIN as DOMAIN
|
2
|
+
from .data import UFPConfigEntry as UFPConfigEntry
|
3
3
|
from .entity import ProtectDeviceEntity as ProtectDeviceEntity, async_all_device_entities as async_all_device_entities
|
4
|
-
from .models import PermRequired as PermRequired, ProtectSetableKeysMixin as ProtectSetableKeysMixin, T as T
|
4
|
+
from .models import PermRequired as PermRequired, ProtectEntityDescription as ProtectEntityDescription, ProtectSetableKeysMixin as ProtectSetableKeysMixin, T as T
|
5
5
|
from _typeshed import Incomplete
|
6
|
+
from collections.abc import Sequence
|
6
7
|
from dataclasses import dataclass
|
7
8
|
from homeassistant.components.button import ButtonDeviceClass as ButtonDeviceClass, ButtonEntity as ButtonEntity, ButtonEntityDescription as ButtonEntityDescription
|
8
|
-
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
9
9
|
from homeassistant.const import Platform as Platform
|
10
10
|
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
11
11
|
from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
|
12
12
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
|
13
13
|
from typing import Final
|
14
|
-
from uiprotect.data import ProtectAdoptableDeviceModel, ProtectModelWithId as ProtectModelWithId
|
14
|
+
from uiprotect.data import ModelType, ProtectAdoptableDeviceModel, ProtectModelWithId as ProtectModelWithId
|
15
15
|
|
16
16
|
_LOGGER: Incomplete
|
17
17
|
|
18
18
|
@dataclass(frozen=True, kw_only=True)
|
19
19
|
class ProtectButtonEntityDescription(ProtectSetableKeysMixin[T], ButtonEntityDescription):
|
20
20
|
ufp_press: str | 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, ufp_required_field, ufp_value, ufp_value_fn, ufp_enabled, ufp_perm, ufp_set_method, ufp_set_method_fn, ufp_press) -> 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, ufp_required_field, ufp_value, ufp_value_fn, ufp_enabled, ufp_perm, has_required, get_ufp_enabled, ufp_set_method, ufp_set_method_fn, ufp_press) -> None: ...
|
22
22
|
|
23
23
|
DEVICE_CLASS_CHIME_BUTTON: Final[str]
|
24
24
|
KEY_ADOPT: str
|
@@ -26,14 +26,13 @@ ALL_DEVICE_BUTTONS: tuple[ProtectButtonEntityDescription, ...]
|
|
26
26
|
ADOPT_BUTTON: Incomplete
|
27
27
|
SENSOR_BUTTONS: tuple[ProtectButtonEntityDescription, ...]
|
28
28
|
CHIME_BUTTONS: tuple[ProtectButtonEntityDescription, ...]
|
29
|
+
_MODEL_DESCRIPTIONS: dict[ModelType, Sequence[ProtectEntityDescription]]
|
29
30
|
|
30
31
|
def _async_remove_adopt_button(hass: HomeAssistant, device: ProtectAdoptableDeviceModel) -> None: ...
|
31
|
-
async def async_setup_entry(hass: HomeAssistant, entry:
|
32
|
+
async def async_setup_entry(hass: HomeAssistant, entry: UFPConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
|
32
33
|
|
33
34
|
class ProtectButton(ProtectDeviceEntity, ButtonEntity):
|
34
35
|
entity_description: ProtectButtonEntityDescription
|
35
|
-
_attr_name: Incomplete
|
36
|
-
def __init__(self, data: ProtectData, device: ProtectAdoptableDeviceModel, description: ProtectButtonEntityDescription) -> None: ...
|
37
36
|
_attr_available: Incomplete
|
38
37
|
def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None: ...
|
39
38
|
async def async_press(self) -> None: ...
|
@@ -1,27 +1,28 @@
|
|
1
|
-
from .const import ATTR_BITRATE as ATTR_BITRATE, ATTR_CHANNEL_ID as ATTR_CHANNEL_ID, ATTR_FPS as ATTR_FPS, ATTR_HEIGHT as ATTR_HEIGHT, ATTR_WIDTH as ATTR_WIDTH,
|
2
|
-
from .data import ProtectData as ProtectData
|
1
|
+
from .const import ATTR_BITRATE as ATTR_BITRATE, ATTR_CHANNEL_ID as ATTR_CHANNEL_ID, ATTR_FPS as ATTR_FPS, ATTR_HEIGHT as ATTR_HEIGHT, ATTR_WIDTH as ATTR_WIDTH, DOMAIN as DOMAIN
|
2
|
+
from .data import ProtectData as ProtectData, UFPConfigEntry as UFPConfigEntry
|
3
3
|
from .entity import ProtectDeviceEntity as ProtectDeviceEntity
|
4
4
|
from .utils import get_camera_base_name as get_camera_base_name
|
5
5
|
from _typeshed import Incomplete
|
6
|
-
from collections.abc import Generator
|
7
6
|
from homeassistant.components.camera import Camera as Camera, CameraEntityFeature as CameraEntityFeature
|
8
|
-
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
9
7
|
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
10
8
|
from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
|
11
9
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
|
12
10
|
from homeassistant.helpers.issue_registry import IssueSeverity as IssueSeverity
|
13
|
-
from
|
11
|
+
from typing_extensions import Generator
|
14
12
|
from uiprotect.data import Camera as UFPCamera, CameraChannel as CameraChannel, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel, ProtectModelWithId as ProtectModelWithId
|
15
13
|
|
16
14
|
_LOGGER: Incomplete
|
17
15
|
|
18
|
-
def _create_rtsp_repair(hass: HomeAssistant, entry:
|
19
|
-
def _get_camera_channels(hass: HomeAssistant, entry:
|
20
|
-
def _async_camera_entities(hass: HomeAssistant, entry:
|
21
|
-
async def async_setup_entry(hass: HomeAssistant, entry:
|
16
|
+
def _create_rtsp_repair(hass: HomeAssistant, entry: UFPConfigEntry, data: ProtectData, camera: UFPCamera) -> None: ...
|
17
|
+
def _get_camera_channels(hass: HomeAssistant, entry: UFPConfigEntry, data: ProtectData, ufp_device: UFPCamera | None = None) -> Generator[tuple[UFPCamera, CameraChannel, bool]]: ...
|
18
|
+
def _async_camera_entities(hass: HomeAssistant, entry: UFPConfigEntry, data: ProtectData, ufp_device: UFPCamera | None = None) -> list[ProtectDeviceEntity]: ...
|
19
|
+
async def async_setup_entry(hass: HomeAssistant, entry: UFPConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
|
20
|
+
|
21
|
+
_EMPTY_CAMERA_FEATURES: Incomplete
|
22
22
|
|
23
23
|
class ProtectCamera(ProtectDeviceEntity, Camera):
|
24
24
|
device: UFPCamera
|
25
|
+
_state_attrs: Incomplete
|
25
26
|
channel: Incomplete
|
26
27
|
_secure: Incomplete
|
27
28
|
_disable_stream: Incomplete
|
@@ -33,7 +34,6 @@ class ProtectCamera(ProtectDeviceEntity, Camera):
|
|
33
34
|
_stream_source: Incomplete
|
34
35
|
_attr_supported_features: Incomplete
|
35
36
|
def _async_set_stream_source(self) -> None: ...
|
36
|
-
def _async_get_state_attrs(self) -> tuple[Any, ...]: ...
|
37
37
|
_attr_motion_detection_enabled: Incomplete
|
38
38
|
_attr_is_recording: Incomplete
|
39
39
|
_attr_available: Incomplete
|
@@ -1,50 +1,63 @@
|
|
1
1
|
from .const import AUTH_RETRIES as AUTH_RETRIES, CONF_DISABLE_RTSP as CONF_DISABLE_RTSP, CONF_MAX_MEDIA as CONF_MAX_MEDIA, DEFAULT_MAX_MEDIA as DEFAULT_MAX_MEDIA, DEVICES_THAT_ADOPT as DEVICES_THAT_ADOPT, DISPATCH_ADD as DISPATCH_ADD, DISPATCH_ADOPT as DISPATCH_ADOPT, DISPATCH_CHANNELS as DISPATCH_CHANNELS, DOMAIN as DOMAIN
|
2
2
|
from .utils import async_get_devices_by_type as async_get_devices_by_type
|
3
3
|
from _typeshed import Incomplete
|
4
|
-
from collections.abc import Callable as Callable,
|
4
|
+
from collections.abc import Callable as Callable, Iterable
|
5
5
|
from datetime import datetime, timedelta
|
6
6
|
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
7
7
|
from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, HomeAssistant as HomeAssistant, callback as callback
|
8
|
-
from homeassistant.helpers.dispatcher import async_dispatcher_send as async_dispatcher_send
|
8
|
+
from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect, async_dispatcher_send as async_dispatcher_send
|
9
9
|
from homeassistant.helpers.event import async_track_time_interval as async_track_time_interval
|
10
10
|
from typing import Any
|
11
|
+
from typing_extensions import Generator
|
11
12
|
from uiprotect import ProtectApiClient as ProtectApiClient
|
12
|
-
from uiprotect.data import
|
13
|
+
from uiprotect.data import Camera, ModelType, NVR, ProtectAdoptableDeviceModel, WSSubscriptionMessage as WSSubscriptionMessage
|
14
|
+
from uiprotect.websocket import WebsocketState
|
13
15
|
|
14
16
|
_LOGGER: Incomplete
|
15
17
|
ProtectDeviceType: Incomplete
|
18
|
+
UFPConfigEntry = ConfigEntry[ProtectData]
|
16
19
|
|
17
|
-
def async_last_update_was_successful(hass: HomeAssistant, entry:
|
20
|
+
def async_last_update_was_successful(hass: HomeAssistant, entry: UFPConfigEntry) -> bool: ...
|
21
|
+
def _async_dispatch_id(entry: UFPConfigEntry, dispatch: str) -> str: ...
|
18
22
|
|
19
23
|
class ProtectData:
|
20
|
-
_hass: Incomplete
|
21
24
|
_entry: Incomplete
|
25
|
+
_hass: Incomplete
|
22
26
|
_update_interval: Incomplete
|
23
27
|
_subscriptions: Incomplete
|
24
28
|
_pending_camera_ids: Incomplete
|
25
|
-
|
26
|
-
_unsub_websocket: Incomplete
|
29
|
+
_unsubs: Incomplete
|
27
30
|
_auth_failures: int
|
28
31
|
last_update_success: bool
|
29
32
|
api: Incomplete
|
30
|
-
|
33
|
+
adopt_signal: Incomplete
|
34
|
+
add_signal: Incomplete
|
35
|
+
channels_signal: Incomplete
|
36
|
+
def __init__(self, hass: HomeAssistant, protect: ProtectApiClient, update_interval: timedelta, entry: UFPConfigEntry) -> None: ...
|
31
37
|
@property
|
32
38
|
def disable_stream(self) -> bool: ...
|
33
39
|
@property
|
34
40
|
def max_events(self) -> int: ...
|
35
|
-
def
|
36
|
-
|
41
|
+
def async_subscribe_adopt(self, add_callback: Callable[[ProtectAdoptableDeviceModel], None]) -> None: ...
|
42
|
+
def get_by_types(self, device_types: Iterable[ModelType], ignore_unadopted: bool = True) -> Generator[ProtectAdoptableDeviceModel]: ...
|
43
|
+
def get_cameras(self, ignore_unadopted: bool = True) -> Generator[Camera]: ...
|
44
|
+
def async_setup(self) -> None: ...
|
45
|
+
def _async_websocket_state_changed(self, state: WebsocketState) -> None: ...
|
46
|
+
def _async_update_change(self, success: bool, force_update: bool = False, exception: Exception | None = None) -> None: ...
|
37
47
|
async def async_stop(self, *args: Any) -> None: ...
|
38
|
-
async def async_refresh(self
|
48
|
+
async def async_refresh(self) -> None: ...
|
39
49
|
def async_add_pending_camera_id(self, camera_id: str) -> None: ...
|
40
50
|
def _async_add_device(self, device: ProtectAdoptableDeviceModel) -> None: ...
|
41
51
|
def _async_remove_device(self, device: ProtectAdoptableDeviceModel) -> None: ...
|
42
52
|
def _async_update_device(self, device: ProtectAdoptableDeviceModel | NVR, changed_data: dict[str, Any]) -> None: ...
|
43
53
|
def _async_process_ws_message(self, message: WSSubscriptionMessage) -> None: ...
|
44
|
-
def _async_process_updates(self
|
54
|
+
def _async_process_updates(self) -> None: ...
|
45
55
|
def _async_poll(self, now: datetime) -> None: ...
|
46
|
-
def
|
47
|
-
def
|
56
|
+
def async_subscribe(self, mac: str, update_callback: Callable[[ProtectDeviceType], None]) -> CALLBACK_TYPE: ...
|
57
|
+
def _async_unsubscribe(self, mac: str, update_callback: Callable[[ProtectDeviceType], None]) -> None: ...
|
48
58
|
def _async_signal_device_update(self, device: ProtectDeviceType) -> None: ...
|
49
59
|
|
50
60
|
def async_ufp_instance_for_config_entry_ids(hass: HomeAssistant, config_entry_ids: set[str]) -> ProtectApiClient | None: ...
|
61
|
+
def async_get_ufp_entries(hass: HomeAssistant) -> list[UFPConfigEntry]: ...
|
62
|
+
def async_get_data_for_nvr_id(hass: HomeAssistant, nvr_id: str) -> ProtectData | None: ...
|
63
|
+
def async_get_data_for_entry_id(hass: HomeAssistant, entry_id: str) -> ProtectData | None: ...
|
@@ -1,7 +1,5 @@
|
|
1
|
-
from .
|
2
|
-
from .data import ProtectData as ProtectData
|
3
|
-
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
1
|
+
from .data import UFPConfigEntry as UFPConfigEntry
|
4
2
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
5
3
|
from typing import Any
|
6
4
|
|
7
|
-
async def async_get_config_entry_diagnostics(hass: HomeAssistant, config_entry:
|
5
|
+
async def async_get_config_entry_diagnostics(hass: HomeAssistant, config_entry: UFPConfigEntry) -> dict[str, Any]: ...
|
@@ -1,51 +1,61 @@
|
|
1
1
|
from .const import ATTR_EVENT_ID as ATTR_EVENT_ID, ATTR_EVENT_SCORE as ATTR_EVENT_SCORE, DEFAULT_ATTRIBUTION as DEFAULT_ATTRIBUTION, DEFAULT_BRAND as DEFAULT_BRAND, DOMAIN as DOMAIN
|
2
2
|
from .data import ProtectData as ProtectData
|
3
|
-
from .models import PermRequired as PermRequired,
|
3
|
+
from .models import PermRequired as PermRequired, ProtectEntityDescription as ProtectEntityDescription, ProtectEventMixin as ProtectEventMixin
|
4
4
|
from _typeshed import Incomplete
|
5
5
|
from collections.abc import Callable as Callable, Sequence
|
6
|
+
from datetime import datetime
|
6
7
|
from homeassistant.core import callback as callback
|
7
8
|
from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
|
8
9
|
from homeassistant.helpers.entity import Entity as Entity, EntityDescription as EntityDescription
|
9
|
-
from homeassistant.helpers.typing import UNDEFINED as UNDEFINED
|
10
|
-
from typing import Any
|
11
10
|
from uiprotect.data import Event as Event, ModelType, NVR as NVR, ProtectAdoptableDeviceModel, ProtectModelWithId as ProtectModelWithId
|
12
11
|
|
13
12
|
_LOGGER: Incomplete
|
14
13
|
|
15
|
-
def _async_device_entities(data: ProtectData, klass: type[
|
16
|
-
def async_all_device_entities(data: ProtectData, klass: type[ProtectDeviceEntity], camera_descs: Sequence[ProtectRequiredKeysMixin] | None = None, light_descs: Sequence[ProtectRequiredKeysMixin] | None = None, sense_descs: Sequence[ProtectRequiredKeysMixin] | None = None, viewer_descs: Sequence[ProtectRequiredKeysMixin] | None = None, lock_descs: Sequence[ProtectRequiredKeysMixin] | None = None, chime_descs: Sequence[ProtectRequiredKeysMixin] | None = None, all_descs: Sequence[ProtectRequiredKeysMixin] | None = None, unadopted_descs: Sequence[ProtectRequiredKeysMixin] | None = None, ufp_device: ProtectAdoptableDeviceModel | None = None) -> list[ProtectDeviceEntity]: ...
|
14
|
+
def _async_device_entities(data: ProtectData, klass: type[BaseProtectEntity], model_type: ModelType, descs: Sequence[ProtectEntityDescription], unadopted_descs: Sequence[ProtectEntityDescription] | None = None, ufp_device: ProtectAdoptableDeviceModel | None = None) -> list[BaseProtectEntity]: ...
|
17
15
|
|
18
|
-
|
19
|
-
|
16
|
+
_ALL_MODEL_TYPES: Incomplete
|
17
|
+
|
18
|
+
def _combine_model_descs(model_type: ModelType, model_descriptions: dict[ModelType, Sequence[ProtectEntityDescription]] | None, all_descs: Sequence[ProtectEntityDescription] | None) -> list[ProtectEntityDescription]: ...
|
19
|
+
def async_all_device_entities(data: ProtectData, klass: type[BaseProtectEntity], model_descriptions: dict[ModelType, Sequence[ProtectEntityDescription]] | None = None, all_descs: Sequence[ProtectEntityDescription] | None = None, unadopted_descs: list[ProtectEntityDescription] | None = None, ufp_device: ProtectAdoptableDeviceModel | None = None) -> list[BaseProtectEntity]: ...
|
20
|
+
|
21
|
+
class BaseProtectEntity(Entity):
|
22
|
+
device: ProtectAdoptableDeviceModel | NVR
|
20
23
|
_attr_should_poll: bool
|
24
|
+
_attr_attribution = DEFAULT_ATTRIBUTION
|
25
|
+
_state_attrs: tuple[str, ...]
|
26
|
+
_attr_has_entity_name: bool
|
27
|
+
_async_get_ufp_enabled: Callable[[ProtectAdoptableDeviceModel], bool] | None
|
21
28
|
data: Incomplete
|
22
|
-
_async_get_ufp_enabled: Incomplete
|
23
29
|
_attr_unique_id: Incomplete
|
24
30
|
_attr_name: Incomplete
|
25
31
|
entity_description: Incomplete
|
26
|
-
|
27
|
-
def __init__(self, data: ProtectData, device: ProtectAdoptableDeviceModel, description: EntityDescription | None = None) -> None: ...
|
32
|
+
_state_getters: Incomplete
|
33
|
+
def __init__(self, data: ProtectData, device: ProtectAdoptableDeviceModel | NVR, description: EntityDescription | None = None) -> None: ...
|
28
34
|
async def async_update(self) -> None: ...
|
29
35
|
_attr_device_info: Incomplete
|
30
36
|
def _async_set_device_info(self) -> None: ...
|
31
37
|
_attr_available: Incomplete
|
32
38
|
def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None: ...
|
33
|
-
def _async_get_state_attrs(self) -> tuple[Any, ...]: ...
|
34
39
|
def _async_updated_event(self, device: ProtectAdoptableDeviceModel | NVR) -> None: ...
|
35
40
|
async def async_added_to_hass(self) -> None: ...
|
36
41
|
|
37
|
-
class
|
42
|
+
class ProtectDeviceEntity(BaseProtectEntity):
|
43
|
+
device: ProtectAdoptableDeviceModel
|
44
|
+
|
45
|
+
class ProtectNVREntity(BaseProtectEntity):
|
38
46
|
device: NVR
|
39
|
-
def __init__(self, entry: ProtectData, device: NVR, description: EntityDescription | None = None) -> None: ...
|
40
47
|
_attr_device_info: Incomplete
|
41
48
|
def _async_set_device_info(self) -> None: ...
|
42
49
|
_attr_available: Incomplete
|
43
50
|
def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None: ...
|
44
51
|
|
45
52
|
class EventEntityMixin(ProtectDeviceEntity):
|
46
|
-
_unrecorded_attributes: Incomplete
|
47
53
|
entity_description: ProtectEventMixin
|
48
|
-
|
49
|
-
|
54
|
+
_unrecorded_attributes: Incomplete
|
55
|
+
_event: Event | None
|
56
|
+
_event_end: datetime | None
|
57
|
+
def _set_event_done(self) -> None: ...
|
50
58
|
_attr_extra_state_attributes: Incomplete
|
51
|
-
def
|
59
|
+
def _set_event_attrs(self, event: Event) -> None: ...
|
60
|
+
def _async_event_with_immediate_end(self) -> None: ...
|
61
|
+
def _event_already_ended(self, prev_event: Event | None, prev_event_end: datetime | None) -> bool: ...
|
@@ -1,18 +1,15 @@
|
|
1
|
-
from .
|
2
|
-
from .data import ProtectData as ProtectData
|
1
|
+
from .data import UFPConfigEntry as UFPConfigEntry
|
3
2
|
from .entity import ProtectDeviceEntity as ProtectDeviceEntity
|
4
3
|
from _typeshed import Incomplete
|
5
4
|
from homeassistant.components.light import ATTR_BRIGHTNESS as ATTR_BRIGHTNESS, ColorMode as ColorMode, LightEntity as LightEntity
|
6
|
-
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
7
5
|
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
8
|
-
from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
|
9
6
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
|
10
7
|
from typing import Any
|
11
8
|
from uiprotect.data import Light as Light, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel, ProtectModelWithId as ProtectModelWithId
|
12
9
|
|
13
10
|
_LOGGER: Incomplete
|
14
11
|
|
15
|
-
async def async_setup_entry(hass: HomeAssistant, entry:
|
12
|
+
async def async_setup_entry(hass: HomeAssistant, entry: UFPConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
|
16
13
|
def unifi_brightness_to_hass(value: int) -> int: ...
|
17
14
|
def hass_to_unifi_brightness(value: int) -> int: ...
|
18
15
|
|
@@ -21,7 +18,7 @@ class ProtectLight(ProtectDeviceEntity, LightEntity):
|
|
21
18
|
_attr_icon: str
|
22
19
|
_attr_color_mode: Incomplete
|
23
20
|
_attr_supported_color_modes: Incomplete
|
24
|
-
|
21
|
+
_state_attrs: Incomplete
|
25
22
|
_attr_is_on: Incomplete
|
26
23
|
_attr_brightness: Incomplete
|
27
24
|
def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None: ...
|
@@ -1,25 +1,20 @@
|
|
1
|
-
from .
|
2
|
-
from .data import ProtectData as ProtectData
|
1
|
+
from .data import UFPConfigEntry as UFPConfigEntry
|
3
2
|
from .entity import ProtectDeviceEntity as ProtectDeviceEntity
|
4
3
|
from _typeshed import Incomplete
|
5
4
|
from homeassistant.components.lock import LockEntity as LockEntity, LockEntityDescription as LockEntityDescription
|
6
|
-
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
7
5
|
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
8
|
-
from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
|
9
6
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
|
10
7
|
from typing import Any
|
11
8
|
from uiprotect.data import Doorlock, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel, ProtectModelWithId as ProtectModelWithId
|
12
9
|
|
13
10
|
_LOGGER: Incomplete
|
14
11
|
|
15
|
-
async def async_setup_entry(hass: HomeAssistant, entry:
|
12
|
+
async def async_setup_entry(hass: HomeAssistant, entry: UFPConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
|
16
13
|
|
17
14
|
class ProtectLock(ProtectDeviceEntity, LockEntity):
|
18
15
|
device: Doorlock
|
19
16
|
entity_description: LockEntityDescription
|
20
|
-
|
21
|
-
def __init__(self, data: ProtectData, doorlock: Doorlock) -> None: ...
|
22
|
-
def _async_get_state_attrs(self) -> tuple[Any, ...]: ...
|
17
|
+
_state_attrs: Incomplete
|
23
18
|
_attr_is_locked: bool
|
24
19
|
_attr_is_locking: bool
|
25
20
|
_attr_is_unlocking: bool
|
@@ -1,33 +1,29 @@
|
|
1
|
-
from .
|
2
|
-
from .data import ProtectData as ProtectData
|
1
|
+
from .data import UFPConfigEntry as UFPConfigEntry
|
3
2
|
from .entity import ProtectDeviceEntity as ProtectDeviceEntity
|
4
3
|
from _typeshed import Incomplete
|
5
4
|
from homeassistant.components import media_source as media_source
|
6
5
|
from homeassistant.components.media_player import BrowseMedia as BrowseMedia, MediaPlayerDeviceClass as MediaPlayerDeviceClass, MediaPlayerEntity as MediaPlayerEntity, MediaPlayerEntityDescription as MediaPlayerEntityDescription, MediaPlayerEntityFeature as MediaPlayerEntityFeature, MediaPlayerState as MediaPlayerState, MediaType as MediaType, async_process_play_media_url as async_process_play_media_url
|
7
|
-
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
8
6
|
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
9
7
|
from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
|
10
|
-
from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
|
11
8
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
|
12
9
|
from typing import Any
|
13
10
|
from uiprotect.data import Camera, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel, ProtectModelWithId as ProtectModelWithId
|
14
11
|
|
15
12
|
_LOGGER: Incomplete
|
13
|
+
_SPEAKER_DESCRIPTION: Incomplete
|
16
14
|
|
17
|
-
async def async_setup_entry(hass: HomeAssistant, entry:
|
15
|
+
async def async_setup_entry(hass: HomeAssistant, entry: UFPConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
|
18
16
|
|
19
17
|
class ProtectMediaPlayer(ProtectDeviceEntity, MediaPlayerEntity):
|
20
18
|
device: Camera
|
21
19
|
entity_description: MediaPlayerEntityDescription
|
22
20
|
_attr_supported_features: Incomplete
|
23
|
-
_attr_name: Incomplete
|
24
21
|
_attr_media_content_type: Incomplete
|
25
|
-
|
22
|
+
_state_attrs: Incomplete
|
26
23
|
_attr_volume_level: Incomplete
|
27
24
|
_attr_state: Incomplete
|
28
25
|
_attr_available: Incomplete
|
29
26
|
def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None: ...
|
30
|
-
def _async_get_state_attrs(self) -> tuple[Any, ...]: ...
|
31
27
|
async def async_set_volume_level(self, volume: float) -> None: ...
|
32
28
|
async def async_media_stop(self) -> None: ...
|
33
29
|
async def async_play_media(self, media_type: MediaType | str, media_id: str, **kwargs: Any) -> None: ...
|
@@ -1,5 +1,5 @@
|
|
1
1
|
from .const import DOMAIN as DOMAIN
|
2
|
-
from .data import ProtectData as ProtectData
|
2
|
+
from .data import ProtectData as ProtectData, async_get_ufp_entries as async_get_ufp_entries
|
3
3
|
from .views import async_generate_event_video_url as async_generate_event_video_url, async_generate_thumbnail_url as async_generate_thumbnail_url
|
4
4
|
from _typeshed import Incomplete
|
5
5
|
from datetime import date, datetime, timedelta
|
@@ -11,7 +11,7 @@ from homeassistant.const import Platform as Platform
|
|
11
11
|
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
12
12
|
from homeassistant.helpers import entity_registry as er
|
13
13
|
from typing import Any, NoReturn
|
14
|
-
from uiprotect.data import Camera, Event, EventType
|
14
|
+
from uiprotect.data import Camera as Camera, Event, EventType
|
15
15
|
|
16
16
|
VIDEO_FORMAT: str
|
17
17
|
THUMBNAIL_WIDTH: int
|
@@ -36,7 +36,6 @@ class IdentifierTimeType(str, Enum):
|
|
36
36
|
EVENT_MAP: dict[SimpleEventType, set[EventType]]
|
37
37
|
EVENT_NAME_MAP: Incomplete
|
38
38
|
|
39
|
-
def get_ufp_event(event_type: SimpleEventType) -> set[EventType]: ...
|
40
39
|
async def async_get_media_source(hass: HomeAssistant) -> MediaSource: ...
|
41
40
|
def _get_month_start_end(start: datetime) -> tuple[datetime, datetime]: ...
|
42
41
|
def _bad_identifier(identifier: str, err: Exception | None = None) -> NoReturn: ...
|
@@ -1,8 +1,8 @@
|
|
1
1
|
from .const import DOMAIN as DOMAIN
|
2
|
+
from .data import UFPConfigEntry as UFPConfigEntry
|
2
3
|
from _typeshed import Incomplete
|
3
4
|
from homeassistant.components.automation import automations_with_entity as automations_with_entity
|
4
5
|
from homeassistant.components.script import scripts_with_entity as scripts_with_entity
|
5
|
-
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
6
6
|
from homeassistant.const import Platform as Platform
|
7
7
|
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
8
8
|
from homeassistant.helpers.issue_registry import IssueSeverity as IssueSeverity
|
@@ -20,7 +20,7 @@ class EntityUsage(TypedDict):
|
|
20
20
|
automations: dict[str, list[str]]
|
21
21
|
scripts: dict[str, list[str]]
|
22
22
|
|
23
|
-
def check_if_used(hass: HomeAssistant, entry:
|
24
|
-
def create_repair_if_used(hass: HomeAssistant, entry:
|
25
|
-
async def async_migrate_data(hass: HomeAssistant, entry:
|
26
|
-
def async_deprecate_hdr_package(hass: HomeAssistant, entry:
|
23
|
+
def check_if_used(hass: HomeAssistant, entry: UFPConfigEntry, entities: dict[str, EntityRef]) -> dict[str, EntityUsage]: ...
|
24
|
+
def create_repair_if_used(hass: HomeAssistant, entry: UFPConfigEntry, breaks_in: str, entities: dict[str, EntityRef]) -> None: ...
|
25
|
+
async def async_migrate_data(hass: HomeAssistant, entry: UFPConfigEntry, protect: ProtectApiClient, bootstrap: Bootstrap) -> None: ...
|
26
|
+
def async_deprecate_hdr_package(hass: HomeAssistant, entry: UFPConfigEntry) -> None: ...
|