UNPKG

eufy-security-ws

Version:

Node WebSocket server implementation to integrate Eufy Security devices

202 lines 17.5 kB
import { PropertyName } from "eufy-security-client"; export const dumpDevice = (device, schemaVersion) => { const base = { name: device.getPropertyValue(PropertyName.Name), model: device.getPropertyValue(PropertyName.Model), serialNumber: device.getPropertyValue(PropertyName.SerialNumber), hardwareVersion: device.getPropertyValue(PropertyName.HardwareVersion), softwareVersion: device.getPropertyValue(PropertyName.SoftwareVersion), stationSerialNumber: device.getPropertyValue(PropertyName.DeviceStationSN), enabled: device.getPropertyValue(PropertyName.DeviceEnabled), state: device.getPropertyValue(PropertyName.DeviceState), battery: device.getPropertyValue(PropertyName.DeviceBattery), batteryTemperature: device.getPropertyValue(PropertyName.DeviceBatteryTemp), batteryLow: device.getPropertyValue(PropertyName.DeviceBatteryLow), lastChargingDays: device.getPropertyValue(PropertyName.DeviceLastChargingDays), lastChargingTotalEvents: device.getPropertyValue(PropertyName.DeviceLastChargingTotalEvents), lastChargingRecordedEvents: device.getPropertyValue(PropertyName.DeviceLastChargingRecordedEvents), lastChargingFalseEvents: device.getPropertyValue(PropertyName.DeviceLastChargingFalseEvents), batteryUsageLastWeek: device.getPropertyValue(PropertyName.DeviceBatteryUsageLastWeek), motionDetected: device.getPropertyValue(PropertyName.DeviceMotionDetected), personDetected: device.getPropertyValue(PropertyName.DevicePersonDetected), personName: device.getPropertyValue(PropertyName.DevicePersonName), soundDetected: device.getPropertyValue(PropertyName.DeviceSoundDetected), petDetected: device.getPropertyValue(PropertyName.DevicePetDetected), cryingDetected: device.getPropertyValue(PropertyName.DeviceCryingDetected), ringing: device.getPropertyValue(PropertyName.DeviceRinging), locked: device.getPropertyValue(PropertyName.DeviceLocked), antitheftDetection: device.getPropertyValue(PropertyName.DeviceAntitheftDetection), autoNightvision: device.getPropertyValue(PropertyName.DeviceAutoNightvision), motionDetection: device.getPropertyValue(PropertyName.DeviceMotionDetection), soundDetection: device.getPropertyValue(PropertyName.DeviceSoundDetection), petDetection: device.getPropertyValue(PropertyName.DevicePetDetection), rtspStream: device.getPropertyValue(PropertyName.DeviceRTSPStream), watermark: device.getPropertyValue(PropertyName.DeviceWatermark), lockStatus: device.getPropertyValue(PropertyName.DeviceLockStatus), motionSensorPIREvent: device.getPropertyValue(PropertyName.DeviceMotionSensorPIREvent), wifiRSSI: device.getPropertyValue(PropertyName.DeviceWifiRSSI), pictureUrl: device.getPropertyValue(PropertyName.DevicePictureUrl), sensorOpen: device.getPropertyValue(PropertyName.DeviceSensorOpen), sensorChangeTime: device.getPropertyValue(PropertyName.DeviceSensorChangeTime), }; if (schemaVersion == 0) { base.ledStatus = device.getPropertyValue(PropertyName.DeviceStatusLed); return base; } const device1 = base; device1.type = device.getPropertyValue(PropertyName.Type); if (schemaVersion <= 2) { return device1; } const device3 = device1; device3.motionDetectionType = device.getPropertyValue(PropertyName.DeviceMotionDetectionType); device3.motionTracking = device.getPropertyValue(PropertyName.DeviceMotionTracking); device3.soundDetectionType = device.getPropertyValue(PropertyName.DeviceSoundDetectionType); device3.light = device.getPropertyValue(PropertyName.DeviceLight); device3.microphone = device.getPropertyValue(PropertyName.DeviceMicrophone); device3.speaker = device.getPropertyValue(PropertyName.DeviceSpeaker); device3.speakerVolume = device.getPropertyValue(PropertyName.DeviceSpeakerVolume); device3.ringtoneVolume = device.getPropertyValue(PropertyName.DeviceRingtoneVolume); device3.audioRecording = device.getPropertyValue(PropertyName.DeviceAudioRecording); device3.powerSource = device.getPropertyValue(PropertyName.DevicePowerSource); device3.powerWorkingMode = device.getPropertyValue(PropertyName.DevicePowerWorkingMode); device3.recordingEndClipMotionStops = device.getPropertyValue(PropertyName.DeviceRecordingEndClipMotionStops); device3.recordingClipLength = device.getPropertyValue(PropertyName.DeviceRecordingClipLength); device3.recordingRetriggerInterval = device.getPropertyValue(PropertyName.DeviceRecordingRetriggerInterval); device3.videoStreamingQuality = device.getPropertyValue(PropertyName.DeviceVideoStreamingQuality); device3.videoRecordingQuality = device.getPropertyValue(PropertyName.DeviceVideoRecordingQuality); device3.videoWDR = device.getPropertyValue(PropertyName.DeviceVideoWDR); device3.lightSettingsEnable = device.getPropertyValue(PropertyName.DeviceLightSettingsEnable); device3.lightSettingsBrightnessManual = device.getPropertyValue(PropertyName.DeviceLightSettingsBrightnessManual); device3.lightSettingsBrightnessMotion = device.getPropertyValue(PropertyName.DeviceLightSettingsBrightnessMotion); device3.lightSettingsBrightnessSchedule = device.getPropertyValue(PropertyName.DeviceLightSettingsBrightnessSchedule); device3.lightSettingsMotionTriggered = device.getPropertyValue(PropertyName.DeviceLightSettingsMotionTriggered); device3.lightSettingsMotionTriggeredDistance = device.getPropertyValue(PropertyName.DeviceLightSettingsMotionTriggeredDistance); device3.lightSettingsMotionTriggeredTimer = device.getPropertyValue(PropertyName.DeviceLightSettingsMotionTriggeredTimer); device3.chimeIndoor = device.getPropertyValue(PropertyName.DeviceChimeIndoor); device3.chimeHomebase = device.getPropertyValue(PropertyName.DeviceChimeHomebase); device3.chimeHomebaseRingtoneVolume = device.getPropertyValue(PropertyName.DeviceChimeHomebaseRingtoneVolume); device3.chimeHomebaseRingtoneType = device.getPropertyValue(PropertyName.DeviceChimeHomebaseRingtoneType); device3.notificationType = device.getPropertyValue(PropertyName.DeviceNotificationType); device3.rotationSpeed = device.getPropertyValue(PropertyName.DeviceRotationSpeed); device3.notificationPerson = device.getPropertyValue(PropertyName.DeviceNotificationPerson); device3.notificationPet = device.getPropertyValue(PropertyName.DeviceNotificationPet); device3.notificationAllOtherMotion = device.getPropertyValue(PropertyName.DeviceNotificationAllOtherMotion); device3.notificationCrying = device.getPropertyValue(PropertyName.DeviceNotificationCrying); device3.notificationAllSound = device.getPropertyValue(PropertyName.DeviceNotificationAllSound); device3.notificationIntervalTime = device.getPropertyValue(PropertyName.DeviceNotificationIntervalTime); device3.notificationRing = device.getPropertyValue(PropertyName.DeviceNotificationRing); device3.notificationMotion = device.getPropertyValue(PropertyName.DeviceNotificationMotion); if (schemaVersion === 3) { device3.motionDetectionSensivity = device.getPropertyValue(PropertyName.DeviceMotionDetectionSensitivity); device3.soundDetectionSensivity = device.getPropertyValue(PropertyName.DeviceSoundDetectionSensitivity); return device3; } const device4 = device3; device4.chirpVolume = device.getPropertyValue(PropertyName.DeviceChirpVolume); device4.chirpTone = device.getPropertyValue(PropertyName.DeviceChirpTone); device4.motionDetectionSensitivity = device.getPropertyValue(PropertyName.DeviceMotionDetectionSensitivity); device4.soundDetectionSensitivity = device.getPropertyValue(PropertyName.DeviceSoundDetectionSensitivity); device4.videoHdr = device.getPropertyValue(PropertyName.DeviceVideoHDR); device4.videoDistortionCorrection = device.getPropertyValue(PropertyName.DeviceVideoDistortionCorrection); device4.videoRingRecord = device.getPropertyValue(PropertyName.DeviceVideoRingRecord); device4.statusLed = device.getPropertyValue(PropertyName.DeviceStatusLed); device4.rtspStreamUrl = device.getPropertyValue(PropertyName.DeviceRTSPStreamUrl); device4.chargingStatus = device.getPropertyValue(PropertyName.DeviceChargingStatus); device4.wifiSignalLevel = device.getPropertyValue(PropertyName.DeviceWifiSignalLevel); if (schemaVersion <= 4) { return device4; } const device5 = device4; device5.nightvision = device.getPropertyValue(PropertyName.DeviceNightvision); device5.batteryIsCharging = device.getPropertyValue(PropertyName.DeviceBatteryIsCharging); if (schemaVersion <= 5) { return device5; } const device6 = device5; device6.motionDetectionRange = device.getPropertyValue(PropertyName.DeviceMotionDetectionRange); device6.motionDetectionRangeStandardSensitivity = device.getPropertyValue(PropertyName.DeviceMotionDetectionRangeStandardSensitivity); device6.motionDetectionRangeAdvancedLeftSensitivity = device.getPropertyValue(PropertyName.DeviceMotionDetectionRangeAdvancedLeftSensitivity); device6.motionDetectionRangeAdvancedMiddleSensitivity = device.getPropertyValue(PropertyName.DeviceMotionDetectionRangeAdvancedMiddleSensitivity); device6.motionDetectionRangeAdvancedRightSensitivity = device.getPropertyValue(PropertyName.DeviceMotionDetectionRangeAdvancedRightSensitivity); device6.motionDetectionTestMode = device.getPropertyValue(PropertyName.DeviceMotionDetectionTestMode); device6.motionTrackingSensitivity = device.getPropertyValue(PropertyName.DeviceMotionTrackingSensitivity); device6.motionAutoCruise = device.getPropertyValue(PropertyName.DeviceMotionAutoCruise); device6.motionOutOfViewDetection = device.getPropertyValue(PropertyName.DeviceMotionOutOfViewDetection); device6.lightSettingsColorTemperatureManual = device.getPropertyValue(PropertyName.DeviceLightSettingsColorTemperatureManual); device6.lightSettingsColorTemperatureMotion = device.getPropertyValue(PropertyName.DeviceLightSettingsColorTemperatureMotion); device6.lightSettingsColorTemperatureSchedule = device.getPropertyValue(PropertyName.DeviceLightSettingsColorTemperatureSchedule); device6.lightSettingsMotionActivationMode = device.getPropertyValue(PropertyName.DeviceLightSettingsMotionActivationMode); device6.videoNightvisionImageAdjustment = device.getPropertyValue(PropertyName.DeviceVideoNightvisionImageAdjustment); device6.videoColorNightvision = device.getPropertyValue(PropertyName.DeviceVideoColorNightvision); device6.autoCalibration = device.getPropertyValue(PropertyName.DeviceAutoCalibration); if (schemaVersion <= 8) { return device6; } const device7 = device6; device7.lockSettingsAutoLock = device.getPropertyValue(PropertyName.DeviceAutoLock); device7.lockSettingsAutoLockTimer = device.getPropertyValue(PropertyName.DeviceAutoLockTimer); device7.lockSettingsAutoLockSchedule = device.getPropertyValue(PropertyName.DeviceAutoLockSchedule); device7.lockSettingsAutoLockScheduleStartTime = device.getPropertyValue(PropertyName.DeviceAutoLockScheduleStartTime); device7.lockSettingsAutoLockScheduleEndTime = device.getPropertyValue(PropertyName.DeviceAutoLockScheduleEndTime); device7.lockSettingsOneTouchLocking = device.getPropertyValue(PropertyName.DeviceOneTouchLocking); device7.lockSettingsWrongTryProtection = device.getPropertyValue(PropertyName.DeviceWrongTryProtection); device7.lockSettingsWrongTryAttempts = device.getPropertyValue(PropertyName.DeviceWrongTryAttempts); device7.lockSettingsWrongTryLockdownTime = device.getPropertyValue(PropertyName.DeviceWrongTryLockdownTime); device7.lockSettingsScramblePasscode = device.getPropertyValue(PropertyName.DeviceScramblePasscode); device7.lockSettingsSound = device.getPropertyValue(PropertyName.DeviceSound); device7.lockSettingsNotification = device.getPropertyValue(PropertyName.DeviceNotification); device7.lockSettingsNotificationUnlocked = device.getPropertyValue(PropertyName.DeviceNotificationUnlocked); device7.lockSettingsNotificationLocked = device.getPropertyValue(PropertyName.DeviceNotificationLocked); if (schemaVersion <= 9) { return device7; } const device8 = device7; device8.notificationRadarDetector = device.getPropertyValue(PropertyName.DeviceNotificationRadarDetector); device8.continuousRecording = device.getPropertyValue(PropertyName.DeviceContinuousRecording); device8.continuousRecordingType = device.getPropertyValue(PropertyName.DeviceContinuousRecordingType); device8.loiteringDetection = device.getPropertyValue(PropertyName.DeviceLoiteringDetection); device8.loiteringDetectionRange = device.getPropertyValue(PropertyName.DeviceLoiteringDetectionRange); device8.loiteringDetectionLength = device.getPropertyValue(PropertyName.DeviceLoiteringDetectionLength); device8.motionDetectionSensitivityMode = device.getPropertyValue(PropertyName.DeviceMotionDetectionSensitivityMode); device8.motionDetectionSensitivityStandard = device.getPropertyValue(PropertyName.DeviceMotionDetectionSensitivityStandard); device8.motionDetectionSensitivityAdvancedA = device.getPropertyValue(PropertyName.DeviceMotionDetectionSensitivityAdvancedA); device8.motionDetectionSensitivityAdvancedB = device.getPropertyValue(PropertyName.DeviceMotionDetectionSensitivityAdvancedB); device8.motionDetectionSensitivityAdvancedC = device.getPropertyValue(PropertyName.DeviceMotionDetectionSensitivityAdvancedC); device8.motionDetectionSensitivityAdvancedD = device.getPropertyValue(PropertyName.DeviceMotionDetectionSensitivityAdvancedD); device8.motionDetectionSensitivityAdvancedE = device.getPropertyValue(PropertyName.DeviceMotionDetectionSensitivityAdvancedE); device8.motionDetectionSensitivityAdvancedF = device.getPropertyValue(PropertyName.DeviceMotionDetectionSensitivityAdvancedF); device8.motionDetectionSensitivityAdvancedG = device.getPropertyValue(PropertyName.DeviceMotionDetectionSensitivityAdvancedG); device8.motionDetectionSensitivityAdvancedH = device.getPropertyValue(PropertyName.DeviceMotionDetectionSensitivityAdvancedH); device8.loiteringCustomResponsePhoneNotification = device.getPropertyValue(PropertyName.DeviceLoiteringCustomResponsePhoneNotification); device8.loiteringCustomResponseAutoVoiceResponse = device.getPropertyValue(PropertyName.DeviceLoiteringCustomResponseAutoVoiceResponse); device8.loiteringCustomResponseAutoVoiceResponseVoice = device.getPropertyValue(PropertyName.DeviceLoiteringCustomResponseAutoVoiceResponseVoice); device8.loiteringCustomResponseHomeBaseNotification = device.getPropertyValue(PropertyName.DeviceLoiteringCustomResponseHomeBaseNotification); device8.loiteringCustomResponseTimeFrom = device.getPropertyValue(PropertyName.DeviceLoiteringCustomResponseTimeFrom); device8.loiteringCustomResponseTimeTo = device.getPropertyValue(PropertyName.DeviceLoiteringCustomResponseTimeTo); device8.deliveryGuard = device.getPropertyValue(PropertyName.DeviceDeliveryGuard); device8.deliveryGuardPackageGuarding = device.getPropertyValue(PropertyName.DeviceDeliveryGuardPackageGuarding); device8.deliveryGuardPackageGuardingVoiceResponseVoice = device.getPropertyValue(PropertyName.DeviceDeliveryGuardPackageGuardingVoiceResponseVoice); device8.deliveryGuardPackageGuardingActivatedTimeFrom = device.getPropertyValue(PropertyName.DeviceDeliveryGuardPackageGuardingActivatedTimeFrom); device8.deliveryGuardPackageGuardingActivatedTimeTo = device.getPropertyValue(PropertyName.DeviceDeliveryGuardPackageGuardingActivatedTimeTo); device8.deliveryGuardUncollectedPackageAlert = device.getPropertyValue(PropertyName.DeviceDeliveryGuardUncollectedPackageAlert); device8.deliveryGuardUncollectedPackageAlertTimeToCheck = device.getPropertyValue(PropertyName.DeviceDeliveryGuardUncollectedPackageAlertTimeToCheck); device8.deliveryGuardPackageLiveCheckAssistance = device.getPropertyValue(PropertyName.DeviceDeliveryGuardPackageLiveCheckAssistance); device8.dualCamWatchViewMode = device.getPropertyValue(PropertyName.DeviceDualCamWatchViewMode); device8.ringAutoResponse = device.getPropertyValue(PropertyName.DeviceRingAutoResponse); device8.ringAutoResponseVoiceResponse = device.getPropertyValue(PropertyName.DeviceRingAutoResponseVoiceResponse); device8.ringAutoResponseVoiceResponseVoice = device.getPropertyValue(PropertyName.DeviceRingAutoResponseVoiceResponseVoice); device8.ringAutoResponseTimeFrom = device.getPropertyValue(PropertyName.DeviceRingAutoResponseTimeFrom); device8.ringAutoResponseTimeTo = device.getPropertyValue(PropertyName.DeviceRingAutoResponseTimeTo); device8.defaultAngle = device.getPropertyValue(PropertyName.DeviceDefaultAngle); device8.defaultAngleIdleTime = device.getPropertyValue(PropertyName.DeviceDefaultAngleIdleTime); device8.soundDetectionRoundLook = device.getPropertyValue(PropertyName.DeviceSoundDetectionRoundLook); if (schemaVersion <= 10) { return device8; } // All schemas >= 11 const device9 = device8; device9.imageMirrored = device.getPropertyValue(PropertyName.DeviceImageMirrored); return device9; }; //# sourceMappingURL=state.js.map