eufy-security-ws
Version:
Node WebSocket server implementation to integrate Eufy Security devices
186 lines • 7.09 kB
TypeScript
import { Device, DeviceType } from "eufy-security-client";
import { Modify } from "../state.js";
export interface DeviceStateSchema0 {
name: string;
model: string;
serialNumber: string;
hardwareVersion: string;
softwareVersion: string;
stationSerialNumber: string;
state?: number;
battery?: number;
batteryTemperature?: number;
batteryLow?: boolean;
lastChargingDays?: number;
lastChargingTotalEvents?: number;
lastChargingRecordedEvents?: number;
lastChargingFalseEvents?: number;
batteryUsageLastWeek?: number;
motionDetected?: boolean;
personDetected?: boolean;
personName?: string;
soundDetected?: boolean;
petDetected?: boolean;
cryingDetected?: boolean;
ringing?: boolean;
locked?: boolean;
sensorOpen?: boolean;
sensorChangeTime?: number;
enabled: boolean;
antitheftDetection?: boolean;
autoNightvision?: boolean;
ledStatus?: boolean;
motionDetection?: boolean;
soundDetection?: boolean;
petDetection?: boolean;
rtspStream?: boolean;
watermark?: number;
lockStatus?: number;
motionSensorPIREvent?: number;
wifiRSSI?: number;
pictureUrl?: string;
}
type DeviceStateSchema1 = Modify<DeviceStateSchema0, {
type: DeviceType;
}>;
type DeviceStateSchema3 = Modify<DeviceStateSchema1, {
motionDetectionType?: number;
motionDetectionSensivity?: number;
motionTracking?: boolean;
soundDetectionType?: number;
soundDetectionSensivity?: number;
light?: boolean;
microphone?: boolean;
speaker?: boolean;
speakerVolume?: number;
ringtoneVolume?: number;
audioRecording?: boolean;
powerSource?: number;
powerWorkingMode?: number;
recordingEndClipMotionStops?: boolean;
recordingClipLength?: number;
recordingRetriggerInterval?: number;
videoStreamingQuality?: number;
videoRecordingQuality?: number;
videoWDR?: boolean;
lightSettingsEnable?: boolean;
lightSettingsBrightnessManual?: number;
lightSettingsBrightnessMotion?: number;
lightSettingsBrightnessSchedule?: number;
lightSettingsMotionTriggered?: boolean;
lightSettingsMotionTriggeredDistance?: number;
lightSettingsMotionTriggeredTimer?: number;
chimeIndoor?: boolean;
chimeHomebase?: boolean;
chimeHomebaseRingtoneVolume?: number;
chimeHomebaseRingtoneType?: number;
notificationType?: number;
rotationSpeed?: number;
notificationPerson?: boolean;
notificationPet?: boolean;
notificationAllOtherMotion?: boolean;
notificationCrying?: boolean;
notificationAllSound?: boolean;
notificationIntervalTime?: boolean;
notificationRing?: boolean;
notificationMotion?: boolean;
}>;
type DeviceStateSchema4 = Omit<Modify<DeviceStateSchema3, {
chirpVolume?: number;
chirpTone?: number;
motionDetectionSensitivity?: number;
soundDetectionSensitivity?: number;
videoHdr?: boolean;
videoDistortionCorrection?: boolean;
videoRingRecord?: number;
statusLed?: boolean;
rtspStreamUrl?: string;
chargingStatus?: number;
wifiSignalLevel?: number;
}>, "motionDetectionSensivity" | "soundDetectionSensivity" | "ledStatus">;
type DeviceStateSchema5 = Modify<DeviceStateSchema4, {
batteryIsCharging?: boolean;
nightvision?: number;
}>;
type DeviceStateSchema6 = Modify<DeviceStateSchema5, {
motionDetectionRange?: boolean;
motionDetectionRangeStandardSensitivity?: number;
motionDetectionRangeAdvancedLeftSensitivity?: number;
motionDetectionRangeAdvancedMiddleSensitivity?: number;
motionDetectionRangeAdvancedRightSensitivity?: number;
motionDetectionTestMode?: boolean;
motionTrackingSensitivity?: number;
motionAutoCruise?: boolean;
motionOutOfViewDetection?: boolean;
lightSettingsColorTemperatureManual?: number;
lightSettingsColorTemperatureMotion?: number;
lightSettingsColorTemperatureSchedule?: number;
lightSettingsMotionActivationMode?: number;
videoNightvisionImageAdjustment?: boolean;
videoColorNightvision?: boolean;
autoCalibration?: boolean;
}>;
type DeviceStateSchema7 = Modify<DeviceStateSchema6, {
lockSettingsAutoLock?: boolean;
lockSettingsAutoLockTimer?: number;
lockSettingsAutoLockSchedule?: boolean;
lockSettingsAutoLockScheduleStartTime?: string;
lockSettingsAutoLockScheduleEndTime?: string;
lockSettingsOneTouchLocking?: boolean;
lockSettingsWrongTryProtection?: boolean;
lockSettingsWrongTryAttempts?: number;
lockSettingsWrongTryLockdownTime?: number;
lockSettingsScramblePasscode?: boolean;
lockSettingsSound?: number;
lockSettingsNotification?: boolean;
lockSettingsNotificationUnlocked?: boolean;
lockSettingsNotificationLocked?: boolean;
}>;
type DeviceStateSchema8 = Modify<DeviceStateSchema7, {
notificationRadarDetector?: boolean;
continuousRecording?: boolean;
continuousRecordingType?: number;
loiteringDetection?: boolean;
loiteringDetectionRange?: number;
loiteringDetectionLength?: number;
motionDetectionSensitivityMode?: number;
motionDetectionSensitivityStandard?: number;
motionDetectionSensitivityAdvancedA?: number;
motionDetectionSensitivityAdvancedB?: number;
motionDetectionSensitivityAdvancedC?: number;
motionDetectionSensitivityAdvancedD?: number;
motionDetectionSensitivityAdvancedE?: number;
motionDetectionSensitivityAdvancedF?: number;
motionDetectionSensitivityAdvancedG?: number;
motionDetectionSensitivityAdvancedH?: number;
loiteringCustomResponsePhoneNotification?: boolean;
loiteringCustomResponseAutoVoiceResponse?: boolean;
loiteringCustomResponseAutoVoiceResponseVoice?: number;
loiteringCustomResponseHomeBaseNotification?: boolean;
loiteringCustomResponseTimeFrom?: string;
loiteringCustomResponseTimeTo?: string;
deliveryGuard?: boolean;
deliveryGuardPackageGuarding?: boolean;
deliveryGuardPackageGuardingVoiceResponseVoice?: number;
deliveryGuardPackageGuardingActivatedTimeFrom?: string;
deliveryGuardPackageGuardingActivatedTimeTo?: string;
deliveryGuardUncollectedPackageAlert?: boolean;
deliveryGuardUncollectedPackageAlertTimeToCheck?: string;
deliveryGuardPackageLiveCheckAssistance?: boolean;
dualCamWatchViewMode?: number;
ringAutoResponse?: boolean;
ringAutoResponseVoiceResponse?: boolean;
ringAutoResponseVoiceResponseVoice?: number;
ringAutoResponseTimeFrom?: string;
ringAutoResponseTimeTo?: string;
defaultAngle?: boolean;
defaultAngleIdleTime?: number;
soundDetectionRoundLook?: boolean;
}>;
type DeviceStateSchema9 = Modify<DeviceStateSchema8, {
imageMirrored?: boolean;
}>;
export type DeviceState = DeviceStateSchema0 | DeviceStateSchema1 | DeviceStateSchema3 | DeviceStateSchema4 | DeviceStateSchema5 | DeviceStateSchema6 | DeviceStateSchema7 | DeviceStateSchema8 | DeviceStateSchema9;
export declare const dumpDevice: (device: Device, schemaVersion: number) => DeviceState;
export {};
//# sourceMappingURL=state.d.ts.map