homeassistant-stubs 2024.11.2__py3-none-any.whl → 2024.12.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/__main__.pyi +1 -0
- homeassistant-stubs/auth/mfa_modules/totp.pyi +4 -4
- homeassistant-stubs/backup_restore.pyi +17 -0
- homeassistant-stubs/components/airnow/config_flow.pyi +3 -3
- homeassistant-stubs/components/alarm_control_panel/__init__.pyi +2 -2
- homeassistant-stubs/components/amberelectric/config_flow.pyi +1 -1
- homeassistant-stubs/components/amberelectric/coordinator.pyi +7 -7
- homeassistant-stubs/components/amberelectric/sensor.pyi +3 -4
- homeassistant-stubs/components/analytics_insights/config_flow.pyi +3 -3
- homeassistant-stubs/components/androidtv/config_flow.pyi +2 -2
- homeassistant-stubs/components/androidtv_remote/config_flow.pyi +2 -2
- homeassistant-stubs/components/apsystems/coordinator.pyi +1 -1
- homeassistant-stubs/components/assist_pipeline/audio_enhancer.pyi +2 -3
- homeassistant-stubs/components/assist_pipeline/pipeline.pyi +4 -2
- homeassistant-stubs/components/assist_pipeline/vad.pyi +7 -4
- homeassistant-stubs/components/axis/config_flow.pyi +2 -2
- homeassistant-stubs/components/backup/http.pyi +7 -3
- homeassistant-stubs/components/backup/manager.pyi +8 -0
- homeassistant-stubs/components/backup/websocket.pyi +1 -0
- homeassistant-stubs/components/bang_olufsen/const.pyi +1 -6
- homeassistant-stubs/components/bang_olufsen/diagnostics.pyi +6 -0
- homeassistant-stubs/components/bang_olufsen/media_player.pyi +11 -5
- homeassistant-stubs/components/bang_olufsen/websocket.pyi +2 -2
- homeassistant-stubs/components/bmw_connected_drive/config_flow.pyi +7 -3
- homeassistant-stubs/components/bmw_connected_drive/const.pyi +3 -0
- homeassistant-stubs/components/brother/sensor.pyi +0 -1
- homeassistant-stubs/components/cambridge_audio/__init__.pyi +1 -0
- homeassistant-stubs/components/cambridge_audio/config_flow.pyi +1 -0
- homeassistant-stubs/components/cambridge_audio/media_player.pyi +1 -0
- homeassistant-stubs/components/cambridge_audio/select.pyi +3 -1
- homeassistant-stubs/components/cambridge_audio/switch.pyi +3 -1
- homeassistant-stubs/components/camera/__init__.pyi +5 -3
- homeassistant-stubs/components/camera/webrtc.pyi +10 -6
- homeassistant-stubs/components/canary/config_flow.pyi +0 -2
- homeassistant-stubs/components/climate/__init__.pyi +10 -3
- homeassistant-stubs/components/climate/const.pyi +6 -0
- homeassistant-stubs/components/climate/reproduce_state.pyi +1 -1
- homeassistant-stubs/components/climate/significant_change.pyi +1 -1
- homeassistant-stubs/components/cloud/prefs.pyi +1 -1
- homeassistant-stubs/components/crownstone/config_flow.pyi +1 -2
- homeassistant-stubs/components/deconz/config_flow.pyi +1 -5
- homeassistant-stubs/components/demo/climate.pyi +8 -1
- homeassistant-stubs/components/demo/config_flow.pyi +0 -1
- homeassistant-stubs/components/discovergy/config_flow.pyi +2 -5
- homeassistant-stubs/components/dlna_dmr/config_flow.pyi +0 -2
- homeassistant-stubs/components/dnsip/config_flow.pyi +2 -2
- homeassistant-stubs/components/doorbird/config_flow.pyi +0 -2
- homeassistant-stubs/components/dsmr/config_flow.pyi +0 -2
- homeassistant-stubs/components/ecovacs/sensor.pyi +1 -1
- homeassistant-stubs/components/elevenlabs/config_flow.pyi +2 -2
- homeassistant-stubs/components/enphase_envoy/config_flow.pyi +2 -2
- homeassistant-stubs/components/eq3btsmart/__init__.pyi +7 -6
- homeassistant-stubs/components/eq3btsmart/binary_sensor.pyi +26 -0
- homeassistant-stubs/components/eq3btsmart/climate.pyi +4 -15
- homeassistant-stubs/components/eq3btsmart/const.pyi +14 -0
- homeassistant-stubs/components/eq3btsmart/entity.pyi +17 -3
- homeassistant-stubs/components/eq3btsmart/models.pyi +1 -3
- homeassistant-stubs/components/eq3btsmart/number.pyi +33 -0
- homeassistant-stubs/components/eq3btsmart/sensor.pyi +28 -0
- homeassistant-stubs/components/eq3btsmart/switch.pyi +30 -0
- homeassistant-stubs/components/esphome/assist_satellite.pyi +1 -0
- homeassistant-stubs/components/esphome/config_flow.pyi +0 -2
- homeassistant-stubs/components/esphome/entry_data.pyi +8 -1
- homeassistant-stubs/components/esphome/ffmpeg_proxy.pyi +1 -0
- homeassistant-stubs/components/esphome/media_player.pyi +2 -1
- homeassistant-stubs/components/esphome/select.pyi +18 -1
- homeassistant-stubs/components/fan/__init__.pyi +1 -1
- homeassistant-stubs/components/feedreader/config_flow.pyi +2 -2
- homeassistant-stubs/components/filesize/config_flow.pyi +2 -5
- homeassistant-stubs/components/fitbit/config_flow.pyi +0 -1
- homeassistant-stubs/components/fitbit/sensor.pyi +12 -15
- homeassistant-stubs/components/flux_led/config_flow.pyi +1 -3
- homeassistant-stubs/components/forecast_solar/config_flow.pyi +0 -2
- homeassistant-stubs/components/fritz/config_flow.pyi +4 -4
- homeassistant-stubs/components/fritzbox/config_flow.pyi +1 -1
- homeassistant-stubs/components/fritzbox_callmonitor/config_flow.pyi +0 -2
- homeassistant-stubs/components/fully_kiosk/__init__.pyi +3 -2
- homeassistant-stubs/components/fully_kiosk/binary_sensor.pyi +2 -3
- homeassistant-stubs/components/fully_kiosk/button.pyi +2 -3
- homeassistant-stubs/components/fully_kiosk/camera.pyi +2 -3
- homeassistant-stubs/components/fully_kiosk/diagnostics.pyi +2 -3
- homeassistant-stubs/components/fully_kiosk/image.pyi +2 -3
- homeassistant-stubs/components/fully_kiosk/media_player.pyi +3 -3
- homeassistant-stubs/components/fully_kiosk/notify.pyi +2 -3
- homeassistant-stubs/components/fully_kiosk/number.pyi +2 -3
- homeassistant-stubs/components/fully_kiosk/sensor.pyi +2 -3
- homeassistant-stubs/components/fully_kiosk/switch.pyi +2 -3
- homeassistant-stubs/components/fyta/__init__.pyi +1 -0
- homeassistant-stubs/components/glances/__init__.pyi +0 -2
- homeassistant-stubs/components/go2rtc/__init__.pyi +2 -2
- homeassistant-stubs/components/google/config_flow.pyi +0 -2
- homeassistant-stubs/components/google_assistant_sdk/config_flow.pyi +0 -2
- homeassistant-stubs/components/google_cloud/config_flow.pyi +2 -2
- homeassistant-stubs/components/google_cloud/helpers.pyi +1 -1
- homeassistant-stubs/components/here_travel_time/config_flow.pyi +1 -2
- homeassistant-stubs/components/history/__init__.pyi +1 -1
- homeassistant-stubs/components/history/helpers.pyi +1 -2
- homeassistant-stubs/components/history/websocket_api.pyi +1 -1
- homeassistant-stubs/components/history_stats/data.pyi +1 -0
- homeassistant-stubs/components/homeassistant_hardware/firmware_config_flow.pyi +4 -3
- homeassistant-stubs/components/homeassistant_hardware/silabs_multiprotocol_addon.pyi +0 -1
- homeassistant-stubs/components/homekit/config_flow.pyi +1 -2
- homeassistant-stubs/components/homewizard/button.pyi +2 -0
- homeassistant-stubs/components/homewizard/config_flow.pyi +5 -1
- homeassistant-stubs/components/homewizard/const.pyi +1 -1
- homeassistant-stubs/components/homewizard/coordinator.pyi +3 -3
- homeassistant-stubs/components/homewizard/number.pyi +2 -0
- homeassistant-stubs/components/homewizard/sensor.pyi +1 -1
- homeassistant-stubs/components/homewizard/switch.pyi +4 -2
- homeassistant-stubs/components/huawei_lte/config_flow.pyi +0 -2
- homeassistant-stubs/components/husqvarna_automower/api.pyi +6 -0
- homeassistant-stubs/components/husqvarna_automower/binary_sensor.pyi +7 -0
- homeassistant-stubs/components/husqvarna_automower/button.pyi +1 -0
- homeassistant-stubs/components/husqvarna_automower/config_flow.pyi +2 -1
- homeassistant-stubs/components/husqvarna_automower/lawn_mower.pyi +2 -1
- homeassistant-stubs/components/husqvarna_automower/number.pyi +1 -0
- homeassistant-stubs/components/husqvarna_automower/select.pyi +1 -0
- homeassistant-stubs/components/husqvarna_automower/switch.pyi +1 -0
- homeassistant-stubs/components/hydrawise/sensor.pyi +2 -9
- homeassistant-stubs/components/hyperion/config_flow.pyi +0 -2
- homeassistant-stubs/components/ibeacon/config_flow.pyi +0 -3
- homeassistant-stubs/components/imap/config_flow.pyi +3 -3
- homeassistant-stubs/components/imap/sensor.pyi +1 -1
- homeassistant-stubs/components/intent/timers.pyi +6 -0
- homeassistant-stubs/components/islamic_prayer_times/config_flow.pyi +0 -3
- homeassistant-stubs/components/isy994/config_flow.pyi +0 -2
- homeassistant-stubs/components/jellyfin/config_flow.pyi +3 -3
- homeassistant-stubs/components/jewish_calendar/__init__.pyi +6 -17
- homeassistant-stubs/components/jewish_calendar/binary_sensor.pyi +2 -4
- homeassistant-stubs/components/jewish_calendar/config_flow.pyi +3 -4
- homeassistant-stubs/components/jewish_calendar/entity.pyi +15 -4
- homeassistant-stubs/components/jewish_calendar/sensor.pyi +3 -5
- homeassistant-stubs/components/knx/__init__.pyi +1 -1
- homeassistant-stubs/components/knx/config_flow.pyi +0 -1
- homeassistant-stubs/components/knx/light.pyi +3 -3
- homeassistant-stubs/components/knx/telegrams.pyi +1 -0
- homeassistant-stubs/components/knx/websocket.pyi +1 -0
- homeassistant-stubs/components/kraken/config_flow.pyi +0 -3
- homeassistant-stubs/components/lamarzocco/__init__.pyi +1 -1
- homeassistant-stubs/components/lamarzocco/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/lamarzocco/button.pyi +7 -3
- homeassistant-stubs/components/lamarzocco/calendar.pyi +1 -1
- homeassistant-stubs/components/lamarzocco/config_flow.pyi +10 -6
- homeassistant-stubs/components/lamarzocco/coordinator.pyi +3 -3
- homeassistant-stubs/components/lamarzocco/diagnostics.pyi +1 -1
- homeassistant-stubs/components/lamarzocco/entity.pyi +3 -2
- homeassistant-stubs/components/lamarzocco/number.pyi +5 -3
- homeassistant-stubs/components/lamarzocco/select.pyi +3 -2
- homeassistant-stubs/components/lamarzocco/sensor.pyi +1 -1
- homeassistant-stubs/components/lamarzocco/switch.pyi +4 -2
- homeassistant-stubs/components/lamarzocco/update.pyi +3 -1
- homeassistant-stubs/components/lcn/__init__.pyi +4 -4
- homeassistant-stubs/components/lcn/config_flow.pyi +0 -4
- homeassistant-stubs/components/lcn/helpers.pyi +2 -4
- homeassistant-stubs/components/lcn/schemas.pyi +2 -13
- homeassistant-stubs/components/lcn/services.pyi +2 -0
- homeassistant-stubs/components/lektrico/binary_sensor.pyi +27 -0
- homeassistant-stubs/components/linkplay/button.pyi +28 -0
- homeassistant-stubs/components/linkplay/diagnostics.pyi +5 -0
- homeassistant-stubs/components/linkplay/entity.pyi +16 -0
- homeassistant-stubs/components/linkplay/media_player.pyi +3 -8
- homeassistant-stubs/components/linkplay/utils.pyi +12 -0
- homeassistant-stubs/components/litejet/config_flow.pyi +0 -3
- homeassistant-stubs/components/matter/adapter.pyi +1 -0
- homeassistant-stubs/components/matter/const.pyi +1 -0
- homeassistant-stubs/components/matter/discovery.pyi +1 -0
- homeassistant-stubs/components/matter/entity.pyi +2 -1
- homeassistant-stubs/components/matter/models.pyi +4 -2
- homeassistant-stubs/components/media_extractor/__init__.pyi +1 -2
- homeassistant-stubs/components/media_extractor/config_flow.pyi +0 -1
- homeassistant-stubs/components/mikrotik/config_flow.pyi +0 -3
- homeassistant-stubs/components/mjpeg/config_flow.pyi +0 -3
- homeassistant-stubs/components/mold_indicator/sensor.pyi +3 -5
- homeassistant-stubs/components/monzo/coordinator.pyi +1 -1
- homeassistant-stubs/components/mopeka/config_flow.pyi +0 -2
- homeassistant-stubs/components/mqtt/__init__.pyi +1 -0
- homeassistant-stubs/components/mqtt/alarm_control_panel.pyi +1 -0
- homeassistant-stubs/components/mqtt/binary_sensor.pyi +1 -0
- homeassistant-stubs/components/mqtt/button.pyi +1 -0
- homeassistant-stubs/components/mqtt/camera.pyi +1 -0
- homeassistant-stubs/components/mqtt/climate.pyi +1 -0
- homeassistant-stubs/components/mqtt/config_flow.pyi +3 -4
- homeassistant-stubs/components/mqtt/cover.pyi +1 -0
- homeassistant-stubs/components/mqtt/device_tracker.pyi +1 -0
- homeassistant-stubs/components/mqtt/entity.pyi +1 -0
- homeassistant-stubs/components/mqtt/event.pyi +1 -0
- homeassistant-stubs/components/mqtt/fan.pyi +1 -0
- homeassistant-stubs/components/mqtt/humidifier.pyi +1 -0
- homeassistant-stubs/components/mqtt/image.pyi +1 -0
- homeassistant-stubs/components/mqtt/lawn_mower.pyi +1 -0
- homeassistant-stubs/components/mqtt/light/__init__.pyi +2 -0
- homeassistant-stubs/components/mqtt/lock.pyi +1 -0
- homeassistant-stubs/components/mqtt/notify.pyi +1 -0
- homeassistant-stubs/components/mqtt/number.pyi +1 -0
- homeassistant-stubs/components/mqtt/scene.pyi +1 -0
- homeassistant-stubs/components/mqtt/select.pyi +1 -0
- homeassistant-stubs/components/mqtt/sensor.pyi +1 -0
- homeassistant-stubs/components/mqtt/siren.pyi +1 -0
- homeassistant-stubs/components/mqtt/subscription.pyi +1 -1
- homeassistant-stubs/components/mqtt/switch.pyi +1 -0
- homeassistant-stubs/components/mqtt/text.pyi +1 -0
- homeassistant-stubs/components/mqtt/update.pyi +1 -0
- homeassistant-stubs/components/mqtt/vacuum.pyi +1 -0
- homeassistant-stubs/components/mqtt/valve.pyi +1 -0
- homeassistant-stubs/components/mqtt/water_heater.pyi +1 -0
- homeassistant-stubs/components/music_assistant/__init__.pyi +27 -0
- homeassistant-stubs/components/music_assistant/config_flow.pyi +24 -0
- homeassistant-stubs/components/music_assistant/const.pyi +12 -0
- homeassistant-stubs/components/music_assistant/entity.pyi +24 -0
- homeassistant-stubs/components/music_assistant/media_browser.pyi +33 -0
- homeassistant-stubs/components/music_assistant/media_player.pyi +96 -0
- homeassistant-stubs/components/nasweb/__init__.pyi +19 -0
- homeassistant-stubs/components/nasweb/config_flow.pyi +27 -0
- homeassistant-stubs/components/nasweb/const.pyi +5 -0
- homeassistant-stubs/components/nasweb/coordinator.pyi +42 -0
- homeassistant-stubs/components/nasweb/nasweb_data.pyi +20 -0
- homeassistant-stubs/components/nasweb/switch.pyi +35 -0
- homeassistant-stubs/components/nest/camera.pyi +3 -5
- homeassistant-stubs/components/netatmo/config_flow.pyi +0 -1
- homeassistant-stubs/components/nightscout/sensor.pyi +4 -3
- homeassistant-stubs/components/nordpool/__init__.pyi +9 -0
- homeassistant-stubs/components/nordpool/config_flow.pyi +19 -0
- homeassistant-stubs/components/nordpool/const.pyi +9 -0
- homeassistant-stubs/components/nordpool/coordinator.pyi +20 -0
- homeassistant-stubs/components/nordpool/diagnostics.pyi +5 -0
- homeassistant-stubs/components/nordpool/entity.pyi +14 -0
- homeassistant-stubs/components/nordpool/sensor.pyi +69 -0
- homeassistant-stubs/components/number/const.pyi +3 -1
- homeassistant-stubs/components/nut/__init__.pyi +4 -1
- homeassistant-stubs/components/nut/config_flow.pyi +0 -2
- homeassistant-stubs/components/nut/sensor.pyi +1 -1
- homeassistant-stubs/components/onewire/config_flow.pyi +4 -2
- homeassistant-stubs/components/onkyo/config_flow.pyi +3 -2
- homeassistant-stubs/components/openai_conversation/config_flow.pyi +0 -1
- homeassistant-stubs/components/opensky/config_flow.pyi +3 -3
- homeassistant-stubs/components/p1_monitor/__init__.pyi +3 -3
- homeassistant-stubs/components/p1_monitor/diagnostics.pyi +1 -2
- homeassistant-stubs/components/p1_monitor/sensor.pyi +1 -1
- homeassistant-stubs/components/ping/__init__.pyi +2 -6
- homeassistant-stubs/components/ping/config_flow.pyi +2 -2
- homeassistant-stubs/components/plugwise/climate.pyi +4 -2
- homeassistant-stubs/components/plugwise/entity.pyi +2 -2
- homeassistant-stubs/components/plugwise/number.pyi +2 -2
- homeassistant-stubs/components/plugwise/select.pyi +2 -1
- homeassistant-stubs/components/proximity/config_flow.pyi +0 -3
- homeassistant-stubs/components/pure_energie/__init__.pyi +4 -5
- homeassistant-stubs/components/pure_energie/diagnostics.pyi +2 -4
- homeassistant-stubs/components/pure_energie/sensor.pyi +3 -3
- homeassistant-stubs/components/purpleair/config_flow.pyi +1 -2
- homeassistant-stubs/components/rainmachine/config_flow.pyi +0 -3
- homeassistant-stubs/components/recollect_waste/config_flow.pyi +1 -3
- homeassistant-stubs/components/recorder/core.pyi +1 -0
- homeassistant-stubs/components/recorder/history/legacy.pyi +4 -4
- homeassistant-stubs/components/recorder/history/modern.pyi +2 -2
- homeassistant-stubs/components/recorder/pool.pyi +1 -1
- homeassistant-stubs/components/recorder/queries.pyi +1 -0
- homeassistant-stubs/components/recorder/statistics.pyi +1 -1
- homeassistant-stubs/components/recorder/table_managers/states.pyi +7 -0
- homeassistant-stubs/components/recorder/websocket_api.pyi +1 -1
- homeassistant-stubs/components/renault/config_flow.pyi +4 -5
- homeassistant-stubs/components/renault/services.pyi +1 -0
- homeassistant-stubs/components/reolink/__init__.pyi +28 -0
- homeassistant-stubs/components/reolink/binary_sensor.pyi +34 -0
- homeassistant-stubs/components/reolink/button.pyi +48 -0
- homeassistant-stubs/components/reolink/camera.pyi +28 -0
- homeassistant-stubs/components/reolink/config_flow.pyi +35 -0
- homeassistant-stubs/components/reolink/const.pyi +2 -0
- homeassistant-stubs/components/reolink/diagnostics.pyi +5 -0
- homeassistant-stubs/components/reolink/entity.pyi +69 -0
- homeassistant-stubs/components/reolink/exceptions.pyi +7 -0
- homeassistant-stubs/components/reolink/host.pyi +82 -0
- homeassistant-stubs/components/reolink/light.pyi +55 -0
- homeassistant-stubs/components/reolink/media_source.pyi +27 -0
- homeassistant-stubs/components/reolink/number.pyi +69 -0
- homeassistant-stubs/components/reolink/select.pyi +54 -0
- homeassistant-stubs/components/reolink/sensor.pyi +55 -0
- homeassistant-stubs/components/reolink/services.pyi +12 -0
- homeassistant-stubs/components/reolink/siren.pyi +26 -0
- homeassistant-stubs/components/reolink/switch.pyi +65 -0
- homeassistant-stubs/components/reolink/update.pyi +71 -0
- homeassistant-stubs/components/reolink/util.pyi +18 -0
- homeassistant-stubs/components/rfxtrx/config_flow.pyi +2 -3
- homeassistant-stubs/components/ring/__init__.pyi +0 -1
- homeassistant-stubs/components/ring/camera.pyi +22 -6
- homeassistant-stubs/components/rituals_perfume_genie/select.pyi +1 -1
- homeassistant-stubs/components/roborock/config_flow.pyi +5 -3
- homeassistant-stubs/components/roborock/sensor.pyi +1 -1
- homeassistant-stubs/components/roku/config_flow.pyi +3 -3
- homeassistant-stubs/components/romy/sensor.pyi +1 -1
- homeassistant-stubs/components/rtsp_to_webrtc/__init__.pyi +1 -0
- homeassistant-stubs/components/rtsp_to_webrtc/config_flow.pyi +0 -2
- homeassistant-stubs/components/sensor/const.pyi +4 -2
- homeassistant-stubs/components/sensor/device_condition.pyi +2 -0
- homeassistant-stubs/components/sensor/device_trigger.pyi +2 -0
- homeassistant-stubs/components/shelly/config_flow.pyi +0 -2
- homeassistant-stubs/components/shelly/update.pyi +4 -1
- homeassistant-stubs/components/simplisafe/config_flow.pyi +0 -2
- homeassistant-stubs/components/smlight/config_flow.pyi +1 -1
- homeassistant-stubs/components/solarlog/coordinator.pyi +1 -0
- homeassistant-stubs/components/sonarr/config_flow.pyi +0 -2
- homeassistant-stubs/components/speedtestdotnet/config_flow.pyi +1 -2
- homeassistant-stubs/components/spotify/browse_media.pyi +2 -2
- homeassistant-stubs/components/spotify/coordinator.pyi +2 -4
- homeassistant-stubs/components/sql/config_flow.pyi +2 -2
- homeassistant-stubs/components/statistics/sensor.pyi +2 -4
- homeassistant-stubs/components/stookwijzer/__init__.pyi +15 -0
- homeassistant-stubs/components/stookwijzer/config_flow.pyi +10 -0
- homeassistant-stubs/components/stookwijzer/const.pyi +5 -0
- homeassistant-stubs/components/stookwijzer/coordinator.pyi +15 -0
- homeassistant-stubs/components/stookwijzer/diagnostics.pyi +5 -0
- homeassistant-stubs/components/stookwijzer/sensor.pyi +31 -0
- homeassistant-stubs/components/stream/const.pyi +3 -2
- homeassistant-stubs/components/stream/core.pyi +2 -2
- homeassistant-stubs/components/stream/worker.pyi +15 -13
- homeassistant-stubs/components/suez_water/__init__.pyi +3 -3
- homeassistant-stubs/components/suez_water/config_flow.pyi +2 -1
- homeassistant-stubs/components/suez_water/const.pyi +3 -0
- homeassistant-stubs/components/suez_water/coordinator.pyi +35 -0
- homeassistant-stubs/components/suez_water/sensor.pyi +23 -17
- homeassistant-stubs/components/switchbot_cloud/sensor.pyi +3 -1
- homeassistant-stubs/components/switcher_kis/button.pyi +1 -1
- homeassistant-stubs/components/switcher_kis/cover.pyi +1 -1
- homeassistant-stubs/components/switcher_kis/light.pyi +1 -1
- homeassistant-stubs/components/switcher_kis/sensor.pyi +2 -0
- homeassistant-stubs/components/synology_dsm/config_flow.pyi +0 -2
- homeassistant-stubs/components/tedee/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/tedee/coordinator.pyi +2 -2
- homeassistant-stubs/components/tedee/entity.pyi +1 -1
- homeassistant-stubs/components/tedee/lock.pyi +3 -1
- homeassistant-stubs/components/tedee/sensor.pyi +1 -1
- homeassistant-stubs/components/thethingsnetwork/__init__.pyi +1 -4
- homeassistant-stubs/components/threshold/binary_sensor.pyi +4 -0
- homeassistant-stubs/components/tibber/__init__.pyi +1 -2
- homeassistant-stubs/components/tibber/notify.pyi +1 -10
- homeassistant-stubs/components/tod/binary_sensor.pyi +3 -3
- homeassistant-stubs/components/tolo/config_flow.pyi +1 -1
- homeassistant-stubs/components/tplink/__init__.pyi +1 -1
- homeassistant-stubs/components/tplink/config_flow.pyi +6 -3
- homeassistant-stubs/components/tplink_omada/__init__.pyi +2 -2
- homeassistant-stubs/components/trafikverket_camera/config_flow.pyi +1 -1
- homeassistant-stubs/components/trafikverket_camera/coordinator.pyi +2 -3
- homeassistant-stubs/components/trafikverket_train/__init__.pyi +3 -0
- homeassistant-stubs/components/trafikverket_train/config_flow.pyi +4 -3
- homeassistant-stubs/components/trafikverket_train/util.pyi +1 -2
- homeassistant-stubs/components/transmission/config_flow.pyi +0 -2
- homeassistant-stubs/components/trend/binary_sensor.pyi +1 -0
- homeassistant-stubs/components/tts/__init__.pyi +3 -1
- homeassistant-stubs/components/unifi/config_flow.pyi +2 -3
- homeassistant-stubs/components/unifiprotect/__init__.pyi +1 -1
- homeassistant-stubs/components/unifiprotect/config_flow.pyi +0 -2
- homeassistant-stubs/components/unifiprotect/const.pyi +5 -0
- homeassistant-stubs/components/unifiprotect/event.pyi +17 -4
- homeassistant-stubs/components/unifiprotect/views.pyi +7 -1
- homeassistant-stubs/components/upcloud/config_flow.pyi +0 -2
- homeassistant-stubs/components/watttime/config_flow.pyi +1 -3
- homeassistant-stubs/components/webostv/config_flow.pyi +0 -2
- homeassistant-stubs/components/websocket_api/http.pyi +2 -1
- homeassistant-stubs/components/wemo/config_flow.pyi +0 -3
- homeassistant-stubs/components/wled/config_flow.pyi +2 -2
- homeassistant-stubs/components/workday/config_flow.pyi +2 -2
- homeassistant-stubs/components/yale_smart_alarm/config_flow.pyi +5 -3
- homeassistant-stubs/components/yalexs_ble/config_flow.pyi +0 -2
- homeassistant-stubs/components/youtube/config_flow.pyi +2 -2
- homeassistant-stubs/components/zeroconf/usage.pyi +1 -1
- homeassistant-stubs/components/zwave_js/__init__.pyi +1 -1
- homeassistant-stubs/components/zwave_js/api.pyi +9 -1
- homeassistant-stubs/components/zwave_js/config_flow.pyi +1 -2
- homeassistant-stubs/components/zwave_js/const.pyi +1 -0
- homeassistant-stubs/config_entries.pyi +15 -7
- homeassistant-stubs/const.pyi +26 -1
- homeassistant-stubs/core_config.pyi +1 -1
- homeassistant-stubs/data_entry_flow.pyi +3 -3
- homeassistant-stubs/helpers/device_registry.pyi +0 -1
- homeassistant-stubs/helpers/entity.pyi +1 -0
- homeassistant-stubs/helpers/entity_platform.pyi +1 -0
- homeassistant-stubs/helpers/frame.pyi +12 -3
- homeassistant-stubs/helpers/intent.pyi +1 -0
- homeassistant-stubs/helpers/llm.pyi +2 -3
- homeassistant-stubs/helpers/restore_state.pyi +0 -3
- homeassistant-stubs/helpers/schema_config_entry_flow.pyi +5 -2
- homeassistant-stubs/helpers/trigger_template_entity.pyi +1 -1
- homeassistant-stubs/helpers/update_coordinator.pyi +3 -3
- homeassistant-stubs/loader.pyi +1 -0
- homeassistant-stubs/runner.pyi +0 -4
- homeassistant-stubs/util/json.pyi +3 -3
- homeassistant-stubs/util/unit_conversion.pyi +20 -1
- homeassistant-stubs/util/unit_system.pyi +7 -4
- homeassistant-stubs/util/yaml/loader.pyi +0 -19
- {homeassistant_stubs-2024.11.2.dist-info → homeassistant_stubs-2024.12.0.dist-info}/METADATA +2 -2
- {homeassistant_stubs-2024.11.2.dist-info → homeassistant_stubs-2024.12.0.dist-info}/RECORD +392 -337
- homeassistant-stubs/components/spotify/sensor.pyi +0 -31
- {homeassistant_stubs-2024.11.2.dist-info → homeassistant_stubs-2024.12.0.dist-info}/WHEEL +0 -0
- {homeassistant_stubs-2024.11.2.dist-info → homeassistant_stubs-2024.12.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,69 @@
|
|
1
|
+
from . import ReolinkData as ReolinkData
|
2
|
+
from .const import DOMAIN as DOMAIN
|
3
|
+
from _typeshed import Incomplete
|
4
|
+
from collections.abc import Callable as Callable
|
5
|
+
from dataclasses import dataclass
|
6
|
+
from homeassistant.core import callback as callback
|
7
|
+
from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC as CONNECTION_NETWORK_MAC, DeviceInfo as DeviceInfo
|
8
|
+
from homeassistant.helpers.entity import EntityDescription as EntityDescription
|
9
|
+
from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity, DataUpdateCoordinator as DataUpdateCoordinator
|
10
|
+
from reolink_aio.api import Chime as Chime, Host as Host
|
11
|
+
|
12
|
+
@dataclass(frozen=True, kw_only=True)
|
13
|
+
class ReolinkEntityDescription(EntityDescription):
|
14
|
+
cmd_key: str | None = ...
|
15
|
+
cmd_id: int | None = ...
|
16
|
+
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=..., cmd_key=..., cmd_id=...) -> None: ...
|
17
|
+
|
18
|
+
@dataclass(frozen=True, kw_only=True)
|
19
|
+
class ReolinkChannelEntityDescription(ReolinkEntityDescription):
|
20
|
+
supported: Callable[[Host, int], bool] = ...
|
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=..., cmd_key=..., cmd_id=..., supported=...) -> None: ...
|
22
|
+
|
23
|
+
@dataclass(frozen=True, kw_only=True)
|
24
|
+
class ReolinkHostEntityDescription(ReolinkEntityDescription):
|
25
|
+
supported: Callable[[Host], bool] = ...
|
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=..., cmd_key=..., cmd_id=..., supported=...) -> None: ...
|
27
|
+
|
28
|
+
@dataclass(frozen=True, kw_only=True)
|
29
|
+
class ReolinkChimeEntityDescription(ReolinkEntityDescription):
|
30
|
+
supported: Callable[[Chime], bool] = ...
|
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=..., cmd_key=..., cmd_id=..., supported=...) -> None: ...
|
32
|
+
|
33
|
+
class ReolinkHostCoordinatorEntity(CoordinatorEntity[DataUpdateCoordinator[None]]):
|
34
|
+
_attr_has_entity_name: bool
|
35
|
+
entity_description: ReolinkEntityDescription
|
36
|
+
_host: Incomplete
|
37
|
+
_attr_unique_id: Incomplete
|
38
|
+
_conf_url: Incomplete
|
39
|
+
_dev_id: Incomplete
|
40
|
+
_attr_device_info: Incomplete
|
41
|
+
def __init__(self, reolink_data: ReolinkData, coordinator: DataUpdateCoordinator[None] | None = None) -> None: ...
|
42
|
+
@property
|
43
|
+
def available(self) -> bool: ...
|
44
|
+
def _push_callback(self) -> None: ...
|
45
|
+
def register_callback(self, unique_id: str, cmd_id: int) -> None: ...
|
46
|
+
async def async_added_to_hass(self) -> None: ...
|
47
|
+
async def async_will_remove_from_hass(self) -> None: ...
|
48
|
+
async def async_update(self) -> None: ...
|
49
|
+
|
50
|
+
class ReolinkChannelCoordinatorEntity(ReolinkHostCoordinatorEntity):
|
51
|
+
_channel: Incomplete
|
52
|
+
_attr_unique_id: Incomplete
|
53
|
+
_dev_id: Incomplete
|
54
|
+
_attr_device_info: Incomplete
|
55
|
+
def __init__(self, reolink_data: ReolinkData, channel: int, coordinator: DataUpdateCoordinator[None] | None = None) -> None: ...
|
56
|
+
@property
|
57
|
+
def available(self) -> bool: ...
|
58
|
+
def register_callback(self, unique_id: str, cmd_id: int) -> None: ...
|
59
|
+
async def async_added_to_hass(self) -> None: ...
|
60
|
+
async def async_will_remove_from_hass(self) -> None: ...
|
61
|
+
|
62
|
+
class ReolinkChimeCoordinatorEntity(ReolinkChannelCoordinatorEntity):
|
63
|
+
_chime: Incomplete
|
64
|
+
_attr_unique_id: Incomplete
|
65
|
+
_dev_id: Incomplete
|
66
|
+
_attr_device_info: Incomplete
|
67
|
+
def __init__(self, reolink_data: ReolinkData, chime: Chime, coordinator: DataUpdateCoordinator[None] | None = None) -> None: ...
|
68
|
+
@property
|
69
|
+
def available(self) -> bool: ...
|
@@ -0,0 +1,7 @@
|
|
1
|
+
from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
|
2
|
+
|
3
|
+
class ReolinkException(HomeAssistantError): ...
|
4
|
+
class ReolinkSetupException(ReolinkException): ...
|
5
|
+
class ReolinkWebhookException(ReolinkException): ...
|
6
|
+
class UserNotAdmin(ReolinkException): ...
|
7
|
+
class PasswordIncompatible(ReolinkException): ...
|
@@ -0,0 +1,82 @@
|
|
1
|
+
from .const import CONF_USE_HTTPS as CONF_USE_HTTPS, DOMAIN as DOMAIN
|
2
|
+
from .exceptions import PasswordIncompatible as PasswordIncompatible, ReolinkSetupException as ReolinkSetupException, ReolinkWebhookException as ReolinkWebhookException, UserNotAdmin as UserNotAdmin
|
3
|
+
from _typeshed import Incomplete
|
4
|
+
from aiohttp.web import Request as Request
|
5
|
+
from collections.abc import Mapping
|
6
|
+
from homeassistant.components import webhook as webhook
|
7
|
+
from homeassistant.const import CONF_HOST as CONF_HOST, CONF_PASSWORD as CONF_PASSWORD, CONF_PORT as CONF_PORT, CONF_PROTOCOL as CONF_PROTOCOL, CONF_USERNAME as CONF_USERNAME
|
8
|
+
from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, HassJob as HassJob, HomeAssistant as HomeAssistant, callback as callback
|
9
|
+
from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
|
10
|
+
from homeassistant.helpers.device_registry import format_mac as format_mac
|
11
|
+
from homeassistant.helpers.dispatcher import async_dispatcher_send as async_dispatcher_send
|
12
|
+
from homeassistant.helpers.event import async_call_later as async_call_later
|
13
|
+
from homeassistant.helpers.network import NoURLAvailableError as NoURLAvailableError, get_url as get_url
|
14
|
+
from homeassistant.util.ssl import SSLCipherList as SSLCipherList
|
15
|
+
from reolink_aio.api import Host
|
16
|
+
from reolink_aio.enums import SubType
|
17
|
+
from typing import Any, Literal
|
18
|
+
|
19
|
+
DEFAULT_TIMEOUT: int
|
20
|
+
FIRST_TCP_PUSH_TIMEOUT: int
|
21
|
+
FIRST_ONVIF_TIMEOUT: int
|
22
|
+
FIRST_ONVIF_LONG_POLL_TIMEOUT: int
|
23
|
+
SUBSCRIPTION_RENEW_THRESHOLD: int
|
24
|
+
POLL_INTERVAL_NO_PUSH: int
|
25
|
+
LONG_POLL_COOLDOWN: float
|
26
|
+
LONG_POLL_ERROR_COOLDOWN: int
|
27
|
+
BATTERY_WAKE_UPDATE_INTERVAL: int
|
28
|
+
_LOGGER: Incomplete
|
29
|
+
|
30
|
+
class ReolinkHost:
|
31
|
+
_hass: Incomplete
|
32
|
+
_unique_id: str
|
33
|
+
_api: Incomplete
|
34
|
+
last_wake: int
|
35
|
+
update_cmd: Incomplete
|
36
|
+
firmware_ch_list: Incomplete
|
37
|
+
starting: bool
|
38
|
+
credential_errors: int
|
39
|
+
webhook_id: Incomplete
|
40
|
+
_onvif_push_supported: bool
|
41
|
+
_onvif_long_poll_supported: bool
|
42
|
+
_base_url: str
|
43
|
+
_webhook_url: str
|
44
|
+
_webhook_reachable: bool
|
45
|
+
_long_poll_received: bool
|
46
|
+
_long_poll_error: bool
|
47
|
+
_cancel_poll: Incomplete
|
48
|
+
_cancel_tcp_push_check: Incomplete
|
49
|
+
_cancel_onvif_check: Incomplete
|
50
|
+
_cancel_long_poll_check: Incomplete
|
51
|
+
_poll_job: Incomplete
|
52
|
+
_fast_poll_error: bool
|
53
|
+
_long_poll_task: Incomplete
|
54
|
+
_lost_subscription: bool
|
55
|
+
def __init__(self, hass: HomeAssistant, config: Mapping[str, Any], options: Mapping[str, Any]) -> None: ...
|
56
|
+
def async_register_update_cmd(self, cmd: str, channel: int | None = None) -> None: ...
|
57
|
+
def async_unregister_update_cmd(self, cmd: str, channel: int | None = None) -> None: ...
|
58
|
+
@property
|
59
|
+
def unique_id(self) -> str: ...
|
60
|
+
@property
|
61
|
+
def api(self) -> Host: ...
|
62
|
+
async def async_init(self) -> None: ...
|
63
|
+
async def _async_check_tcp_push(self, *_: Any) -> None: ...
|
64
|
+
async def _async_check_onvif(self, *_: Any) -> None: ...
|
65
|
+
async def _async_check_onvif_long_poll(self, *_: Any) -> None: ...
|
66
|
+
async def update_states(self) -> None: ...
|
67
|
+
async def disconnect(self) -> None: ...
|
68
|
+
async def _async_start_long_polling(self, initial: bool = False) -> None: ...
|
69
|
+
async def _async_stop_long_polling(self) -> None: ...
|
70
|
+
async def stop(self, *_: Any) -> None: ...
|
71
|
+
async def subscribe(self) -> None: ...
|
72
|
+
async def renew(self) -> None: ...
|
73
|
+
async def _renew(self, sub_type: Literal[SubType.push, SubType.long_poll]) -> None: ...
|
74
|
+
def register_webhook(self) -> None: ...
|
75
|
+
def unregister_webhook(self) -> None: ...
|
76
|
+
async def _async_long_polling(self, *_: Any) -> None: ...
|
77
|
+
async def _async_poll_all_motion(self, *_: Any) -> None: ...
|
78
|
+
async def handle_webhook(self, hass: HomeAssistant, webhook_id: str, request: Request) -> None: ...
|
79
|
+
async def _process_webhook_data(self, hass: HomeAssistant, webhook_id: str, data: bytes | None) -> None: ...
|
80
|
+
def _signal_write_ha_state(self, channels: list[int] | None = None) -> None: ...
|
81
|
+
@property
|
82
|
+
def event_connection(self) -> str: ...
|
@@ -0,0 +1,55 @@
|
|
1
|
+
from .entity import ReolinkChannelCoordinatorEntity as ReolinkChannelCoordinatorEntity, ReolinkChannelEntityDescription as ReolinkChannelEntityDescription, ReolinkHostCoordinatorEntity as ReolinkHostCoordinatorEntity, ReolinkHostEntityDescription as ReolinkHostEntityDescription
|
2
|
+
from .util import ReolinkConfigEntry as ReolinkConfigEntry, ReolinkData as ReolinkData
|
3
|
+
from _typeshed import Incomplete
|
4
|
+
from collections.abc import Callable as Callable
|
5
|
+
from dataclasses import dataclass
|
6
|
+
from homeassistant.components.light import ATTR_BRIGHTNESS as ATTR_BRIGHTNESS, ColorMode as ColorMode, LightEntity as LightEntity, LightEntityDescription as LightEntityDescription
|
7
|
+
from homeassistant.const import EntityCategory as EntityCategory
|
8
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
9
|
+
from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, ServiceValidationError as ServiceValidationError
|
10
|
+
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
|
11
|
+
from reolink_aio.api import Host as Host
|
12
|
+
from typing import Any
|
13
|
+
|
14
|
+
PARALLEL_UPDATES: int
|
15
|
+
|
16
|
+
@dataclass(frozen=True, kw_only=True)
|
17
|
+
class ReolinkLightEntityDescription(LightEntityDescription, ReolinkChannelEntityDescription):
|
18
|
+
get_brightness_fn: Callable[[Host, int], int | None] | None = ...
|
19
|
+
is_on_fn: Callable[[Host, int], bool]
|
20
|
+
set_brightness_fn: Callable[[Host, int, int], Any] | None = ...
|
21
|
+
turn_on_off_fn: Callable[[Host, int, bool], Any]
|
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=..., cmd_key=..., cmd_id=..., supported=..., get_brightness_fn=..., is_on_fn, set_brightness_fn=..., turn_on_off_fn) -> None: ...
|
23
|
+
|
24
|
+
@dataclass(frozen=True, kw_only=True)
|
25
|
+
class ReolinkHostLightEntityDescription(LightEntityDescription, ReolinkHostEntityDescription):
|
26
|
+
is_on_fn: Callable[[Host], bool]
|
27
|
+
turn_on_off_fn: Callable[[Host, bool], Any]
|
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=..., cmd_key=..., cmd_id=..., supported=..., is_on_fn, turn_on_off_fn) -> None: ...
|
29
|
+
|
30
|
+
LIGHT_ENTITIES: Incomplete
|
31
|
+
HOST_LIGHT_ENTITIES: Incomplete
|
32
|
+
|
33
|
+
async def async_setup_entry(hass: HomeAssistant, config_entry: ReolinkConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
|
34
|
+
|
35
|
+
class ReolinkLightEntity(ReolinkChannelCoordinatorEntity, LightEntity):
|
36
|
+
entity_description: ReolinkLightEntityDescription
|
37
|
+
_attr_supported_color_modes: Incomplete
|
38
|
+
_attr_color_mode: Incomplete
|
39
|
+
def __init__(self, reolink_data: ReolinkData, channel: int, entity_description: ReolinkLightEntityDescription) -> None: ...
|
40
|
+
@property
|
41
|
+
def is_on(self) -> bool: ...
|
42
|
+
@property
|
43
|
+
def brightness(self) -> int | None: ...
|
44
|
+
async def async_turn_off(self, **kwargs: Any) -> None: ...
|
45
|
+
async def async_turn_on(self, **kwargs: Any) -> None: ...
|
46
|
+
|
47
|
+
class ReolinkHostLightEntity(ReolinkHostCoordinatorEntity, LightEntity):
|
48
|
+
entity_description: ReolinkHostLightEntityDescription
|
49
|
+
_attr_supported_color_modes: Incomplete
|
50
|
+
_attr_color_mode: Incomplete
|
51
|
+
def __init__(self, reolink_data: ReolinkData, entity_description: ReolinkHostLightEntityDescription) -> None: ...
|
52
|
+
@property
|
53
|
+
def is_on(self) -> bool: ...
|
54
|
+
async def async_turn_off(self, **kwargs: Any) -> None: ...
|
55
|
+
async def async_turn_on(self, **kwargs: Any) -> None: ...
|
@@ -0,0 +1,27 @@
|
|
1
|
+
from .const import DOMAIN as DOMAIN
|
2
|
+
from .host import ReolinkHost as ReolinkHost
|
3
|
+
from .util import ReolinkConfigEntry as ReolinkConfigEntry
|
4
|
+
from _typeshed import Incomplete
|
5
|
+
from homeassistant.components.camera import DynamicStreamSettings as DynamicStreamSettings
|
6
|
+
from homeassistant.components.media_player import MediaClass as MediaClass, MediaType as MediaType
|
7
|
+
from homeassistant.components.media_source import BrowseMediaSource as BrowseMediaSource, MediaSource as MediaSource, MediaSourceItem as MediaSourceItem, PlayMedia as PlayMedia, Unresolvable as Unresolvable
|
8
|
+
from homeassistant.components.stream import create_stream as create_stream
|
9
|
+
from homeassistant.config_entries import ConfigEntryState as ConfigEntryState
|
10
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
11
|
+
|
12
|
+
_LOGGER: Incomplete
|
13
|
+
|
14
|
+
async def async_get_media_source(hass: HomeAssistant) -> ReolinkVODMediaSource: ...
|
15
|
+
def res_name(stream: str) -> str: ...
|
16
|
+
def get_host(hass: HomeAssistant, config_entry_id: str) -> ReolinkHost: ...
|
17
|
+
|
18
|
+
class ReolinkVODMediaSource(MediaSource):
|
19
|
+
name: str
|
20
|
+
hass: Incomplete
|
21
|
+
def __init__(self, hass: HomeAssistant) -> None: ...
|
22
|
+
async def async_resolve_media(self, item: MediaSourceItem) -> PlayMedia: ...
|
23
|
+
async def async_browse_media(self, item: MediaSourceItem) -> BrowseMediaSource: ...
|
24
|
+
async def _async_generate_root(self) -> BrowseMediaSource: ...
|
25
|
+
async def _async_generate_resolution_select(self, config_entry_id: str, channel: int) -> BrowseMediaSource: ...
|
26
|
+
async def _async_generate_camera_days(self, config_entry_id: str, channel: int, stream: str) -> BrowseMediaSource: ...
|
27
|
+
async def _async_generate_camera_files(self, config_entry_id: str, channel: int, stream: str, year: int, month: int, day: int) -> BrowseMediaSource: ...
|
@@ -0,0 +1,69 @@
|
|
1
|
+
from .entity import ReolinkChannelCoordinatorEntity as ReolinkChannelCoordinatorEntity, ReolinkChannelEntityDescription as ReolinkChannelEntityDescription, ReolinkChimeCoordinatorEntity as ReolinkChimeCoordinatorEntity, ReolinkChimeEntityDescription as ReolinkChimeEntityDescription, ReolinkHostCoordinatorEntity as ReolinkHostCoordinatorEntity, ReolinkHostEntityDescription as ReolinkHostEntityDescription
|
2
|
+
from .util import ReolinkConfigEntry as ReolinkConfigEntry, ReolinkData as ReolinkData
|
3
|
+
from _typeshed import Incomplete
|
4
|
+
from collections.abc import Callable as Callable
|
5
|
+
from dataclasses import dataclass
|
6
|
+
from homeassistant.components.number import NumberEntity as NumberEntity, NumberEntityDescription as NumberEntityDescription, NumberMode as NumberMode
|
7
|
+
from homeassistant.const import EntityCategory as EntityCategory, UnitOfTime as UnitOfTime
|
8
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
9
|
+
from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, ServiceValidationError as ServiceValidationError
|
10
|
+
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
|
11
|
+
from reolink_aio.api import Chime as Chime, Host as Host
|
12
|
+
from typing import Any
|
13
|
+
|
14
|
+
PARALLEL_UPDATES: int
|
15
|
+
|
16
|
+
@dataclass(frozen=True, kw_only=True)
|
17
|
+
class ReolinkNumberEntityDescription(NumberEntityDescription, ReolinkChannelEntityDescription):
|
18
|
+
get_max_value: Callable[[Host, int], float] | None = ...
|
19
|
+
get_min_value: Callable[[Host, int], float] | None = ...
|
20
|
+
method: Callable[[Host, int, float], Any]
|
21
|
+
mode: NumberMode = ...
|
22
|
+
value: Callable[[Host, int], float | None]
|
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=..., cmd_key=..., cmd_id=..., supported=..., max_value=..., min_value=..., mode=..., native_max_value=..., native_min_value=..., native_step=..., native_unit_of_measurement=..., step=..., get_max_value=..., get_min_value=..., method, value) -> None: ...
|
24
|
+
|
25
|
+
@dataclass(frozen=True, kw_only=True)
|
26
|
+
class ReolinkHostNumberEntityDescription(NumberEntityDescription, ReolinkHostEntityDescription):
|
27
|
+
method: Callable[[Host, float], Any]
|
28
|
+
mode: NumberMode = ...
|
29
|
+
value: Callable[[Host], float | None]
|
30
|
+
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=..., cmd_key=..., cmd_id=..., supported=..., max_value=..., min_value=..., mode=..., native_max_value=..., native_min_value=..., native_step=..., native_unit_of_measurement=..., step=..., method, value) -> None: ...
|
31
|
+
|
32
|
+
@dataclass(frozen=True, kw_only=True)
|
33
|
+
class ReolinkChimeNumberEntityDescription(NumberEntityDescription, ReolinkChimeEntityDescription):
|
34
|
+
method: Callable[[Chime, float], Any]
|
35
|
+
mode: NumberMode = ...
|
36
|
+
value: Callable[[Chime], float | 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=..., cmd_key=..., cmd_id=..., supported=..., max_value=..., min_value=..., mode=..., native_max_value=..., native_min_value=..., native_step=..., native_unit_of_measurement=..., step=..., method, value) -> None: ...
|
38
|
+
|
39
|
+
NUMBER_ENTITIES: Incomplete
|
40
|
+
HOST_NUMBER_ENTITIES: Incomplete
|
41
|
+
CHIME_NUMBER_ENTITIES: Incomplete
|
42
|
+
|
43
|
+
async def async_setup_entry(hass: HomeAssistant, config_entry: ReolinkConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
|
44
|
+
|
45
|
+
class ReolinkNumberEntity(ReolinkChannelCoordinatorEntity, NumberEntity):
|
46
|
+
entity_description: ReolinkNumberEntityDescription
|
47
|
+
_attr_native_min_value: Incomplete
|
48
|
+
_attr_native_max_value: Incomplete
|
49
|
+
_attr_mode: Incomplete
|
50
|
+
def __init__(self, reolink_data: ReolinkData, channel: int, entity_description: ReolinkNumberEntityDescription) -> None: ...
|
51
|
+
@property
|
52
|
+
def native_value(self) -> float | None: ...
|
53
|
+
async def async_set_native_value(self, value: float) -> None: ...
|
54
|
+
|
55
|
+
class ReolinkHostNumberEntity(ReolinkHostCoordinatorEntity, NumberEntity):
|
56
|
+
entity_description: ReolinkHostNumberEntityDescription
|
57
|
+
_attr_mode: Incomplete
|
58
|
+
def __init__(self, reolink_data: ReolinkData, entity_description: ReolinkHostNumberEntityDescription) -> None: ...
|
59
|
+
@property
|
60
|
+
def native_value(self) -> float | None: ...
|
61
|
+
async def async_set_native_value(self, value: float) -> None: ...
|
62
|
+
|
63
|
+
class ReolinkChimeNumberEntity(ReolinkChimeCoordinatorEntity, NumberEntity):
|
64
|
+
entity_description: ReolinkChimeNumberEntityDescription
|
65
|
+
_attr_mode: Incomplete
|
66
|
+
def __init__(self, reolink_data: ReolinkData, chime: Chime, entity_description: ReolinkChimeNumberEntityDescription) -> None: ...
|
67
|
+
@property
|
68
|
+
def native_value(self) -> float | None: ...
|
69
|
+
async def async_set_native_value(self, value: float) -> None: ...
|
@@ -0,0 +1,54 @@
|
|
1
|
+
from .entity import ReolinkChannelCoordinatorEntity as ReolinkChannelCoordinatorEntity, ReolinkChannelEntityDescription as ReolinkChannelEntityDescription, ReolinkChimeCoordinatorEntity as ReolinkChimeCoordinatorEntity, ReolinkChimeEntityDescription as ReolinkChimeEntityDescription
|
2
|
+
from .util import ReolinkConfigEntry as ReolinkConfigEntry, ReolinkData as ReolinkData
|
3
|
+
from _typeshed import Incomplete
|
4
|
+
from collections.abc import Callable as Callable
|
5
|
+
from dataclasses import dataclass
|
6
|
+
from homeassistant.components.select import SelectEntity as SelectEntity, SelectEntityDescription as SelectEntityDescription
|
7
|
+
from homeassistant.const import EntityCategory as EntityCategory, UnitOfDataRate as UnitOfDataRate, UnitOfFrequency as UnitOfFrequency
|
8
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
9
|
+
from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, ServiceValidationError as ServiceValidationError
|
10
|
+
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
|
11
|
+
from reolink_aio.api import Chime as Chime, Host as Host
|
12
|
+
from typing import Any
|
13
|
+
|
14
|
+
_LOGGER: Incomplete
|
15
|
+
PARALLEL_UPDATES: int
|
16
|
+
|
17
|
+
@dataclass(frozen=True, kw_only=True)
|
18
|
+
class ReolinkSelectEntityDescription(SelectEntityDescription, ReolinkChannelEntityDescription):
|
19
|
+
get_options: list[str] | Callable[[Host, int], list[str]]
|
20
|
+
method: Callable[[Host, int, str], Any]
|
21
|
+
value: Callable[[Host, int], str] | 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=..., cmd_key=..., cmd_id=..., supported=..., options=..., get_options, method, value=...) -> None: ...
|
23
|
+
|
24
|
+
@dataclass(frozen=True, kw_only=True)
|
25
|
+
class ReolinkChimeSelectEntityDescription(SelectEntityDescription, ReolinkChimeEntityDescription):
|
26
|
+
get_options: list[str]
|
27
|
+
method: Callable[[Chime, str], Any]
|
28
|
+
value: Callable[[Chime], str]
|
29
|
+
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=..., cmd_key=..., cmd_id=..., supported=..., options=..., get_options, method, value) -> None: ...
|
30
|
+
|
31
|
+
def _get_quick_reply_id(api: Host, ch: int, mess: str) -> int: ...
|
32
|
+
|
33
|
+
SELECT_ENTITIES: Incomplete
|
34
|
+
CHIME_SELECT_ENTITIES: Incomplete
|
35
|
+
|
36
|
+
async def async_setup_entry(hass: HomeAssistant, config_entry: ReolinkConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
|
37
|
+
|
38
|
+
class ReolinkSelectEntity(ReolinkChannelCoordinatorEntity, SelectEntity):
|
39
|
+
entity_description: ReolinkSelectEntityDescription
|
40
|
+
_log_error: bool
|
41
|
+
_attr_options: Incomplete
|
42
|
+
def __init__(self, reolink_data: ReolinkData, channel: int, entity_description: ReolinkSelectEntityDescription) -> None: ...
|
43
|
+
@property
|
44
|
+
def current_option(self) -> str | None: ...
|
45
|
+
async def async_select_option(self, option: str) -> None: ...
|
46
|
+
|
47
|
+
class ReolinkChimeSelectEntity(ReolinkChimeCoordinatorEntity, SelectEntity):
|
48
|
+
entity_description: ReolinkChimeSelectEntityDescription
|
49
|
+
_log_error: bool
|
50
|
+
_attr_options: Incomplete
|
51
|
+
def __init__(self, reolink_data: ReolinkData, chime: Chime, entity_description: ReolinkChimeSelectEntityDescription) -> None: ...
|
52
|
+
@property
|
53
|
+
def current_option(self) -> str | None: ...
|
54
|
+
async def async_select_option(self, option: str) -> None: ...
|
@@ -0,0 +1,55 @@
|
|
1
|
+
from .entity import ReolinkChannelCoordinatorEntity as ReolinkChannelCoordinatorEntity, ReolinkChannelEntityDescription as ReolinkChannelEntityDescription, ReolinkHostCoordinatorEntity as ReolinkHostCoordinatorEntity, ReolinkHostEntityDescription as ReolinkHostEntityDescription
|
2
|
+
from .util import ReolinkConfigEntry as ReolinkConfigEntry, ReolinkData as ReolinkData
|
3
|
+
from _typeshed import Incomplete
|
4
|
+
from collections.abc import Callable as Callable
|
5
|
+
from dataclasses import dataclass
|
6
|
+
from datetime import date, datetime
|
7
|
+
from decimal import Decimal
|
8
|
+
from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
|
9
|
+
from homeassistant.const import EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE, UnitOfTemperature as UnitOfTemperature
|
10
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
11
|
+
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
|
12
|
+
from homeassistant.helpers.typing import StateType as StateType
|
13
|
+
from reolink_aio.api import Host as Host
|
14
|
+
|
15
|
+
PARALLEL_UPDATES: int
|
16
|
+
|
17
|
+
@dataclass(frozen=True, kw_only=True)
|
18
|
+
class ReolinkSensorEntityDescription(SensorEntityDescription, ReolinkChannelEntityDescription):
|
19
|
+
value: Callable[[Host, int], StateType]
|
20
|
+
def __init__(self, *, key, device_class=..., entity_category=..., entity_registry_enabled_default=..., entity_registry_visible_default=..., force_update=..., icon=..., has_entity_name=..., name=..., translation_key=..., translation_placeholders=..., unit_of_measurement=..., cmd_key=..., cmd_id=..., supported=..., last_reset=..., native_unit_of_measurement=..., options=..., state_class=..., suggested_display_precision=..., suggested_unit_of_measurement=..., value) -> None: ...
|
21
|
+
|
22
|
+
@dataclass(frozen=True, kw_only=True)
|
23
|
+
class ReolinkHostSensorEntityDescription(SensorEntityDescription, ReolinkHostEntityDescription):
|
24
|
+
value: Callable[[Host], StateType]
|
25
|
+
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=..., cmd_key=..., cmd_id=..., supported=..., last_reset=..., native_unit_of_measurement=..., options=..., state_class=..., suggested_display_precision=..., suggested_unit_of_measurement=..., value) -> None: ...
|
26
|
+
|
27
|
+
SENSORS: Incomplete
|
28
|
+
HOST_SENSORS: Incomplete
|
29
|
+
HDD_SENSORS: Incomplete
|
30
|
+
|
31
|
+
async def async_setup_entry(hass: HomeAssistant, config_entry: ReolinkConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
|
32
|
+
|
33
|
+
class ReolinkSensorEntity(ReolinkChannelCoordinatorEntity, SensorEntity):
|
34
|
+
entity_description: ReolinkSensorEntityDescription
|
35
|
+
def __init__(self, reolink_data: ReolinkData, channel: int, entity_description: ReolinkSensorEntityDescription) -> None: ...
|
36
|
+
@property
|
37
|
+
def native_value(self) -> StateType | date | datetime | Decimal: ...
|
38
|
+
|
39
|
+
class ReolinkHostSensorEntity(ReolinkHostCoordinatorEntity, SensorEntity):
|
40
|
+
entity_description: ReolinkHostSensorEntityDescription
|
41
|
+
def __init__(self, reolink_data: ReolinkData, entity_description: ReolinkHostSensorEntityDescription) -> None: ...
|
42
|
+
@property
|
43
|
+
def native_value(self) -> StateType | date | datetime | Decimal: ...
|
44
|
+
|
45
|
+
class ReolinkHddSensorEntity(ReolinkHostCoordinatorEntity, SensorEntity):
|
46
|
+
entity_description: ReolinkSensorEntityDescription
|
47
|
+
_hdd_index: Incomplete
|
48
|
+
_attr_translation_placeholders: Incomplete
|
49
|
+
_attr_unique_id: Incomplete
|
50
|
+
_attr_translation_key: str
|
51
|
+
def __init__(self, reolink_data: ReolinkData, hdd_index: int, entity_description: ReolinkSensorEntityDescription) -> None: ...
|
52
|
+
@property
|
53
|
+
def native_value(self) -> StateType | date | datetime | Decimal: ...
|
54
|
+
@property
|
55
|
+
def available(self) -> bool: ...
|
@@ -0,0 +1,12 @@
|
|
1
|
+
from .const import DOMAIN as DOMAIN
|
2
|
+
from .host import ReolinkHost as ReolinkHost
|
3
|
+
from .util import get_device_uid_and_ch as get_device_uid_and_ch
|
4
|
+
from homeassistant.config_entries import ConfigEntryState as ConfigEntryState
|
5
|
+
from homeassistant.const import ATTR_DEVICE_ID as ATTR_DEVICE_ID
|
6
|
+
from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, callback as callback
|
7
|
+
from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, ServiceValidationError as ServiceValidationError
|
8
|
+
from reolink_aio.api import Chime as Chime
|
9
|
+
|
10
|
+
ATTR_RINGTONE: str
|
11
|
+
|
12
|
+
def async_setup_services(hass: HomeAssistant) -> None: ...
|
@@ -0,0 +1,26 @@
|
|
1
|
+
from .entity import ReolinkChannelCoordinatorEntity as ReolinkChannelCoordinatorEntity, ReolinkChannelEntityDescription as ReolinkChannelEntityDescription
|
2
|
+
from .util import ReolinkConfigEntry as ReolinkConfigEntry, ReolinkData as ReolinkData
|
3
|
+
from _typeshed import Incomplete
|
4
|
+
from dataclasses import dataclass
|
5
|
+
from homeassistant.components.siren import ATTR_DURATION as ATTR_DURATION, ATTR_VOLUME_LEVEL as ATTR_VOLUME_LEVEL, SirenEntity as SirenEntity, SirenEntityDescription as SirenEntityDescription, SirenEntityFeature as SirenEntityFeature
|
6
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
7
|
+
from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, ServiceValidationError as ServiceValidationError
|
8
|
+
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
|
9
|
+
from typing import Any
|
10
|
+
|
11
|
+
PARALLEL_UPDATES: int
|
12
|
+
|
13
|
+
@dataclass(frozen=True)
|
14
|
+
class ReolinkSirenEntityDescription(SirenEntityDescription, ReolinkChannelEntityDescription):
|
15
|
+
def __init__(self, *, key, device_class=..., entity_category=..., entity_registry_enabled_default=..., entity_registry_visible_default=..., force_update=..., icon=..., has_entity_name=..., name=..., translation_key=..., translation_placeholders=..., unit_of_measurement=..., cmd_key=..., cmd_id=..., supported=..., available_tones=...) -> None: ...
|
16
|
+
|
17
|
+
SIREN_ENTITIES: Incomplete
|
18
|
+
|
19
|
+
async def async_setup_entry(hass: HomeAssistant, config_entry: ReolinkConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
|
20
|
+
|
21
|
+
class ReolinkSirenEntity(ReolinkChannelCoordinatorEntity, SirenEntity):
|
22
|
+
_attr_supported_features: Incomplete
|
23
|
+
entity_description: ReolinkSirenEntityDescription
|
24
|
+
def __init__(self, reolink_data: ReolinkData, channel: int, entity_description: ReolinkSirenEntityDescription) -> None: ...
|
25
|
+
async def async_turn_on(self, **kwargs: Any) -> None: ...
|
26
|
+
async def async_turn_off(self, **kwargs: Any) -> None: ...
|
@@ -0,0 +1,65 @@
|
|
1
|
+
from .const import DOMAIN as DOMAIN
|
2
|
+
from .entity import ReolinkChannelCoordinatorEntity as ReolinkChannelCoordinatorEntity, ReolinkChannelEntityDescription as ReolinkChannelEntityDescription, ReolinkChimeCoordinatorEntity as ReolinkChimeCoordinatorEntity, ReolinkChimeEntityDescription as ReolinkChimeEntityDescription, ReolinkHostCoordinatorEntity as ReolinkHostCoordinatorEntity, ReolinkHostEntityDescription as ReolinkHostEntityDescription
|
3
|
+
from .util import ReolinkConfigEntry as ReolinkConfigEntry, ReolinkData as ReolinkData
|
4
|
+
from _typeshed import Incomplete
|
5
|
+
from collections.abc import Callable as Callable
|
6
|
+
from dataclasses import dataclass
|
7
|
+
from homeassistant.components.switch import SwitchEntity as SwitchEntity, SwitchEntityDescription as SwitchEntityDescription
|
8
|
+
from homeassistant.const import EntityCategory as EntityCategory
|
9
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
10
|
+
from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
|
11
|
+
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
|
12
|
+
from reolink_aio.api import Chime as Chime, Host as Host
|
13
|
+
from typing import Any
|
14
|
+
|
15
|
+
PARALLEL_UPDATES: int
|
16
|
+
|
17
|
+
@dataclass(frozen=True, kw_only=True)
|
18
|
+
class ReolinkSwitchEntityDescription(SwitchEntityDescription, ReolinkChannelEntityDescription):
|
19
|
+
method: Callable[[Host, int, bool], Any]
|
20
|
+
value: Callable[[Host, int], bool | 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=..., cmd_key=..., cmd_id=..., supported=..., method, value) -> None: ...
|
22
|
+
|
23
|
+
@dataclass(frozen=True, kw_only=True)
|
24
|
+
class ReolinkNVRSwitchEntityDescription(SwitchEntityDescription, ReolinkHostEntityDescription):
|
25
|
+
method: Callable[[Host, bool], Any]
|
26
|
+
value: Callable[[Host], bool]
|
27
|
+
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=..., cmd_key=..., cmd_id=..., supported=..., method, value) -> None: ...
|
28
|
+
|
29
|
+
@dataclass(frozen=True, kw_only=True)
|
30
|
+
class ReolinkChimeSwitchEntityDescription(SwitchEntityDescription, ReolinkChimeEntityDescription):
|
31
|
+
method: Callable[[Chime, bool], Any]
|
32
|
+
value: Callable[[Chime], bool | None]
|
33
|
+
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=..., cmd_key=..., cmd_id=..., supported=..., method, value) -> None: ...
|
34
|
+
|
35
|
+
SWITCH_ENTITIES: Incomplete
|
36
|
+
NVR_SWITCH_ENTITIES: Incomplete
|
37
|
+
CHIME_SWITCH_ENTITIES: Incomplete
|
38
|
+
DEPRECATED_HDR: Incomplete
|
39
|
+
DEPRECATED_NVR_SWITCHES: Incomplete
|
40
|
+
|
41
|
+
async def async_setup_entry(hass: HomeAssistant, config_entry: ReolinkConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
|
42
|
+
|
43
|
+
class ReolinkSwitchEntity(ReolinkChannelCoordinatorEntity, SwitchEntity):
|
44
|
+
entity_description: ReolinkSwitchEntityDescription
|
45
|
+
def __init__(self, reolink_data: ReolinkData, channel: int, entity_description: ReolinkSwitchEntityDescription) -> None: ...
|
46
|
+
@property
|
47
|
+
def is_on(self) -> bool | None: ...
|
48
|
+
async def async_turn_on(self, **kwargs: Any) -> None: ...
|
49
|
+
async def async_turn_off(self, **kwargs: Any) -> None: ...
|
50
|
+
|
51
|
+
class ReolinkNVRSwitchEntity(ReolinkHostCoordinatorEntity, SwitchEntity):
|
52
|
+
entity_description: ReolinkNVRSwitchEntityDescription
|
53
|
+
def __init__(self, reolink_data: ReolinkData, entity_description: ReolinkNVRSwitchEntityDescription) -> None: ...
|
54
|
+
@property
|
55
|
+
def is_on(self) -> bool: ...
|
56
|
+
async def async_turn_on(self, **kwargs: Any) -> None: ...
|
57
|
+
async def async_turn_off(self, **kwargs: Any) -> None: ...
|
58
|
+
|
59
|
+
class ReolinkChimeSwitchEntity(ReolinkChimeCoordinatorEntity, SwitchEntity):
|
60
|
+
entity_description: ReolinkChimeSwitchEntityDescription
|
61
|
+
def __init__(self, reolink_data: ReolinkData, chime: Chime, entity_description: ReolinkChimeSwitchEntityDescription) -> None: ...
|
62
|
+
@property
|
63
|
+
def is_on(self) -> bool | None: ...
|
64
|
+
async def async_turn_on(self, **kwargs: Any) -> None: ...
|
65
|
+
async def async_turn_off(self, **kwargs: Any) -> None: ...
|
@@ -0,0 +1,71 @@
|
|
1
|
+
from . import DEVICE_UPDATE_INTERVAL as DEVICE_UPDATE_INTERVAL
|
2
|
+
from .entity import ReolinkChannelCoordinatorEntity as ReolinkChannelCoordinatorEntity, ReolinkChannelEntityDescription as ReolinkChannelEntityDescription, ReolinkHostCoordinatorEntity as ReolinkHostCoordinatorEntity, ReolinkHostEntityDescription as ReolinkHostEntityDescription
|
3
|
+
from .util import ReolinkConfigEntry as ReolinkConfigEntry, ReolinkData as ReolinkData
|
4
|
+
from _typeshed import Incomplete
|
5
|
+
from dataclasses import dataclass
|
6
|
+
from homeassistant.components.update import UpdateDeviceClass as UpdateDeviceClass, UpdateEntity as UpdateEntity, UpdateEntityDescription as UpdateEntityDescription, UpdateEntityFeature as UpdateEntityFeature
|
7
|
+
from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, HomeAssistant as HomeAssistant
|
8
|
+
from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
|
9
|
+
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
|
10
|
+
from homeassistant.helpers.event import async_call_later as async_call_later
|
11
|
+
from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity, DataUpdateCoordinator as DataUpdateCoordinator
|
12
|
+
from typing import Any
|
13
|
+
|
14
|
+
PARALLEL_UPDATES: int
|
15
|
+
RESUME_AFTER_INSTALL: int
|
16
|
+
POLL_AFTER_INSTALL: int
|
17
|
+
POLL_PROGRESS: int
|
18
|
+
|
19
|
+
@dataclass(frozen=True, kw_only=True)
|
20
|
+
class ReolinkUpdateEntityDescription(UpdateEntityDescription, ReolinkChannelEntityDescription):
|
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=..., cmd_key=..., cmd_id=..., supported=..., display_precision=...) -> None: ...
|
22
|
+
|
23
|
+
@dataclass(frozen=True, kw_only=True)
|
24
|
+
class ReolinkHostUpdateEntityDescription(UpdateEntityDescription, ReolinkHostEntityDescription):
|
25
|
+
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=..., cmd_key=..., cmd_id=..., supported=..., display_precision=...) -> None: ...
|
26
|
+
|
27
|
+
UPDATE_ENTITIES: Incomplete
|
28
|
+
HOST_UPDATE_ENTITIES: Incomplete
|
29
|
+
|
30
|
+
async def async_setup_entry(hass: HomeAssistant, config_entry: ReolinkConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
|
31
|
+
|
32
|
+
class ReolinkUpdateBaseEntity(CoordinatorEntity[DataUpdateCoordinator[None]], UpdateEntity):
|
33
|
+
_attr_release_url: str
|
34
|
+
_channel: Incomplete
|
35
|
+
_host: Incomplete
|
36
|
+
_cancel_update: Incomplete
|
37
|
+
_cancel_resume: Incomplete
|
38
|
+
_cancel_progress: Incomplete
|
39
|
+
_installing: bool
|
40
|
+
_reolink_data: Incomplete
|
41
|
+
def __init__(self, reolink_data: ReolinkData, channel: int | None, coordinator: DataUpdateCoordinator[None]) -> None: ...
|
42
|
+
@property
|
43
|
+
def installed_version(self) -> str | None: ...
|
44
|
+
@property
|
45
|
+
def latest_version(self) -> str | None: ...
|
46
|
+
@property
|
47
|
+
def in_progress(self) -> bool: ...
|
48
|
+
@property
|
49
|
+
def update_percentage(self) -> int: ...
|
50
|
+
@property
|
51
|
+
def supported_features(self) -> UpdateEntityFeature: ...
|
52
|
+
@property
|
53
|
+
def available(self) -> bool: ...
|
54
|
+
def version_is_newer(self, latest_version: str, installed_version: str) -> bool: ...
|
55
|
+
async def async_release_notes(self) -> str | None: ...
|
56
|
+
async def async_install(self, version: str | None, backup: bool, **kwargs: Any) -> None: ...
|
57
|
+
async def _pause_update_coordinator(self) -> None: ...
|
58
|
+
async def _resume_update_coordinator(self, *args: Any) -> None: ...
|
59
|
+
async def _async_update_progress(self, *args: Any) -> None: ...
|
60
|
+
async def _async_update_future(self, *args: Any) -> None: ...
|
61
|
+
async def async_added_to_hass(self) -> None: ...
|
62
|
+
async def async_will_remove_from_hass(self) -> None: ...
|
63
|
+
|
64
|
+
class ReolinkUpdateEntity(ReolinkUpdateBaseEntity, ReolinkChannelCoordinatorEntity):
|
65
|
+
entity_description: ReolinkUpdateEntityDescription
|
66
|
+
_channel: int
|
67
|
+
def __init__(self, reolink_data: ReolinkData, channel: int, entity_description: ReolinkUpdateEntityDescription) -> None: ...
|
68
|
+
|
69
|
+
class ReolinkHostUpdateEntity(ReolinkUpdateBaseEntity, ReolinkHostCoordinatorEntity):
|
70
|
+
entity_description: ReolinkHostUpdateEntityDescription
|
71
|
+
def __init__(self, reolink_data: ReolinkData, entity_description: ReolinkHostUpdateEntityDescription) -> None: ...
|
@@ -0,0 +1,18 @@
|
|
1
|
+
from .const import DOMAIN as DOMAIN
|
2
|
+
from .host import ReolinkHost as ReolinkHost
|
3
|
+
from dataclasses import dataclass
|
4
|
+
from homeassistant import config_entries as config_entries
|
5
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
6
|
+
from homeassistant.helpers import device_registry as dr
|
7
|
+
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator
|
8
|
+
|
9
|
+
type ReolinkConfigEntry = config_entries.ConfigEntry[ReolinkData]
|
10
|
+
@dataclass
|
11
|
+
class ReolinkData:
|
12
|
+
host: ReolinkHost
|
13
|
+
device_coordinator: DataUpdateCoordinator[None]
|
14
|
+
firmware_coordinator: DataUpdateCoordinator[None]
|
15
|
+
def __init__(self, host, device_coordinator, firmware_coordinator) -> None: ...
|
16
|
+
|
17
|
+
def is_connected(hass: HomeAssistant, config_entry: config_entries.ConfigEntry) -> bool: ...
|
18
|
+
def get_device_uid_and_ch(device: dr.DeviceEntry, host: ReolinkHost) -> tuple[list[str], int | None, bool]: ...
|