homeassistant-stubs 2024.6.4__py3-none-any.whl → 2024.7.0b0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- homeassistant-stubs/auth/__init__.pyi +2 -0
- homeassistant-stubs/auth/auth_store.pyi +1 -0
- homeassistant-stubs/auth/providers/homeassistant.pyi +8 -1
- homeassistant-stubs/block_async_io.pyi +23 -0
- 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/api.pyi +0 -1
- homeassistant-stubs/components/aladdin_connect/coordinator.pyi +0 -2
- homeassistant-stubs/components/aladdin_connect/cover.pyi +0 -1
- homeassistant-stubs/components/aladdin_connect/entity.pyi +0 -1
- homeassistant-stubs/components/aladdin_connect/sensor.pyi +0 -2
- 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 +22 -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/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 +3 -0
- 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 +25 -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 +20 -7
- 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/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/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/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 +2 -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/coordinator.pyi +2 -1
- 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 +6 -0
- homeassistant-stubs/components/statistics/config_flow.pyi +23 -0
- homeassistant-stubs/components/statistics/sensor.pyi +4 -1
- 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/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 +9 -6
- 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 +4 -4
- homeassistant-stubs/components/tplink/const.pyi +3 -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 +19 -19
- homeassistant-stubs/components/tplink/number.pyi +27 -0
- homeassistant-stubs/components/tplink/select.pyi +26 -0
- homeassistant-stubs/components/tplink/sensor.pyi +14 -22
- homeassistant-stubs/components/tplink/switch.pyi +14 -34
- 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 +1 -0
- 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 +13 -8
- 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/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 +2 -1
- homeassistant-stubs/util/unit_conversion.pyi +7 -1
- {homeassistant_stubs-2024.6.4.dist-info → homeassistant_stubs-2024.7.0b0.dist-info}/METADATA +2 -2
- {homeassistant_stubs-2024.6.4.dist-info → homeassistant_stubs-2024.7.0b0.dist-info}/RECORD +591 -548
- homeassistant-stubs/auth/providers/legacy_api_password.pyi +0 -30
- homeassistant-stubs/components/air_quality/group.pyi +0 -5
- 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.4.dist-info → homeassistant_stubs-2024.7.0b0.dist-info}/LICENSE +0 -0
- {homeassistant_stubs-2024.6.4.dist-info → homeassistant_stubs-2024.7.0b0.dist-info}/WHEEL +0 -0
@@ -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: ...
|
@@ -1,45 +1,44 @@
|
|
1
|
-
from .utils import get_nested_attr as get_nested_attr
|
2
1
|
from _typeshed import Incomplete
|
3
2
|
from collections.abc import Callable as Callable, Coroutine
|
4
3
|
from dataclasses import dataclass
|
5
4
|
from enum import Enum
|
6
5
|
from homeassistant.helpers.entity import EntityDescription as EntityDescription
|
7
6
|
from typing import Any, Generic, TypeVar
|
8
|
-
from uiprotect.data import Event as Event, NVR, ProtectAdoptableDeviceModel
|
7
|
+
from uiprotect.data import Event as Event, NVR, ProtectAdoptableDeviceModel, SmartDetectObjectType as SmartDetectObjectType
|
9
8
|
|
10
9
|
_LOGGER: Incomplete
|
11
10
|
T = TypeVar('T', bound=ProtectAdoptableDeviceModel | NVR)
|
12
11
|
|
13
|
-
def split_tuple(value: tuple[str, ...] | str | None) -> tuple[str, ...] | None: ...
|
14
|
-
|
15
12
|
class PermRequired(int, Enum):
|
16
13
|
NO_WRITE: int
|
17
14
|
WRITE: int
|
18
15
|
DELETE: int
|
19
16
|
|
20
17
|
@dataclass(frozen=True, kw_only=True)
|
21
|
-
class
|
22
|
-
ufp_required_field:
|
23
|
-
ufp_value:
|
18
|
+
class ProtectEntityDescription(EntityDescription, Generic[T]):
|
19
|
+
ufp_required_field: str | None = ...
|
20
|
+
ufp_value: str | None = ...
|
24
21
|
ufp_value_fn: Callable[[T], Any] | None = ...
|
25
|
-
ufp_enabled:
|
22
|
+
ufp_enabled: str | None = ...
|
26
23
|
ufp_perm: PermRequired | None = ...
|
27
|
-
|
24
|
+
has_required: Callable[[T], bool] = ...
|
25
|
+
get_ufp_enabled: Callable[[T], bool] | None = ...
|
28
26
|
def get_ufp_value(self, obj: T) -> Any: ...
|
29
|
-
def
|
30
|
-
def
|
31
|
-
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: ...
|
27
|
+
def __post_init__(self) -> None: ...
|
28
|
+
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: ...
|
32
29
|
|
33
30
|
@dataclass(frozen=True, kw_only=True)
|
34
|
-
class ProtectEventMixin(
|
31
|
+
class ProtectEventMixin(ProtectEntityDescription[T]):
|
35
32
|
ufp_event_obj: str | None = ...
|
33
|
+
ufp_obj_type: SmartDetectObjectType | None = ...
|
36
34
|
def get_event_obj(self, obj: T) -> Event | None: ...
|
37
|
-
def
|
38
|
-
def
|
35
|
+
def has_matching_smart(self, event: Event) -> bool: ...
|
36
|
+
def __post_init__(self) -> None: ...
|
37
|
+
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: ...
|
39
38
|
|
40
39
|
@dataclass(frozen=True, kw_only=True)
|
41
|
-
class ProtectSetableKeysMixin(
|
40
|
+
class ProtectSetableKeysMixin(ProtectEntityDescription[T]):
|
42
41
|
ufp_set_method: str | None = ...
|
43
42
|
ufp_set_method_fn: Callable[[T, Any], Coroutine[Any, Any, None]] | None = ...
|
44
43
|
async def ufp_set(self, obj: T, value: Any) -> None: ...
|
45
|
-
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) -> None: ...
|
44
|
+
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) -> None: ...
|
@@ -1,26 +1,21 @@
|
|
1
|
-
from .
|
2
|
-
from .data import ProtectData as ProtectData
|
1
|
+
from .data import ProtectData as ProtectData, UFPConfigEntry as UFPConfigEntry
|
3
2
|
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
|
3
|
+
from .models import PermRequired as PermRequired, ProtectEntityDescription as ProtectEntityDescription, ProtectSetableKeysMixin as ProtectSetableKeysMixin, T as T
|
5
4
|
from _typeshed import Incomplete
|
5
|
+
from collections.abc import Sequence
|
6
6
|
from dataclasses import dataclass
|
7
7
|
from homeassistant.components.number import NumberEntity as NumberEntity, NumberEntityDescription as NumberEntityDescription
|
8
|
-
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
9
8
|
from homeassistant.const import EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE, UnitOfTime as UnitOfTime
|
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 as Camera, Doorlock, Light, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel, ProtectModelWithId as ProtectModelWithId
|
15
|
-
|
16
|
-
_LOGGER: Incomplete
|
11
|
+
from uiprotect.data import Camera as Camera, Doorlock, Light, ModelType, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel, ProtectModelWithId as ProtectModelWithId
|
17
12
|
|
18
13
|
@dataclass(frozen=True, kw_only=True)
|
19
14
|
class ProtectNumberEntityDescription(ProtectSetableKeysMixin[T], NumberEntityDescription):
|
20
15
|
ufp_max: int | float
|
21
16
|
ufp_min: int | float
|
22
17
|
ufp_step: int | float
|
23
|
-
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, max_value, min_value, mode, native_max_value, native_min_value, native_step, native_unit_of_measurement, step, ufp_required_field, ufp_value, ufp_value_fn, ufp_enabled, ufp_perm, ufp_set_method, ufp_set_method_fn, ufp_max, ufp_min, ufp_step) -> None: ...
|
18
|
+
def __init__(self, *, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, translation_placeholders, unit_of_measurement, max_value, min_value, mode, native_max_value, native_min_value, native_step, native_unit_of_measurement, step, 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_max, ufp_min, ufp_step) -> None: ...
|
24
19
|
|
25
20
|
def _get_pir_duration(obj: Light) -> int: ...
|
26
21
|
async def _set_pir_duration(obj: Light, value: float) -> None: ...
|
@@ -33,12 +28,14 @@ LIGHT_NUMBERS: tuple[ProtectNumberEntityDescription, ...]
|
|
33
28
|
SENSE_NUMBERS: tuple[ProtectNumberEntityDescription, ...]
|
34
29
|
DOORLOCK_NUMBERS: tuple[ProtectNumberEntityDescription, ...]
|
35
30
|
CHIME_NUMBERS: tuple[ProtectNumberEntityDescription, ...]
|
31
|
+
_MODEL_DESCRIPTIONS: dict[ModelType, Sequence[ProtectEntityDescription]]
|
36
32
|
|
37
|
-
async def async_setup_entry(hass: HomeAssistant, entry:
|
33
|
+
async def async_setup_entry(hass: HomeAssistant, entry: UFPConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
|
38
34
|
|
39
35
|
class ProtectNumbers(ProtectDeviceEntity, NumberEntity):
|
40
36
|
device: Camera | Light
|
41
37
|
entity_description: ProtectNumberEntityDescription
|
38
|
+
_state_attrs: Incomplete
|
42
39
|
_attr_native_max_value: Incomplete
|
43
40
|
_attr_native_min_value: Incomplete
|
44
41
|
_attr_native_step: Incomplete
|
@@ -46,4 +43,3 @@ class ProtectNumbers(ProtectDeviceEntity, NumberEntity):
|
|
46
43
|
_attr_native_value: Incomplete
|
47
44
|
def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None: ...
|
48
45
|
async def async_set_native_value(self, value: float) -> None: ...
|
49
|
-
def _async_get_state_attrs(self) -> tuple[Any, ...]: ...
|
@@ -1,4 +1,5 @@
|
|
1
1
|
from .const import CONF_ALLOW_EA as CONF_ALLOW_EA
|
2
|
+
from .data import UFPConfigEntry as UFPConfigEntry, async_get_data_for_entry_id as async_get_data_for_entry_id
|
2
3
|
from .utils import async_create_api_client as async_create_api_client
|
3
4
|
from homeassistant import data_entry_flow as data_entry_flow
|
4
5
|
from homeassistant.components.repairs import ConfirmRepairFlow as ConfirmRepairFlow, RepairsFlow as RepairsFlow
|
@@ -9,8 +10,8 @@ from uiprotect.data import Bootstrap as Bootstrap, Camera as Camera
|
|
9
10
|
|
10
11
|
class ProtectRepair(RepairsFlow):
|
11
12
|
_api: ProtectApiClient
|
12
|
-
_entry:
|
13
|
-
def __init__(self, *, api: ProtectApiClient, entry:
|
13
|
+
_entry: UFPConfigEntry
|
14
|
+
def __init__(self, *, api: ProtectApiClient, entry: UFPConfigEntry) -> None: ...
|
14
15
|
def _async_get_placeholders(self) -> dict[str, str]: ...
|
15
16
|
|
16
17
|
class EAConfirmRepair(ProtectRepair):
|
@@ -26,7 +27,7 @@ class RTSPRepair(ProtectRepair):
|
|
26
27
|
_camera_id: str
|
27
28
|
_camera: Camera | None
|
28
29
|
_bootstrap: Bootstrap | None
|
29
|
-
def __init__(self, *, api: ProtectApiClient, entry:
|
30
|
+
def __init__(self, *, api: ProtectApiClient, entry: UFPConfigEntry, camera_id: str) -> None: ...
|
30
31
|
def _async_get_placeholders(self) -> dict[str, str]: ...
|
31
32
|
async def _get_boostrap(self) -> Bootstrap: ...
|
32
33
|
async def _get_camera(self) -> Camera: ...
|
@@ -35,4 +36,5 @@ class RTSPRepair(ProtectRepair):
|
|
35
36
|
async def async_step_start(self, user_input: dict[str, str] | None = None) -> data_entry_flow.FlowResult: ...
|
36
37
|
async def async_step_confirm(self, user_input: dict[str, str] | None = None) -> data_entry_flow.FlowResult: ...
|
37
38
|
|
39
|
+
def _async_get_or_create_api_client(hass: HomeAssistant, entry: ConfigEntry) -> ProtectApiClient: ...
|
38
40
|
async def async_create_fix_flow(hass: HomeAssistant, issue_id: str, data: dict[str, str | int | float | None] | None) -> RepairsFlow: ...
|
@@ -1,21 +1,19 @@
|
|
1
|
-
from .const import
|
2
|
-
from .data import ProtectData as ProtectData
|
1
|
+
from .const import TYPE_EMPTY_VALUE as TYPE_EMPTY_VALUE
|
2
|
+
from .data import ProtectData as ProtectData, 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 .utils import async_get_light_motion_current as async_get_light_motion_current
|
6
6
|
from _typeshed import Incomplete
|
7
|
-
from collections.abc import Callable as Callable
|
7
|
+
from collections.abc import Callable as Callable, Sequence
|
8
8
|
from dataclasses import dataclass
|
9
9
|
from enum import Enum
|
10
10
|
from homeassistant.components.select import SelectEntity as SelectEntity, SelectEntityDescription as SelectEntityDescription
|
11
|
-
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
12
11
|
from homeassistant.const import EntityCategory as EntityCategory
|
13
12
|
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
14
|
-
from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
|
15
13
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
|
16
14
|
from typing import Any, Final
|
17
15
|
from uiprotect.api import ProtectApiClient as ProtectApiClient
|
18
|
-
from uiprotect.data import Camera, Doorlock, Light, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel, ProtectModelWithId as ProtectModelWithId, Sensor, Viewer
|
16
|
+
from uiprotect.data import Camera, Doorlock, Light, ModelType, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel, ProtectModelWithId as ProtectModelWithId, Sensor, Viewer
|
19
17
|
|
20
18
|
_LOGGER: Incomplete
|
21
19
|
_KEY_LIGHT_MOTION: str
|
@@ -38,7 +36,7 @@ class ProtectSelectEntityDescription(ProtectSetableKeysMixin[T], SelectEntityDes
|
|
38
36
|
ufp_options: list[dict[str, Any]] | None = ...
|
39
37
|
ufp_options_fn: Callable[[ProtectApiClient], list[dict[str, Any]]] | None = ...
|
40
38
|
ufp_enum_type: type[Enum] | None = ...
|
41
|
-
def __init__(self, *, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, translation_placeholders, unit_of_measurement, options, ufp_required_field, ufp_value, ufp_value_fn, ufp_enabled, ufp_perm, ufp_set_method, ufp_set_method_fn, ufp_options, ufp_options_fn, ufp_enum_type) -> None: ...
|
39
|
+
def __init__(self, *, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, translation_placeholders, unit_of_measurement, options, 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_options, ufp_options_fn, ufp_enum_type) -> None: ...
|
42
40
|
|
43
41
|
def _get_viewer_options(api: ProtectApiClient) -> list[dict[str, Any]]: ...
|
44
42
|
def _get_doorbell_options(api: ProtectApiClient) -> list[dict[str, Any]]: ...
|
@@ -55,13 +53,14 @@ LIGHT_SELECTS: tuple[ProtectSelectEntityDescription, ...]
|
|
55
53
|
SENSE_SELECTS: tuple[ProtectSelectEntityDescription, ...]
|
56
54
|
DOORLOCK_SELECTS: tuple[ProtectSelectEntityDescription, ...]
|
57
55
|
VIEWER_SELECTS: tuple[ProtectSelectEntityDescription, ...]
|
56
|
+
_MODEL_DESCRIPTIONS: dict[ModelType, Sequence[ProtectEntityDescription]]
|
58
57
|
|
59
|
-
async def async_setup_entry(hass: HomeAssistant, entry:
|
58
|
+
async def async_setup_entry(hass: HomeAssistant, entry: UFPConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
|
60
59
|
|
61
60
|
class ProtectSelects(ProtectDeviceEntity, SelectEntity):
|
62
61
|
device: Camera | Light | Viewer
|
63
62
|
entity_description: ProtectSelectEntityDescription
|
64
|
-
|
63
|
+
_state_attrs: Incomplete
|
65
64
|
def __init__(self, data: ProtectData, device: Camera | Light | Viewer, description: ProtectSelectEntityDescription) -> None: ...
|
66
65
|
_attr_current_option: Incomplete
|
67
66
|
def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None: ...
|
@@ -70,4 +69,3 @@ class ProtectSelects(ProtectDeviceEntity, SelectEntity):
|
|
70
69
|
_unifi_to_hass_options: Incomplete
|
71
70
|
def _async_set_options(self, data: ProtectData, description: ProtectSelectEntityDescription) -> None: ...
|
72
71
|
async def async_select_option(self, option: str) -> None: ...
|
73
|
-
def _async_get_state_attrs(self) -> tuple[Any, ...]: ...
|