eufy-security-client-fork
Version:
Client to comunicate with Eufy-Security devices
267 lines (266 loc) • 16.5 kB
TypeScript
import { TypedEmitter } from "tiny-typed-emitter";
import { HTTPApi } from "./api";
import { AlarmTone, NotificationSwitchMode, DeviceType, FloodlightMotionTriggeredDistance, GuardMode, NotificationType, PowerSource, PropertyName, TimeFormat, CommandName, VideoTypeStoreToNAS } from "./types";
import { SnoozeDetail, StationListResponse } from "./models";
import { IndexedProperty, PropertyMetadataAny, PropertyValue, PropertyValues, RawValues, StationEvents } from "./interfaces";
import { P2PConnectionType, PanTiltDirection, VideoCodec, WatermarkSetting1, WatermarkSetting2, WatermarkSetting3, WatermarkSetting4 } from "../p2p/types";
import { Device } from "./device";
import { PushMessage } from "../push/models";
export declare class Station extends TypedEmitter<StationEvents> {
private api;
private rawStation;
private log;
private p2pSession;
private properties;
private rawProperties;
private ready;
private currentDelay;
private reconnectTimeout?;
private terminating;
private p2pConnectionType;
static readonly CHANNEL: number;
static readonly CHANNEL_INDOOR: number;
constructor(api: HTTPApi, station: StationListResponse);
getStateID(state: string, level?: number): string;
getStateChannel(): string;
getRawStation(): StationListResponse;
update(station: StationListResponse, cloudOnlyProperties?: boolean): void;
updateProperty(name: string, value: PropertyValue): boolean;
updateRawProperties(values: RawValues): void;
updateRawProperty(type: number, value: string): boolean;
protected convertRawPropertyValue(property: PropertyMetadataAny, value: string): PropertyValue;
getPropertyMetadata(name: string): PropertyMetadataAny;
getPropertyValue(name: string): PropertyValue;
hasPropertyValue(name: string): boolean;
getRawProperty(type: number): string;
getRawProperties(): RawValues;
getProperties(): PropertyValues;
getPropertiesMetadata(): IndexedProperty;
hasProperty(name: string): boolean;
getCommands(): Array<CommandName>;
hasCommand(name: CommandName): boolean;
isStation(): boolean;
isDeviceStation(): boolean;
isIntegratedDevice(): boolean;
getDeviceType(): number;
getHardwareVersion(): string;
getMACAddress(): string;
getModel(): string;
getName(): string;
getSerial(): string;
getSoftwareVersion(): string;
getIPAddress(): string;
getLANIPAddress(): PropertyValue;
getGuardMode(): PropertyValue;
getCurrentMode(): PropertyValue;
processPushNotification(message: PushMessage): void;
isConnected(): boolean;
close(): void;
isEnergySavingDevice(): boolean;
connect(): Promise<void>;
private onFinishDownload;
private onStartDownload;
private onStopLivestream;
private onErrorLivestream;
private onStartLivestream;
private onStopRTSPLivestream;
private onStartRTSPLivestream;
private onWifiRssiChanged;
private onRTSPUrl;
private onParameter;
private onAlarmDelay;
private onAlarmArmed;
private onAlarmEvent;
setGuardMode(mode: GuardMode): Promise<void>;
getCameraInfo(): Promise<void>;
getStorageInfo(): Promise<void>;
private onAlarmMode;
private getArmDelay;
private _getDeviceSerial;
private onCameraInfo;
private onCommandResponse;
private onSecondaryCommandResponse;
private onConnect;
private onDisconnect;
private onTimeout;
private getCurrentDelay;
private resetCurrentDelay;
private scheduleReconnect;
rebootHUB(): Promise<void>;
setStatusLed(device: Device, value: boolean): Promise<void>;
setAutoNightVision(device: Device, value: boolean): Promise<void>;
setNightVision(device: Device, value: number): Promise<void>;
setMotionDetection(device: Device, value: boolean): Promise<void>;
setSoundDetection(device: Device, value: boolean): Promise<void>;
setSoundDetectionType(device: Device, value: number): Promise<void>;
setSoundDetectionSensitivity(device: Device, value: number): Promise<void>;
setPetDetection(device: Device, value: boolean): Promise<void>;
panAndTilt(device: Device, direction: PanTiltDirection, command?: number): Promise<void>;
switchLight(device: Device, value: boolean): Promise<void>;
setMotionDetectionSensitivity(device: Device, value: number): Promise<void>;
setMotionDetectionType(device: Device, value: number): Promise<void>;
setMotionZone(device: Device, value: string): Promise<void>;
setMotionTracking(device: Device, value: boolean): Promise<void>;
setPanAndTiltRotationSpeed(device: Device, value: number): Promise<void>;
setMicMute(device: Device, value: boolean): Promise<void>;
setAudioRecording(device: Device, value: boolean): Promise<void>;
enableSpeaker(device: Device, value: boolean): Promise<void>;
setSpeakerVolume(device: Device, value: number): Promise<void>;
setRingtoneVolume(device: Device, value: number): Promise<void>;
enableIndoorChime(device: Device, value: boolean): Promise<void>;
enableHomebaseChime(device: Device, value: boolean): Promise<void>;
setHomebaseChimeRingtoneVolume(device: Device, value: number): Promise<void>;
setHomebaseChimeRingtoneType(device: Device, value: number): Promise<void>;
setNotificationType(device: Device, value: NotificationType): Promise<void>;
setNotificationPerson(device: Device, value: boolean): Promise<void>;
setNotificationPet(device: Device, value: boolean): Promise<void>;
setNotificationAllOtherMotion(device: Device, value: boolean): Promise<void>;
setNotificationAllSound(device: Device, value: boolean): Promise<void>;
setNotificationCrying(device: Device, value: boolean): Promise<void>;
setNotificationRing(device: Device, value: boolean): Promise<void>;
setNotificationMotion(device: Device, value: boolean): Promise<void>;
setPowerSource(device: Device, value: PowerSource): Promise<void>;
setPowerWorkingMode(device: Device, value: number): Promise<void>;
setRecordingClipLength(device: Device, value: number): Promise<void>;
setRecordingRetriggerInterval(device: Device, value: number): Promise<void>;
setRecordingEndClipMotionStops(device: Device, value: boolean): Promise<void>;
setVideoStreamingQuality(device: Device, value: number): Promise<void>;
setVideoRecordingQuality(device: Device, value: number): Promise<void>;
setWDR(device: Device, value: boolean): Promise<void>;
setFloodlightLightSettingsEnable(device: Device, value: boolean): Promise<void>;
setFloodlightLightSettingsBrightnessManual(device: Device, value: number): Promise<void>;
setFloodlightLightSettingsBrightnessMotion(device: Device, value: number): Promise<void>;
setFloodlightLightSettingsBrightnessSchedule(device: Device, value: number): Promise<void>;
setFloodlightLightSettingsMotionTriggered(device: Device, value: boolean): Promise<void>;
setFloodlightLightSettingsMotionTriggeredDistance(device: Device, value: FloodlightMotionTriggeredDistance): Promise<void>;
setFloodlightLightSettingsMotionTriggeredTimer(device: Device, seconds: number): Promise<void>;
triggerStationAlarmSound(seconds: number): Promise<void>;
resetStationAlarmSound(): Promise<void>;
triggerDeviceAlarmSound(device: Device, seconds: number): Promise<void>;
resetDeviceAlarmSound(device: Device): Promise<void>;
setStationAlarmRingtoneVolume(value: number): Promise<void>;
setStationAlarmTone(value: AlarmTone): Promise<void>;
setStationPromptVolume(value: number): Promise<void>;
setStationNotificationSwitchMode(mode: NotificationSwitchMode, value: boolean): Promise<void>;
setStationNotificationStartAlarmDelay(value: boolean): Promise<void>;
setStationTimeFormat(value: TimeFormat): Promise<void>;
setRTSPStream(device: Device, value: boolean): Promise<void>;
setAntiTheftDetection(device: Device, value: boolean): Promise<void>;
setWatermark(device: Device, value: WatermarkSetting1 | WatermarkSetting2 | WatermarkSetting3 | WatermarkSetting4): Promise<void>;
enableDevice(device: Device, value: boolean): Promise<void>;
startDownload(device: Device, path: string, cipher_id: number): Promise<void>;
cancelDownload(device: Device): Promise<void>;
startLivestream(device: Device, videoCodec?: VideoCodec): Promise<void>;
stopLivestream(device: Device): Promise<void>;
isLiveStreaming(device: Device): boolean;
isDownloading(device: Device): boolean;
quickResponse(device: Device, voice_id: number): Promise<void>;
setChirpVolume(device: Device, value: number): Promise<void>;
setChirpTone(device: Device, value: number): Promise<void>;
setHDR(device: Device, value: boolean): Promise<void>;
setDistortionCorrection(device: Device, value: boolean): Promise<void>;
setRingRecord(device: Device, value: number): Promise<void>;
lockDevice(device: Device, value: boolean): Promise<void>;
setStationSwitchModeWithAccessCode(value: boolean): Promise<void>;
setStationAutoEndAlarm(value: boolean): Promise<void>;
setStationTurnOffAlarmWithButton(value: boolean): Promise<void>;
startRTSPStream(device: Device): Promise<void>;
stopRTSPStream(device: Device): Promise<void>;
setMotionDetectionRange(device: Device, type: number): Promise<void>;
setMotionDetectionRangeStandardSensitivity(device: Device, sensitivity: number): Promise<void>;
setMotionDetectionRangeAdvancedLeftSensitivity(device: Device, sensitivity: number): Promise<void>;
setMotionDetectionRangeAdvancedMiddleSensitivity(device: Device, sensitivity: number): Promise<void>;
setMotionDetectionRangeAdvancedRightSensitivity(device: Device, sensitivity: number): Promise<void>;
setMotionDetectionTestMode(device: Device, enabled: boolean): Promise<void>;
setMotionTrackingSensitivity(device: Device, sensitivity: number): Promise<void>;
setMotionAutoCruise(device: Device, enabled: boolean): Promise<void>;
setMotionOutOfViewDetection(device: Device, enabled: boolean): Promise<void>;
setLightSettingsColorTemperatureManual(device: Device, value: number): Promise<void>;
setLightSettingsColorTemperatureMotion(device: Device, value: number): Promise<void>;
setLightSettingsColorTemperatureSchedule(device: Device, value: number): Promise<void>;
setLightSettingsMotionActivationMode(device: Device, value: number): Promise<void>;
setVideoNightvisionImageAdjustment(device: Device, enabled: boolean): Promise<void>;
setVideoColorNightvision(device: Device, enabled: boolean): Promise<void>;
setAutoCalibration(device: Device, enabled: boolean): Promise<void>;
isRTSPLiveStreaming(device: Device): boolean;
setConnectionType(type: P2PConnectionType): void;
getConnectionType(): P2PConnectionType;
private onRuntimeState;
private onChargingState;
hasDevice(deviceSN: string): boolean;
hasDeviceWithType(deviceType: DeviceType): boolean;
private onFloodlightManualSwitch;
calibrateLock(device: Device): Promise<void>;
private convertAdvancedLockSettingValue;
private getAdvancedLockSettingsPayload;
private getAdvancedLockSettingName;
setAdvancedLockParams(device: Device, property: PropertyName, value: PropertyValue): Promise<void>;
setLoiteringDetection(device: Device, value: boolean): Promise<void>;
setLoiteringDetectionRange(device: Device, value: number): Promise<void>;
setLoiteringDetectionLength(device: Device, value: number): Promise<void>;
private _setMotionDetectionSensitivity;
private _getMotionDetectionSensitivityAdvanced;
setMotionDetectionSensitivityMode(device: Device, value: number): Promise<void>;
setMotionDetectionSensitivityStandard(device: Device, value: number): Promise<void>;
setMotionDetectionSensitivityAdvancedA(device: Device, value: number): Promise<void>;
setMotionDetectionSensitivityAdvancedB(device: Device, value: number): Promise<void>;
setMotionDetectionSensitivityAdvancedC(device: Device, value: number): Promise<void>;
setMotionDetectionSensitivityAdvancedD(device: Device, value: number): Promise<void>;
setMotionDetectionSensitivityAdvancedE(device: Device, value: number): Promise<void>;
setMotionDetectionSensitivityAdvancedF(device: Device, value: number): Promise<void>;
setMotionDetectionSensitivityAdvancedG(device: Device, value: number): Promise<void>;
setMotionDetectionSensitivityAdvancedH(device: Device, value: number): Promise<void>;
private _setLoiteringCustomResponse;
setLoiteringCustomResponseAutoVoiceResponse(device: Device, value: boolean): Promise<void>;
setLoiteringCustomResponseAutoVoiceResponseVoice(device: Device, value: number): Promise<void>;
setLoiteringCustomResponseHomeBaseNotification(device: Device, value: boolean): Promise<void>;
setLoiteringCustomResponsePhoneNotification(device: Device, value: boolean): Promise<void>;
setLoiteringCustomResponseTimeFrom(device: Device, value: string): Promise<void>;
setLoiteringCustomResponseTimeTo(device: Device, value: string): Promise<void>;
setDeliveryGuard(device: Device, value: boolean): Promise<void>;
setDeliveryGuardPackageGuarding(device: Device, value: boolean): Promise<void>;
setDeliveryGuardPackageGuardingVoiceResponseVoice(device: Device, value: number): Promise<void>;
private setDeliveryGuardPackageGuardingActivatedTime;
setDeliveryGuardPackageGuardingActivatedTimeFrom(device: Device, value: string): Promise<void>;
setDeliveryGuardPackageGuardingActivatedTimeTo(device: Device, value: string): Promise<void>;
setDeliveryGuardUncollectedPackageAlert(device: Device, value: boolean): Promise<void>;
setDeliveryGuardUncollectedPackageAlertTimeToCheck(device: Device, value: string): Promise<void>;
setDeliveryGuardPackageLiveCheckAssistance(device: Device, value: boolean): Promise<void>;
setDualCamWatchViewMode(device: Device, value: number): Promise<void>;
private _setRingAutoResponse;
setRingAutoResponse(device: Device, value: boolean): Promise<void>;
setRingAutoResponseVoiceResponse(device: Device, value: boolean): Promise<void>;
setRingAutoResponseVoiceResponseVoice(device: Device, value: number): Promise<void>;
setRingAutoResponseTimeFrom(device: Device, value: string): Promise<void>;
setRingAutoResponseTimeTo(device: Device, value: string): Promise<void>;
setNotificationRadarDetector(device: Device, value: boolean): Promise<void>;
calibrate(device: Device): Promise<void>;
setContinuousRecording(device: Device, value: boolean): Promise<void>;
setContinuousRecordingType(device: Device, value: number): Promise<void>;
enableDefaultAngle(device: Device, value: boolean): Promise<void>;
setDefaultAngleIdleTime(device: Device, value: number): Promise<void>;
setDefaultAngle(device: Device): Promise<void>;
setPrivacyAngle(device: Device): Promise<void>;
setNotificationIntervalTime(device: Device, value: number): Promise<void>;
setSoundDetectionRoundLook(device: Device, value: boolean): Promise<void>;
startTalkback(device: Device): Promise<void>;
stopTalkback(device: Device): Promise<void>;
private onTalkbackStarted;
private onTalkbackStopped;
private onTalkbackError;
isTalkbackOngoing(device: Device): boolean;
setScramblePasscode(device: Device, value: boolean): Promise<void>;
setWrongTryProtection(device: Device, value: boolean): Promise<void>;
setWrongTryAttempts(device: Device, value: number): Promise<void>;
setWrongTryLockdownTime(device: Device, value: number): Promise<void>;
private _sendSmartSafeCommand;
setSmartSafeParams(device: Device, property: PropertyName, value: PropertyValue): Promise<void>;
unlock(device: Device): Promise<void>;
private onDeviceShakeAlarm;
private onDevice911Alarm;
private onDeviceJammed;
private onDeviceLowBattery;
private onDeviceWrongTryProtectAlarm;
setVideoTypeStoreToNAS(device: Device, value: VideoTypeStoreToNAS): Promise<void>;
snooze(device: Device, value: SnoozeDetail): Promise<void>;
}