eufy-security-client
Version:
Client to comunicate with Eufy-Security devices
180 lines (179 loc) • 7.27 kB
TypeScript
import { TypedEmitter } from "tiny-typed-emitter";
import { EufySecurityEvents, EufySecurityConfig } from "./interfaces";
import { HTTPApi } from "./http/api";
import { LoginOptions, Schedule } from "./http/interfaces";
import { Station } from "./http/station";
import { PushNotificationService } from "./push/service";
import { Credentials } from "./push/models";
import { Device } from "./http/device";
import { P2PConnectionType } from "./p2p/types";
import { Logger, LoggingCategories } from "./logging";
import { LogLevel } from "typescript-logging";
export declare class EufySecurity extends TypedEmitter<EufySecurityEvents> {
private config;
private api;
private houses;
private stations;
private devices;
private readonly P2P_REFRESH_INTERVAL_MIN;
private cameraMaxLivestreamSeconds;
private cameraStationLivestreamTimeout;
private pushService;
private mqttService;
private pushCloudRegistered;
private pushCloudChecked;
private persistentFile;
private persistentData;
private connected;
private retries;
private refreshEufySecurityCloudTimeout?;
private refreshEufySecurityP2PTimeout;
private deviceSnoozeTimeout;
private loadingEmitter;
private stationsLoaded?;
private devicesLoaded?;
private constructor();
static initialize(config: EufySecurityConfig, log?: Logger): Promise<EufySecurity>;
protected _initializeInternals(): Promise<void>;
private initMQTT;
setLoggingLevel(category: LoggingCategories, level: LogLevel): void;
getLoggingLevel(category: LoggingCategories): number;
setInternalLogger(logger: Logger): void;
getInternalLogger(): Logger | undefined;
getPushService(): PushNotificationService;
private addStation;
private removeStation;
private updateStation;
private addDevice;
private removeDevice;
private updateDevice;
getDevices(): Promise<Array<Device>>;
getDevicesFromStation(stationSN: string): Promise<Array<Device>>;
getDevice(deviceSN: string): Promise<Device>;
getStationDevice(stationSN: string, channel: number): Promise<Device>;
getStations(): Promise<Array<Station>>;
getStation(stationSN: string): Promise<Station>;
getApi(): HTTPApi;
connectToStation(stationSN: string, p2pConnectionType?: P2PConnectionType): Promise<void>;
isStationConnected(stationSN: string): Promise<boolean>;
isStationEnergySavingDevice(stationSN: string): Promise<boolean>;
private handleHouses;
private handleHubs;
private refreshP2PData;
private onStationConnect;
private onStationConnectionError;
private onStationClose;
private handleDevices;
refreshCloudData(): Promise<void>;
close(): void;
setCameraMaxLivestreamDuration(seconds: number): void;
getCameraMaxLivestreamDuration(): number;
registerPushNotifications(credentials?: Credentials, persistentIds?: string[]): Promise<void>;
connect(options?: LoginOptions): Promise<void>;
getPushPersistentIds(): string[];
private updateDeviceProperties;
private onAPIClose;
private onAPIConnect;
private onAPIConnectionError;
startStationLivestream(deviceSN: string): Promise<void>;
stopStationLivestream(deviceSN: string): Promise<void>;
private writePersistentData;
private saveCloudToken;
private savePushCredentials;
private savePushPersistentIds;
getVersion(): string;
isPushConnected(): boolean;
isMQTTConnected(): boolean;
isConnected(): boolean;
private processInvitations;
private onPushMessage;
startStationDownload(deviceSN: string, path: string, cipherID: number): Promise<void>;
cancelStationDownload(deviceSN: string): Promise<void>;
getConfig(): EufySecurityConfig;
setDeviceProperty(deviceSN: string, name: string, value: unknown): Promise<void>;
setStationProperty(stationSN: string, name: string, value: unknown): Promise<void>;
private onStartStationLivestream;
private onStopStationLivestream;
private onErrorStationLivestream;
private onStartStationRTSPLivestream;
private onStopStationRTSPLivestream;
private onStationStartDownload;
private onStationFinishDownload;
private onStationCommandResult;
private onStationSecondaryCommandResult;
private onStationRtspUrl;
private onStationGuardMode;
private onStationCurrentMode;
private onStationPropertyChanged;
private onStationRawPropertyChanged;
private onStationAlarmEvent;
private onStationAlarmDelayEvent;
private onStationArmDelayEvent;
private onStationAlarmArmedEvent;
private onDevicePropertyChanged;
private onDeviceRawPropertyChanged;
private onDeviceCryingDetected;
private onDeviceSoundDetected;
private onDevicePetDetected;
private onDeviceVehicleDetected;
private onDeviceMotionDetected;
private onDevicePersonDetected;
private onDeviceRings;
private onDeviceLocked;
private onDeviceOpen;
private onDevicePackageDelivered;
private onDevicePackageStranded;
private onDevicePackageTaken;
private onDeviceSomeoneLoitering;
private onDeviceRadarMotionDetected;
private onDevice911Alarm;
private onDeviceShakeAlarm;
private onDeviceWrongTryProtectAlarm;
private onDeviceLongTimeNotClose;
private onDeviceLowBattery;
private onDeviceJammed;
private onDeviceStrangerPersonDetected;
private onDeviceDogDetected;
private onDeviceDogLickDetected;
private onDeviceDogPoopDetected;
private onDeviceReady;
private onStationRuntimeState;
private onStationChargingState;
private onStationWifiRssi;
private onCaptchaRequest;
private onFloodlightManualSwitch;
private onAuthTokenInvalidated;
private onTfaRequest;
private onStationTalkbackStart;
private onStationTalkbackStop;
private onStationTalkbackError;
startStationTalkback(deviceSN: string): Promise<void>;
stopStationTalkback(deviceSN: string): Promise<void>;
private onStationDeviceShakeAlarm;
private onStationDevice911Alarm;
private onStationDeviceJammed;
private onStationDeviceLowBattery;
private onStationDeviceWrongTryProtectAlarm;
addUser(deviceSN: string, username: string, passcode: string, schedule?: Schedule): Promise<void>;
deleteUser(deviceSN: string, username: string): Promise<void>;
updateUser(deviceSN: string, username: string, newUsername: string): Promise<void>;
updateUserPasscode(deviceSN: string, username: string, passcode: string): Promise<void>;
updateUserSchedule(deviceSN: string, username: string, schedule: Schedule): Promise<void>;
private onStationDevicePinVerified;
private onStationSdInfoEx;
private _emitStationImageDownload;
private onStationImageDownload;
private onStationDatabaseQueryLatest;
private onStationDatabaseQueryLocal;
private onStationDatabaseCountByDate;
private onStationDatabaseDelete;
private onStationSensorStatus;
private onStationGarageDoorStatus;
private onStorageInfoHb3;
private onDeviceTampering;
private onDeviceLowTemperature;
private onDeviceHighTemperature;
private onDevicePinIncorrect;
private onDeviceLidStuck;
private onDeviceBatteryFullyCharged;
}